LCOV - code coverage report
Current view: top level - src/hfxbase - hfx_compression_core_methods.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:0de0cc2) Lines: 51508 51533 99.9 %
Date: 2024-03-28 07:31:50 Functions: 130 131 99.2 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------------------------!
       2             : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3             : !   Copyright 2000-2024 CP2K developers group <https://cp2k.org>                                   !
       4             : !                                                                                                  !
       5             : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6             : !--------------------------------------------------------------------------------------------------!
       7             : 
       8             : ! **************************************************************************************************
       9             : !> \brief Contains routines for data compression. PLEASE DO NOT MODIFY.
      10             : !> \par History
      11             : !>      04.2008 created [Manuel Guidon]
      12             : !> \author Manuel Guidon
      13             : ! **************************************************************************************************
      14             : MODULE hfx_compression_core_methods
      15             : 
      16             :    USE kinds,                           ONLY: int_8
      17             : #include "../base/base_uses.f90"
      18             : 
      19             :    IMPLICIT NONE
      20             :    PRIVATE
      21             : 
      22             :    ! masks the corresponding number of bits from the right
      23             :    INTEGER(kind=int_8), PARAMETER :: mask_right(0:63) = &
      24             :                               (/0_int_8, 1_int_8, 3_int_8, 7_int_8, 15_int_8, 31_int_8, 63_int_8, 127_int_8, 255_int_8, 511_int_8, &
      25             :                               1023_int_8, 2047_int_8, 4095_int_8, 8191_int_8, 16383_int_8, 32767_int_8, 65535_int_8, 131071_int_8, &
      26             :                            262143_int_8, 524287_int_8, 1048575_int_8, 2097151_int_8, 4194303_int_8, 8388607_int_8, 16777215_int_8, &
      27             :                               33554431_int_8, 67108863_int_8, 134217727_int_8, 268435455_int_8, 536870911_int_8, 1073741823_int_8, &
      28             :                                        2147483647_int_8, 4294967295_int_8, 8589934591_int_8, 17179869183_int_8, 34359738367_int_8, &
      29             :                                68719476735_int_8, 137438953471_int_8, 274877906943_int_8, 549755813887_int_8, 1099511627775_int_8, &
      30             :                                        2199023255551_int_8, 4398046511103_int_8, 8796093022207_int_8, 17592186044415_int_8, &
      31             :                                        35184372088831_int_8, 70368744177663_int_8, 140737488355327_int_8, 281474976710655_int_8, &
      32             :                                     562949953421311_int_8, 1125899906842623_int_8, 2251799813685247_int_8, 4503599627370495_int_8, &
      33             :                                 9007199254740991_int_8, 18014398509481983_int_8, 36028797018963967_int_8, 72057594037927935_int_8, &
      34             :                                        144115188075855871_int_8, 288230376151711743_int_8, 576460752303423487_int_8, &
      35             :                                        1152921504606846975_int_8, 2305843009213693951_int_8, 4611686018427387903_int_8, &
      36             :                                        9223372036854775807_int_8/)
      37             : 
      38             :    ! masks the corresponding number of bits from the left
      39             :    ! use ishft to avoid explicitly writing -HUGE-1, and keep it out of the array a work-around for a bug in pgi 6.1-1
      40             :    INTEGER(kind=int_8), PARAMETER :: ugly_duck = ISHFT(1_int_8, 63)
      41             :    INTEGER(kind=int_8), PARAMETER :: mask_left(0:63) = &
      42             :                                      (/0_int_8, ugly_duck, -4611686018427387904_int_8, -2305843009213693952_int_8, &
      43             :                                        -1152921504606846976_int_8, -576460752303423488_int_8, -288230376151711744_int_8, &
      44             :                                        -144115188075855872_int_8, -72057594037927936_int_8, -36028797018963968_int_8, &
      45             :                               -18014398509481984_int_8, -9007199254740992_int_8, -4503599627370496_int_8, -2251799813685248_int_8, &
      46             :                                   -1125899906842624_int_8, -562949953421312_int_8, -281474976710656_int_8, -140737488355328_int_8, &
      47             :                                        -70368744177664_int_8, -35184372088832_int_8, -17592186044416_int_8, -8796093022208_int_8, &
      48             :                                        -4398046511104_int_8, -2199023255552_int_8, -1099511627776_int_8, -549755813888_int_8, &
      49             :                              -274877906944_int_8, -137438953472_int_8, -68719476736_int_8, -34359738368_int_8, -17179869184_int_8, &
      50             :                                      -8589934592_int_8, -4294967296_int_8, -2147483648_int_8, -1073741824_int_8, -536870912_int_8, &
      51             :                                        -268435456_int_8, -134217728_int_8, -67108864_int_8, -33554432_int_8, -16777216_int_8, &
      52             :                                      -8388608_int_8, -4194304_int_8, -2097152_int_8, -1048576_int_8, -524288_int_8, -262144_int_8, &
      53             :                                    -131072_int_8, -65536_int_8, -32768_int_8, -16384_int_8, -8192_int_8, -4096_int_8, -2048_int_8, &
      54             :                              -1024_int_8, -512_int_8, -256_int_8, -128_int_8, -64_int_8, -32_int_8, -16_int_8, -8_int_8, -4_int_8, &
      55             :                                        -2_int_8/)
      56             : 
      57             :    PUBLIC :: bits2ints_specific, ints2bits_specific
      58             : 
      59             : CONTAINS
      60             : 
      61             : ! **************************************************************************************************
      62             : !> \brief ...
      63             : !> \param Ndata ...
      64             : !> \param packed_data ...
      65             : !> \param full_data ...
      66             : ! **************************************************************************************************
      67           0 :    SUBROUTINE ints2ints(Ndata, packed_data, full_data)
      68             :       INTEGER, INTENT(IN)                                :: Ndata
      69             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
      70             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
      71             : 
      72           0 :       full_data(1:Ndata) = packed_data(1:Ndata)
      73           0 :    END SUBROUTINE
      74             : 
      75             :    ! Nbits         : number of relevant bits per int in the bit stream (this includes all bits)
      76             :    ! Ndata         : number of ints that need to be extracted from the bit stream
      77             :    ! packed_data   : the stream of bits
      78             :    ! full_data     : the extracted ints
      79             : ! **************************************************************************************************
      80             : !> \brief ...
      81             : !> \param Nbits ...
      82             : !> \param Ndata ...
      83             : !> \param packed_data ...
      84             : !> \param full_data ...
      85             : ! **************************************************************************************************
      86     1374982 :    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     1374982 :       idata = 0
      96             : 
      97             :       ! number of data bits in the pack_tmp that should still be read
      98     1374982 :       ibits_remaining = 64
      99     1374982 :       ipack = 1
     100     1374982 :       pack_tmp = packed_data(ipack)
     101             : 
     102             :       ! give the compiler a hint that Nbits is strictly positive
     103     1374982 :       IF (Nbits < 1) CPABORT("This is a bug")
     104             :       ! we also limit the making number of bits
     105     1374982 :       IF (Nbits >= 64) CPABORT("This is a bug")
     106             : 
     107             :       DO
     108             :          ! we've unpacked all data
     109    45374406 :          IF (idata == Ndata) EXIT
     110    43999424 :          idata = idata + 1
     111    45374406 :          IF (ibits_remaining >= Nbits) THEN
     112    22877325 :             data_tmp = IAND(pack_tmp, mask_right(Nbits)) ! get the last Nbits
     113    22877325 :             full_data(idata) = data_tmp
     114    22877325 :             pack_tmp = ISHFT(pack_tmp, -Nbits) ! and shift right to get the bits in place for the next
     115    22877325 :             ibits_remaining = ibits_remaining - Nbits
     116             :          ELSE
     117    21122099 :             i_odd_bits = Nbits - ibits_remaining
     118    21122099 :             data_tmp = ISHFT(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
     119    21122099 :             ipack = ipack + 1
     120    21122099 :             pack_tmp = packed_data(ipack) ! get new storage
     121    21122099 :             ibits_remaining = 64
     122    21122099 :             full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
     123    21122099 :             pack_tmp = ISHFT(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
     124    21122099 :             ibits_remaining = 64 - i_odd_bits
     125             :          END IF
     126             :       END DO
     127             : 
     128     1374982 :    END SUBROUTINE bits2ints_generic
     129             : 
     130             : ! **************************************************************************************************
     131             : !> \brief ...
     132             : !> \param Nbits ...
     133             : !> \param Ndata ...
     134             : !> \param packed_data ...
     135             : !> \param full_data ...
     136             : ! **************************************************************************************************
     137      199412 :    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      199412 :       idata = 0
     146      199412 :       ipack = 0
     147      199412 :       pack_tmp = 0
     148             : 
     149             :       ! number of data bits in the pack_tmp that should still be written
     150      199412 :       ibits_remaining = 64
     151             : 
     152             :       ! give the compiler a hint that Nbits is strictly positive
     153      199412 :       IF (Nbits < 1) CPABORT("This is a bug")
     154             :       ! we also limit the making number of bits
     155      199412 :       IF (Nbits >= 64) CPABORT("This is a bug")
     156             : 
     157             :       DO
     158             :          ! we've packed all data
     159     6580596 :          IF (idata == Ndata) EXIT
     160     6381184 :          idata = idata + 1
     161     6580596 :          IF (ibits_remaining >= Nbits) THEN
     162     3331062 :             data_tmp = full_data(idata)
     163     3331062 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     164     3331062 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add to the packed data
     165     3331062 :             ibits_remaining = ibits_remaining - Nbits
     166     3331062 :             pack_tmp = ISHFT(pack_tmp, -MIN(Nbits, ibits_remaining)) ! and shift to the right to make place for the next
     167             :          ELSE
     168     3050122 :             i_odd_bits = ibits_remaining
     169     3050122 :             data_tmp = full_data(idata)
     170     3050122 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     171     3050122 :             data_tmp = IAND(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
     172     3050122 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add them to the packed bits
     173     3050122 :             ipack = ipack + 1
     174     3050122 :             packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
     175     3050122 :             data_tmp = full_data(idata)
     176     3050122 :             pack_tmp = ISHFT(data_tmp, 64 - Nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
     177     3050122 :             ibits_remaining = 64 - Nbits + i_odd_bits
     178     3050122 :             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      199412 :       pack_tmp = ISHFT(pack_tmp, -MAX(0, ibits_remaining - Nbits))
     184      199412 :       ipack = ipack + 1
     185      199412 :       packed_data(ipack) = pack_tmp
     186             : 
     187      199412 :    END SUBROUTINE ints2bits_generic
     188             : 
     189             : ! **************************************************************************************************
     190             : !> \brief ...
     191             : !> \param Ndata ...
     192             : !> \param packed_data ...
     193             : !> \param full_data ...
     194             : ! **************************************************************************************************
     195       22678 :    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       22678 :       idata = 0
     206       22678 :       ipack = 0
     207       22678 :       Ndata_rep = (Ndata/64)*64
     208       22678 :       DO kdata = 1, Ndata_rep, 64
     209      362848 :          pack_tmp = 0
     210      362848 :          idata = idata + 1
     211      362848 :          data_tmp = full_data(idata)
     212      362848 :          data_tmp = ISHFT(data_tmp, 63)
     213      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     214      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     215      362848 :          idata = idata + 1
     216      362848 :          data_tmp = full_data(idata)
     217      362848 :          data_tmp = ISHFT(data_tmp, 63)
     218      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     219      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     220      362848 :          idata = idata + 1
     221      362848 :          data_tmp = full_data(idata)
     222      362848 :          data_tmp = ISHFT(data_tmp, 63)
     223      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     224      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     225      362848 :          idata = idata + 1
     226      362848 :          data_tmp = full_data(idata)
     227      362848 :          data_tmp = ISHFT(data_tmp, 63)
     228      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     229      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     230      362848 :          idata = idata + 1
     231      362848 :          data_tmp = full_data(idata)
     232      362848 :          data_tmp = ISHFT(data_tmp, 63)
     233      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     234      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     235      362848 :          idata = idata + 1
     236      362848 :          data_tmp = full_data(idata)
     237      362848 :          data_tmp = ISHFT(data_tmp, 63)
     238      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     239      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     240      362848 :          idata = idata + 1
     241      362848 :          data_tmp = full_data(idata)
     242      362848 :          data_tmp = ISHFT(data_tmp, 63)
     243      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     244      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     245      362848 :          idata = idata + 1
     246      362848 :          data_tmp = full_data(idata)
     247      362848 :          data_tmp = ISHFT(data_tmp, 63)
     248      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     249      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     250      362848 :          idata = idata + 1
     251      362848 :          data_tmp = full_data(idata)
     252      362848 :          data_tmp = ISHFT(data_tmp, 63)
     253      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     254      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     255      362848 :          idata = idata + 1
     256      362848 :          data_tmp = full_data(idata)
     257      362848 :          data_tmp = ISHFT(data_tmp, 63)
     258      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     259      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     260      362848 :          idata = idata + 1
     261      362848 :          data_tmp = full_data(idata)
     262      362848 :          data_tmp = ISHFT(data_tmp, 63)
     263      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     264      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     265      362848 :          idata = idata + 1
     266      362848 :          data_tmp = full_data(idata)
     267      362848 :          data_tmp = ISHFT(data_tmp, 63)
     268      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     269      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     270      362848 :          idata = idata + 1
     271      362848 :          data_tmp = full_data(idata)
     272      362848 :          data_tmp = ISHFT(data_tmp, 63)
     273      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     274      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     275      362848 :          idata = idata + 1
     276      362848 :          data_tmp = full_data(idata)
     277      362848 :          data_tmp = ISHFT(data_tmp, 63)
     278      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     279      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     280      362848 :          idata = idata + 1
     281      362848 :          data_tmp = full_data(idata)
     282      362848 :          data_tmp = ISHFT(data_tmp, 63)
     283      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     284      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     285      362848 :          idata = idata + 1
     286      362848 :          data_tmp = full_data(idata)
     287      362848 :          data_tmp = ISHFT(data_tmp, 63)
     288      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     289      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     290      362848 :          idata = idata + 1
     291      362848 :          data_tmp = full_data(idata)
     292      362848 :          data_tmp = ISHFT(data_tmp, 63)
     293      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     294      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     295      362848 :          idata = idata + 1
     296      362848 :          data_tmp = full_data(idata)
     297      362848 :          data_tmp = ISHFT(data_tmp, 63)
     298      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     299      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     300      362848 :          idata = idata + 1
     301      362848 :          data_tmp = full_data(idata)
     302      362848 :          data_tmp = ISHFT(data_tmp, 63)
     303      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     304      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     305      362848 :          idata = idata + 1
     306      362848 :          data_tmp = full_data(idata)
     307      362848 :          data_tmp = ISHFT(data_tmp, 63)
     308      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     309      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     310      362848 :          idata = idata + 1
     311      362848 :          data_tmp = full_data(idata)
     312      362848 :          data_tmp = ISHFT(data_tmp, 63)
     313      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     314      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     315      362848 :          idata = idata + 1
     316      362848 :          data_tmp = full_data(idata)
     317      362848 :          data_tmp = ISHFT(data_tmp, 63)
     318      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     319      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     320      362848 :          idata = idata + 1
     321      362848 :          data_tmp = full_data(idata)
     322      362848 :          data_tmp = ISHFT(data_tmp, 63)
     323      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     324      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     325      362848 :          idata = idata + 1
     326      362848 :          data_tmp = full_data(idata)
     327      362848 :          data_tmp = ISHFT(data_tmp, 63)
     328      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     329      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     330      362848 :          idata = idata + 1
     331      362848 :          data_tmp = full_data(idata)
     332      362848 :          data_tmp = ISHFT(data_tmp, 63)
     333      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     334      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     335      362848 :          idata = idata + 1
     336      362848 :          data_tmp = full_data(idata)
     337      362848 :          data_tmp = ISHFT(data_tmp, 63)
     338      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     339      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     340      362848 :          idata = idata + 1
     341      362848 :          data_tmp = full_data(idata)
     342      362848 :          data_tmp = ISHFT(data_tmp, 63)
     343      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     344      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     345      362848 :          idata = idata + 1
     346      362848 :          data_tmp = full_data(idata)
     347      362848 :          data_tmp = ISHFT(data_tmp, 63)
     348      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     349      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     350      362848 :          idata = idata + 1
     351      362848 :          data_tmp = full_data(idata)
     352      362848 :          data_tmp = ISHFT(data_tmp, 63)
     353      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     354      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     355      362848 :          idata = idata + 1
     356      362848 :          data_tmp = full_data(idata)
     357      362848 :          data_tmp = ISHFT(data_tmp, 63)
     358      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     359      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     360      362848 :          idata = idata + 1
     361      362848 :          data_tmp = full_data(idata)
     362      362848 :          data_tmp = ISHFT(data_tmp, 63)
     363      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     364      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     365      362848 :          idata = idata + 1
     366      362848 :          data_tmp = full_data(idata)
     367      362848 :          data_tmp = ISHFT(data_tmp, 63)
     368      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     369      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     370      362848 :          idata = idata + 1
     371      362848 :          data_tmp = full_data(idata)
     372      362848 :          data_tmp = ISHFT(data_tmp, 63)
     373      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     374      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     375      362848 :          idata = idata + 1
     376      362848 :          data_tmp = full_data(idata)
     377      362848 :          data_tmp = ISHFT(data_tmp, 63)
     378      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     379      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     380      362848 :          idata = idata + 1
     381      362848 :          data_tmp = full_data(idata)
     382      362848 :          data_tmp = ISHFT(data_tmp, 63)
     383      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     384      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     385      362848 :          idata = idata + 1
     386      362848 :          data_tmp = full_data(idata)
     387      362848 :          data_tmp = ISHFT(data_tmp, 63)
     388      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     389      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     390      362848 :          idata = idata + 1
     391      362848 :          data_tmp = full_data(idata)
     392      362848 :          data_tmp = ISHFT(data_tmp, 63)
     393      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     394      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     395      362848 :          idata = idata + 1
     396      362848 :          data_tmp = full_data(idata)
     397      362848 :          data_tmp = ISHFT(data_tmp, 63)
     398      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     399      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     400      362848 :          idata = idata + 1
     401      362848 :          data_tmp = full_data(idata)
     402      362848 :          data_tmp = ISHFT(data_tmp, 63)
     403      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     404      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     405      362848 :          idata = idata + 1
     406      362848 :          data_tmp = full_data(idata)
     407      362848 :          data_tmp = ISHFT(data_tmp, 63)
     408      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     409      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     410      362848 :          idata = idata + 1
     411      362848 :          data_tmp = full_data(idata)
     412      362848 :          data_tmp = ISHFT(data_tmp, 63)
     413      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     414      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     415      362848 :          idata = idata + 1
     416      362848 :          data_tmp = full_data(idata)
     417      362848 :          data_tmp = ISHFT(data_tmp, 63)
     418      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     419      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     420      362848 :          idata = idata + 1
     421      362848 :          data_tmp = full_data(idata)
     422      362848 :          data_tmp = ISHFT(data_tmp, 63)
     423      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     424      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     425      362848 :          idata = idata + 1
     426      362848 :          data_tmp = full_data(idata)
     427      362848 :          data_tmp = ISHFT(data_tmp, 63)
     428      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     429      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     430      362848 :          idata = idata + 1
     431      362848 :          data_tmp = full_data(idata)
     432      362848 :          data_tmp = ISHFT(data_tmp, 63)
     433      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     434      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     435      362848 :          idata = idata + 1
     436      362848 :          data_tmp = full_data(idata)
     437      362848 :          data_tmp = ISHFT(data_tmp, 63)
     438      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     439      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     440      362848 :          idata = idata + 1
     441      362848 :          data_tmp = full_data(idata)
     442      362848 :          data_tmp = ISHFT(data_tmp, 63)
     443      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     444      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     445      362848 :          idata = idata + 1
     446      362848 :          data_tmp = full_data(idata)
     447      362848 :          data_tmp = ISHFT(data_tmp, 63)
     448      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     449      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     450      362848 :          idata = idata + 1
     451      362848 :          data_tmp = full_data(idata)
     452      362848 :          data_tmp = ISHFT(data_tmp, 63)
     453      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     454      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     455      362848 :          idata = idata + 1
     456      362848 :          data_tmp = full_data(idata)
     457      362848 :          data_tmp = ISHFT(data_tmp, 63)
     458      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     459      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     460      362848 :          idata = idata + 1
     461      362848 :          data_tmp = full_data(idata)
     462      362848 :          data_tmp = ISHFT(data_tmp, 63)
     463      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     464      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     465      362848 :          idata = idata + 1
     466      362848 :          data_tmp = full_data(idata)
     467      362848 :          data_tmp = ISHFT(data_tmp, 63)
     468      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     469      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     470      362848 :          idata = idata + 1
     471      362848 :          data_tmp = full_data(idata)
     472      362848 :          data_tmp = ISHFT(data_tmp, 63)
     473      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     474      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     475      362848 :          idata = idata + 1
     476      362848 :          data_tmp = full_data(idata)
     477      362848 :          data_tmp = ISHFT(data_tmp, 63)
     478      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     479      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     480      362848 :          idata = idata + 1
     481      362848 :          data_tmp = full_data(idata)
     482      362848 :          data_tmp = ISHFT(data_tmp, 63)
     483      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     484      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     485      362848 :          idata = idata + 1
     486      362848 :          data_tmp = full_data(idata)
     487      362848 :          data_tmp = ISHFT(data_tmp, 63)
     488      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     489      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     490      362848 :          idata = idata + 1
     491      362848 :          data_tmp = full_data(idata)
     492      362848 :          data_tmp = ISHFT(data_tmp, 63)
     493      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     494      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     495      362848 :          idata = idata + 1
     496      362848 :          data_tmp = full_data(idata)
     497      362848 :          data_tmp = ISHFT(data_tmp, 63)
     498      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     499      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     500      362848 :          idata = idata + 1
     501      362848 :          data_tmp = full_data(idata)
     502      362848 :          data_tmp = ISHFT(data_tmp, 63)
     503      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     504      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     505      362848 :          idata = idata + 1
     506      362848 :          data_tmp = full_data(idata)
     507      362848 :          data_tmp = ISHFT(data_tmp, 63)
     508      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     509      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     510      362848 :          idata = idata + 1
     511      362848 :          data_tmp = full_data(idata)
     512      362848 :          data_tmp = ISHFT(data_tmp, 63)
     513      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     514      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     515      362848 :          idata = idata + 1
     516      362848 :          data_tmp = full_data(idata)
     517      362848 :          data_tmp = ISHFT(data_tmp, 63)
     518      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     519      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     520      362848 :          idata = idata + 1
     521      362848 :          data_tmp = full_data(idata)
     522      362848 :          data_tmp = ISHFT(data_tmp, 63)
     523      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     524      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
     525      362848 :          idata = idata + 1
     526      362848 :          data_tmp = full_data(idata)
     527      362848 :          data_tmp = ISHFT(data_tmp, 63)
     528      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     529             :          pack_tmp = ISHFT(pack_tmp, 0)
     530      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
     531      362848 :          ipack = ipack + 1
     532      362848 :          packed_data(ipack) = pack_tmp
     533             :       END DO
     534       22678 :       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       22678 :    END SUBROUTINE ints2bits_1
     538             : 
     539             : ! **************************************************************************************************
     540             : !> \brief ...
     541             : !> \param Ndata ...
     542             : !> \param packed_data ...
     543             : !> \param full_data ...
     544             : ! **************************************************************************************************
     545       93246 :    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       93246 :       ipack = 0
     556       93246 :       idata = 0
     557       93246 :       pack_tmp = 0
     558       93246 :       Ndata_rep = (Ndata/64)*64
     559       93246 :       DO kdata = 1, Ndata_rep, 64
     560     1491936 :          idata = idata + 1
     561     1491936 :          data_tmp = ISHFT(pack_tmp, 1)
     562     1491936 :          ipack = ipack + 1
     563     1491936 :          pack_tmp = packed_data(ipack)
     564     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
     565     1491936 :          pack_tmp = ISHFT(pack_tmp, -1)
     566     1491936 :          idata = idata + 1
     567     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     568     1491936 :          full_data(idata) = data_tmp
     569     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     570     1491936 :          idata = idata + 1
     571     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     572     1491936 :          full_data(idata) = data_tmp
     573     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     574     1491936 :          idata = idata + 1
     575     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     576     1491936 :          full_data(idata) = data_tmp
     577     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     578     1491936 :          idata = idata + 1
     579     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     580     1491936 :          full_data(idata) = data_tmp
     581     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     582     1491936 :          idata = idata + 1
     583     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     584     1491936 :          full_data(idata) = data_tmp
     585     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     586     1491936 :          idata = idata + 1
     587     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     588     1491936 :          full_data(idata) = data_tmp
     589     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     590     1491936 :          idata = idata + 1
     591     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     592     1491936 :          full_data(idata) = data_tmp
     593     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     594     1491936 :          idata = idata + 1
     595     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     596     1491936 :          full_data(idata) = data_tmp
     597     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     598     1491936 :          idata = idata + 1
     599     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     600     1491936 :          full_data(idata) = data_tmp
     601     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     602     1491936 :          idata = idata + 1
     603     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     604     1491936 :          full_data(idata) = data_tmp
     605     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     606     1491936 :          idata = idata + 1
     607     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     608     1491936 :          full_data(idata) = data_tmp
     609     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     610     1491936 :          idata = idata + 1
     611     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     612     1491936 :          full_data(idata) = data_tmp
     613     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     614     1491936 :          idata = idata + 1
     615     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     616     1491936 :          full_data(idata) = data_tmp
     617     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     618     1491936 :          idata = idata + 1
     619     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     620     1491936 :          full_data(idata) = data_tmp
     621     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     622     1491936 :          idata = idata + 1
     623     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     624     1491936 :          full_data(idata) = data_tmp
     625     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     626     1491936 :          idata = idata + 1
     627     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     628     1491936 :          full_data(idata) = data_tmp
     629     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     630     1491936 :          idata = idata + 1
     631     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     632     1491936 :          full_data(idata) = data_tmp
     633     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     634     1491936 :          idata = idata + 1
     635     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     636     1491936 :          full_data(idata) = data_tmp
     637     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     638     1491936 :          idata = idata + 1
     639     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     640     1491936 :          full_data(idata) = data_tmp
     641     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     642     1491936 :          idata = idata + 1
     643     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     644     1491936 :          full_data(idata) = data_tmp
     645     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     646     1491936 :          idata = idata + 1
     647     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     648     1491936 :          full_data(idata) = data_tmp
     649     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     650     1491936 :          idata = idata + 1
     651     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     652     1491936 :          full_data(idata) = data_tmp
     653     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     654     1491936 :          idata = idata + 1
     655     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     656     1491936 :          full_data(idata) = data_tmp
     657     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     658     1491936 :          idata = idata + 1
     659     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     660     1491936 :          full_data(idata) = data_tmp
     661     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     662     1491936 :          idata = idata + 1
     663     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     664     1491936 :          full_data(idata) = data_tmp
     665     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     666     1491936 :          idata = idata + 1
     667     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     668     1491936 :          full_data(idata) = data_tmp
     669     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     670     1491936 :          idata = idata + 1
     671     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     672     1491936 :          full_data(idata) = data_tmp
     673     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     674     1491936 :          idata = idata + 1
     675     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     676     1491936 :          full_data(idata) = data_tmp
     677     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     678     1491936 :          idata = idata + 1
     679     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     680     1491936 :          full_data(idata) = data_tmp
     681     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     682     1491936 :          idata = idata + 1
     683     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     684     1491936 :          full_data(idata) = data_tmp
     685     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     686     1491936 :          idata = idata + 1
     687     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     688     1491936 :          full_data(idata) = data_tmp
     689     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     690     1491936 :          idata = idata + 1
     691     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     692     1491936 :          full_data(idata) = data_tmp
     693     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     694     1491936 :          idata = idata + 1
     695     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     696     1491936 :          full_data(idata) = data_tmp
     697     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     698     1491936 :          idata = idata + 1
     699     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     700     1491936 :          full_data(idata) = data_tmp
     701     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     702     1491936 :          idata = idata + 1
     703     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     704     1491936 :          full_data(idata) = data_tmp
     705     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     706     1491936 :          idata = idata + 1
     707     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     708     1491936 :          full_data(idata) = data_tmp
     709     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     710     1491936 :          idata = idata + 1
     711     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     712     1491936 :          full_data(idata) = data_tmp
     713     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     714     1491936 :          idata = idata + 1
     715     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     716     1491936 :          full_data(idata) = data_tmp
     717     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     718     1491936 :          idata = idata + 1
     719     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     720     1491936 :          full_data(idata) = data_tmp
     721     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     722     1491936 :          idata = idata + 1
     723     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     724     1491936 :          full_data(idata) = data_tmp
     725     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     726     1491936 :          idata = idata + 1
     727     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     728     1491936 :          full_data(idata) = data_tmp
     729     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     730     1491936 :          idata = idata + 1
     731     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     732     1491936 :          full_data(idata) = data_tmp
     733     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     734     1491936 :          idata = idata + 1
     735     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     736     1491936 :          full_data(idata) = data_tmp
     737     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     738     1491936 :          idata = idata + 1
     739     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     740     1491936 :          full_data(idata) = data_tmp
     741     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     742     1491936 :          idata = idata + 1
     743     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     744     1491936 :          full_data(idata) = data_tmp
     745     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     746     1491936 :          idata = idata + 1
     747     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     748     1491936 :          full_data(idata) = data_tmp
     749     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     750     1491936 :          idata = idata + 1
     751     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     752     1491936 :          full_data(idata) = data_tmp
     753     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     754     1491936 :          idata = idata + 1
     755     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     756     1491936 :          full_data(idata) = data_tmp
     757     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     758     1491936 :          idata = idata + 1
     759     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     760     1491936 :          full_data(idata) = data_tmp
     761     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     762     1491936 :          idata = idata + 1
     763     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     764     1491936 :          full_data(idata) = data_tmp
     765     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     766     1491936 :          idata = idata + 1
     767     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     768     1491936 :          full_data(idata) = data_tmp
     769     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     770     1491936 :          idata = idata + 1
     771     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     772     1491936 :          full_data(idata) = data_tmp
     773     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     774     1491936 :          idata = idata + 1
     775     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     776     1491936 :          full_data(idata) = data_tmp
     777     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     778     1491936 :          idata = idata + 1
     779     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     780     1491936 :          full_data(idata) = data_tmp
     781     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     782     1491936 :          idata = idata + 1
     783     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     784     1491936 :          full_data(idata) = data_tmp
     785     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     786     1491936 :          idata = idata + 1
     787     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     788     1491936 :          full_data(idata) = data_tmp
     789     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     790     1491936 :          idata = idata + 1
     791     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     792     1491936 :          full_data(idata) = data_tmp
     793     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     794     1491936 :          idata = idata + 1
     795     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     796     1491936 :          full_data(idata) = data_tmp
     797     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     798     1491936 :          idata = idata + 1
     799     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     800     1491936 :          full_data(idata) = data_tmp
     801     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     802     1491936 :          idata = idata + 1
     803     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     804     1491936 :          full_data(idata) = data_tmp
     805     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     806     1491936 :          idata = idata + 1
     807     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     808     1491936 :          full_data(idata) = data_tmp
     809     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     810     1491936 :          idata = idata + 1
     811     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     812     1491936 :          full_data(idata) = data_tmp
     813     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     814     1491936 :          idata = idata + 1
     815     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     816     1491936 :          full_data(idata) = data_tmp
     817     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     818             :       END DO
     819       93246 :       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       93246 :    END SUBROUTINE bits2ints_1
     823             : 
     824             : ! **************************************************************************************************
     825             : !> \brief ...
     826             : !> \param Ndata ...
     827             : !> \param packed_data ...
     828             : !> \param full_data ...
     829             : ! **************************************************************************************************
     830       22678 :    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       22678 :       idata = 0
     841       22678 :       ipack = 0
     842       22678 :       Ndata_rep = (Ndata/64)*64
     843       22678 :       DO kdata = 1, Ndata_rep, 64
     844      362848 :          pack_tmp = 0
     845      362848 :          idata = idata + 1
     846      362848 :          data_tmp = full_data(idata)
     847      362848 :          data_tmp = ISHFT(data_tmp, 62)
     848      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     849      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     850      362848 :          idata = idata + 1
     851      362848 :          data_tmp = full_data(idata)
     852      362848 :          data_tmp = ISHFT(data_tmp, 62)
     853      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     854      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     855      362848 :          idata = idata + 1
     856      362848 :          data_tmp = full_data(idata)
     857      362848 :          data_tmp = ISHFT(data_tmp, 62)
     858      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     859      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     860      362848 :          idata = idata + 1
     861      362848 :          data_tmp = full_data(idata)
     862      362848 :          data_tmp = ISHFT(data_tmp, 62)
     863      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     864      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     865      362848 :          idata = idata + 1
     866      362848 :          data_tmp = full_data(idata)
     867      362848 :          data_tmp = ISHFT(data_tmp, 62)
     868      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     869      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     870      362848 :          idata = idata + 1
     871      362848 :          data_tmp = full_data(idata)
     872      362848 :          data_tmp = ISHFT(data_tmp, 62)
     873      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     874      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     875      362848 :          idata = idata + 1
     876      362848 :          data_tmp = full_data(idata)
     877      362848 :          data_tmp = ISHFT(data_tmp, 62)
     878      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     879      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     880      362848 :          idata = idata + 1
     881      362848 :          data_tmp = full_data(idata)
     882      362848 :          data_tmp = ISHFT(data_tmp, 62)
     883      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     884      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     885      362848 :          idata = idata + 1
     886      362848 :          data_tmp = full_data(idata)
     887      362848 :          data_tmp = ISHFT(data_tmp, 62)
     888      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     889      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     890      362848 :          idata = idata + 1
     891      362848 :          data_tmp = full_data(idata)
     892      362848 :          data_tmp = ISHFT(data_tmp, 62)
     893      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     894      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     895      362848 :          idata = idata + 1
     896      362848 :          data_tmp = full_data(idata)
     897      362848 :          data_tmp = ISHFT(data_tmp, 62)
     898      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     899      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     900      362848 :          idata = idata + 1
     901      362848 :          data_tmp = full_data(idata)
     902      362848 :          data_tmp = ISHFT(data_tmp, 62)
     903      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     904      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     905      362848 :          idata = idata + 1
     906      362848 :          data_tmp = full_data(idata)
     907      362848 :          data_tmp = ISHFT(data_tmp, 62)
     908      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     909      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     910      362848 :          idata = idata + 1
     911      362848 :          data_tmp = full_data(idata)
     912      362848 :          data_tmp = ISHFT(data_tmp, 62)
     913      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     914      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     915      362848 :          idata = idata + 1
     916      362848 :          data_tmp = full_data(idata)
     917      362848 :          data_tmp = ISHFT(data_tmp, 62)
     918      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     919      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     920      362848 :          idata = idata + 1
     921      362848 :          data_tmp = full_data(idata)
     922      362848 :          data_tmp = ISHFT(data_tmp, 62)
     923      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     924      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     925      362848 :          idata = idata + 1
     926      362848 :          data_tmp = full_data(idata)
     927      362848 :          data_tmp = ISHFT(data_tmp, 62)
     928      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     929      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     930      362848 :          idata = idata + 1
     931      362848 :          data_tmp = full_data(idata)
     932      362848 :          data_tmp = ISHFT(data_tmp, 62)
     933      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     934      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     935      362848 :          idata = idata + 1
     936      362848 :          data_tmp = full_data(idata)
     937      362848 :          data_tmp = ISHFT(data_tmp, 62)
     938      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     939      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     940      362848 :          idata = idata + 1
     941      362848 :          data_tmp = full_data(idata)
     942      362848 :          data_tmp = ISHFT(data_tmp, 62)
     943      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     944      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     945      362848 :          idata = idata + 1
     946      362848 :          data_tmp = full_data(idata)
     947      362848 :          data_tmp = ISHFT(data_tmp, 62)
     948      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     949      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     950      362848 :          idata = idata + 1
     951      362848 :          data_tmp = full_data(idata)
     952      362848 :          data_tmp = ISHFT(data_tmp, 62)
     953      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     954      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     955      362848 :          idata = idata + 1
     956      362848 :          data_tmp = full_data(idata)
     957      362848 :          data_tmp = ISHFT(data_tmp, 62)
     958      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     959      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     960      362848 :          idata = idata + 1
     961      362848 :          data_tmp = full_data(idata)
     962      362848 :          data_tmp = ISHFT(data_tmp, 62)
     963      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     964      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     965      362848 :          idata = idata + 1
     966      362848 :          data_tmp = full_data(idata)
     967      362848 :          data_tmp = ISHFT(data_tmp, 62)
     968      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     969      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     970      362848 :          idata = idata + 1
     971      362848 :          data_tmp = full_data(idata)
     972      362848 :          data_tmp = ISHFT(data_tmp, 62)
     973      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     974      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     975      362848 :          idata = idata + 1
     976      362848 :          data_tmp = full_data(idata)
     977      362848 :          data_tmp = ISHFT(data_tmp, 62)
     978      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     979      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     980      362848 :          idata = idata + 1
     981      362848 :          data_tmp = full_data(idata)
     982      362848 :          data_tmp = ISHFT(data_tmp, 62)
     983      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     984      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     985      362848 :          idata = idata + 1
     986      362848 :          data_tmp = full_data(idata)
     987      362848 :          data_tmp = ISHFT(data_tmp, 62)
     988      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     989      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     990      362848 :          idata = idata + 1
     991      362848 :          data_tmp = full_data(idata)
     992      362848 :          data_tmp = ISHFT(data_tmp, 62)
     993      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     994      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
     995      362848 :          idata = idata + 1
     996      362848 :          data_tmp = full_data(idata)
     997      362848 :          data_tmp = ISHFT(data_tmp, 62)
     998      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
     999      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1000      362848 :          idata = idata + 1
    1001      362848 :          data_tmp = full_data(idata)
    1002      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1003      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1004      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
    1005      362848 :          idata = idata + 1
    1006      362848 :          data_tmp = full_data(idata)
    1007      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1008      362848 :          data_tmp = IAND(data_tmp, mask_left(0))
    1009      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1010      362848 :          ipack = ipack + 1
    1011      362848 :          packed_data(ipack) = pack_tmp
    1012      362848 :          data_tmp = full_data(idata)
    1013      362848 :          pack_tmp = ISHFT(data_tmp, 62)
    1014      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1015      362848 :          idata = idata + 1
    1016      362848 :          data_tmp = full_data(idata)
    1017      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1018      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1019      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1020      362848 :          idata = idata + 1
    1021      362848 :          data_tmp = full_data(idata)
    1022      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1023      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1024      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1025      362848 :          idata = idata + 1
    1026      362848 :          data_tmp = full_data(idata)
    1027      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1028      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1029      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1030      362848 :          idata = idata + 1
    1031      362848 :          data_tmp = full_data(idata)
    1032      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1033      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1034      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1035      362848 :          idata = idata + 1
    1036      362848 :          data_tmp = full_data(idata)
    1037      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1038      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1039      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1040      362848 :          idata = idata + 1
    1041      362848 :          data_tmp = full_data(idata)
    1042      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1043      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1044      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1045      362848 :          idata = idata + 1
    1046      362848 :          data_tmp = full_data(idata)
    1047      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1048      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1049      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1050      362848 :          idata = idata + 1
    1051      362848 :          data_tmp = full_data(idata)
    1052      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1053      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1054      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1055      362848 :          idata = idata + 1
    1056      362848 :          data_tmp = full_data(idata)
    1057      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1058      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1059      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1060      362848 :          idata = idata + 1
    1061      362848 :          data_tmp = full_data(idata)
    1062      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1063      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1064      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1065      362848 :          idata = idata + 1
    1066      362848 :          data_tmp = full_data(idata)
    1067      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1068      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1069      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1070      362848 :          idata = idata + 1
    1071      362848 :          data_tmp = full_data(idata)
    1072      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1073      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1074      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1075      362848 :          idata = idata + 1
    1076      362848 :          data_tmp = full_data(idata)
    1077      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1078      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1079      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1080      362848 :          idata = idata + 1
    1081      362848 :          data_tmp = full_data(idata)
    1082      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1083      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1084      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1085      362848 :          idata = idata + 1
    1086      362848 :          data_tmp = full_data(idata)
    1087      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1088      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1089      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1090      362848 :          idata = idata + 1
    1091      362848 :          data_tmp = full_data(idata)
    1092      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1093      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1094      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1095      362848 :          idata = idata + 1
    1096      362848 :          data_tmp = full_data(idata)
    1097      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1098      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1099      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1100      362848 :          idata = idata + 1
    1101      362848 :          data_tmp = full_data(idata)
    1102      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1103      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1104      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1105      362848 :          idata = idata + 1
    1106      362848 :          data_tmp = full_data(idata)
    1107      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1108      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1109      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1110      362848 :          idata = idata + 1
    1111      362848 :          data_tmp = full_data(idata)
    1112      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1113      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1114      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1115      362848 :          idata = idata + 1
    1116      362848 :          data_tmp = full_data(idata)
    1117      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1118      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1119      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1120      362848 :          idata = idata + 1
    1121      362848 :          data_tmp = full_data(idata)
    1122      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1123      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1124      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1125      362848 :          idata = idata + 1
    1126      362848 :          data_tmp = full_data(idata)
    1127      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1128      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1129      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1130      362848 :          idata = idata + 1
    1131      362848 :          data_tmp = full_data(idata)
    1132      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1133      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1134      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1135      362848 :          idata = idata + 1
    1136      362848 :          data_tmp = full_data(idata)
    1137      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1138      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1139      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1140      362848 :          idata = idata + 1
    1141      362848 :          data_tmp = full_data(idata)
    1142      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1143      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1144      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1145      362848 :          idata = idata + 1
    1146      362848 :          data_tmp = full_data(idata)
    1147      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1148      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1149      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1150      362848 :          idata = idata + 1
    1151      362848 :          data_tmp = full_data(idata)
    1152      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1153      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1154      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1155      362848 :          idata = idata + 1
    1156      362848 :          data_tmp = full_data(idata)
    1157      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1158      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1159      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1160      362848 :          idata = idata + 1
    1161      362848 :          data_tmp = full_data(idata)
    1162      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1163      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1164      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
    1165      362848 :          idata = idata + 1
    1166      362848 :          data_tmp = full_data(idata)
    1167      362848 :          data_tmp = ISHFT(data_tmp, 62)
    1168      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1169             :          pack_tmp = ISHFT(pack_tmp, 0)
    1170      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
    1171      362848 :          ipack = ipack + 1
    1172      362848 :          packed_data(ipack) = pack_tmp
    1173             :       END DO
    1174       22678 :       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       22678 :    END SUBROUTINE ints2bits_2
    1178             : 
    1179             : ! **************************************************************************************************
    1180             : !> \brief ...
    1181             : !> \param Ndata ...
    1182             : !> \param packed_data ...
    1183             : !> \param full_data ...
    1184             : ! **************************************************************************************************
    1185       93246 :    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       93246 :       ipack = 0
    1196       93246 :       idata = 0
    1197       93246 :       pack_tmp = 0
    1198       93246 :       Ndata_rep = (Ndata/64)*64
    1199       93246 :       DO kdata = 1, Ndata_rep, 64
    1200     1491936 :          idata = idata + 1
    1201     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
    1202     1491936 :          ipack = ipack + 1
    1203     1491936 :          pack_tmp = packed_data(ipack)
    1204     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1205     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
    1206     1491936 :          idata = idata + 1
    1207     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1208     1491936 :          full_data(idata) = data_tmp
    1209     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1210     1491936 :          idata = idata + 1
    1211     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1212     1491936 :          full_data(idata) = data_tmp
    1213     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1214     1491936 :          idata = idata + 1
    1215     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1216     1491936 :          full_data(idata) = data_tmp
    1217     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1218     1491936 :          idata = idata + 1
    1219     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1220     1491936 :          full_data(idata) = data_tmp
    1221     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1222     1491936 :          idata = idata + 1
    1223     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1224     1491936 :          full_data(idata) = data_tmp
    1225     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1226     1491936 :          idata = idata + 1
    1227     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1228     1491936 :          full_data(idata) = data_tmp
    1229     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1230     1491936 :          idata = idata + 1
    1231     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1232     1491936 :          full_data(idata) = data_tmp
    1233     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1234     1491936 :          idata = idata + 1
    1235     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1236     1491936 :          full_data(idata) = data_tmp
    1237     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1238     1491936 :          idata = idata + 1
    1239     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1240     1491936 :          full_data(idata) = data_tmp
    1241     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1242     1491936 :          idata = idata + 1
    1243     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1244     1491936 :          full_data(idata) = data_tmp
    1245     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1246     1491936 :          idata = idata + 1
    1247     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1248     1491936 :          full_data(idata) = data_tmp
    1249     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1250     1491936 :          idata = idata + 1
    1251     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1252     1491936 :          full_data(idata) = data_tmp
    1253     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1254     1491936 :          idata = idata + 1
    1255     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1256     1491936 :          full_data(idata) = data_tmp
    1257     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1258     1491936 :          idata = idata + 1
    1259     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1260     1491936 :          full_data(idata) = data_tmp
    1261     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1262     1491936 :          idata = idata + 1
    1263     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1264     1491936 :          full_data(idata) = data_tmp
    1265     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1266     1491936 :          idata = idata + 1
    1267     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1268     1491936 :          full_data(idata) = data_tmp
    1269     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1270     1491936 :          idata = idata + 1
    1271     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1272     1491936 :          full_data(idata) = data_tmp
    1273     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1274     1491936 :          idata = idata + 1
    1275     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1276     1491936 :          full_data(idata) = data_tmp
    1277     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1278     1491936 :          idata = idata + 1
    1279     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1280     1491936 :          full_data(idata) = data_tmp
    1281     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1282     1491936 :          idata = idata + 1
    1283     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1284     1491936 :          full_data(idata) = data_tmp
    1285     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1286     1491936 :          idata = idata + 1
    1287     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1288     1491936 :          full_data(idata) = data_tmp
    1289     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1290     1491936 :          idata = idata + 1
    1291     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1292     1491936 :          full_data(idata) = data_tmp
    1293     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1294     1491936 :          idata = idata + 1
    1295     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1296     1491936 :          full_data(idata) = data_tmp
    1297     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1298     1491936 :          idata = idata + 1
    1299     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1300     1491936 :          full_data(idata) = data_tmp
    1301     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1302     1491936 :          idata = idata + 1
    1303     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1304     1491936 :          full_data(idata) = data_tmp
    1305     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1306     1491936 :          idata = idata + 1
    1307     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1308     1491936 :          full_data(idata) = data_tmp
    1309     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1310     1491936 :          idata = idata + 1
    1311     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1312     1491936 :          full_data(idata) = data_tmp
    1313     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1314     1491936 :          idata = idata + 1
    1315     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1316     1491936 :          full_data(idata) = data_tmp
    1317     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1318     1491936 :          idata = idata + 1
    1319     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1320     1491936 :          full_data(idata) = data_tmp
    1321     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1322     1491936 :          idata = idata + 1
    1323     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1324     1491936 :          full_data(idata) = data_tmp
    1325     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1326     1491936 :          idata = idata + 1
    1327     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1328     1491936 :          full_data(idata) = data_tmp
    1329     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1330     1491936 :          idata = idata + 1
    1331     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
    1332     1491936 :          ipack = ipack + 1
    1333     1491936 :          pack_tmp = packed_data(ipack)
    1334     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1335     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
    1336     1491936 :          idata = idata + 1
    1337     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1338     1491936 :          full_data(idata) = data_tmp
    1339     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1340     1491936 :          idata = idata + 1
    1341     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1342     1491936 :          full_data(idata) = data_tmp
    1343     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1344     1491936 :          idata = idata + 1
    1345     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1346     1491936 :          full_data(idata) = data_tmp
    1347     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1348     1491936 :          idata = idata + 1
    1349     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1350     1491936 :          full_data(idata) = data_tmp
    1351     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1352     1491936 :          idata = idata + 1
    1353     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1354     1491936 :          full_data(idata) = data_tmp
    1355     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1356     1491936 :          idata = idata + 1
    1357     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1358     1491936 :          full_data(idata) = data_tmp
    1359     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1360     1491936 :          idata = idata + 1
    1361     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1362     1491936 :          full_data(idata) = data_tmp
    1363     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1364     1491936 :          idata = idata + 1
    1365     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1366     1491936 :          full_data(idata) = data_tmp
    1367     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1368     1491936 :          idata = idata + 1
    1369     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1370     1491936 :          full_data(idata) = data_tmp
    1371     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1372     1491936 :          idata = idata + 1
    1373     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1374     1491936 :          full_data(idata) = data_tmp
    1375     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1376     1491936 :          idata = idata + 1
    1377     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1378     1491936 :          full_data(idata) = data_tmp
    1379     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1380     1491936 :          idata = idata + 1
    1381     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1382     1491936 :          full_data(idata) = data_tmp
    1383     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1384     1491936 :          idata = idata + 1
    1385     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1386     1491936 :          full_data(idata) = data_tmp
    1387     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1388     1491936 :          idata = idata + 1
    1389     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1390     1491936 :          full_data(idata) = data_tmp
    1391     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1392     1491936 :          idata = idata + 1
    1393     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1394     1491936 :          full_data(idata) = data_tmp
    1395     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1396     1491936 :          idata = idata + 1
    1397     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1398     1491936 :          full_data(idata) = data_tmp
    1399     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1400     1491936 :          idata = idata + 1
    1401     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1402     1491936 :          full_data(idata) = data_tmp
    1403     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1404     1491936 :          idata = idata + 1
    1405     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1406     1491936 :          full_data(idata) = data_tmp
    1407     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1408     1491936 :          idata = idata + 1
    1409     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1410     1491936 :          full_data(idata) = data_tmp
    1411     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1412     1491936 :          idata = idata + 1
    1413     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1414     1491936 :          full_data(idata) = data_tmp
    1415     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1416     1491936 :          idata = idata + 1
    1417     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1418     1491936 :          full_data(idata) = data_tmp
    1419     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1420     1491936 :          idata = idata + 1
    1421     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1422     1491936 :          full_data(idata) = data_tmp
    1423     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1424     1491936 :          idata = idata + 1
    1425     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1426     1491936 :          full_data(idata) = data_tmp
    1427     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1428     1491936 :          idata = idata + 1
    1429     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1430     1491936 :          full_data(idata) = data_tmp
    1431     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1432     1491936 :          idata = idata + 1
    1433     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1434     1491936 :          full_data(idata) = data_tmp
    1435     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1436     1491936 :          idata = idata + 1
    1437     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1438     1491936 :          full_data(idata) = data_tmp
    1439     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1440     1491936 :          idata = idata + 1
    1441     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1442     1491936 :          full_data(idata) = data_tmp
    1443     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1444     1491936 :          idata = idata + 1
    1445     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1446     1491936 :          full_data(idata) = data_tmp
    1447     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1448     1491936 :          idata = idata + 1
    1449     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1450     1491936 :          full_data(idata) = data_tmp
    1451     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1452     1491936 :          idata = idata + 1
    1453     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1454     1491936 :          full_data(idata) = data_tmp
    1455     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1456     1491936 :          idata = idata + 1
    1457     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1458     1491936 :          full_data(idata) = data_tmp
    1459     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1460             :       END DO
    1461       93246 :       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       93246 :    END SUBROUTINE bits2ints_2
    1465             : 
    1466             : ! **************************************************************************************************
    1467             : !> \brief ...
    1468             : !> \param Ndata ...
    1469             : !> \param packed_data ...
    1470             : !> \param full_data ...
    1471             : ! **************************************************************************************************
    1472       22894 :    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       22894 :       idata = 0
    1483       22894 :       ipack = 0
    1484       22894 :       Ndata_rep = (Ndata/64)*64
    1485       22894 :       DO kdata = 1, Ndata_rep, 64
    1486      366168 :          pack_tmp = 0
    1487      366168 :          idata = idata + 1
    1488      366168 :          data_tmp = full_data(idata)
    1489      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1490      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1491      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1492      366168 :          idata = idata + 1
    1493      366168 :          data_tmp = full_data(idata)
    1494      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1495      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1496      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1497      366168 :          idata = idata + 1
    1498      366168 :          data_tmp = full_data(idata)
    1499      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1500      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1501      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1502      366168 :          idata = idata + 1
    1503      366168 :          data_tmp = full_data(idata)
    1504      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1505      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1506      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1507      366168 :          idata = idata + 1
    1508      366168 :          data_tmp = full_data(idata)
    1509      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1510      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1511      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1512      366168 :          idata = idata + 1
    1513      366168 :          data_tmp = full_data(idata)
    1514      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1515      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1516      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1517      366168 :          idata = idata + 1
    1518      366168 :          data_tmp = full_data(idata)
    1519      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1520      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1521      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1522      366168 :          idata = idata + 1
    1523      366168 :          data_tmp = full_data(idata)
    1524      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1525      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1526      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1527      366168 :          idata = idata + 1
    1528      366168 :          data_tmp = full_data(idata)
    1529      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1530      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1531      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1532      366168 :          idata = idata + 1
    1533      366168 :          data_tmp = full_data(idata)
    1534      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1535      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1536      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1537      366168 :          idata = idata + 1
    1538      366168 :          data_tmp = full_data(idata)
    1539      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1540      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1541      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1542      366168 :          idata = idata + 1
    1543      366168 :          data_tmp = full_data(idata)
    1544      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1545      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1546      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1547      366168 :          idata = idata + 1
    1548      366168 :          data_tmp = full_data(idata)
    1549      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1550      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1551      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1552      366168 :          idata = idata + 1
    1553      366168 :          data_tmp = full_data(idata)
    1554      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1555      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1556      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1557      366168 :          idata = idata + 1
    1558      366168 :          data_tmp = full_data(idata)
    1559      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1560      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1561      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1562      366168 :          idata = idata + 1
    1563      366168 :          data_tmp = full_data(idata)
    1564      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1565      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1566      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1567      366168 :          idata = idata + 1
    1568      366168 :          data_tmp = full_data(idata)
    1569      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1570      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1571      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1572      366168 :          idata = idata + 1
    1573      366168 :          data_tmp = full_data(idata)
    1574      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1575      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1576      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1577      366168 :          idata = idata + 1
    1578      366168 :          data_tmp = full_data(idata)
    1579      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1580      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1581      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1582      366168 :          idata = idata + 1
    1583      366168 :          data_tmp = full_data(idata)
    1584      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1585      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1586      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1587      366168 :          idata = idata + 1
    1588      366168 :          data_tmp = full_data(idata)
    1589      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1590      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1591      366168 :          pack_tmp = ISHFT(pack_tmp, -1)
    1592      366168 :          idata = idata + 1
    1593      366168 :          data_tmp = full_data(idata)
    1594      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1595      366168 :          data_tmp = IAND(data_tmp, mask_left(1))
    1596      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1597      366168 :          ipack = ipack + 1
    1598      366168 :          packed_data(ipack) = pack_tmp
    1599      366168 :          data_tmp = full_data(idata)
    1600      366168 :          pack_tmp = ISHFT(data_tmp, 62)
    1601      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1602      366168 :          idata = idata + 1
    1603      366168 :          data_tmp = full_data(idata)
    1604      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1605      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1606      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1607      366168 :          idata = idata + 1
    1608      366168 :          data_tmp = full_data(idata)
    1609      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1610      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1611      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1612      366168 :          idata = idata + 1
    1613      366168 :          data_tmp = full_data(idata)
    1614      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1615      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1616      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1617      366168 :          idata = idata + 1
    1618      366168 :          data_tmp = full_data(idata)
    1619      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1620      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1621      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1622      366168 :          idata = idata + 1
    1623      366168 :          data_tmp = full_data(idata)
    1624      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1625      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1626      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1627      366168 :          idata = idata + 1
    1628      366168 :          data_tmp = full_data(idata)
    1629      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1630      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1631      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1632      366168 :          idata = idata + 1
    1633      366168 :          data_tmp = full_data(idata)
    1634      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1635      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1636      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1637      366168 :          idata = idata + 1
    1638      366168 :          data_tmp = full_data(idata)
    1639      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1640      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1641      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1642      366168 :          idata = idata + 1
    1643      366168 :          data_tmp = full_data(idata)
    1644      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1645      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1646      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1647      366168 :          idata = idata + 1
    1648      366168 :          data_tmp = full_data(idata)
    1649      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1650      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1651      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1652      366168 :          idata = idata + 1
    1653      366168 :          data_tmp = full_data(idata)
    1654      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1655      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1656      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1657      366168 :          idata = idata + 1
    1658      366168 :          data_tmp = full_data(idata)
    1659      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1660      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1661      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1662      366168 :          idata = idata + 1
    1663      366168 :          data_tmp = full_data(idata)
    1664      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1665      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1666      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1667      366168 :          idata = idata + 1
    1668      366168 :          data_tmp = full_data(idata)
    1669      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1670      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1671      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1672      366168 :          idata = idata + 1
    1673      366168 :          data_tmp = full_data(idata)
    1674      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1675      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1676      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1677      366168 :          idata = idata + 1
    1678      366168 :          data_tmp = full_data(idata)
    1679      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1680      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1681      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1682      366168 :          idata = idata + 1
    1683      366168 :          data_tmp = full_data(idata)
    1684      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1685      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1686      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1687      366168 :          idata = idata + 1
    1688      366168 :          data_tmp = full_data(idata)
    1689      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1690      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1691      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1692      366168 :          idata = idata + 1
    1693      366168 :          data_tmp = full_data(idata)
    1694      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1695      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1696      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1697      366168 :          idata = idata + 1
    1698      366168 :          data_tmp = full_data(idata)
    1699      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1700      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1701      366168 :          pack_tmp = ISHFT(pack_tmp, -2)
    1702      366168 :          idata = idata + 1
    1703      366168 :          data_tmp = full_data(idata)
    1704      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1705      366168 :          data_tmp = IAND(data_tmp, mask_left(2))
    1706      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1707      366168 :          ipack = ipack + 1
    1708      366168 :          packed_data(ipack) = pack_tmp
    1709      366168 :          data_tmp = full_data(idata)
    1710      366168 :          pack_tmp = ISHFT(data_tmp, 63)
    1711      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1712      366168 :          idata = idata + 1
    1713      366168 :          data_tmp = full_data(idata)
    1714      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1715      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1716      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1717      366168 :          idata = idata + 1
    1718      366168 :          data_tmp = full_data(idata)
    1719      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1720      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1721      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1722      366168 :          idata = idata + 1
    1723      366168 :          data_tmp = full_data(idata)
    1724      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1725      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1726      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1727      366168 :          idata = idata + 1
    1728      366168 :          data_tmp = full_data(idata)
    1729      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1730      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1731      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1732      366168 :          idata = idata + 1
    1733      366168 :          data_tmp = full_data(idata)
    1734      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1735      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1736      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1737      366168 :          idata = idata + 1
    1738      366168 :          data_tmp = full_data(idata)
    1739      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1740      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1741      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1742      366168 :          idata = idata + 1
    1743      366168 :          data_tmp = full_data(idata)
    1744      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1745      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1746      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1747      366168 :          idata = idata + 1
    1748      366168 :          data_tmp = full_data(idata)
    1749      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1750      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1751      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1752      366168 :          idata = idata + 1
    1753      366168 :          data_tmp = full_data(idata)
    1754      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1755      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1756      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1757      366168 :          idata = idata + 1
    1758      366168 :          data_tmp = full_data(idata)
    1759      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1760      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1761      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1762      366168 :          idata = idata + 1
    1763      366168 :          data_tmp = full_data(idata)
    1764      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1765      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1766      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1767      366168 :          idata = idata + 1
    1768      366168 :          data_tmp = full_data(idata)
    1769      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1770      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1771      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1772      366168 :          idata = idata + 1
    1773      366168 :          data_tmp = full_data(idata)
    1774      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1775      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1776      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1777      366168 :          idata = idata + 1
    1778      366168 :          data_tmp = full_data(idata)
    1779      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1780      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1781      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1782      366168 :          idata = idata + 1
    1783      366168 :          data_tmp = full_data(idata)
    1784      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1785      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1786      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1787      366168 :          idata = idata + 1
    1788      366168 :          data_tmp = full_data(idata)
    1789      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1790      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1791      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1792      366168 :          idata = idata + 1
    1793      366168 :          data_tmp = full_data(idata)
    1794      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1795      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1796      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1797      366168 :          idata = idata + 1
    1798      366168 :          data_tmp = full_data(idata)
    1799      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1800      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1801      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1802      366168 :          idata = idata + 1
    1803      366168 :          data_tmp = full_data(idata)
    1804      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1805      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1806      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1807      366168 :          idata = idata + 1
    1808      366168 :          data_tmp = full_data(idata)
    1809      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1810      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1811      366168 :          pack_tmp = ISHFT(pack_tmp, -3)
    1812      366168 :          idata = idata + 1
    1813      366168 :          data_tmp = full_data(idata)
    1814      366168 :          data_tmp = ISHFT(data_tmp, 61)
    1815      366168 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1816             :          pack_tmp = ISHFT(pack_tmp, 0)
    1817      366168 :          pack_tmp = ISHFT(pack_tmp, 0)
    1818      366168 :          ipack = ipack + 1
    1819      366170 :          packed_data(ipack) = pack_tmp
    1820             :       END DO
    1821       22894 :       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       22894 :    END SUBROUTINE ints2bits_3
    1825             : 
    1826             : ! **************************************************************************************************
    1827             : !> \brief ...
    1828             : !> \param Ndata ...
    1829             : !> \param packed_data ...
    1830             : !> \param full_data ...
    1831             : ! **************************************************************************************************
    1832       94632 :    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       94632 :       ipack = 0
    1843       94632 :       idata = 0
    1844       94632 :       pack_tmp = 0
    1845       94632 :       Ndata_rep = (Ndata/64)*64
    1846       94632 :       DO kdata = 1, Ndata_rep, 64
    1847     1513160 :          idata = idata + 1
    1848     1513160 :          data_tmp = ISHFT(pack_tmp, 3)
    1849     1513160 :          ipack = ipack + 1
    1850     1513160 :          pack_tmp = packed_data(ipack)
    1851     1513160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    1852     1513160 :          pack_tmp = ISHFT(pack_tmp, -3)
    1853     1513160 :          idata = idata + 1
    1854     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1855     1513160 :          full_data(idata) = data_tmp
    1856     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1857     1513160 :          idata = idata + 1
    1858     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1859     1513160 :          full_data(idata) = data_tmp
    1860     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1861     1513160 :          idata = idata + 1
    1862     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1863     1513160 :          full_data(idata) = data_tmp
    1864     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1865     1513160 :          idata = idata + 1
    1866     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1867     1513160 :          full_data(idata) = data_tmp
    1868     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1869     1513160 :          idata = idata + 1
    1870     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1871     1513160 :          full_data(idata) = data_tmp
    1872     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1873     1513160 :          idata = idata + 1
    1874     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1875     1513160 :          full_data(idata) = data_tmp
    1876     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1877     1513160 :          idata = idata + 1
    1878     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1879     1513160 :          full_data(idata) = data_tmp
    1880     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1881     1513160 :          idata = idata + 1
    1882     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1883     1513160 :          full_data(idata) = data_tmp
    1884     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1885     1513160 :          idata = idata + 1
    1886     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1887     1513160 :          full_data(idata) = data_tmp
    1888     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1889     1513160 :          idata = idata + 1
    1890     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1891     1513160 :          full_data(idata) = data_tmp
    1892     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1893     1513160 :          idata = idata + 1
    1894     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1895     1513160 :          full_data(idata) = data_tmp
    1896     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1897     1513160 :          idata = idata + 1
    1898     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1899     1513160 :          full_data(idata) = data_tmp
    1900     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1901     1513160 :          idata = idata + 1
    1902     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1903     1513160 :          full_data(idata) = data_tmp
    1904     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1905     1513160 :          idata = idata + 1
    1906     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1907     1513160 :          full_data(idata) = data_tmp
    1908     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1909     1513160 :          idata = idata + 1
    1910     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1911     1513160 :          full_data(idata) = data_tmp
    1912     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1913     1513160 :          idata = idata + 1
    1914     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1915     1513160 :          full_data(idata) = data_tmp
    1916     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1917     1513160 :          idata = idata + 1
    1918     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1919     1513160 :          full_data(idata) = data_tmp
    1920     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1921     1513160 :          idata = idata + 1
    1922     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1923     1513160 :          full_data(idata) = data_tmp
    1924     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1925     1513160 :          idata = idata + 1
    1926     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1927     1513160 :          full_data(idata) = data_tmp
    1928     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1929     1513160 :          idata = idata + 1
    1930     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1931     1513160 :          full_data(idata) = data_tmp
    1932     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1933     1513160 :          idata = idata + 1
    1934     1513160 :          data_tmp = ISHFT(pack_tmp, 2)
    1935     1513160 :          ipack = ipack + 1
    1936     1513160 :          pack_tmp = packed_data(ipack)
    1937     1513160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1938     1513160 :          pack_tmp = ISHFT(pack_tmp, -2)
    1939     1513160 :          idata = idata + 1
    1940     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1941     1513160 :          full_data(idata) = data_tmp
    1942     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1943     1513160 :          idata = idata + 1
    1944     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1945     1513160 :          full_data(idata) = data_tmp
    1946     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1947     1513160 :          idata = idata + 1
    1948     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1949     1513160 :          full_data(idata) = data_tmp
    1950     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1951     1513160 :          idata = idata + 1
    1952     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1953     1513160 :          full_data(idata) = data_tmp
    1954     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1955     1513160 :          idata = idata + 1
    1956     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1957     1513160 :          full_data(idata) = data_tmp
    1958     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1959     1513160 :          idata = idata + 1
    1960     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1961     1513160 :          full_data(idata) = data_tmp
    1962     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1963     1513160 :          idata = idata + 1
    1964     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1965     1513160 :          full_data(idata) = data_tmp
    1966     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1967     1513160 :          idata = idata + 1
    1968     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1969     1513160 :          full_data(idata) = data_tmp
    1970     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1971     1513160 :          idata = idata + 1
    1972     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1973     1513160 :          full_data(idata) = data_tmp
    1974     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1975     1513160 :          idata = idata + 1
    1976     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1977     1513160 :          full_data(idata) = data_tmp
    1978     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1979     1513160 :          idata = idata + 1
    1980     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1981     1513160 :          full_data(idata) = data_tmp
    1982     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1983     1513160 :          idata = idata + 1
    1984     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1985     1513160 :          full_data(idata) = data_tmp
    1986     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1987     1513160 :          idata = idata + 1
    1988     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1989     1513160 :          full_data(idata) = data_tmp
    1990     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1991     1513160 :          idata = idata + 1
    1992     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1993     1513160 :          full_data(idata) = data_tmp
    1994     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1995     1513160 :          idata = idata + 1
    1996     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1997     1513160 :          full_data(idata) = data_tmp
    1998     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1999     1513160 :          idata = idata + 1
    2000     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2001     1513160 :          full_data(idata) = data_tmp
    2002     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2003     1513160 :          idata = idata + 1
    2004     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2005     1513160 :          full_data(idata) = data_tmp
    2006     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2007     1513160 :          idata = idata + 1
    2008     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2009     1513160 :          full_data(idata) = data_tmp
    2010     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2011     1513160 :          idata = idata + 1
    2012     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2013     1513160 :          full_data(idata) = data_tmp
    2014     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2015     1513160 :          idata = idata + 1
    2016     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2017     1513160 :          full_data(idata) = data_tmp
    2018     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2019     1513160 :          idata = idata + 1
    2020     1513160 :          data_tmp = ISHFT(pack_tmp, 1)
    2021     1513160 :          ipack = ipack + 1
    2022     1513160 :          pack_tmp = packed_data(ipack)
    2023     1513160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    2024     1513160 :          pack_tmp = ISHFT(pack_tmp, -1)
    2025     1513160 :          idata = idata + 1
    2026     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2027     1513160 :          full_data(idata) = data_tmp
    2028     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2029     1513160 :          idata = idata + 1
    2030     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2031     1513160 :          full_data(idata) = data_tmp
    2032     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2033     1513160 :          idata = idata + 1
    2034     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2035     1513160 :          full_data(idata) = data_tmp
    2036     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2037     1513160 :          idata = idata + 1
    2038     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2039     1513160 :          full_data(idata) = data_tmp
    2040     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2041     1513160 :          idata = idata + 1
    2042     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2043     1513160 :          full_data(idata) = data_tmp
    2044     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2045     1513160 :          idata = idata + 1
    2046     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2047     1513160 :          full_data(idata) = data_tmp
    2048     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2049     1513160 :          idata = idata + 1
    2050     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2051     1513160 :          full_data(idata) = data_tmp
    2052     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2053     1513160 :          idata = idata + 1
    2054     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2055     1513160 :          full_data(idata) = data_tmp
    2056     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2057     1513160 :          idata = idata + 1
    2058     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2059     1513160 :          full_data(idata) = data_tmp
    2060     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2061     1513160 :          idata = idata + 1
    2062     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2063     1513160 :          full_data(idata) = data_tmp
    2064     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2065     1513160 :          idata = idata + 1
    2066     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2067     1513160 :          full_data(idata) = data_tmp
    2068     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2069     1513160 :          idata = idata + 1
    2070     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2071     1513160 :          full_data(idata) = data_tmp
    2072     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2073     1513160 :          idata = idata + 1
    2074     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2075     1513160 :          full_data(idata) = data_tmp
    2076     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2077     1513160 :          idata = idata + 1
    2078     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2079     1513160 :          full_data(idata) = data_tmp
    2080     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2081     1513160 :          idata = idata + 1
    2082     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2083     1513160 :          full_data(idata) = data_tmp
    2084     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2085     1513160 :          idata = idata + 1
    2086     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2087     1513160 :          full_data(idata) = data_tmp
    2088     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2089     1513160 :          idata = idata + 1
    2090     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2091     1513160 :          full_data(idata) = data_tmp
    2092     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2093     1513160 :          idata = idata + 1
    2094     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2095     1513160 :          full_data(idata) = data_tmp
    2096     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2097     1513160 :          idata = idata + 1
    2098     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2099     1513160 :          full_data(idata) = data_tmp
    2100     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2101     1513160 :          idata = idata + 1
    2102     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2103     1513160 :          full_data(idata) = data_tmp
    2104     1513160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2105     1513160 :          idata = idata + 1
    2106     1513160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2107     1513160 :          full_data(idata) = data_tmp
    2108     1513174 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2109             :       END DO
    2110       94632 :       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       94632 :    END SUBROUTINE bits2ints_3
    2114             : 
    2115             : ! **************************************************************************************************
    2116             : !> \brief ...
    2117             : !> \param Ndata ...
    2118             : !> \param packed_data ...
    2119             : !> \param full_data ...
    2120             : ! **************************************************************************************************
    2121       22988 :    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       22988 :       idata = 0
    2132       22988 :       ipack = 0
    2133       22988 :       Ndata_rep = (Ndata/64)*64
    2134       22988 :       DO kdata = 1, Ndata_rep, 64
    2135      367536 :          pack_tmp = 0
    2136      367536 :          idata = idata + 1
    2137      367536 :          data_tmp = full_data(idata)
    2138      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2139      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2140      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2141      367536 :          idata = idata + 1
    2142      367536 :          data_tmp = full_data(idata)
    2143      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2144      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2145      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2146      367536 :          idata = idata + 1
    2147      367536 :          data_tmp = full_data(idata)
    2148      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2149      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2150      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2151      367536 :          idata = idata + 1
    2152      367536 :          data_tmp = full_data(idata)
    2153      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2154      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2155      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2156      367536 :          idata = idata + 1
    2157      367536 :          data_tmp = full_data(idata)
    2158      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2159      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2160      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2161      367536 :          idata = idata + 1
    2162      367536 :          data_tmp = full_data(idata)
    2163      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2164      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2165      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2166      367536 :          idata = idata + 1
    2167      367536 :          data_tmp = full_data(idata)
    2168      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2169      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2170      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2171      367536 :          idata = idata + 1
    2172      367536 :          data_tmp = full_data(idata)
    2173      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2174      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2175      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2176      367536 :          idata = idata + 1
    2177      367536 :          data_tmp = full_data(idata)
    2178      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2179      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2180      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2181      367536 :          idata = idata + 1
    2182      367536 :          data_tmp = full_data(idata)
    2183      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2184      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2185      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2186      367536 :          idata = idata + 1
    2187      367536 :          data_tmp = full_data(idata)
    2188      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2189      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2190      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2191      367536 :          idata = idata + 1
    2192      367536 :          data_tmp = full_data(idata)
    2193      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2194      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2195      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2196      367536 :          idata = idata + 1
    2197      367536 :          data_tmp = full_data(idata)
    2198      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2199      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2200      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2201      367536 :          idata = idata + 1
    2202      367536 :          data_tmp = full_data(idata)
    2203      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2204      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2205      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2206      367536 :          idata = idata + 1
    2207      367536 :          data_tmp = full_data(idata)
    2208      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2209      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2210      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2211      367536 :          idata = idata + 1
    2212      367536 :          data_tmp = full_data(idata)
    2213      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2214      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2215      367536 :          pack_tmp = ISHFT(pack_tmp, 0)
    2216      367536 :          idata = idata + 1
    2217      367536 :          data_tmp = full_data(idata)
    2218      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2219      367536 :          data_tmp = IAND(data_tmp, mask_left(0))
    2220      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2221      367536 :          ipack = ipack + 1
    2222      367536 :          packed_data(ipack) = pack_tmp
    2223      367536 :          data_tmp = full_data(idata)
    2224      367536 :          pack_tmp = ISHFT(data_tmp, 60)
    2225      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2226      367536 :          idata = idata + 1
    2227      367536 :          data_tmp = full_data(idata)
    2228      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2229      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2230      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2231      367536 :          idata = idata + 1
    2232      367536 :          data_tmp = full_data(idata)
    2233      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2234      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2235      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2236      367536 :          idata = idata + 1
    2237      367536 :          data_tmp = full_data(idata)
    2238      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2239      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2240      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2241      367536 :          idata = idata + 1
    2242      367536 :          data_tmp = full_data(idata)
    2243      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2244      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2245      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2246      367536 :          idata = idata + 1
    2247      367536 :          data_tmp = full_data(idata)
    2248      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2249      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2250      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2251      367536 :          idata = idata + 1
    2252      367536 :          data_tmp = full_data(idata)
    2253      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2254      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2255      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2256      367536 :          idata = idata + 1
    2257      367536 :          data_tmp = full_data(idata)
    2258      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2259      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2260      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2261      367536 :          idata = idata + 1
    2262      367536 :          data_tmp = full_data(idata)
    2263      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2264      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2265      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2266      367536 :          idata = idata + 1
    2267      367536 :          data_tmp = full_data(idata)
    2268      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2269      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2270      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2271      367536 :          idata = idata + 1
    2272      367536 :          data_tmp = full_data(idata)
    2273      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2274      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2275      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2276      367536 :          idata = idata + 1
    2277      367536 :          data_tmp = full_data(idata)
    2278      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2279      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2280      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2281      367536 :          idata = idata + 1
    2282      367536 :          data_tmp = full_data(idata)
    2283      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2284      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2285      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2286      367536 :          idata = idata + 1
    2287      367536 :          data_tmp = full_data(idata)
    2288      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2289      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2290      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2291      367536 :          idata = idata + 1
    2292      367536 :          data_tmp = full_data(idata)
    2293      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2294      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2295      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2296      367536 :          idata = idata + 1
    2297      367536 :          data_tmp = full_data(idata)
    2298      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2299      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2300      367536 :          pack_tmp = ISHFT(pack_tmp, 0)
    2301      367536 :          idata = idata + 1
    2302      367536 :          data_tmp = full_data(idata)
    2303      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2304      367536 :          data_tmp = IAND(data_tmp, mask_left(0))
    2305      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2306      367536 :          ipack = ipack + 1
    2307      367536 :          packed_data(ipack) = pack_tmp
    2308      367536 :          data_tmp = full_data(idata)
    2309      367536 :          pack_tmp = ISHFT(data_tmp, 60)
    2310      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2311      367536 :          idata = idata + 1
    2312      367536 :          data_tmp = full_data(idata)
    2313      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2314      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2315      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2316      367536 :          idata = idata + 1
    2317      367536 :          data_tmp = full_data(idata)
    2318      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2319      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2320      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2321      367536 :          idata = idata + 1
    2322      367536 :          data_tmp = full_data(idata)
    2323      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2324      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2325      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2326      367536 :          idata = idata + 1
    2327      367536 :          data_tmp = full_data(idata)
    2328      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2329      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2330      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2331      367536 :          idata = idata + 1
    2332      367536 :          data_tmp = full_data(idata)
    2333      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2334      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2335      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2336      367536 :          idata = idata + 1
    2337      367536 :          data_tmp = full_data(idata)
    2338      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2339      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2340      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2341      367536 :          idata = idata + 1
    2342      367536 :          data_tmp = full_data(idata)
    2343      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2344      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2345      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2346      367536 :          idata = idata + 1
    2347      367536 :          data_tmp = full_data(idata)
    2348      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2349      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2350      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2351      367536 :          idata = idata + 1
    2352      367536 :          data_tmp = full_data(idata)
    2353      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2354      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2355      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2356      367536 :          idata = idata + 1
    2357      367536 :          data_tmp = full_data(idata)
    2358      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2359      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2360      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2361      367536 :          idata = idata + 1
    2362      367536 :          data_tmp = full_data(idata)
    2363      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2364      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2365      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2366      367536 :          idata = idata + 1
    2367      367536 :          data_tmp = full_data(idata)
    2368      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2369      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2370      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2371      367536 :          idata = idata + 1
    2372      367536 :          data_tmp = full_data(idata)
    2373      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2374      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2375      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2376      367536 :          idata = idata + 1
    2377      367536 :          data_tmp = full_data(idata)
    2378      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2379      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2380      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2381      367536 :          idata = idata + 1
    2382      367536 :          data_tmp = full_data(idata)
    2383      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2384      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2385      367536 :          pack_tmp = ISHFT(pack_tmp, 0)
    2386      367536 :          idata = idata + 1
    2387      367536 :          data_tmp = full_data(idata)
    2388      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2389      367536 :          data_tmp = IAND(data_tmp, mask_left(0))
    2390      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2391      367536 :          ipack = ipack + 1
    2392      367536 :          packed_data(ipack) = pack_tmp
    2393      367536 :          data_tmp = full_data(idata)
    2394      367536 :          pack_tmp = ISHFT(data_tmp, 60)
    2395      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2396      367536 :          idata = idata + 1
    2397      367536 :          data_tmp = full_data(idata)
    2398      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2399      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2400      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2401      367536 :          idata = idata + 1
    2402      367536 :          data_tmp = full_data(idata)
    2403      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2404      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2405      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2406      367536 :          idata = idata + 1
    2407      367536 :          data_tmp = full_data(idata)
    2408      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2409      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2410      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2411      367536 :          idata = idata + 1
    2412      367536 :          data_tmp = full_data(idata)
    2413      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2414      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2415      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2416      367536 :          idata = idata + 1
    2417      367536 :          data_tmp = full_data(idata)
    2418      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2419      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2420      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2421      367536 :          idata = idata + 1
    2422      367536 :          data_tmp = full_data(idata)
    2423      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2424      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2425      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2426      367536 :          idata = idata + 1
    2427      367536 :          data_tmp = full_data(idata)
    2428      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2429      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2430      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2431      367536 :          idata = idata + 1
    2432      367536 :          data_tmp = full_data(idata)
    2433      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2434      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2435      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2436      367536 :          idata = idata + 1
    2437      367536 :          data_tmp = full_data(idata)
    2438      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2439      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2440      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2441      367536 :          idata = idata + 1
    2442      367536 :          data_tmp = full_data(idata)
    2443      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2444      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2445      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2446      367536 :          idata = idata + 1
    2447      367536 :          data_tmp = full_data(idata)
    2448      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2449      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2450      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2451      367536 :          idata = idata + 1
    2452      367536 :          data_tmp = full_data(idata)
    2453      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2454      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2455      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2456      367536 :          idata = idata + 1
    2457      367536 :          data_tmp = full_data(idata)
    2458      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2459      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2460      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2461      367536 :          idata = idata + 1
    2462      367536 :          data_tmp = full_data(idata)
    2463      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2464      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2465      367536 :          pack_tmp = ISHFT(pack_tmp, -4)
    2466      367536 :          idata = idata + 1
    2467      367536 :          data_tmp = full_data(idata)
    2468      367536 :          data_tmp = ISHFT(data_tmp, 60)
    2469      367536 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2470             :          pack_tmp = ISHFT(pack_tmp, 0)
    2471      367536 :          pack_tmp = ISHFT(pack_tmp, 0)
    2472      367536 :          ipack = ipack + 1
    2473      367553 :          packed_data(ipack) = pack_tmp
    2474             :       END DO
    2475       22988 :       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       22988 :    END SUBROUTINE ints2bits_4
    2479             : 
    2480             : ! **************************************************************************************************
    2481             : !> \brief ...
    2482             : !> \param Ndata ...
    2483             : !> \param packed_data ...
    2484             : !> \param full_data ...
    2485             : ! **************************************************************************************************
    2486       95448 :    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       95448 :       ipack = 0
    2497       95448 :       idata = 0
    2498       95448 :       pack_tmp = 0
    2499       95448 :       Ndata_rep = (Ndata/64)*64
    2500       95448 :       DO kdata = 1, Ndata_rep, 64
    2501     1525264 :          idata = idata + 1
    2502     1525264 :          data_tmp = ISHFT(pack_tmp, 4)
    2503     1525264 :          ipack = ipack + 1
    2504     1525264 :          pack_tmp = packed_data(ipack)
    2505     1525264 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2506     1525264 :          pack_tmp = ISHFT(pack_tmp, -4)
    2507     1525264 :          idata = idata + 1
    2508     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2509     1525264 :          full_data(idata) = data_tmp
    2510     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2511     1525264 :          idata = idata + 1
    2512     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2513     1525264 :          full_data(idata) = data_tmp
    2514     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2515     1525264 :          idata = idata + 1
    2516     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2517     1525264 :          full_data(idata) = data_tmp
    2518     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2519     1525264 :          idata = idata + 1
    2520     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2521     1525264 :          full_data(idata) = data_tmp
    2522     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2523     1525264 :          idata = idata + 1
    2524     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2525     1525264 :          full_data(idata) = data_tmp
    2526     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2527     1525264 :          idata = idata + 1
    2528     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2529     1525264 :          full_data(idata) = data_tmp
    2530     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2531     1525264 :          idata = idata + 1
    2532     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2533     1525264 :          full_data(idata) = data_tmp
    2534     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2535     1525264 :          idata = idata + 1
    2536     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2537     1525264 :          full_data(idata) = data_tmp
    2538     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2539     1525264 :          idata = idata + 1
    2540     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2541     1525264 :          full_data(idata) = data_tmp
    2542     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2543     1525264 :          idata = idata + 1
    2544     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2545     1525264 :          full_data(idata) = data_tmp
    2546     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2547     1525264 :          idata = idata + 1
    2548     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2549     1525264 :          full_data(idata) = data_tmp
    2550     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2551     1525264 :          idata = idata + 1
    2552     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2553     1525264 :          full_data(idata) = data_tmp
    2554     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2555     1525264 :          idata = idata + 1
    2556     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2557     1525264 :          full_data(idata) = data_tmp
    2558     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2559     1525264 :          idata = idata + 1
    2560     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2561     1525264 :          full_data(idata) = data_tmp
    2562     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2563     1525264 :          idata = idata + 1
    2564     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2565     1525264 :          full_data(idata) = data_tmp
    2566     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2567     1525264 :          idata = idata + 1
    2568     1525264 :          data_tmp = ISHFT(pack_tmp, 4)
    2569     1525264 :          ipack = ipack + 1
    2570     1525264 :          pack_tmp = packed_data(ipack)
    2571     1525264 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2572     1525264 :          pack_tmp = ISHFT(pack_tmp, -4)
    2573     1525264 :          idata = idata + 1
    2574     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2575     1525264 :          full_data(idata) = data_tmp
    2576     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2577     1525264 :          idata = idata + 1
    2578     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2579     1525264 :          full_data(idata) = data_tmp
    2580     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2581     1525264 :          idata = idata + 1
    2582     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2583     1525264 :          full_data(idata) = data_tmp
    2584     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2585     1525264 :          idata = idata + 1
    2586     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2587     1525264 :          full_data(idata) = data_tmp
    2588     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2589     1525264 :          idata = idata + 1
    2590     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2591     1525264 :          full_data(idata) = data_tmp
    2592     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2593     1525264 :          idata = idata + 1
    2594     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2595     1525264 :          full_data(idata) = data_tmp
    2596     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2597     1525264 :          idata = idata + 1
    2598     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2599     1525264 :          full_data(idata) = data_tmp
    2600     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2601     1525264 :          idata = idata + 1
    2602     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2603     1525264 :          full_data(idata) = data_tmp
    2604     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2605     1525264 :          idata = idata + 1
    2606     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2607     1525264 :          full_data(idata) = data_tmp
    2608     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2609     1525264 :          idata = idata + 1
    2610     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2611     1525264 :          full_data(idata) = data_tmp
    2612     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2613     1525264 :          idata = idata + 1
    2614     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2615     1525264 :          full_data(idata) = data_tmp
    2616     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2617     1525264 :          idata = idata + 1
    2618     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2619     1525264 :          full_data(idata) = data_tmp
    2620     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2621     1525264 :          idata = idata + 1
    2622     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2623     1525264 :          full_data(idata) = data_tmp
    2624     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2625     1525264 :          idata = idata + 1
    2626     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2627     1525264 :          full_data(idata) = data_tmp
    2628     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2629     1525264 :          idata = idata + 1
    2630     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2631     1525264 :          full_data(idata) = data_tmp
    2632     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2633     1525264 :          idata = idata + 1
    2634     1525264 :          data_tmp = ISHFT(pack_tmp, 4)
    2635     1525264 :          ipack = ipack + 1
    2636     1525264 :          pack_tmp = packed_data(ipack)
    2637     1525264 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2638     1525264 :          pack_tmp = ISHFT(pack_tmp, -4)
    2639     1525264 :          idata = idata + 1
    2640     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2641     1525264 :          full_data(idata) = data_tmp
    2642     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2643     1525264 :          idata = idata + 1
    2644     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2645     1525264 :          full_data(idata) = data_tmp
    2646     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2647     1525264 :          idata = idata + 1
    2648     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2649     1525264 :          full_data(idata) = data_tmp
    2650     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2651     1525264 :          idata = idata + 1
    2652     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2653     1525264 :          full_data(idata) = data_tmp
    2654     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2655     1525264 :          idata = idata + 1
    2656     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2657     1525264 :          full_data(idata) = data_tmp
    2658     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2659     1525264 :          idata = idata + 1
    2660     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2661     1525264 :          full_data(idata) = data_tmp
    2662     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2663     1525264 :          idata = idata + 1
    2664     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2665     1525264 :          full_data(idata) = data_tmp
    2666     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2667     1525264 :          idata = idata + 1
    2668     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2669     1525264 :          full_data(idata) = data_tmp
    2670     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2671     1525264 :          idata = idata + 1
    2672     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2673     1525264 :          full_data(idata) = data_tmp
    2674     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2675     1525264 :          idata = idata + 1
    2676     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2677     1525264 :          full_data(idata) = data_tmp
    2678     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2679     1525264 :          idata = idata + 1
    2680     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2681     1525264 :          full_data(idata) = data_tmp
    2682     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2683     1525264 :          idata = idata + 1
    2684     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2685     1525264 :          full_data(idata) = data_tmp
    2686     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2687     1525264 :          idata = idata + 1
    2688     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2689     1525264 :          full_data(idata) = data_tmp
    2690     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2691     1525264 :          idata = idata + 1
    2692     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2693     1525264 :          full_data(idata) = data_tmp
    2694     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2695     1525264 :          idata = idata + 1
    2696     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2697     1525264 :          full_data(idata) = data_tmp
    2698     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2699     1525264 :          idata = idata + 1
    2700     1525264 :          data_tmp = ISHFT(pack_tmp, 4)
    2701     1525264 :          ipack = ipack + 1
    2702     1525264 :          pack_tmp = packed_data(ipack)
    2703     1525264 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2704     1525264 :          pack_tmp = ISHFT(pack_tmp, -4)
    2705     1525264 :          idata = idata + 1
    2706     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2707     1525264 :          full_data(idata) = data_tmp
    2708     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2709     1525264 :          idata = idata + 1
    2710     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2711     1525264 :          full_data(idata) = data_tmp
    2712     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2713     1525264 :          idata = idata + 1
    2714     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2715     1525264 :          full_data(idata) = data_tmp
    2716     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2717     1525264 :          idata = idata + 1
    2718     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2719     1525264 :          full_data(idata) = data_tmp
    2720     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2721     1525264 :          idata = idata + 1
    2722     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2723     1525264 :          full_data(idata) = data_tmp
    2724     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2725     1525264 :          idata = idata + 1
    2726     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2727     1525264 :          full_data(idata) = data_tmp
    2728     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2729     1525264 :          idata = idata + 1
    2730     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2731     1525264 :          full_data(idata) = data_tmp
    2732     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2733     1525264 :          idata = idata + 1
    2734     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2735     1525264 :          full_data(idata) = data_tmp
    2736     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2737     1525264 :          idata = idata + 1
    2738     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2739     1525264 :          full_data(idata) = data_tmp
    2740     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2741     1525264 :          idata = idata + 1
    2742     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2743     1525264 :          full_data(idata) = data_tmp
    2744     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2745     1525264 :          idata = idata + 1
    2746     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2747     1525264 :          full_data(idata) = data_tmp
    2748     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2749     1525264 :          idata = idata + 1
    2750     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2751     1525264 :          full_data(idata) = data_tmp
    2752     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2753     1525264 :          idata = idata + 1
    2754     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2755     1525264 :          full_data(idata) = data_tmp
    2756     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2757     1525264 :          idata = idata + 1
    2758     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2759     1525264 :          full_data(idata) = data_tmp
    2760     1525264 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2761     1525264 :          idata = idata + 1
    2762     1525264 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2763     1525264 :          full_data(idata) = data_tmp
    2764     1525383 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2765             :       END DO
    2766       95448 :       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       95448 :    END SUBROUTINE bits2ints_4
    2770             : 
    2771             : ! **************************************************************************************************
    2772             : !> \brief ...
    2773             : !> \param Ndata ...
    2774             : !> \param packed_data ...
    2775             : !> \param full_data ...
    2776             : ! **************************************************************************************************
    2777       22894 :    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       22894 :       idata = 0
    2788       22894 :       ipack = 0
    2789       22894 :       Ndata_rep = (Ndata/64)*64
    2790       22894 :       DO kdata = 1, Ndata_rep, 64
    2791      366085 :          pack_tmp = 0
    2792      366085 :          idata = idata + 1
    2793      366085 :          data_tmp = full_data(idata)
    2794      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2795      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2796      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2797      366085 :          idata = idata + 1
    2798      366085 :          data_tmp = full_data(idata)
    2799      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2800      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2801      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2802      366085 :          idata = idata + 1
    2803      366085 :          data_tmp = full_data(idata)
    2804      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2805      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2806      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2807      366085 :          idata = idata + 1
    2808      366085 :          data_tmp = full_data(idata)
    2809      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2810      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2811      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2812      366085 :          idata = idata + 1
    2813      366085 :          data_tmp = full_data(idata)
    2814      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2815      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2816      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2817      366085 :          idata = idata + 1
    2818      366085 :          data_tmp = full_data(idata)
    2819      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2820      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2821      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2822      366085 :          idata = idata + 1
    2823      366085 :          data_tmp = full_data(idata)
    2824      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2825      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2826      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2827      366085 :          idata = idata + 1
    2828      366085 :          data_tmp = full_data(idata)
    2829      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2830      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2831      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2832      366085 :          idata = idata + 1
    2833      366085 :          data_tmp = full_data(idata)
    2834      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2835      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2836      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2837      366085 :          idata = idata + 1
    2838      366085 :          data_tmp = full_data(idata)
    2839      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2840      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2841      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2842      366085 :          idata = idata + 1
    2843      366085 :          data_tmp = full_data(idata)
    2844      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2845      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2846      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2847      366085 :          idata = idata + 1
    2848      366085 :          data_tmp = full_data(idata)
    2849      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2850      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2851      366085 :          pack_tmp = ISHFT(pack_tmp, -4)
    2852      366085 :          idata = idata + 1
    2853      366085 :          data_tmp = full_data(idata)
    2854      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2855      366085 :          data_tmp = IAND(data_tmp, mask_left(4))
    2856      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2857      366085 :          ipack = ipack + 1
    2858      366085 :          packed_data(ipack) = pack_tmp
    2859      366085 :          data_tmp = full_data(idata)
    2860      366085 :          pack_tmp = ISHFT(data_tmp, 63)
    2861      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2862      366085 :          idata = idata + 1
    2863      366085 :          data_tmp = full_data(idata)
    2864      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2865      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2866      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2867      366085 :          idata = idata + 1
    2868      366085 :          data_tmp = full_data(idata)
    2869      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2870      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2871      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2872      366085 :          idata = idata + 1
    2873      366085 :          data_tmp = full_data(idata)
    2874      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2875      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2876      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2877      366085 :          idata = idata + 1
    2878      366085 :          data_tmp = full_data(idata)
    2879      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2880      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2881      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2882      366085 :          idata = idata + 1
    2883      366085 :          data_tmp = full_data(idata)
    2884      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2885      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2886      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2887      366085 :          idata = idata + 1
    2888      366085 :          data_tmp = full_data(idata)
    2889      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2890      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2891      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2892      366085 :          idata = idata + 1
    2893      366085 :          data_tmp = full_data(idata)
    2894      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2895      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2896      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2897      366085 :          idata = idata + 1
    2898      366085 :          data_tmp = full_data(idata)
    2899      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2900      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2901      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2902      366085 :          idata = idata + 1
    2903      366085 :          data_tmp = full_data(idata)
    2904      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2905      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2906      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2907      366085 :          idata = idata + 1
    2908      366085 :          data_tmp = full_data(idata)
    2909      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2910      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2911      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2912      366085 :          idata = idata + 1
    2913      366085 :          data_tmp = full_data(idata)
    2914      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2915      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2916      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2917      366085 :          idata = idata + 1
    2918      366085 :          data_tmp = full_data(idata)
    2919      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2920      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2921      366085 :          pack_tmp = ISHFT(pack_tmp, -3)
    2922      366085 :          idata = idata + 1
    2923      366085 :          data_tmp = full_data(idata)
    2924      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2925      366085 :          data_tmp = IAND(data_tmp, mask_left(3))
    2926      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2927      366085 :          ipack = ipack + 1
    2928      366085 :          packed_data(ipack) = pack_tmp
    2929      366085 :          data_tmp = full_data(idata)
    2930      366085 :          pack_tmp = ISHFT(data_tmp, 62)
    2931      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2932      366085 :          idata = idata + 1
    2933      366085 :          data_tmp = full_data(idata)
    2934      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2935      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2936      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2937      366085 :          idata = idata + 1
    2938      366085 :          data_tmp = full_data(idata)
    2939      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2940      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2941      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2942      366085 :          idata = idata + 1
    2943      366085 :          data_tmp = full_data(idata)
    2944      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2945      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2946      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2947      366085 :          idata = idata + 1
    2948      366085 :          data_tmp = full_data(idata)
    2949      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2950      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2951      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2952      366085 :          idata = idata + 1
    2953      366085 :          data_tmp = full_data(idata)
    2954      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2955      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2956      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2957      366085 :          idata = idata + 1
    2958      366085 :          data_tmp = full_data(idata)
    2959      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2960      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2961      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2962      366085 :          idata = idata + 1
    2963      366085 :          data_tmp = full_data(idata)
    2964      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2965      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2966      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2967      366085 :          idata = idata + 1
    2968      366085 :          data_tmp = full_data(idata)
    2969      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2970      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2971      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2972      366085 :          idata = idata + 1
    2973      366085 :          data_tmp = full_data(idata)
    2974      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2975      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2976      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2977      366085 :          idata = idata + 1
    2978      366085 :          data_tmp = full_data(idata)
    2979      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2980      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2981      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2982      366085 :          idata = idata + 1
    2983      366085 :          data_tmp = full_data(idata)
    2984      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2985      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2986      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    2987      366085 :          idata = idata + 1
    2988      366085 :          data_tmp = full_data(idata)
    2989      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2990      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2991      366085 :          pack_tmp = ISHFT(pack_tmp, -2)
    2992      366085 :          idata = idata + 1
    2993      366085 :          data_tmp = full_data(idata)
    2994      366085 :          data_tmp = ISHFT(data_tmp, 59)
    2995      366085 :          data_tmp = IAND(data_tmp, mask_left(2))
    2996      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2997      366085 :          ipack = ipack + 1
    2998      366085 :          packed_data(ipack) = pack_tmp
    2999      366085 :          data_tmp = full_data(idata)
    3000      366085 :          pack_tmp = ISHFT(data_tmp, 61)
    3001      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3002      366085 :          idata = idata + 1
    3003      366085 :          data_tmp = full_data(idata)
    3004      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3005      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3006      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3007      366085 :          idata = idata + 1
    3008      366085 :          data_tmp = full_data(idata)
    3009      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3010      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3011      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3012      366085 :          idata = idata + 1
    3013      366085 :          data_tmp = full_data(idata)
    3014      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3015      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3016      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3017      366085 :          idata = idata + 1
    3018      366085 :          data_tmp = full_data(idata)
    3019      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3020      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3021      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3022      366085 :          idata = idata + 1
    3023      366085 :          data_tmp = full_data(idata)
    3024      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3025      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3026      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3027      366085 :          idata = idata + 1
    3028      366085 :          data_tmp = full_data(idata)
    3029      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3030      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3031      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3032      366085 :          idata = idata + 1
    3033      366085 :          data_tmp = full_data(idata)
    3034      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3035      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3036      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3037      366085 :          idata = idata + 1
    3038      366085 :          data_tmp = full_data(idata)
    3039      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3040      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3041      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3042      366085 :          idata = idata + 1
    3043      366085 :          data_tmp = full_data(idata)
    3044      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3045      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3046      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3047      366085 :          idata = idata + 1
    3048      366085 :          data_tmp = full_data(idata)
    3049      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3050      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3051      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3052      366085 :          idata = idata + 1
    3053      366085 :          data_tmp = full_data(idata)
    3054      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3055      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3056      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3057      366085 :          idata = idata + 1
    3058      366085 :          data_tmp = full_data(idata)
    3059      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3060      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3061      366085 :          pack_tmp = ISHFT(pack_tmp, -1)
    3062      366085 :          idata = idata + 1
    3063      366085 :          data_tmp = full_data(idata)
    3064      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3065      366085 :          data_tmp = IAND(data_tmp, mask_left(1))
    3066      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3067      366085 :          ipack = ipack + 1
    3068      366085 :          packed_data(ipack) = pack_tmp
    3069      366085 :          data_tmp = full_data(idata)
    3070      366085 :          pack_tmp = ISHFT(data_tmp, 60)
    3071      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3072      366085 :          idata = idata + 1
    3073      366085 :          data_tmp = full_data(idata)
    3074      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3075      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3076      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3077      366085 :          idata = idata + 1
    3078      366085 :          data_tmp = full_data(idata)
    3079      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3080      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3081      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3082      366085 :          idata = idata + 1
    3083      366085 :          data_tmp = full_data(idata)
    3084      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3085      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3086      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3087      366085 :          idata = idata + 1
    3088      366085 :          data_tmp = full_data(idata)
    3089      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3090      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3091      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3092      366085 :          idata = idata + 1
    3093      366085 :          data_tmp = full_data(idata)
    3094      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3095      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3096      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3097      366085 :          idata = idata + 1
    3098      366085 :          data_tmp = full_data(idata)
    3099      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3100      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3101      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3102      366085 :          idata = idata + 1
    3103      366085 :          data_tmp = full_data(idata)
    3104      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3105      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3106      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3107      366085 :          idata = idata + 1
    3108      366085 :          data_tmp = full_data(idata)
    3109      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3110      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3111      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3112      366085 :          idata = idata + 1
    3113      366085 :          data_tmp = full_data(idata)
    3114      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3115      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3116      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3117      366085 :          idata = idata + 1
    3118      366085 :          data_tmp = full_data(idata)
    3119      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3120      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3121      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3122      366085 :          idata = idata + 1
    3123      366085 :          data_tmp = full_data(idata)
    3124      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3125      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3126      366085 :          pack_tmp = ISHFT(pack_tmp, -5)
    3127      366085 :          idata = idata + 1
    3128      366085 :          data_tmp = full_data(idata)
    3129      366085 :          data_tmp = ISHFT(data_tmp, 59)
    3130      366085 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3131             :          pack_tmp = ISHFT(pack_tmp, 0)
    3132      366085 :          pack_tmp = ISHFT(pack_tmp, 0)
    3133      366085 :          ipack = ipack + 1
    3134      366086 :          packed_data(ipack) = pack_tmp
    3135             :       END DO
    3136       22894 :       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       22894 :    END SUBROUTINE ints2bits_5
    3140             : 
    3141             : ! **************************************************************************************************
    3142             : !> \brief ...
    3143             : !> \param Ndata ...
    3144             : !> \param packed_data ...
    3145             : !> \param full_data ...
    3146             : ! **************************************************************************************************
    3147       94455 :    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       94455 :       ipack = 0
    3158       94455 :       idata = 0
    3159       94455 :       pack_tmp = 0
    3160       94455 :       Ndata_rep = (Ndata/64)*64
    3161       94455 :       DO kdata = 1, Ndata_rep, 64
    3162     1510155 :          idata = idata + 1
    3163     1510155 :          data_tmp = ISHFT(pack_tmp, 5)
    3164     1510155 :          ipack = ipack + 1
    3165     1510155 :          pack_tmp = packed_data(ipack)
    3166     1510155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    3167     1510155 :          pack_tmp = ISHFT(pack_tmp, -5)
    3168     1510155 :          idata = idata + 1
    3169     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3170     1510155 :          full_data(idata) = data_tmp
    3171     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3172     1510155 :          idata = idata + 1
    3173     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3174     1510155 :          full_data(idata) = data_tmp
    3175     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3176     1510155 :          idata = idata + 1
    3177     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3178     1510155 :          full_data(idata) = data_tmp
    3179     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3180     1510155 :          idata = idata + 1
    3181     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3182     1510155 :          full_data(idata) = data_tmp
    3183     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3184     1510155 :          idata = idata + 1
    3185     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3186     1510155 :          full_data(idata) = data_tmp
    3187     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3188     1510155 :          idata = idata + 1
    3189     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3190     1510155 :          full_data(idata) = data_tmp
    3191     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3192     1510155 :          idata = idata + 1
    3193     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3194     1510155 :          full_data(idata) = data_tmp
    3195     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3196     1510155 :          idata = idata + 1
    3197     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3198     1510155 :          full_data(idata) = data_tmp
    3199     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3200     1510155 :          idata = idata + 1
    3201     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3202     1510155 :          full_data(idata) = data_tmp
    3203     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3204     1510155 :          idata = idata + 1
    3205     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3206     1510155 :          full_data(idata) = data_tmp
    3207     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3208     1510155 :          idata = idata + 1
    3209     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3210     1510155 :          full_data(idata) = data_tmp
    3211     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3212     1510155 :          idata = idata + 1
    3213     1510155 :          data_tmp = ISHFT(pack_tmp, 1)
    3214     1510155 :          ipack = ipack + 1
    3215     1510155 :          pack_tmp = packed_data(ipack)
    3216     1510155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    3217     1510155 :          pack_tmp = ISHFT(pack_tmp, -1)
    3218     1510155 :          idata = idata + 1
    3219     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3220     1510155 :          full_data(idata) = data_tmp
    3221     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3222     1510155 :          idata = idata + 1
    3223     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3224     1510155 :          full_data(idata) = data_tmp
    3225     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3226     1510155 :          idata = idata + 1
    3227     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3228     1510155 :          full_data(idata) = data_tmp
    3229     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3230     1510155 :          idata = idata + 1
    3231     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3232     1510155 :          full_data(idata) = data_tmp
    3233     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3234     1510155 :          idata = idata + 1
    3235     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3236     1510155 :          full_data(idata) = data_tmp
    3237     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3238     1510155 :          idata = idata + 1
    3239     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3240     1510155 :          full_data(idata) = data_tmp
    3241     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3242     1510155 :          idata = idata + 1
    3243     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3244     1510155 :          full_data(idata) = data_tmp
    3245     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3246     1510155 :          idata = idata + 1
    3247     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3248     1510155 :          full_data(idata) = data_tmp
    3249     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3250     1510155 :          idata = idata + 1
    3251     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3252     1510155 :          full_data(idata) = data_tmp
    3253     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3254     1510155 :          idata = idata + 1
    3255     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3256     1510155 :          full_data(idata) = data_tmp
    3257     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3258     1510155 :          idata = idata + 1
    3259     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3260     1510155 :          full_data(idata) = data_tmp
    3261     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3262     1510155 :          idata = idata + 1
    3263     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3264     1510155 :          full_data(idata) = data_tmp
    3265     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3266     1510155 :          idata = idata + 1
    3267     1510155 :          data_tmp = ISHFT(pack_tmp, 2)
    3268     1510155 :          ipack = ipack + 1
    3269     1510155 :          pack_tmp = packed_data(ipack)
    3270     1510155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3271     1510155 :          pack_tmp = ISHFT(pack_tmp, -2)
    3272     1510155 :          idata = idata + 1
    3273     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3274     1510155 :          full_data(idata) = data_tmp
    3275     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3276     1510155 :          idata = idata + 1
    3277     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3278     1510155 :          full_data(idata) = data_tmp
    3279     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3280     1510155 :          idata = idata + 1
    3281     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3282     1510155 :          full_data(idata) = data_tmp
    3283     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3284     1510155 :          idata = idata + 1
    3285     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3286     1510155 :          full_data(idata) = data_tmp
    3287     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3288     1510155 :          idata = idata + 1
    3289     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3290     1510155 :          full_data(idata) = data_tmp
    3291     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3292     1510155 :          idata = idata + 1
    3293     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3294     1510155 :          full_data(idata) = data_tmp
    3295     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3296     1510155 :          idata = idata + 1
    3297     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3298     1510155 :          full_data(idata) = data_tmp
    3299     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3300     1510155 :          idata = idata + 1
    3301     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3302     1510155 :          full_data(idata) = data_tmp
    3303     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3304     1510155 :          idata = idata + 1
    3305     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3306     1510155 :          full_data(idata) = data_tmp
    3307     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3308     1510155 :          idata = idata + 1
    3309     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3310     1510155 :          full_data(idata) = data_tmp
    3311     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3312     1510155 :          idata = idata + 1
    3313     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3314     1510155 :          full_data(idata) = data_tmp
    3315     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3316     1510155 :          idata = idata + 1
    3317     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3318     1510155 :          full_data(idata) = data_tmp
    3319     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3320     1510155 :          idata = idata + 1
    3321     1510155 :          data_tmp = ISHFT(pack_tmp, 3)
    3322     1510155 :          ipack = ipack + 1
    3323     1510155 :          pack_tmp = packed_data(ipack)
    3324     1510155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    3325     1510155 :          pack_tmp = ISHFT(pack_tmp, -3)
    3326     1510155 :          idata = idata + 1
    3327     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3328     1510155 :          full_data(idata) = data_tmp
    3329     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3330     1510155 :          idata = idata + 1
    3331     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3332     1510155 :          full_data(idata) = data_tmp
    3333     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3334     1510155 :          idata = idata + 1
    3335     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3336     1510155 :          full_data(idata) = data_tmp
    3337     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3338     1510155 :          idata = idata + 1
    3339     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3340     1510155 :          full_data(idata) = data_tmp
    3341     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3342     1510155 :          idata = idata + 1
    3343     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3344     1510155 :          full_data(idata) = data_tmp
    3345     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3346     1510155 :          idata = idata + 1
    3347     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3348     1510155 :          full_data(idata) = data_tmp
    3349     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3350     1510155 :          idata = idata + 1
    3351     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3352     1510155 :          full_data(idata) = data_tmp
    3353     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3354     1510155 :          idata = idata + 1
    3355     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3356     1510155 :          full_data(idata) = data_tmp
    3357     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3358     1510155 :          idata = idata + 1
    3359     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3360     1510155 :          full_data(idata) = data_tmp
    3361     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3362     1510155 :          idata = idata + 1
    3363     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3364     1510155 :          full_data(idata) = data_tmp
    3365     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3366     1510155 :          idata = idata + 1
    3367     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3368     1510155 :          full_data(idata) = data_tmp
    3369     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3370     1510155 :          idata = idata + 1
    3371     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3372     1510155 :          full_data(idata) = data_tmp
    3373     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3374     1510155 :          idata = idata + 1
    3375     1510155 :          data_tmp = ISHFT(pack_tmp, 4)
    3376     1510155 :          ipack = ipack + 1
    3377     1510155 :          pack_tmp = packed_data(ipack)
    3378     1510155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3379     1510155 :          pack_tmp = ISHFT(pack_tmp, -4)
    3380     1510155 :          idata = idata + 1
    3381     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3382     1510155 :          full_data(idata) = data_tmp
    3383     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3384     1510155 :          idata = idata + 1
    3385     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3386     1510155 :          full_data(idata) = data_tmp
    3387     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3388     1510155 :          idata = idata + 1
    3389     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3390     1510155 :          full_data(idata) = data_tmp
    3391     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3392     1510155 :          idata = idata + 1
    3393     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3394     1510155 :          full_data(idata) = data_tmp
    3395     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3396     1510155 :          idata = idata + 1
    3397     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3398     1510155 :          full_data(idata) = data_tmp
    3399     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3400     1510155 :          idata = idata + 1
    3401     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3402     1510155 :          full_data(idata) = data_tmp
    3403     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3404     1510155 :          idata = idata + 1
    3405     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3406     1510155 :          full_data(idata) = data_tmp
    3407     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3408     1510155 :          idata = idata + 1
    3409     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3410     1510155 :          full_data(idata) = data_tmp
    3411     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3412     1510155 :          idata = idata + 1
    3413     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3414     1510155 :          full_data(idata) = data_tmp
    3415     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3416     1510155 :          idata = idata + 1
    3417     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3418     1510155 :          full_data(idata) = data_tmp
    3419     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3420     1510155 :          idata = idata + 1
    3421     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3422     1510155 :          full_data(idata) = data_tmp
    3423     1510155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3424     1510155 :          idata = idata + 1
    3425     1510155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3426     1510155 :          full_data(idata) = data_tmp
    3427     1510162 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3428             :       END DO
    3429       94455 :       IF (Ndata_rep < Ndata) THEN
    3430         106 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3431             :       END IF
    3432       94455 :    END SUBROUTINE bits2ints_5
    3433             : 
    3434             : ! **************************************************************************************************
    3435             : !> \brief ...
    3436             : !> \param Ndata ...
    3437             : !> \param packed_data ...
    3438             : !> \param full_data ...
    3439             : ! **************************************************************************************************
    3440       49565 :    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       49565 :       idata = 0
    3451       49565 :       ipack = 0
    3452       49565 :       Ndata_rep = (Ndata/64)*64
    3453       49565 :       DO kdata = 1, Ndata_rep, 64
    3454      789232 :          pack_tmp = 0
    3455      789232 :          idata = idata + 1
    3456      789232 :          data_tmp = full_data(idata)
    3457      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3458      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3459      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3460      789232 :          idata = idata + 1
    3461      789232 :          data_tmp = full_data(idata)
    3462      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3463      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3464      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3465      789232 :          idata = idata + 1
    3466      789232 :          data_tmp = full_data(idata)
    3467      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3468      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3469      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3470      789232 :          idata = idata + 1
    3471      789232 :          data_tmp = full_data(idata)
    3472      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3473      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3474      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3475      789232 :          idata = idata + 1
    3476      789232 :          data_tmp = full_data(idata)
    3477      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3478      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3479      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3480      789232 :          idata = idata + 1
    3481      789232 :          data_tmp = full_data(idata)
    3482      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3483      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3484      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3485      789232 :          idata = idata + 1
    3486      789232 :          data_tmp = full_data(idata)
    3487      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3488      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3489      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3490      789232 :          idata = idata + 1
    3491      789232 :          data_tmp = full_data(idata)
    3492      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3493      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3494      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3495      789232 :          idata = idata + 1
    3496      789232 :          data_tmp = full_data(idata)
    3497      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3498      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3499      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3500      789232 :          idata = idata + 1
    3501      789232 :          data_tmp = full_data(idata)
    3502      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3503      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3504      789232 :          pack_tmp = ISHFT(pack_tmp, -4)
    3505      789232 :          idata = idata + 1
    3506      789232 :          data_tmp = full_data(idata)
    3507      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3508      789232 :          data_tmp = IAND(data_tmp, mask_left(4))
    3509      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3510      789232 :          ipack = ipack + 1
    3511      789232 :          packed_data(ipack) = pack_tmp
    3512      789232 :          data_tmp = full_data(idata)
    3513      789232 :          pack_tmp = ISHFT(data_tmp, 62)
    3514      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3515      789232 :          idata = idata + 1
    3516      789232 :          data_tmp = full_data(idata)
    3517      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3518      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3519      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3520      789232 :          idata = idata + 1
    3521      789232 :          data_tmp = full_data(idata)
    3522      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3523      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3524      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3525      789232 :          idata = idata + 1
    3526      789232 :          data_tmp = full_data(idata)
    3527      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3528      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3529      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3530      789232 :          idata = idata + 1
    3531      789232 :          data_tmp = full_data(idata)
    3532      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3533      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3534      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3535      789232 :          idata = idata + 1
    3536      789232 :          data_tmp = full_data(idata)
    3537      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3538      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3539      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3540      789232 :          idata = idata + 1
    3541      789232 :          data_tmp = full_data(idata)
    3542      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3543      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3544      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3545      789232 :          idata = idata + 1
    3546      789232 :          data_tmp = full_data(idata)
    3547      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3548      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3549      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3550      789232 :          idata = idata + 1
    3551      789232 :          data_tmp = full_data(idata)
    3552      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3553      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3554      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3555      789232 :          idata = idata + 1
    3556      789232 :          data_tmp = full_data(idata)
    3557      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3558      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3559      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3560      789232 :          idata = idata + 1
    3561      789232 :          data_tmp = full_data(idata)
    3562      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3563      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3564      789232 :          pack_tmp = ISHFT(pack_tmp, -2)
    3565      789232 :          idata = idata + 1
    3566      789232 :          data_tmp = full_data(idata)
    3567      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3568      789232 :          data_tmp = IAND(data_tmp, mask_left(2))
    3569      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3570      789232 :          ipack = ipack + 1
    3571      789232 :          packed_data(ipack) = pack_tmp
    3572      789232 :          data_tmp = full_data(idata)
    3573      789232 :          pack_tmp = ISHFT(data_tmp, 60)
    3574      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3575      789232 :          idata = idata + 1
    3576      789232 :          data_tmp = full_data(idata)
    3577      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3578      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3579      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3580      789232 :          idata = idata + 1
    3581      789232 :          data_tmp = full_data(idata)
    3582      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3583      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3584      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3585      789232 :          idata = idata + 1
    3586      789232 :          data_tmp = full_data(idata)
    3587      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3588      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3589      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3590      789232 :          idata = idata + 1
    3591      789232 :          data_tmp = full_data(idata)
    3592      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3593      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3594      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3595      789232 :          idata = idata + 1
    3596      789232 :          data_tmp = full_data(idata)
    3597      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3598      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3599      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3600      789232 :          idata = idata + 1
    3601      789232 :          data_tmp = full_data(idata)
    3602      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3603      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3604      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3605      789232 :          idata = idata + 1
    3606      789232 :          data_tmp = full_data(idata)
    3607      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3608      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3609      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3610      789232 :          idata = idata + 1
    3611      789232 :          data_tmp = full_data(idata)
    3612      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3613      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3614      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3615      789232 :          idata = idata + 1
    3616      789232 :          data_tmp = full_data(idata)
    3617      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3618      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3619      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3620      789232 :          idata = idata + 1
    3621      789232 :          data_tmp = full_data(idata)
    3622      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3623      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3624      789232 :          pack_tmp = ISHFT(pack_tmp, 0)
    3625      789232 :          idata = idata + 1
    3626      789232 :          data_tmp = full_data(idata)
    3627      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3628      789232 :          data_tmp = IAND(data_tmp, mask_left(0))
    3629      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3630      789232 :          ipack = ipack + 1
    3631      789232 :          packed_data(ipack) = pack_tmp
    3632      789232 :          data_tmp = full_data(idata)
    3633      789232 :          pack_tmp = ISHFT(data_tmp, 58)
    3634      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3635      789232 :          idata = idata + 1
    3636      789232 :          data_tmp = full_data(idata)
    3637      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3638      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3639      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3640      789232 :          idata = idata + 1
    3641      789232 :          data_tmp = full_data(idata)
    3642      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3643      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3644      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3645      789232 :          idata = idata + 1
    3646      789232 :          data_tmp = full_data(idata)
    3647      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3648      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3649      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3650      789232 :          idata = idata + 1
    3651      789232 :          data_tmp = full_data(idata)
    3652      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3653      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3654      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3655      789232 :          idata = idata + 1
    3656      789232 :          data_tmp = full_data(idata)
    3657      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3658      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3659      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3660      789232 :          idata = idata + 1
    3661      789232 :          data_tmp = full_data(idata)
    3662      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3663      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3664      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3665      789232 :          idata = idata + 1
    3666      789232 :          data_tmp = full_data(idata)
    3667      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3668      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3669      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3670      789232 :          idata = idata + 1
    3671      789232 :          data_tmp = full_data(idata)
    3672      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3673      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3674      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3675      789232 :          idata = idata + 1
    3676      789232 :          data_tmp = full_data(idata)
    3677      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3678      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3679      789232 :          pack_tmp = ISHFT(pack_tmp, -4)
    3680      789232 :          idata = idata + 1
    3681      789232 :          data_tmp = full_data(idata)
    3682      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3683      789232 :          data_tmp = IAND(data_tmp, mask_left(4))
    3684      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3685      789232 :          ipack = ipack + 1
    3686      789232 :          packed_data(ipack) = pack_tmp
    3687      789232 :          data_tmp = full_data(idata)
    3688      789232 :          pack_tmp = ISHFT(data_tmp, 62)
    3689      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3690      789232 :          idata = idata + 1
    3691      789232 :          data_tmp = full_data(idata)
    3692      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3693      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3694      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3695      789232 :          idata = idata + 1
    3696      789232 :          data_tmp = full_data(idata)
    3697      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3698      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3699      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3700      789232 :          idata = idata + 1
    3701      789232 :          data_tmp = full_data(idata)
    3702      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3703      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3704      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3705      789232 :          idata = idata + 1
    3706      789232 :          data_tmp = full_data(idata)
    3707      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3708      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3709      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3710      789232 :          idata = idata + 1
    3711      789232 :          data_tmp = full_data(idata)
    3712      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3713      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3714      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3715      789232 :          idata = idata + 1
    3716      789232 :          data_tmp = full_data(idata)
    3717      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3718      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3719      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3720      789232 :          idata = idata + 1
    3721      789232 :          data_tmp = full_data(idata)
    3722      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3723      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3724      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3725      789232 :          idata = idata + 1
    3726      789232 :          data_tmp = full_data(idata)
    3727      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3728      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3729      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3730      789232 :          idata = idata + 1
    3731      789232 :          data_tmp = full_data(idata)
    3732      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3733      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3734      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3735      789232 :          idata = idata + 1
    3736      789232 :          data_tmp = full_data(idata)
    3737      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3738      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3739      789232 :          pack_tmp = ISHFT(pack_tmp, -2)
    3740      789232 :          idata = idata + 1
    3741      789232 :          data_tmp = full_data(idata)
    3742      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3743      789232 :          data_tmp = IAND(data_tmp, mask_left(2))
    3744      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3745      789232 :          ipack = ipack + 1
    3746      789232 :          packed_data(ipack) = pack_tmp
    3747      789232 :          data_tmp = full_data(idata)
    3748      789232 :          pack_tmp = ISHFT(data_tmp, 60)
    3749      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3750      789232 :          idata = idata + 1
    3751      789232 :          data_tmp = full_data(idata)
    3752      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3753      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3754      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3755      789232 :          idata = idata + 1
    3756      789232 :          data_tmp = full_data(idata)
    3757      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3758      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3759      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3760      789232 :          idata = idata + 1
    3761      789232 :          data_tmp = full_data(idata)
    3762      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3763      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3764      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3765      789232 :          idata = idata + 1
    3766      789232 :          data_tmp = full_data(idata)
    3767      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3768      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3769      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3770      789232 :          idata = idata + 1
    3771      789232 :          data_tmp = full_data(idata)
    3772      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3773      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3774      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3775      789232 :          idata = idata + 1
    3776      789232 :          data_tmp = full_data(idata)
    3777      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3778      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3779      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3780      789232 :          idata = idata + 1
    3781      789232 :          data_tmp = full_data(idata)
    3782      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3783      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3784      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3785      789232 :          idata = idata + 1
    3786      789232 :          data_tmp = full_data(idata)
    3787      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3788      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3789      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3790      789232 :          idata = idata + 1
    3791      789232 :          data_tmp = full_data(idata)
    3792      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3793      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3794      789232 :          pack_tmp = ISHFT(pack_tmp, -6)
    3795      789232 :          idata = idata + 1
    3796      789232 :          data_tmp = full_data(idata)
    3797      789232 :          data_tmp = ISHFT(data_tmp, 58)
    3798      789232 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3799             :          pack_tmp = ISHFT(pack_tmp, 0)
    3800      789232 :          pack_tmp = ISHFT(pack_tmp, 0)
    3801      789232 :          ipack = ipack + 1
    3802      789262 :          packed_data(ipack) = pack_tmp
    3803             :       END DO
    3804       49565 :       IF (Ndata_rep < Ndata) THEN
    3805         448 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3806             :       END IF
    3807       49565 :    END SUBROUTINE ints2bits_6
    3808             : 
    3809             : ! **************************************************************************************************
    3810             : !> \brief ...
    3811             : !> \param Ndata ...
    3812             : !> \param packed_data ...
    3813             : !> \param full_data ...
    3814             : ! **************************************************************************************************
    3815      239038 :    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      239038 :       ipack = 0
    3826      239038 :       idata = 0
    3827      239038 :       pack_tmp = 0
    3828      239038 :       Ndata_rep = (Ndata/64)*64
    3829      239038 :       DO kdata = 1, Ndata_rep, 64
    3830     3795351 :          idata = idata + 1
    3831     3795351 :          data_tmp = ISHFT(pack_tmp, 6)
    3832     3795351 :          ipack = ipack + 1
    3833     3795351 :          pack_tmp = packed_data(ipack)
    3834     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3835     3795351 :          pack_tmp = ISHFT(pack_tmp, -6)
    3836     3795351 :          idata = idata + 1
    3837     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3838     3795351 :          full_data(idata) = data_tmp
    3839     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3840     3795351 :          idata = idata + 1
    3841     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3842     3795351 :          full_data(idata) = data_tmp
    3843     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3844     3795351 :          idata = idata + 1
    3845     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3846     3795351 :          full_data(idata) = data_tmp
    3847     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3848     3795351 :          idata = idata + 1
    3849     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3850     3795351 :          full_data(idata) = data_tmp
    3851     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3852     3795351 :          idata = idata + 1
    3853     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3854     3795351 :          full_data(idata) = data_tmp
    3855     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3856     3795351 :          idata = idata + 1
    3857     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3858     3795351 :          full_data(idata) = data_tmp
    3859     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3860     3795351 :          idata = idata + 1
    3861     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3862     3795351 :          full_data(idata) = data_tmp
    3863     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3864     3795351 :          idata = idata + 1
    3865     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3866     3795351 :          full_data(idata) = data_tmp
    3867     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3868     3795351 :          idata = idata + 1
    3869     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3870     3795351 :          full_data(idata) = data_tmp
    3871     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3872     3795351 :          idata = idata + 1
    3873     3795351 :          data_tmp = ISHFT(pack_tmp, 2)
    3874     3795351 :          ipack = ipack + 1
    3875     3795351 :          pack_tmp = packed_data(ipack)
    3876     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3877     3795351 :          pack_tmp = ISHFT(pack_tmp, -2)
    3878     3795351 :          idata = idata + 1
    3879     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3880     3795351 :          full_data(idata) = data_tmp
    3881     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3882     3795351 :          idata = idata + 1
    3883     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3884     3795351 :          full_data(idata) = data_tmp
    3885     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3886     3795351 :          idata = idata + 1
    3887     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3888     3795351 :          full_data(idata) = data_tmp
    3889     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3890     3795351 :          idata = idata + 1
    3891     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3892     3795351 :          full_data(idata) = data_tmp
    3893     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3894     3795351 :          idata = idata + 1
    3895     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3896     3795351 :          full_data(idata) = data_tmp
    3897     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3898     3795351 :          idata = idata + 1
    3899     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3900     3795351 :          full_data(idata) = data_tmp
    3901     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3902     3795351 :          idata = idata + 1
    3903     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3904     3795351 :          full_data(idata) = data_tmp
    3905     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3906     3795351 :          idata = idata + 1
    3907     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3908     3795351 :          full_data(idata) = data_tmp
    3909     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3910     3795351 :          idata = idata + 1
    3911     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3912     3795351 :          full_data(idata) = data_tmp
    3913     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3914     3795351 :          idata = idata + 1
    3915     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3916     3795351 :          full_data(idata) = data_tmp
    3917     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3918     3795351 :          idata = idata + 1
    3919     3795351 :          data_tmp = ISHFT(pack_tmp, 4)
    3920     3795351 :          ipack = ipack + 1
    3921     3795351 :          pack_tmp = packed_data(ipack)
    3922     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3923     3795351 :          pack_tmp = ISHFT(pack_tmp, -4)
    3924     3795351 :          idata = idata + 1
    3925     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3926     3795351 :          full_data(idata) = data_tmp
    3927     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3928     3795351 :          idata = idata + 1
    3929     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3930     3795351 :          full_data(idata) = data_tmp
    3931     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3932     3795351 :          idata = idata + 1
    3933     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3934     3795351 :          full_data(idata) = data_tmp
    3935     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3936     3795351 :          idata = idata + 1
    3937     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3938     3795351 :          full_data(idata) = data_tmp
    3939     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3940     3795351 :          idata = idata + 1
    3941     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3942     3795351 :          full_data(idata) = data_tmp
    3943     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3944     3795351 :          idata = idata + 1
    3945     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3946     3795351 :          full_data(idata) = data_tmp
    3947     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3948     3795351 :          idata = idata + 1
    3949     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3950     3795351 :          full_data(idata) = data_tmp
    3951     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3952     3795351 :          idata = idata + 1
    3953     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3954     3795351 :          full_data(idata) = data_tmp
    3955     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3956     3795351 :          idata = idata + 1
    3957     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3958     3795351 :          full_data(idata) = data_tmp
    3959     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3960     3795351 :          idata = idata + 1
    3961     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3962     3795351 :          full_data(idata) = data_tmp
    3963     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3964     3795351 :          idata = idata + 1
    3965     3795351 :          data_tmp = ISHFT(pack_tmp, 6)
    3966     3795351 :          ipack = ipack + 1
    3967     3795351 :          pack_tmp = packed_data(ipack)
    3968     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3969     3795351 :          pack_tmp = ISHFT(pack_tmp, -6)
    3970     3795351 :          idata = idata + 1
    3971     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3972     3795351 :          full_data(idata) = data_tmp
    3973     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3974     3795351 :          idata = idata + 1
    3975     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3976     3795351 :          full_data(idata) = data_tmp
    3977     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3978     3795351 :          idata = idata + 1
    3979     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3980     3795351 :          full_data(idata) = data_tmp
    3981     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3982     3795351 :          idata = idata + 1
    3983     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3984     3795351 :          full_data(idata) = data_tmp
    3985     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3986     3795351 :          idata = idata + 1
    3987     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3988     3795351 :          full_data(idata) = data_tmp
    3989     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3990     3795351 :          idata = idata + 1
    3991     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3992     3795351 :          full_data(idata) = data_tmp
    3993     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3994     3795351 :          idata = idata + 1
    3995     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3996     3795351 :          full_data(idata) = data_tmp
    3997     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3998     3795351 :          idata = idata + 1
    3999     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4000     3795351 :          full_data(idata) = data_tmp
    4001     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4002     3795351 :          idata = idata + 1
    4003     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4004     3795351 :          full_data(idata) = data_tmp
    4005     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4006     3795351 :          idata = idata + 1
    4007     3795351 :          data_tmp = ISHFT(pack_tmp, 2)
    4008     3795351 :          ipack = ipack + 1
    4009     3795351 :          pack_tmp = packed_data(ipack)
    4010     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4011     3795351 :          pack_tmp = ISHFT(pack_tmp, -2)
    4012     3795351 :          idata = idata + 1
    4013     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4014     3795351 :          full_data(idata) = data_tmp
    4015     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4016     3795351 :          idata = idata + 1
    4017     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4018     3795351 :          full_data(idata) = data_tmp
    4019     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4020     3795351 :          idata = idata + 1
    4021     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4022     3795351 :          full_data(idata) = data_tmp
    4023     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4024     3795351 :          idata = idata + 1
    4025     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4026     3795351 :          full_data(idata) = data_tmp
    4027     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4028     3795351 :          idata = idata + 1
    4029     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4030     3795351 :          full_data(idata) = data_tmp
    4031     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4032     3795351 :          idata = idata + 1
    4033     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4034     3795351 :          full_data(idata) = data_tmp
    4035     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4036     3795351 :          idata = idata + 1
    4037     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4038     3795351 :          full_data(idata) = data_tmp
    4039     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4040     3795351 :          idata = idata + 1
    4041     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4042     3795351 :          full_data(idata) = data_tmp
    4043     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4044     3795351 :          idata = idata + 1
    4045     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4046     3795351 :          full_data(idata) = data_tmp
    4047     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4048     3795351 :          idata = idata + 1
    4049     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4050     3795351 :          full_data(idata) = data_tmp
    4051     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4052     3795351 :          idata = idata + 1
    4053     3795351 :          data_tmp = ISHFT(pack_tmp, 4)
    4054     3795351 :          ipack = ipack + 1
    4055     3795351 :          pack_tmp = packed_data(ipack)
    4056     3795351 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4057     3795351 :          pack_tmp = ISHFT(pack_tmp, -4)
    4058     3795351 :          idata = idata + 1
    4059     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4060     3795351 :          full_data(idata) = data_tmp
    4061     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4062     3795351 :          idata = idata + 1
    4063     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4064     3795351 :          full_data(idata) = data_tmp
    4065     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4066     3795351 :          idata = idata + 1
    4067     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4068     3795351 :          full_data(idata) = data_tmp
    4069     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4070     3795351 :          idata = idata + 1
    4071     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4072     3795351 :          full_data(idata) = data_tmp
    4073     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4074     3795351 :          idata = idata + 1
    4075     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4076     3795351 :          full_data(idata) = data_tmp
    4077     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4078     3795351 :          idata = idata + 1
    4079     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4080     3795351 :          full_data(idata) = data_tmp
    4081     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4082     3795351 :          idata = idata + 1
    4083     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4084     3795351 :          full_data(idata) = data_tmp
    4085     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4086     3795351 :          idata = idata + 1
    4087     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4088     3795351 :          full_data(idata) = data_tmp
    4089     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4090     3795351 :          idata = idata + 1
    4091     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4092     3795351 :          full_data(idata) = data_tmp
    4093     3795351 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4094     3795351 :          idata = idata + 1
    4095     3795351 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4096     3795351 :          full_data(idata) = data_tmp
    4097     3795533 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4098             :       END DO
    4099      239038 :       IF (Ndata_rep < Ndata) THEN
    4100        3442 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4101             :       END IF
    4102      239038 :    END SUBROUTINE bits2ints_6
    4103             : 
    4104             : ! **************************************************************************************************
    4105             : !> \brief ...
    4106             : !> \param Ndata ...
    4107             : !> \param packed_data ...
    4108             : !> \param full_data ...
    4109             : ! **************************************************************************************************
    4110       23116 :    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       23116 :       idata = 0
    4121       23116 :       ipack = 0
    4122       23116 :       Ndata_rep = (Ndata/64)*64
    4123       23116 :       DO kdata = 1, Ndata_rep, 64
    4124      369229 :          pack_tmp = 0
    4125      369229 :          idata = idata + 1
    4126      369229 :          data_tmp = full_data(idata)
    4127      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4128      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4129      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4130      369229 :          idata = idata + 1
    4131      369229 :          data_tmp = full_data(idata)
    4132      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4133      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4134      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4135      369229 :          idata = idata + 1
    4136      369229 :          data_tmp = full_data(idata)
    4137      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4138      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4139      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4140      369229 :          idata = idata + 1
    4141      369229 :          data_tmp = full_data(idata)
    4142      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4143      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4144      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4145      369229 :          idata = idata + 1
    4146      369229 :          data_tmp = full_data(idata)
    4147      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4148      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4149      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4150      369229 :          idata = idata + 1
    4151      369229 :          data_tmp = full_data(idata)
    4152      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4153      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4154      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4155      369229 :          idata = idata + 1
    4156      369229 :          data_tmp = full_data(idata)
    4157      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4158      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4159      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4160      369229 :          idata = idata + 1
    4161      369229 :          data_tmp = full_data(idata)
    4162      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4163      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4164      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4165      369229 :          idata = idata + 1
    4166      369229 :          data_tmp = full_data(idata)
    4167      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4168      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4169      369229 :          pack_tmp = ISHFT(pack_tmp, -1)
    4170      369229 :          idata = idata + 1
    4171      369229 :          data_tmp = full_data(idata)
    4172      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4173      369229 :          data_tmp = IAND(data_tmp, mask_left(1))
    4174      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4175      369229 :          ipack = ipack + 1
    4176      369229 :          packed_data(ipack) = pack_tmp
    4177      369229 :          data_tmp = full_data(idata)
    4178      369229 :          pack_tmp = ISHFT(data_tmp, 58)
    4179      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4180      369229 :          idata = idata + 1
    4181      369229 :          data_tmp = full_data(idata)
    4182      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4183      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4184      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4185      369229 :          idata = idata + 1
    4186      369229 :          data_tmp = full_data(idata)
    4187      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4188      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4189      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4190      369229 :          idata = idata + 1
    4191      369229 :          data_tmp = full_data(idata)
    4192      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4193      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4194      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4195      369229 :          idata = idata + 1
    4196      369229 :          data_tmp = full_data(idata)
    4197      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4198      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4199      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4200      369229 :          idata = idata + 1
    4201      369229 :          data_tmp = full_data(idata)
    4202      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4203      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4204      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4205      369229 :          idata = idata + 1
    4206      369229 :          data_tmp = full_data(idata)
    4207      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4208      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4209      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4210      369229 :          idata = idata + 1
    4211      369229 :          data_tmp = full_data(idata)
    4212      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4213      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4214      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4215      369229 :          idata = idata + 1
    4216      369229 :          data_tmp = full_data(idata)
    4217      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4218      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4219      369229 :          pack_tmp = ISHFT(pack_tmp, -2)
    4220      369229 :          idata = idata + 1
    4221      369229 :          data_tmp = full_data(idata)
    4222      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4223      369229 :          data_tmp = IAND(data_tmp, mask_left(2))
    4224      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4225      369229 :          ipack = ipack + 1
    4226      369229 :          packed_data(ipack) = pack_tmp
    4227      369229 :          data_tmp = full_data(idata)
    4228      369229 :          pack_tmp = ISHFT(data_tmp, 59)
    4229      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4230      369229 :          idata = idata + 1
    4231      369229 :          data_tmp = full_data(idata)
    4232      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4233      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4234      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4235      369229 :          idata = idata + 1
    4236      369229 :          data_tmp = full_data(idata)
    4237      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4238      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4239      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4240      369229 :          idata = idata + 1
    4241      369229 :          data_tmp = full_data(idata)
    4242      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4243      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4244      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4245      369229 :          idata = idata + 1
    4246      369229 :          data_tmp = full_data(idata)
    4247      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4248      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4249      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4250      369229 :          idata = idata + 1
    4251      369229 :          data_tmp = full_data(idata)
    4252      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4253      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4254      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4255      369229 :          idata = idata + 1
    4256      369229 :          data_tmp = full_data(idata)
    4257      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4258      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4259      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4260      369229 :          idata = idata + 1
    4261      369229 :          data_tmp = full_data(idata)
    4262      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4263      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4264      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4265      369229 :          idata = idata + 1
    4266      369229 :          data_tmp = full_data(idata)
    4267      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4268      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4269      369229 :          pack_tmp = ISHFT(pack_tmp, -3)
    4270      369229 :          idata = idata + 1
    4271      369229 :          data_tmp = full_data(idata)
    4272      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4273      369229 :          data_tmp = IAND(data_tmp, mask_left(3))
    4274      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4275      369229 :          ipack = ipack + 1
    4276      369229 :          packed_data(ipack) = pack_tmp
    4277      369229 :          data_tmp = full_data(idata)
    4278      369229 :          pack_tmp = ISHFT(data_tmp, 60)
    4279      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4280      369229 :          idata = idata + 1
    4281      369229 :          data_tmp = full_data(idata)
    4282      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4283      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4284      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4285      369229 :          idata = idata + 1
    4286      369229 :          data_tmp = full_data(idata)
    4287      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4288      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4289      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4290      369229 :          idata = idata + 1
    4291      369229 :          data_tmp = full_data(idata)
    4292      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4293      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4294      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4295      369229 :          idata = idata + 1
    4296      369229 :          data_tmp = full_data(idata)
    4297      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4298      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4299      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4300      369229 :          idata = idata + 1
    4301      369229 :          data_tmp = full_data(idata)
    4302      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4303      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4304      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4305      369229 :          idata = idata + 1
    4306      369229 :          data_tmp = full_data(idata)
    4307      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4308      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4309      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4310      369229 :          idata = idata + 1
    4311      369229 :          data_tmp = full_data(idata)
    4312      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4313      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4314      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4315      369229 :          idata = idata + 1
    4316      369229 :          data_tmp = full_data(idata)
    4317      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4318      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4319      369229 :          pack_tmp = ISHFT(pack_tmp, -4)
    4320      369229 :          idata = idata + 1
    4321      369229 :          data_tmp = full_data(idata)
    4322      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4323      369229 :          data_tmp = IAND(data_tmp, mask_left(4))
    4324      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4325      369229 :          ipack = ipack + 1
    4326      369229 :          packed_data(ipack) = pack_tmp
    4327      369229 :          data_tmp = full_data(idata)
    4328      369229 :          pack_tmp = ISHFT(data_tmp, 61)
    4329      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4330      369229 :          idata = idata + 1
    4331      369229 :          data_tmp = full_data(idata)
    4332      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4333      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4334      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4335      369229 :          idata = idata + 1
    4336      369229 :          data_tmp = full_data(idata)
    4337      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4338      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4339      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4340      369229 :          idata = idata + 1
    4341      369229 :          data_tmp = full_data(idata)
    4342      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4343      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4344      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4345      369229 :          idata = idata + 1
    4346      369229 :          data_tmp = full_data(idata)
    4347      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4348      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4349      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4350      369229 :          idata = idata + 1
    4351      369229 :          data_tmp = full_data(idata)
    4352      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4353      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4354      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4355      369229 :          idata = idata + 1
    4356      369229 :          data_tmp = full_data(idata)
    4357      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4358      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4359      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4360      369229 :          idata = idata + 1
    4361      369229 :          data_tmp = full_data(idata)
    4362      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4363      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4364      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4365      369229 :          idata = idata + 1
    4366      369229 :          data_tmp = full_data(idata)
    4367      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4368      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4369      369229 :          pack_tmp = ISHFT(pack_tmp, -5)
    4370      369229 :          idata = idata + 1
    4371      369229 :          data_tmp = full_data(idata)
    4372      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4373      369229 :          data_tmp = IAND(data_tmp, mask_left(5))
    4374      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4375      369229 :          ipack = ipack + 1
    4376      369229 :          packed_data(ipack) = pack_tmp
    4377      369229 :          data_tmp = full_data(idata)
    4378      369229 :          pack_tmp = ISHFT(data_tmp, 62)
    4379      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4380      369229 :          idata = idata + 1
    4381      369229 :          data_tmp = full_data(idata)
    4382      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4383      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4384      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4385      369229 :          idata = idata + 1
    4386      369229 :          data_tmp = full_data(idata)
    4387      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4388      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4389      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4390      369229 :          idata = idata + 1
    4391      369229 :          data_tmp = full_data(idata)
    4392      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4393      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4394      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4395      369229 :          idata = idata + 1
    4396      369229 :          data_tmp = full_data(idata)
    4397      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4398      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4399      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4400      369229 :          idata = idata + 1
    4401      369229 :          data_tmp = full_data(idata)
    4402      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4403      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4404      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4405      369229 :          idata = idata + 1
    4406      369229 :          data_tmp = full_data(idata)
    4407      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4408      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4409      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4410      369229 :          idata = idata + 1
    4411      369229 :          data_tmp = full_data(idata)
    4412      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4413      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4414      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4415      369229 :          idata = idata + 1
    4416      369229 :          data_tmp = full_data(idata)
    4417      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4418      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4419      369229 :          pack_tmp = ISHFT(pack_tmp, -6)
    4420      369229 :          idata = idata + 1
    4421      369229 :          data_tmp = full_data(idata)
    4422      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4423      369229 :          data_tmp = IAND(data_tmp, mask_left(6))
    4424      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4425      369229 :          ipack = ipack + 1
    4426      369229 :          packed_data(ipack) = pack_tmp
    4427      369229 :          data_tmp = full_data(idata)
    4428      369229 :          pack_tmp = ISHFT(data_tmp, 63)
    4429      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4430      369229 :          idata = idata + 1
    4431      369229 :          data_tmp = full_data(idata)
    4432      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4433      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4434      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4435      369229 :          idata = idata + 1
    4436      369229 :          data_tmp = full_data(idata)
    4437      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4438      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4439      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4440      369229 :          idata = idata + 1
    4441      369229 :          data_tmp = full_data(idata)
    4442      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4443      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4444      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4445      369229 :          idata = idata + 1
    4446      369229 :          data_tmp = full_data(idata)
    4447      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4448      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4449      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4450      369229 :          idata = idata + 1
    4451      369229 :          data_tmp = full_data(idata)
    4452      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4453      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4454      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4455      369229 :          idata = idata + 1
    4456      369229 :          data_tmp = full_data(idata)
    4457      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4458      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4459      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4460      369229 :          idata = idata + 1
    4461      369229 :          data_tmp = full_data(idata)
    4462      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4463      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4464      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4465      369229 :          idata = idata + 1
    4466      369229 :          data_tmp = full_data(idata)
    4467      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4468      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4469      369229 :          pack_tmp = ISHFT(pack_tmp, -7)
    4470      369229 :          idata = idata + 1
    4471      369229 :          data_tmp = full_data(idata)
    4472      369229 :          data_tmp = ISHFT(data_tmp, 57)
    4473      369229 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4474             :          pack_tmp = ISHFT(pack_tmp, 0)
    4475      369229 :          pack_tmp = ISHFT(pack_tmp, 0)
    4476      369229 :          ipack = ipack + 1
    4477      369231 :          packed_data(ipack) = pack_tmp
    4478             :       END DO
    4479       23116 :       IF (Ndata_rep < Ndata) THEN
    4480          70 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4481             :       END IF
    4482       23116 :    END SUBROUTINE ints2bits_7
    4483             : 
    4484             : ! **************************************************************************************************
    4485             : !> \brief ...
    4486             : !> \param Ndata ...
    4487             : !> \param packed_data ...
    4488             : !> \param full_data ...
    4489             : ! **************************************************************************************************
    4490       96638 :    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       96638 :       ipack = 0
    4501       96638 :       idata = 0
    4502       96638 :       pack_tmp = 0
    4503       96638 :       Ndata_rep = (Ndata/64)*64
    4504       96638 :       DO kdata = 1, Ndata_rep, 64
    4505     1541377 :          idata = idata + 1
    4506     1541377 :          data_tmp = ISHFT(pack_tmp, 7)
    4507     1541377 :          ipack = ipack + 1
    4508     1541377 :          pack_tmp = packed_data(ipack)
    4509     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    4510     1541377 :          pack_tmp = ISHFT(pack_tmp, -7)
    4511     1541377 :          idata = idata + 1
    4512     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4513     1541377 :          full_data(idata) = data_tmp
    4514     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4515     1541377 :          idata = idata + 1
    4516     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4517     1541377 :          full_data(idata) = data_tmp
    4518     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4519     1541377 :          idata = idata + 1
    4520     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4521     1541377 :          full_data(idata) = data_tmp
    4522     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4523     1541377 :          idata = idata + 1
    4524     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4525     1541377 :          full_data(idata) = data_tmp
    4526     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4527     1541377 :          idata = idata + 1
    4528     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4529     1541377 :          full_data(idata) = data_tmp
    4530     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4531     1541377 :          idata = idata + 1
    4532     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4533     1541377 :          full_data(idata) = data_tmp
    4534     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4535     1541377 :          idata = idata + 1
    4536     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4537     1541377 :          full_data(idata) = data_tmp
    4538     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4539     1541377 :          idata = idata + 1
    4540     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4541     1541377 :          full_data(idata) = data_tmp
    4542     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4543     1541377 :          idata = idata + 1
    4544     1541377 :          data_tmp = ISHFT(pack_tmp, 6)
    4545     1541377 :          ipack = ipack + 1
    4546     1541377 :          pack_tmp = packed_data(ipack)
    4547     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    4548     1541377 :          pack_tmp = ISHFT(pack_tmp, -6)
    4549     1541377 :          idata = idata + 1
    4550     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4551     1541377 :          full_data(idata) = data_tmp
    4552     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4553     1541377 :          idata = idata + 1
    4554     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4555     1541377 :          full_data(idata) = data_tmp
    4556     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4557     1541377 :          idata = idata + 1
    4558     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4559     1541377 :          full_data(idata) = data_tmp
    4560     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4561     1541377 :          idata = idata + 1
    4562     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4563     1541377 :          full_data(idata) = data_tmp
    4564     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4565     1541377 :          idata = idata + 1
    4566     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4567     1541377 :          full_data(idata) = data_tmp
    4568     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4569     1541377 :          idata = idata + 1
    4570     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4571     1541377 :          full_data(idata) = data_tmp
    4572     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4573     1541377 :          idata = idata + 1
    4574     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4575     1541377 :          full_data(idata) = data_tmp
    4576     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4577     1541377 :          idata = idata + 1
    4578     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4579     1541377 :          full_data(idata) = data_tmp
    4580     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4581     1541377 :          idata = idata + 1
    4582     1541377 :          data_tmp = ISHFT(pack_tmp, 5)
    4583     1541377 :          ipack = ipack + 1
    4584     1541377 :          pack_tmp = packed_data(ipack)
    4585     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    4586     1541377 :          pack_tmp = ISHFT(pack_tmp, -5)
    4587     1541377 :          idata = idata + 1
    4588     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4589     1541377 :          full_data(idata) = data_tmp
    4590     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4591     1541377 :          idata = idata + 1
    4592     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4593     1541377 :          full_data(idata) = data_tmp
    4594     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4595     1541377 :          idata = idata + 1
    4596     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4597     1541377 :          full_data(idata) = data_tmp
    4598     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4599     1541377 :          idata = idata + 1
    4600     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4601     1541377 :          full_data(idata) = data_tmp
    4602     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4603     1541377 :          idata = idata + 1
    4604     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4605     1541377 :          full_data(idata) = data_tmp
    4606     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4607     1541377 :          idata = idata + 1
    4608     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4609     1541377 :          full_data(idata) = data_tmp
    4610     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4611     1541377 :          idata = idata + 1
    4612     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4613     1541377 :          full_data(idata) = data_tmp
    4614     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4615     1541377 :          idata = idata + 1
    4616     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4617     1541377 :          full_data(idata) = data_tmp
    4618     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4619     1541377 :          idata = idata + 1
    4620     1541377 :          data_tmp = ISHFT(pack_tmp, 4)
    4621     1541377 :          ipack = ipack + 1
    4622     1541377 :          pack_tmp = packed_data(ipack)
    4623     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4624     1541377 :          pack_tmp = ISHFT(pack_tmp, -4)
    4625     1541377 :          idata = idata + 1
    4626     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4627     1541377 :          full_data(idata) = data_tmp
    4628     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4629     1541377 :          idata = idata + 1
    4630     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4631     1541377 :          full_data(idata) = data_tmp
    4632     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4633     1541377 :          idata = idata + 1
    4634     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4635     1541377 :          full_data(idata) = data_tmp
    4636     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4637     1541377 :          idata = idata + 1
    4638     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4639     1541377 :          full_data(idata) = data_tmp
    4640     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4641     1541377 :          idata = idata + 1
    4642     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4643     1541377 :          full_data(idata) = data_tmp
    4644     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4645     1541377 :          idata = idata + 1
    4646     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4647     1541377 :          full_data(idata) = data_tmp
    4648     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4649     1541377 :          idata = idata + 1
    4650     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4651     1541377 :          full_data(idata) = data_tmp
    4652     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4653     1541377 :          idata = idata + 1
    4654     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4655     1541377 :          full_data(idata) = data_tmp
    4656     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4657     1541377 :          idata = idata + 1
    4658     1541377 :          data_tmp = ISHFT(pack_tmp, 3)
    4659     1541377 :          ipack = ipack + 1
    4660     1541377 :          pack_tmp = packed_data(ipack)
    4661     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    4662     1541377 :          pack_tmp = ISHFT(pack_tmp, -3)
    4663     1541377 :          idata = idata + 1
    4664     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4665     1541377 :          full_data(idata) = data_tmp
    4666     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4667     1541377 :          idata = idata + 1
    4668     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4669     1541377 :          full_data(idata) = data_tmp
    4670     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4671     1541377 :          idata = idata + 1
    4672     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4673     1541377 :          full_data(idata) = data_tmp
    4674     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4675     1541377 :          idata = idata + 1
    4676     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4677     1541377 :          full_data(idata) = data_tmp
    4678     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4679     1541377 :          idata = idata + 1
    4680     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4681     1541377 :          full_data(idata) = data_tmp
    4682     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4683     1541377 :          idata = idata + 1
    4684     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4685     1541377 :          full_data(idata) = data_tmp
    4686     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4687     1541377 :          idata = idata + 1
    4688     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4689     1541377 :          full_data(idata) = data_tmp
    4690     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4691     1541377 :          idata = idata + 1
    4692     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4693     1541377 :          full_data(idata) = data_tmp
    4694     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4695     1541377 :          idata = idata + 1
    4696     1541377 :          data_tmp = ISHFT(pack_tmp, 2)
    4697     1541377 :          ipack = ipack + 1
    4698     1541377 :          pack_tmp = packed_data(ipack)
    4699     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4700     1541377 :          pack_tmp = ISHFT(pack_tmp, -2)
    4701     1541377 :          idata = idata + 1
    4702     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4703     1541377 :          full_data(idata) = data_tmp
    4704     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4705     1541377 :          idata = idata + 1
    4706     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4707     1541377 :          full_data(idata) = data_tmp
    4708     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4709     1541377 :          idata = idata + 1
    4710     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4711     1541377 :          full_data(idata) = data_tmp
    4712     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4713     1541377 :          idata = idata + 1
    4714     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4715     1541377 :          full_data(idata) = data_tmp
    4716     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4717     1541377 :          idata = idata + 1
    4718     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4719     1541377 :          full_data(idata) = data_tmp
    4720     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4721     1541377 :          idata = idata + 1
    4722     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4723     1541377 :          full_data(idata) = data_tmp
    4724     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4725     1541377 :          idata = idata + 1
    4726     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4727     1541377 :          full_data(idata) = data_tmp
    4728     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4729     1541377 :          idata = idata + 1
    4730     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4731     1541377 :          full_data(idata) = data_tmp
    4732     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4733     1541377 :          idata = idata + 1
    4734     1541377 :          data_tmp = ISHFT(pack_tmp, 1)
    4735     1541377 :          ipack = ipack + 1
    4736     1541377 :          pack_tmp = packed_data(ipack)
    4737     1541377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    4738     1541377 :          pack_tmp = ISHFT(pack_tmp, -1)
    4739     1541377 :          idata = idata + 1
    4740     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4741     1541377 :          full_data(idata) = data_tmp
    4742     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4743     1541377 :          idata = idata + 1
    4744     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4745     1541377 :          full_data(idata) = data_tmp
    4746     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4747     1541377 :          idata = idata + 1
    4748     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4749     1541377 :          full_data(idata) = data_tmp
    4750     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4751     1541377 :          idata = idata + 1
    4752     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4753     1541377 :          full_data(idata) = data_tmp
    4754     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4755     1541377 :          idata = idata + 1
    4756     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4757     1541377 :          full_data(idata) = data_tmp
    4758     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4759     1541377 :          idata = idata + 1
    4760     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4761     1541377 :          full_data(idata) = data_tmp
    4762     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4763     1541377 :          idata = idata + 1
    4764     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4765     1541377 :          full_data(idata) = data_tmp
    4766     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4767     1541377 :          idata = idata + 1
    4768     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4769     1541377 :          full_data(idata) = data_tmp
    4770     1541377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4771     1541377 :          idata = idata + 1
    4772     1541377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4773     1541377 :          full_data(idata) = data_tmp
    4774     1541391 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4775             :       END DO
    4776       96638 :       IF (Ndata_rep < Ndata) THEN
    4777         542 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4778             :       END IF
    4779       96638 :    END SUBROUTINE bits2ints_7
    4780             : 
    4781             : ! **************************************************************************************************
    4782             : !> \brief ...
    4783             : !> \param Ndata ...
    4784             : !> \param packed_data ...
    4785             : !> \param full_data ...
    4786             : ! **************************************************************************************************
    4787       23085 :    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       23085 :       idata = 0
    4798       23085 :       ipack = 0
    4799       23085 :       Ndata_rep = (Ndata/64)*64
    4800       23085 :       DO kdata = 1, Ndata_rep, 64
    4801      368704 :          pack_tmp = 0
    4802      368704 :          idata = idata + 1
    4803      368704 :          data_tmp = full_data(idata)
    4804      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4805      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4806      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4807      368704 :          idata = idata + 1
    4808      368704 :          data_tmp = full_data(idata)
    4809      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4810      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4811      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4812      368704 :          idata = idata + 1
    4813      368704 :          data_tmp = full_data(idata)
    4814      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4815      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4816      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4817      368704 :          idata = idata + 1
    4818      368704 :          data_tmp = full_data(idata)
    4819      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4820      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4821      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4822      368704 :          idata = idata + 1
    4823      368704 :          data_tmp = full_data(idata)
    4824      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4825      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4826      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4827      368704 :          idata = idata + 1
    4828      368704 :          data_tmp = full_data(idata)
    4829      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4830      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4831      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4832      368704 :          idata = idata + 1
    4833      368704 :          data_tmp = full_data(idata)
    4834      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4835      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4836      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4837      368704 :          idata = idata + 1
    4838      368704 :          data_tmp = full_data(idata)
    4839      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4840      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4841      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    4842      368704 :          idata = idata + 1
    4843      368704 :          data_tmp = full_data(idata)
    4844      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4845      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    4846      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4847      368704 :          ipack = ipack + 1
    4848      368704 :          packed_data(ipack) = pack_tmp
    4849      368704 :          data_tmp = full_data(idata)
    4850      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    4851      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4852      368704 :          idata = idata + 1
    4853      368704 :          data_tmp = full_data(idata)
    4854      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4855      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4856      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4857      368704 :          idata = idata + 1
    4858      368704 :          data_tmp = full_data(idata)
    4859      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4860      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4861      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4862      368704 :          idata = idata + 1
    4863      368704 :          data_tmp = full_data(idata)
    4864      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4865      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4866      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4867      368704 :          idata = idata + 1
    4868      368704 :          data_tmp = full_data(idata)
    4869      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4870      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4871      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4872      368704 :          idata = idata + 1
    4873      368704 :          data_tmp = full_data(idata)
    4874      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4875      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4876      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4877      368704 :          idata = idata + 1
    4878      368704 :          data_tmp = full_data(idata)
    4879      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4880      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4881      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4882      368704 :          idata = idata + 1
    4883      368704 :          data_tmp = full_data(idata)
    4884      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4885      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4886      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    4887      368704 :          idata = idata + 1
    4888      368704 :          data_tmp = full_data(idata)
    4889      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4890      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    4891      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4892      368704 :          ipack = ipack + 1
    4893      368704 :          packed_data(ipack) = pack_tmp
    4894      368704 :          data_tmp = full_data(idata)
    4895      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    4896      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4897      368704 :          idata = idata + 1
    4898      368704 :          data_tmp = full_data(idata)
    4899      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4900      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4901      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4902      368704 :          idata = idata + 1
    4903      368704 :          data_tmp = full_data(idata)
    4904      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4905      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4906      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4907      368704 :          idata = idata + 1
    4908      368704 :          data_tmp = full_data(idata)
    4909      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4910      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4911      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4912      368704 :          idata = idata + 1
    4913      368704 :          data_tmp = full_data(idata)
    4914      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4915      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4916      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4917      368704 :          idata = idata + 1
    4918      368704 :          data_tmp = full_data(idata)
    4919      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4920      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4921      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4922      368704 :          idata = idata + 1
    4923      368704 :          data_tmp = full_data(idata)
    4924      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4925      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4926      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4927      368704 :          idata = idata + 1
    4928      368704 :          data_tmp = full_data(idata)
    4929      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4930      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4931      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    4932      368704 :          idata = idata + 1
    4933      368704 :          data_tmp = full_data(idata)
    4934      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4935      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    4936      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4937      368704 :          ipack = ipack + 1
    4938      368704 :          packed_data(ipack) = pack_tmp
    4939      368704 :          data_tmp = full_data(idata)
    4940      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    4941      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4942      368704 :          idata = idata + 1
    4943      368704 :          data_tmp = full_data(idata)
    4944      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4945      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4946      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4947      368704 :          idata = idata + 1
    4948      368704 :          data_tmp = full_data(idata)
    4949      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4950      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4951      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4952      368704 :          idata = idata + 1
    4953      368704 :          data_tmp = full_data(idata)
    4954      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4955      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4956      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4957      368704 :          idata = idata + 1
    4958      368704 :          data_tmp = full_data(idata)
    4959      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4960      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4961      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4962      368704 :          idata = idata + 1
    4963      368704 :          data_tmp = full_data(idata)
    4964      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4965      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4966      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4967      368704 :          idata = idata + 1
    4968      368704 :          data_tmp = full_data(idata)
    4969      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4970      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4971      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4972      368704 :          idata = idata + 1
    4973      368704 :          data_tmp = full_data(idata)
    4974      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4975      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4976      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    4977      368704 :          idata = idata + 1
    4978      368704 :          data_tmp = full_data(idata)
    4979      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4980      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    4981      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4982      368704 :          ipack = ipack + 1
    4983      368704 :          packed_data(ipack) = pack_tmp
    4984      368704 :          data_tmp = full_data(idata)
    4985      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    4986      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4987      368704 :          idata = idata + 1
    4988      368704 :          data_tmp = full_data(idata)
    4989      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4990      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4991      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4992      368704 :          idata = idata + 1
    4993      368704 :          data_tmp = full_data(idata)
    4994      368704 :          data_tmp = ISHFT(data_tmp, 56)
    4995      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4996      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    4997      368704 :          idata = idata + 1
    4998      368704 :          data_tmp = full_data(idata)
    4999      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5000      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5001      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5002      368704 :          idata = idata + 1
    5003      368704 :          data_tmp = full_data(idata)
    5004      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5005      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5006      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5007      368704 :          idata = idata + 1
    5008      368704 :          data_tmp = full_data(idata)
    5009      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5010      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5011      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5012      368704 :          idata = idata + 1
    5013      368704 :          data_tmp = full_data(idata)
    5014      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5015      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5016      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5017      368704 :          idata = idata + 1
    5018      368704 :          data_tmp = full_data(idata)
    5019      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5020      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5021      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    5022      368704 :          idata = idata + 1
    5023      368704 :          data_tmp = full_data(idata)
    5024      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5025      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    5026      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5027      368704 :          ipack = ipack + 1
    5028      368704 :          packed_data(ipack) = pack_tmp
    5029      368704 :          data_tmp = full_data(idata)
    5030      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    5031      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5032      368704 :          idata = idata + 1
    5033      368704 :          data_tmp = full_data(idata)
    5034      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5035      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5036      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5037      368704 :          idata = idata + 1
    5038      368704 :          data_tmp = full_data(idata)
    5039      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5040      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5041      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5042      368704 :          idata = idata + 1
    5043      368704 :          data_tmp = full_data(idata)
    5044      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5045      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5046      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5047      368704 :          idata = idata + 1
    5048      368704 :          data_tmp = full_data(idata)
    5049      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5050      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5051      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5052      368704 :          idata = idata + 1
    5053      368704 :          data_tmp = full_data(idata)
    5054      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5055      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5056      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5057      368704 :          idata = idata + 1
    5058      368704 :          data_tmp = full_data(idata)
    5059      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5060      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5061      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5062      368704 :          idata = idata + 1
    5063      368704 :          data_tmp = full_data(idata)
    5064      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5065      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5066      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    5067      368704 :          idata = idata + 1
    5068      368704 :          data_tmp = full_data(idata)
    5069      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5070      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    5071      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5072      368704 :          ipack = ipack + 1
    5073      368704 :          packed_data(ipack) = pack_tmp
    5074      368704 :          data_tmp = full_data(idata)
    5075      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    5076      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5077      368704 :          idata = idata + 1
    5078      368704 :          data_tmp = full_data(idata)
    5079      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5080      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5081      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5082      368704 :          idata = idata + 1
    5083      368704 :          data_tmp = full_data(idata)
    5084      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5085      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5086      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5087      368704 :          idata = idata + 1
    5088      368704 :          data_tmp = full_data(idata)
    5089      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5090      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5091      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5092      368704 :          idata = idata + 1
    5093      368704 :          data_tmp = full_data(idata)
    5094      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5095      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5096      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5097      368704 :          idata = idata + 1
    5098      368704 :          data_tmp = full_data(idata)
    5099      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5100      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5101      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5102      368704 :          idata = idata + 1
    5103      368704 :          data_tmp = full_data(idata)
    5104      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5105      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5106      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5107      368704 :          idata = idata + 1
    5108      368704 :          data_tmp = full_data(idata)
    5109      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5110      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5111      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    5112      368704 :          idata = idata + 1
    5113      368704 :          data_tmp = full_data(idata)
    5114      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5115      368704 :          data_tmp = IAND(data_tmp, mask_left(0))
    5116      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5117      368704 :          ipack = ipack + 1
    5118      368704 :          packed_data(ipack) = pack_tmp
    5119      368704 :          data_tmp = full_data(idata)
    5120      368704 :          pack_tmp = ISHFT(data_tmp, 56)
    5121      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5122      368704 :          idata = idata + 1
    5123      368704 :          data_tmp = full_data(idata)
    5124      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5125      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5126      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5127      368704 :          idata = idata + 1
    5128      368704 :          data_tmp = full_data(idata)
    5129      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5130      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5131      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5132      368704 :          idata = idata + 1
    5133      368704 :          data_tmp = full_data(idata)
    5134      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5135      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5136      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5137      368704 :          idata = idata + 1
    5138      368704 :          data_tmp = full_data(idata)
    5139      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5140      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5141      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5142      368704 :          idata = idata + 1
    5143      368704 :          data_tmp = full_data(idata)
    5144      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5145      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5146      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5147      368704 :          idata = idata + 1
    5148      368704 :          data_tmp = full_data(idata)
    5149      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5150      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5151      368704 :          pack_tmp = ISHFT(pack_tmp, -8)
    5152      368704 :          idata = idata + 1
    5153      368704 :          data_tmp = full_data(idata)
    5154      368704 :          data_tmp = ISHFT(data_tmp, 56)
    5155      368704 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5156             :          pack_tmp = ISHFT(pack_tmp, 0)
    5157      368704 :          pack_tmp = ISHFT(pack_tmp, 0)
    5158      368704 :          ipack = ipack + 1
    5159      368745 :          packed_data(ipack) = pack_tmp
    5160             :       END DO
    5161       23085 :       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       23085 :    END SUBROUTINE ints2bits_8
    5165             : 
    5166             : ! **************************************************************************************************
    5167             : !> \brief ...
    5168             : !> \param Ndata ...
    5169             : !> \param packed_data ...
    5170             : !> \param full_data ...
    5171             : ! **************************************************************************************************
    5172       96576 :    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       96576 :       ipack = 0
    5183       96576 :       idata = 0
    5184       96576 :       pack_tmp = 0
    5185       96576 :       Ndata_rep = (Ndata/64)*64
    5186       96576 :       DO kdata = 1, Ndata_rep, 64
    5187     1539872 :          idata = idata + 1
    5188     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5189     1539872 :          ipack = ipack + 1
    5190     1539872 :          pack_tmp = packed_data(ipack)
    5191     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5192     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5193     1539872 :          idata = idata + 1
    5194     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5195     1539872 :          full_data(idata) = data_tmp
    5196     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5197     1539872 :          idata = idata + 1
    5198     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5199     1539872 :          full_data(idata) = data_tmp
    5200     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5201     1539872 :          idata = idata + 1
    5202     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5203     1539872 :          full_data(idata) = data_tmp
    5204     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5205     1539872 :          idata = idata + 1
    5206     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5207     1539872 :          full_data(idata) = data_tmp
    5208     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5209     1539872 :          idata = idata + 1
    5210     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5211     1539872 :          full_data(idata) = data_tmp
    5212     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5213     1539872 :          idata = idata + 1
    5214     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5215     1539872 :          full_data(idata) = data_tmp
    5216     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5217     1539872 :          idata = idata + 1
    5218     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5219     1539872 :          full_data(idata) = data_tmp
    5220     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5221     1539872 :          idata = idata + 1
    5222     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5223     1539872 :          ipack = ipack + 1
    5224     1539872 :          pack_tmp = packed_data(ipack)
    5225     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5226     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5227     1539872 :          idata = idata + 1
    5228     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5229     1539872 :          full_data(idata) = data_tmp
    5230     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5231     1539872 :          idata = idata + 1
    5232     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5233     1539872 :          full_data(idata) = data_tmp
    5234     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5235     1539872 :          idata = idata + 1
    5236     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5237     1539872 :          full_data(idata) = data_tmp
    5238     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5239     1539872 :          idata = idata + 1
    5240     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5241     1539872 :          full_data(idata) = data_tmp
    5242     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5243     1539872 :          idata = idata + 1
    5244     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5245     1539872 :          full_data(idata) = data_tmp
    5246     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5247     1539872 :          idata = idata + 1
    5248     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5249     1539872 :          full_data(idata) = data_tmp
    5250     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5251     1539872 :          idata = idata + 1
    5252     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5253     1539872 :          full_data(idata) = data_tmp
    5254     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5255     1539872 :          idata = idata + 1
    5256     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5257     1539872 :          ipack = ipack + 1
    5258     1539872 :          pack_tmp = packed_data(ipack)
    5259     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5260     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5261     1539872 :          idata = idata + 1
    5262     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5263     1539872 :          full_data(idata) = data_tmp
    5264     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5265     1539872 :          idata = idata + 1
    5266     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5267     1539872 :          full_data(idata) = data_tmp
    5268     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5269     1539872 :          idata = idata + 1
    5270     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5271     1539872 :          full_data(idata) = data_tmp
    5272     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5273     1539872 :          idata = idata + 1
    5274     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5275     1539872 :          full_data(idata) = data_tmp
    5276     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5277     1539872 :          idata = idata + 1
    5278     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5279     1539872 :          full_data(idata) = data_tmp
    5280     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5281     1539872 :          idata = idata + 1
    5282     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5283     1539872 :          full_data(idata) = data_tmp
    5284     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5285     1539872 :          idata = idata + 1
    5286     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5287     1539872 :          full_data(idata) = data_tmp
    5288     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5289     1539872 :          idata = idata + 1
    5290     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5291     1539872 :          ipack = ipack + 1
    5292     1539872 :          pack_tmp = packed_data(ipack)
    5293     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5294     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5295     1539872 :          idata = idata + 1
    5296     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5297     1539872 :          full_data(idata) = data_tmp
    5298     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5299     1539872 :          idata = idata + 1
    5300     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5301     1539872 :          full_data(idata) = data_tmp
    5302     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5303     1539872 :          idata = idata + 1
    5304     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5305     1539872 :          full_data(idata) = data_tmp
    5306     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5307     1539872 :          idata = idata + 1
    5308     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5309     1539872 :          full_data(idata) = data_tmp
    5310     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5311     1539872 :          idata = idata + 1
    5312     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5313     1539872 :          full_data(idata) = data_tmp
    5314     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5315     1539872 :          idata = idata + 1
    5316     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5317     1539872 :          full_data(idata) = data_tmp
    5318     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5319     1539872 :          idata = idata + 1
    5320     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5321     1539872 :          full_data(idata) = data_tmp
    5322     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5323     1539872 :          idata = idata + 1
    5324     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5325     1539872 :          ipack = ipack + 1
    5326     1539872 :          pack_tmp = packed_data(ipack)
    5327     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5328     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5329     1539872 :          idata = idata + 1
    5330     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5331     1539872 :          full_data(idata) = data_tmp
    5332     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5333     1539872 :          idata = idata + 1
    5334     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5335     1539872 :          full_data(idata) = data_tmp
    5336     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5337     1539872 :          idata = idata + 1
    5338     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5339     1539872 :          full_data(idata) = data_tmp
    5340     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5341     1539872 :          idata = idata + 1
    5342     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5343     1539872 :          full_data(idata) = data_tmp
    5344     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5345     1539872 :          idata = idata + 1
    5346     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5347     1539872 :          full_data(idata) = data_tmp
    5348     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5349     1539872 :          idata = idata + 1
    5350     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5351     1539872 :          full_data(idata) = data_tmp
    5352     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5353     1539872 :          idata = idata + 1
    5354     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5355     1539872 :          full_data(idata) = data_tmp
    5356     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5357     1539872 :          idata = idata + 1
    5358     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5359     1539872 :          ipack = ipack + 1
    5360     1539872 :          pack_tmp = packed_data(ipack)
    5361     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5362     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5363     1539872 :          idata = idata + 1
    5364     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5365     1539872 :          full_data(idata) = data_tmp
    5366     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5367     1539872 :          idata = idata + 1
    5368     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5369     1539872 :          full_data(idata) = data_tmp
    5370     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5371     1539872 :          idata = idata + 1
    5372     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5373     1539872 :          full_data(idata) = data_tmp
    5374     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5375     1539872 :          idata = idata + 1
    5376     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5377     1539872 :          full_data(idata) = data_tmp
    5378     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5379     1539872 :          idata = idata + 1
    5380     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5381     1539872 :          full_data(idata) = data_tmp
    5382     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5383     1539872 :          idata = idata + 1
    5384     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5385     1539872 :          full_data(idata) = data_tmp
    5386     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5387     1539872 :          idata = idata + 1
    5388     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5389     1539872 :          full_data(idata) = data_tmp
    5390     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5391     1539872 :          idata = idata + 1
    5392     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5393     1539872 :          ipack = ipack + 1
    5394     1539872 :          pack_tmp = packed_data(ipack)
    5395     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5396     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5397     1539872 :          idata = idata + 1
    5398     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5399     1539872 :          full_data(idata) = data_tmp
    5400     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5401     1539872 :          idata = idata + 1
    5402     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5403     1539872 :          full_data(idata) = data_tmp
    5404     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5405     1539872 :          idata = idata + 1
    5406     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5407     1539872 :          full_data(idata) = data_tmp
    5408     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5409     1539872 :          idata = idata + 1
    5410     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5411     1539872 :          full_data(idata) = data_tmp
    5412     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5413     1539872 :          idata = idata + 1
    5414     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5415     1539872 :          full_data(idata) = data_tmp
    5416     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5417     1539872 :          idata = idata + 1
    5418     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5419     1539872 :          full_data(idata) = data_tmp
    5420     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5421     1539872 :          idata = idata + 1
    5422     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5423     1539872 :          full_data(idata) = data_tmp
    5424     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5425     1539872 :          idata = idata + 1
    5426     1539872 :          data_tmp = ISHFT(pack_tmp, 8)
    5427     1539872 :          ipack = ipack + 1
    5428     1539872 :          pack_tmp = packed_data(ipack)
    5429     1539872 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5430     1539872 :          pack_tmp = ISHFT(pack_tmp, -8)
    5431     1539872 :          idata = idata + 1
    5432     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5433     1539872 :          full_data(idata) = data_tmp
    5434     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5435     1539872 :          idata = idata + 1
    5436     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5437     1539872 :          full_data(idata) = data_tmp
    5438     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5439     1539872 :          idata = idata + 1
    5440     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5441     1539872 :          full_data(idata) = data_tmp
    5442     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5443     1539872 :          idata = idata + 1
    5444     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5445     1539872 :          full_data(idata) = data_tmp
    5446     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5447     1539872 :          idata = idata + 1
    5448     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5449     1539872 :          full_data(idata) = data_tmp
    5450     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5451     1539872 :          idata = idata + 1
    5452     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5453     1539872 :          full_data(idata) = data_tmp
    5454     1539872 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5455     1539872 :          idata = idata + 1
    5456     1539872 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5457     1539872 :          full_data(idata) = data_tmp
    5458     1540206 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5459             :       END DO
    5460       96576 :       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       96576 :    END SUBROUTINE bits2ints_8
    5464             : 
    5465             : ! **************************************************************************************************
    5466             : !> \brief ...
    5467             : !> \param Ndata ...
    5468             : !> \param packed_data ...
    5469             : !> \param full_data ...
    5470             : ! **************************************************************************************************
    5471       23002 :    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       23002 :       idata = 0
    5482       23002 :       ipack = 0
    5483       23002 :       Ndata_rep = (Ndata/64)*64
    5484       23002 :       DO kdata = 1, Ndata_rep, 64
    5485      367471 :          pack_tmp = 0
    5486      367471 :          idata = idata + 1
    5487      367471 :          data_tmp = full_data(idata)
    5488      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5489      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5490      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5491      367471 :          idata = idata + 1
    5492      367471 :          data_tmp = full_data(idata)
    5493      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5494      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5495      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5496      367471 :          idata = idata + 1
    5497      367471 :          data_tmp = full_data(idata)
    5498      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5499      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5500      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5501      367471 :          idata = idata + 1
    5502      367471 :          data_tmp = full_data(idata)
    5503      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5504      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5505      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5506      367471 :          idata = idata + 1
    5507      367471 :          data_tmp = full_data(idata)
    5508      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5509      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5510      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5511      367471 :          idata = idata + 1
    5512      367471 :          data_tmp = full_data(idata)
    5513      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5514      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5515      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5516      367471 :          idata = idata + 1
    5517      367471 :          data_tmp = full_data(idata)
    5518      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5519      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5520      367471 :          pack_tmp = ISHFT(pack_tmp, -1)
    5521      367471 :          idata = idata + 1
    5522      367471 :          data_tmp = full_data(idata)
    5523      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5524      367471 :          data_tmp = IAND(data_tmp, mask_left(1))
    5525      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5526      367471 :          ipack = ipack + 1
    5527      367471 :          packed_data(ipack) = pack_tmp
    5528      367471 :          data_tmp = full_data(idata)
    5529      367471 :          pack_tmp = ISHFT(data_tmp, 56)
    5530      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5531      367471 :          idata = idata + 1
    5532      367471 :          data_tmp = full_data(idata)
    5533      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5534      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5535      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5536      367471 :          idata = idata + 1
    5537      367471 :          data_tmp = full_data(idata)
    5538      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5539      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5540      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5541      367471 :          idata = idata + 1
    5542      367471 :          data_tmp = full_data(idata)
    5543      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5544      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5545      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5546      367471 :          idata = idata + 1
    5547      367471 :          data_tmp = full_data(idata)
    5548      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5549      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5550      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5551      367471 :          idata = idata + 1
    5552      367471 :          data_tmp = full_data(idata)
    5553      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5554      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5555      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5556      367471 :          idata = idata + 1
    5557      367471 :          data_tmp = full_data(idata)
    5558      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5559      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5560      367471 :          pack_tmp = ISHFT(pack_tmp, -2)
    5561      367471 :          idata = idata + 1
    5562      367471 :          data_tmp = full_data(idata)
    5563      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5564      367471 :          data_tmp = IAND(data_tmp, mask_left(2))
    5565      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5566      367471 :          ipack = ipack + 1
    5567      367471 :          packed_data(ipack) = pack_tmp
    5568      367471 :          data_tmp = full_data(idata)
    5569      367471 :          pack_tmp = ISHFT(data_tmp, 57)
    5570      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5571      367471 :          idata = idata + 1
    5572      367471 :          data_tmp = full_data(idata)
    5573      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5574      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5575      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5576      367471 :          idata = idata + 1
    5577      367471 :          data_tmp = full_data(idata)
    5578      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5579      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5580      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5581      367471 :          idata = idata + 1
    5582      367471 :          data_tmp = full_data(idata)
    5583      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5584      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5585      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5586      367471 :          idata = idata + 1
    5587      367471 :          data_tmp = full_data(idata)
    5588      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5589      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5590      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5591      367471 :          idata = idata + 1
    5592      367471 :          data_tmp = full_data(idata)
    5593      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5594      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5595      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5596      367471 :          idata = idata + 1
    5597      367471 :          data_tmp = full_data(idata)
    5598      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5599      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5600      367471 :          pack_tmp = ISHFT(pack_tmp, -3)
    5601      367471 :          idata = idata + 1
    5602      367471 :          data_tmp = full_data(idata)
    5603      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5604      367471 :          data_tmp = IAND(data_tmp, mask_left(3))
    5605      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5606      367471 :          ipack = ipack + 1
    5607      367471 :          packed_data(ipack) = pack_tmp
    5608      367471 :          data_tmp = full_data(idata)
    5609      367471 :          pack_tmp = ISHFT(data_tmp, 58)
    5610      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5611      367471 :          idata = idata + 1
    5612      367471 :          data_tmp = full_data(idata)
    5613      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5614      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5615      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5616      367471 :          idata = idata + 1
    5617      367471 :          data_tmp = full_data(idata)
    5618      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5619      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5620      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5621      367471 :          idata = idata + 1
    5622      367471 :          data_tmp = full_data(idata)
    5623      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5624      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5625      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5626      367471 :          idata = idata + 1
    5627      367471 :          data_tmp = full_data(idata)
    5628      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5629      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5630      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5631      367471 :          idata = idata + 1
    5632      367471 :          data_tmp = full_data(idata)
    5633      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5634      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5635      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5636      367471 :          idata = idata + 1
    5637      367471 :          data_tmp = full_data(idata)
    5638      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5639      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5640      367471 :          pack_tmp = ISHFT(pack_tmp, -4)
    5641      367471 :          idata = idata + 1
    5642      367471 :          data_tmp = full_data(idata)
    5643      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5644      367471 :          data_tmp = IAND(data_tmp, mask_left(4))
    5645      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5646      367471 :          ipack = ipack + 1
    5647      367471 :          packed_data(ipack) = pack_tmp
    5648      367471 :          data_tmp = full_data(idata)
    5649      367471 :          pack_tmp = ISHFT(data_tmp, 59)
    5650      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5651      367471 :          idata = idata + 1
    5652      367471 :          data_tmp = full_data(idata)
    5653      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5654      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5655      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5656      367471 :          idata = idata + 1
    5657      367471 :          data_tmp = full_data(idata)
    5658      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5659      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5660      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5661      367471 :          idata = idata + 1
    5662      367471 :          data_tmp = full_data(idata)
    5663      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5664      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5665      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5666      367471 :          idata = idata + 1
    5667      367471 :          data_tmp = full_data(idata)
    5668      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5669      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5670      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5671      367471 :          idata = idata + 1
    5672      367471 :          data_tmp = full_data(idata)
    5673      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5674      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5675      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5676      367471 :          idata = idata + 1
    5677      367471 :          data_tmp = full_data(idata)
    5678      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5679      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5680      367471 :          pack_tmp = ISHFT(pack_tmp, -5)
    5681      367471 :          idata = idata + 1
    5682      367471 :          data_tmp = full_data(idata)
    5683      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5684      367471 :          data_tmp = IAND(data_tmp, mask_left(5))
    5685      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5686      367471 :          ipack = ipack + 1
    5687      367471 :          packed_data(ipack) = pack_tmp
    5688      367471 :          data_tmp = full_data(idata)
    5689      367471 :          pack_tmp = ISHFT(data_tmp, 60)
    5690      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5691      367471 :          idata = idata + 1
    5692      367471 :          data_tmp = full_data(idata)
    5693      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5694      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5695      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5696      367471 :          idata = idata + 1
    5697      367471 :          data_tmp = full_data(idata)
    5698      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5699      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5700      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5701      367471 :          idata = idata + 1
    5702      367471 :          data_tmp = full_data(idata)
    5703      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5704      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5705      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5706      367471 :          idata = idata + 1
    5707      367471 :          data_tmp = full_data(idata)
    5708      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5709      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5710      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5711      367471 :          idata = idata + 1
    5712      367471 :          data_tmp = full_data(idata)
    5713      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5714      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5715      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5716      367471 :          idata = idata + 1
    5717      367471 :          data_tmp = full_data(idata)
    5718      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5719      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5720      367471 :          pack_tmp = ISHFT(pack_tmp, -6)
    5721      367471 :          idata = idata + 1
    5722      367471 :          data_tmp = full_data(idata)
    5723      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5724      367471 :          data_tmp = IAND(data_tmp, mask_left(6))
    5725      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5726      367471 :          ipack = ipack + 1
    5727      367471 :          packed_data(ipack) = pack_tmp
    5728      367471 :          data_tmp = full_data(idata)
    5729      367471 :          pack_tmp = ISHFT(data_tmp, 61)
    5730      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5731      367471 :          idata = idata + 1
    5732      367471 :          data_tmp = full_data(idata)
    5733      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5734      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5735      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5736      367471 :          idata = idata + 1
    5737      367471 :          data_tmp = full_data(idata)
    5738      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5739      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5740      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5741      367471 :          idata = idata + 1
    5742      367471 :          data_tmp = full_data(idata)
    5743      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5744      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5745      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5746      367471 :          idata = idata + 1
    5747      367471 :          data_tmp = full_data(idata)
    5748      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5749      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5750      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5751      367471 :          idata = idata + 1
    5752      367471 :          data_tmp = full_data(idata)
    5753      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5754      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5755      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5756      367471 :          idata = idata + 1
    5757      367471 :          data_tmp = full_data(idata)
    5758      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5759      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5760      367471 :          pack_tmp = ISHFT(pack_tmp, -7)
    5761      367471 :          idata = idata + 1
    5762      367471 :          data_tmp = full_data(idata)
    5763      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5764      367471 :          data_tmp = IAND(data_tmp, mask_left(7))
    5765      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5766      367471 :          ipack = ipack + 1
    5767      367471 :          packed_data(ipack) = pack_tmp
    5768      367471 :          data_tmp = full_data(idata)
    5769      367471 :          pack_tmp = ISHFT(data_tmp, 62)
    5770      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5771      367471 :          idata = idata + 1
    5772      367471 :          data_tmp = full_data(idata)
    5773      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5774      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5775      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5776      367471 :          idata = idata + 1
    5777      367471 :          data_tmp = full_data(idata)
    5778      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5779      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5780      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5781      367471 :          idata = idata + 1
    5782      367471 :          data_tmp = full_data(idata)
    5783      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5784      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5785      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5786      367471 :          idata = idata + 1
    5787      367471 :          data_tmp = full_data(idata)
    5788      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5789      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5790      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5791      367471 :          idata = idata + 1
    5792      367471 :          data_tmp = full_data(idata)
    5793      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5794      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5795      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5796      367471 :          idata = idata + 1
    5797      367471 :          data_tmp = full_data(idata)
    5798      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5799      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5800      367471 :          pack_tmp = ISHFT(pack_tmp, -8)
    5801      367471 :          idata = idata + 1
    5802      367471 :          data_tmp = full_data(idata)
    5803      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5804      367471 :          data_tmp = IAND(data_tmp, mask_left(8))
    5805      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5806      367471 :          ipack = ipack + 1
    5807      367471 :          packed_data(ipack) = pack_tmp
    5808      367471 :          data_tmp = full_data(idata)
    5809      367471 :          pack_tmp = ISHFT(data_tmp, 63)
    5810      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5811      367471 :          idata = idata + 1
    5812      367471 :          data_tmp = full_data(idata)
    5813      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5814      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5815      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5816      367471 :          idata = idata + 1
    5817      367471 :          data_tmp = full_data(idata)
    5818      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5819      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5820      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5821      367471 :          idata = idata + 1
    5822      367471 :          data_tmp = full_data(idata)
    5823      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5824      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5825      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5826      367471 :          idata = idata + 1
    5827      367471 :          data_tmp = full_data(idata)
    5828      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5829      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5830      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5831      367471 :          idata = idata + 1
    5832      367471 :          data_tmp = full_data(idata)
    5833      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5834      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5835      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5836      367471 :          idata = idata + 1
    5837      367471 :          data_tmp = full_data(idata)
    5838      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5839      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5840      367471 :          pack_tmp = ISHFT(pack_tmp, -9)
    5841      367471 :          idata = idata + 1
    5842      367471 :          data_tmp = full_data(idata)
    5843      367471 :          data_tmp = ISHFT(data_tmp, 55)
    5844      367471 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5845             :          pack_tmp = ISHFT(pack_tmp, 0)
    5846      367471 :          pack_tmp = ISHFT(pack_tmp, 0)
    5847      367471 :          ipack = ipack + 1
    5848      367471 :          packed_data(ipack) = pack_tmp
    5849             :       END DO
    5850       23002 :       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       23002 :    END SUBROUTINE ints2bits_9
    5854             : 
    5855             : ! **************************************************************************************************
    5856             : !> \brief ...
    5857             : !> \param Ndata ...
    5858             : !> \param packed_data ...
    5859             : !> \param full_data ...
    5860             : ! **************************************************************************************************
    5861       95935 :    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       95935 :       ipack = 0
    5872       95935 :       idata = 0
    5873       95935 :       pack_tmp = 0
    5874       95935 :       Ndata_rep = (Ndata/64)*64
    5875       95935 :       DO kdata = 1, Ndata_rep, 64
    5876     1530251 :          idata = idata + 1
    5877     1530251 :          data_tmp = ISHFT(pack_tmp, 9)
    5878     1530251 :          ipack = ipack + 1
    5879     1530251 :          pack_tmp = packed_data(ipack)
    5880     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    5881     1530251 :          pack_tmp = ISHFT(pack_tmp, -9)
    5882     1530251 :          idata = idata + 1
    5883     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5884     1530251 :          full_data(idata) = data_tmp
    5885     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5886     1530251 :          idata = idata + 1
    5887     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5888     1530251 :          full_data(idata) = data_tmp
    5889     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5890     1530251 :          idata = idata + 1
    5891     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5892     1530251 :          full_data(idata) = data_tmp
    5893     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5894     1530251 :          idata = idata + 1
    5895     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5896     1530251 :          full_data(idata) = data_tmp
    5897     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5898     1530251 :          idata = idata + 1
    5899     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5900     1530251 :          full_data(idata) = data_tmp
    5901     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5902     1530251 :          idata = idata + 1
    5903     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5904     1530251 :          full_data(idata) = data_tmp
    5905     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5906     1530251 :          idata = idata + 1
    5907     1530251 :          data_tmp = ISHFT(pack_tmp, 8)
    5908     1530251 :          ipack = ipack + 1
    5909     1530251 :          pack_tmp = packed_data(ipack)
    5910     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5911     1530251 :          pack_tmp = ISHFT(pack_tmp, -8)
    5912     1530251 :          idata = idata + 1
    5913     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5914     1530251 :          full_data(idata) = data_tmp
    5915     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5916     1530251 :          idata = idata + 1
    5917     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5918     1530251 :          full_data(idata) = data_tmp
    5919     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5920     1530251 :          idata = idata + 1
    5921     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5922     1530251 :          full_data(idata) = data_tmp
    5923     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5924     1530251 :          idata = idata + 1
    5925     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5926     1530251 :          full_data(idata) = data_tmp
    5927     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5928     1530251 :          idata = idata + 1
    5929     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5930     1530251 :          full_data(idata) = data_tmp
    5931     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5932     1530251 :          idata = idata + 1
    5933     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5934     1530251 :          full_data(idata) = data_tmp
    5935     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5936     1530251 :          idata = idata + 1
    5937     1530251 :          data_tmp = ISHFT(pack_tmp, 7)
    5938     1530251 :          ipack = ipack + 1
    5939     1530251 :          pack_tmp = packed_data(ipack)
    5940     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    5941     1530251 :          pack_tmp = ISHFT(pack_tmp, -7)
    5942     1530251 :          idata = idata + 1
    5943     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5944     1530251 :          full_data(idata) = data_tmp
    5945     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5946     1530251 :          idata = idata + 1
    5947     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5948     1530251 :          full_data(idata) = data_tmp
    5949     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5950     1530251 :          idata = idata + 1
    5951     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5952     1530251 :          full_data(idata) = data_tmp
    5953     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5954     1530251 :          idata = idata + 1
    5955     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5956     1530251 :          full_data(idata) = data_tmp
    5957     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5958     1530251 :          idata = idata + 1
    5959     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5960     1530251 :          full_data(idata) = data_tmp
    5961     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5962     1530251 :          idata = idata + 1
    5963     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5964     1530251 :          full_data(idata) = data_tmp
    5965     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5966     1530251 :          idata = idata + 1
    5967     1530251 :          data_tmp = ISHFT(pack_tmp, 6)
    5968     1530251 :          ipack = ipack + 1
    5969     1530251 :          pack_tmp = packed_data(ipack)
    5970     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    5971     1530251 :          pack_tmp = ISHFT(pack_tmp, -6)
    5972     1530251 :          idata = idata + 1
    5973     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5974     1530251 :          full_data(idata) = data_tmp
    5975     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5976     1530251 :          idata = idata + 1
    5977     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5978     1530251 :          full_data(idata) = data_tmp
    5979     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5980     1530251 :          idata = idata + 1
    5981     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5982     1530251 :          full_data(idata) = data_tmp
    5983     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5984     1530251 :          idata = idata + 1
    5985     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5986     1530251 :          full_data(idata) = data_tmp
    5987     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5988     1530251 :          idata = idata + 1
    5989     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5990     1530251 :          full_data(idata) = data_tmp
    5991     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5992     1530251 :          idata = idata + 1
    5993     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5994     1530251 :          full_data(idata) = data_tmp
    5995     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5996     1530251 :          idata = idata + 1
    5997     1530251 :          data_tmp = ISHFT(pack_tmp, 5)
    5998     1530251 :          ipack = ipack + 1
    5999     1530251 :          pack_tmp = packed_data(ipack)
    6000     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    6001     1530251 :          pack_tmp = ISHFT(pack_tmp, -5)
    6002     1530251 :          idata = idata + 1
    6003     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6004     1530251 :          full_data(idata) = data_tmp
    6005     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6006     1530251 :          idata = idata + 1
    6007     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6008     1530251 :          full_data(idata) = data_tmp
    6009     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6010     1530251 :          idata = idata + 1
    6011     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6012     1530251 :          full_data(idata) = data_tmp
    6013     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6014     1530251 :          idata = idata + 1
    6015     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6016     1530251 :          full_data(idata) = data_tmp
    6017     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6018     1530251 :          idata = idata + 1
    6019     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6020     1530251 :          full_data(idata) = data_tmp
    6021     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6022     1530251 :          idata = idata + 1
    6023     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6024     1530251 :          full_data(idata) = data_tmp
    6025     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6026     1530251 :          idata = idata + 1
    6027     1530251 :          data_tmp = ISHFT(pack_tmp, 4)
    6028     1530251 :          ipack = ipack + 1
    6029     1530251 :          pack_tmp = packed_data(ipack)
    6030     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6031     1530251 :          pack_tmp = ISHFT(pack_tmp, -4)
    6032     1530251 :          idata = idata + 1
    6033     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6034     1530251 :          full_data(idata) = data_tmp
    6035     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6036     1530251 :          idata = idata + 1
    6037     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6038     1530251 :          full_data(idata) = data_tmp
    6039     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6040     1530251 :          idata = idata + 1
    6041     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6042     1530251 :          full_data(idata) = data_tmp
    6043     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6044     1530251 :          idata = idata + 1
    6045     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6046     1530251 :          full_data(idata) = data_tmp
    6047     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6048     1530251 :          idata = idata + 1
    6049     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6050     1530251 :          full_data(idata) = data_tmp
    6051     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6052     1530251 :          idata = idata + 1
    6053     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6054     1530251 :          full_data(idata) = data_tmp
    6055     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6056     1530251 :          idata = idata + 1
    6057     1530251 :          data_tmp = ISHFT(pack_tmp, 3)
    6058     1530251 :          ipack = ipack + 1
    6059     1530251 :          pack_tmp = packed_data(ipack)
    6060     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    6061     1530251 :          pack_tmp = ISHFT(pack_tmp, -3)
    6062     1530251 :          idata = idata + 1
    6063     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6064     1530251 :          full_data(idata) = data_tmp
    6065     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6066     1530251 :          idata = idata + 1
    6067     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6068     1530251 :          full_data(idata) = data_tmp
    6069     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6070     1530251 :          idata = idata + 1
    6071     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6072     1530251 :          full_data(idata) = data_tmp
    6073     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6074     1530251 :          idata = idata + 1
    6075     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6076     1530251 :          full_data(idata) = data_tmp
    6077     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6078     1530251 :          idata = idata + 1
    6079     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6080     1530251 :          full_data(idata) = data_tmp
    6081     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6082     1530251 :          idata = idata + 1
    6083     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6084     1530251 :          full_data(idata) = data_tmp
    6085     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6086     1530251 :          idata = idata + 1
    6087     1530251 :          data_tmp = ISHFT(pack_tmp, 2)
    6088     1530251 :          ipack = ipack + 1
    6089     1530251 :          pack_tmp = packed_data(ipack)
    6090     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6091     1530251 :          pack_tmp = ISHFT(pack_tmp, -2)
    6092     1530251 :          idata = idata + 1
    6093     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6094     1530251 :          full_data(idata) = data_tmp
    6095     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6096     1530251 :          idata = idata + 1
    6097     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6098     1530251 :          full_data(idata) = data_tmp
    6099     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6100     1530251 :          idata = idata + 1
    6101     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6102     1530251 :          full_data(idata) = data_tmp
    6103     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6104     1530251 :          idata = idata + 1
    6105     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6106     1530251 :          full_data(idata) = data_tmp
    6107     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6108     1530251 :          idata = idata + 1
    6109     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6110     1530251 :          full_data(idata) = data_tmp
    6111     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6112     1530251 :          idata = idata + 1
    6113     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6114     1530251 :          full_data(idata) = data_tmp
    6115     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6116     1530251 :          idata = idata + 1
    6117     1530251 :          data_tmp = ISHFT(pack_tmp, 1)
    6118     1530251 :          ipack = ipack + 1
    6119     1530251 :          pack_tmp = packed_data(ipack)
    6120     1530251 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    6121     1530251 :          pack_tmp = ISHFT(pack_tmp, -1)
    6122     1530251 :          idata = idata + 1
    6123     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6124     1530251 :          full_data(idata) = data_tmp
    6125     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6126     1530251 :          idata = idata + 1
    6127     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6128     1530251 :          full_data(idata) = data_tmp
    6129     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6130     1530251 :          idata = idata + 1
    6131     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6132     1530251 :          full_data(idata) = data_tmp
    6133     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6134     1530251 :          idata = idata + 1
    6135     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6136     1530251 :          full_data(idata) = data_tmp
    6137     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6138     1530251 :          idata = idata + 1
    6139     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6140     1530251 :          full_data(idata) = data_tmp
    6141     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6142     1530251 :          idata = idata + 1
    6143     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6144     1530251 :          full_data(idata) = data_tmp
    6145     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6146     1530251 :          idata = idata + 1
    6147     1530251 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6148     1530251 :          full_data(idata) = data_tmp
    6149     1530251 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6150             :       END DO
    6151       95935 :       IF (Ndata_rep < Ndata) THEN
    6152         554 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6153             :       END IF
    6154       95935 :    END SUBROUTINE bits2ints_9
    6155             : 
    6156             : ! **************************************************************************************************
    6157             : !> \brief ...
    6158             : !> \param Ndata ...
    6159             : !> \param packed_data ...
    6160             : !> \param full_data ...
    6161             : ! **************************************************************************************************
    6162       49448 :    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       49448 :       idata = 0
    6173       49448 :       ipack = 0
    6174       49448 :       Ndata_rep = (Ndata/64)*64
    6175       49448 :       DO kdata = 1, Ndata_rep, 64
    6176      731140 :          pack_tmp = 0
    6177      731140 :          idata = idata + 1
    6178      731140 :          data_tmp = full_data(idata)
    6179      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6180      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6181      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6182      731140 :          idata = idata + 1
    6183      731140 :          data_tmp = full_data(idata)
    6184      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6185      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6186      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6187      731140 :          idata = idata + 1
    6188      731140 :          data_tmp = full_data(idata)
    6189      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6190      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6191      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6192      731140 :          idata = idata + 1
    6193      731140 :          data_tmp = full_data(idata)
    6194      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6195      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6196      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6197      731140 :          idata = idata + 1
    6198      731140 :          data_tmp = full_data(idata)
    6199      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6200      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6201      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6202      731140 :          idata = idata + 1
    6203      731140 :          data_tmp = full_data(idata)
    6204      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6205      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6206      731140 :          pack_tmp = ISHFT(pack_tmp, -4)
    6207      731140 :          idata = idata + 1
    6208      731140 :          data_tmp = full_data(idata)
    6209      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6210      731140 :          data_tmp = IAND(data_tmp, mask_left(4))
    6211      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6212      731140 :          ipack = ipack + 1
    6213      731140 :          packed_data(ipack) = pack_tmp
    6214      731140 :          data_tmp = full_data(idata)
    6215      731140 :          pack_tmp = ISHFT(data_tmp, 58)
    6216      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6217      731140 :          idata = idata + 1
    6218      731140 :          data_tmp = full_data(idata)
    6219      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6220      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6221      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6222      731140 :          idata = idata + 1
    6223      731140 :          data_tmp = full_data(idata)
    6224      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6225      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6226      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6227      731140 :          idata = idata + 1
    6228      731140 :          data_tmp = full_data(idata)
    6229      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6230      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6231      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6232      731140 :          idata = idata + 1
    6233      731140 :          data_tmp = full_data(idata)
    6234      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6235      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6236      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6237      731140 :          idata = idata + 1
    6238      731140 :          data_tmp = full_data(idata)
    6239      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6240      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6241      731140 :          pack_tmp = ISHFT(pack_tmp, -8)
    6242      731140 :          idata = idata + 1
    6243      731140 :          data_tmp = full_data(idata)
    6244      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6245      731140 :          data_tmp = IAND(data_tmp, mask_left(8))
    6246      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6247      731140 :          ipack = ipack + 1
    6248      731140 :          packed_data(ipack) = pack_tmp
    6249      731140 :          data_tmp = full_data(idata)
    6250      731140 :          pack_tmp = ISHFT(data_tmp, 62)
    6251      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6252      731140 :          idata = idata + 1
    6253      731140 :          data_tmp = full_data(idata)
    6254      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6255      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6256      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6257      731140 :          idata = idata + 1
    6258      731140 :          data_tmp = full_data(idata)
    6259      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6260      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6261      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6262      731140 :          idata = idata + 1
    6263      731140 :          data_tmp = full_data(idata)
    6264      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6265      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6266      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6267      731140 :          idata = idata + 1
    6268      731140 :          data_tmp = full_data(idata)
    6269      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6270      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6271      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6272      731140 :          idata = idata + 1
    6273      731140 :          data_tmp = full_data(idata)
    6274      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6275      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6276      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6277      731140 :          idata = idata + 1
    6278      731140 :          data_tmp = full_data(idata)
    6279      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6280      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6281      731140 :          pack_tmp = ISHFT(pack_tmp, -2)
    6282      731140 :          idata = idata + 1
    6283      731140 :          data_tmp = full_data(idata)
    6284      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6285      731140 :          data_tmp = IAND(data_tmp, mask_left(2))
    6286      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6287      731140 :          ipack = ipack + 1
    6288      731140 :          packed_data(ipack) = pack_tmp
    6289      731140 :          data_tmp = full_data(idata)
    6290      731140 :          pack_tmp = ISHFT(data_tmp, 56)
    6291      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6292      731140 :          idata = idata + 1
    6293      731140 :          data_tmp = full_data(idata)
    6294      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6295      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6296      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6297      731140 :          idata = idata + 1
    6298      731140 :          data_tmp = full_data(idata)
    6299      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6300      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6301      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6302      731140 :          idata = idata + 1
    6303      731140 :          data_tmp = full_data(idata)
    6304      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6305      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6306      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6307      731140 :          idata = idata + 1
    6308      731140 :          data_tmp = full_data(idata)
    6309      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6310      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6311      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6312      731140 :          idata = idata + 1
    6313      731140 :          data_tmp = full_data(idata)
    6314      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6315      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6316      731140 :          pack_tmp = ISHFT(pack_tmp, -6)
    6317      731140 :          idata = idata + 1
    6318      731140 :          data_tmp = full_data(idata)
    6319      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6320      731140 :          data_tmp = IAND(data_tmp, mask_left(6))
    6321      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6322      731140 :          ipack = ipack + 1
    6323      731140 :          packed_data(ipack) = pack_tmp
    6324      731140 :          data_tmp = full_data(idata)
    6325      731140 :          pack_tmp = ISHFT(data_tmp, 60)
    6326      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6327      731140 :          idata = idata + 1
    6328      731140 :          data_tmp = full_data(idata)
    6329      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6330      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6331      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6332      731140 :          idata = idata + 1
    6333      731140 :          data_tmp = full_data(idata)
    6334      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6335      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6336      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6337      731140 :          idata = idata + 1
    6338      731140 :          data_tmp = full_data(idata)
    6339      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6340      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6341      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6342      731140 :          idata = idata + 1
    6343      731140 :          data_tmp = full_data(idata)
    6344      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6345      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6346      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6347      731140 :          idata = idata + 1
    6348      731140 :          data_tmp = full_data(idata)
    6349      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6350      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6351      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6352      731140 :          idata = idata + 1
    6353      731140 :          data_tmp = full_data(idata)
    6354      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6355      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6356      731140 :          pack_tmp = ISHFT(pack_tmp, 0)
    6357      731140 :          idata = idata + 1
    6358      731140 :          data_tmp = full_data(idata)
    6359      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6360      731140 :          data_tmp = IAND(data_tmp, mask_left(0))
    6361      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6362      731140 :          ipack = ipack + 1
    6363      731140 :          packed_data(ipack) = pack_tmp
    6364      731140 :          data_tmp = full_data(idata)
    6365      731140 :          pack_tmp = ISHFT(data_tmp, 54)
    6366      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6367      731140 :          idata = idata + 1
    6368      731140 :          data_tmp = full_data(idata)
    6369      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6370      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6371      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6372      731140 :          idata = idata + 1
    6373      731140 :          data_tmp = full_data(idata)
    6374      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6375      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6376      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6377      731140 :          idata = idata + 1
    6378      731140 :          data_tmp = full_data(idata)
    6379      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6380      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6381      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6382      731140 :          idata = idata + 1
    6383      731140 :          data_tmp = full_data(idata)
    6384      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6385      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6386      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6387      731140 :          idata = idata + 1
    6388      731140 :          data_tmp = full_data(idata)
    6389      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6390      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6391      731140 :          pack_tmp = ISHFT(pack_tmp, -4)
    6392      731140 :          idata = idata + 1
    6393      731140 :          data_tmp = full_data(idata)
    6394      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6395      731140 :          data_tmp = IAND(data_tmp, mask_left(4))
    6396      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6397      731140 :          ipack = ipack + 1
    6398      731140 :          packed_data(ipack) = pack_tmp
    6399      731140 :          data_tmp = full_data(idata)
    6400      731140 :          pack_tmp = ISHFT(data_tmp, 58)
    6401      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6402      731140 :          idata = idata + 1
    6403      731140 :          data_tmp = full_data(idata)
    6404      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6405      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6406      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6407      731140 :          idata = idata + 1
    6408      731140 :          data_tmp = full_data(idata)
    6409      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6410      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6411      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6412      731140 :          idata = idata + 1
    6413      731140 :          data_tmp = full_data(idata)
    6414      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6415      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6416      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6417      731140 :          idata = idata + 1
    6418      731140 :          data_tmp = full_data(idata)
    6419      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6420      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6421      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6422      731140 :          idata = idata + 1
    6423      731140 :          data_tmp = full_data(idata)
    6424      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6425      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6426      731140 :          pack_tmp = ISHFT(pack_tmp, -8)
    6427      731140 :          idata = idata + 1
    6428      731140 :          data_tmp = full_data(idata)
    6429      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6430      731140 :          data_tmp = IAND(data_tmp, mask_left(8))
    6431      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6432      731140 :          ipack = ipack + 1
    6433      731140 :          packed_data(ipack) = pack_tmp
    6434      731140 :          data_tmp = full_data(idata)
    6435      731140 :          pack_tmp = ISHFT(data_tmp, 62)
    6436      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6437      731140 :          idata = idata + 1
    6438      731140 :          data_tmp = full_data(idata)
    6439      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6440      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6441      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6442      731140 :          idata = idata + 1
    6443      731140 :          data_tmp = full_data(idata)
    6444      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6445      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6446      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6447      731140 :          idata = idata + 1
    6448      731140 :          data_tmp = full_data(idata)
    6449      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6450      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6451      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6452      731140 :          idata = idata + 1
    6453      731140 :          data_tmp = full_data(idata)
    6454      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6455      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6456      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6457      731140 :          idata = idata + 1
    6458      731140 :          data_tmp = full_data(idata)
    6459      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6460      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6461      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6462      731140 :          idata = idata + 1
    6463      731140 :          data_tmp = full_data(idata)
    6464      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6465      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6466      731140 :          pack_tmp = ISHFT(pack_tmp, -2)
    6467      731140 :          idata = idata + 1
    6468      731140 :          data_tmp = full_data(idata)
    6469      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6470      731140 :          data_tmp = IAND(data_tmp, mask_left(2))
    6471      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6472      731140 :          ipack = ipack + 1
    6473      731140 :          packed_data(ipack) = pack_tmp
    6474      731140 :          data_tmp = full_data(idata)
    6475      731140 :          pack_tmp = ISHFT(data_tmp, 56)
    6476      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6477      731140 :          idata = idata + 1
    6478      731140 :          data_tmp = full_data(idata)
    6479      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6480      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6481      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6482      731140 :          idata = idata + 1
    6483      731140 :          data_tmp = full_data(idata)
    6484      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6485      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6486      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6487      731140 :          idata = idata + 1
    6488      731140 :          data_tmp = full_data(idata)
    6489      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6490      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6491      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6492      731140 :          idata = idata + 1
    6493      731140 :          data_tmp = full_data(idata)
    6494      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6495      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6496      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6497      731140 :          idata = idata + 1
    6498      731140 :          data_tmp = full_data(idata)
    6499      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6500      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6501      731140 :          pack_tmp = ISHFT(pack_tmp, -6)
    6502      731140 :          idata = idata + 1
    6503      731140 :          data_tmp = full_data(idata)
    6504      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6505      731140 :          data_tmp = IAND(data_tmp, mask_left(6))
    6506      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6507      731140 :          ipack = ipack + 1
    6508      731140 :          packed_data(ipack) = pack_tmp
    6509      731140 :          data_tmp = full_data(idata)
    6510      731140 :          pack_tmp = ISHFT(data_tmp, 60)
    6511      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6512      731140 :          idata = idata + 1
    6513      731140 :          data_tmp = full_data(idata)
    6514      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6515      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6516      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6517      731140 :          idata = idata + 1
    6518      731140 :          data_tmp = full_data(idata)
    6519      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6520      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6521      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6522      731140 :          idata = idata + 1
    6523      731140 :          data_tmp = full_data(idata)
    6524      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6525      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6526      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6527      731140 :          idata = idata + 1
    6528      731140 :          data_tmp = full_data(idata)
    6529      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6530      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6531      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6532      731140 :          idata = idata + 1
    6533      731140 :          data_tmp = full_data(idata)
    6534      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6535      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6536      731140 :          pack_tmp = ISHFT(pack_tmp, -10)
    6537      731140 :          idata = idata + 1
    6538      731140 :          data_tmp = full_data(idata)
    6539      731140 :          data_tmp = ISHFT(data_tmp, 54)
    6540      731140 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6541             :          pack_tmp = ISHFT(pack_tmp, 0)
    6542      731140 :          pack_tmp = ISHFT(pack_tmp, 0)
    6543      731140 :          ipack = ipack + 1
    6544      731501 :          packed_data(ipack) = pack_tmp
    6545             :       END DO
    6546       49448 :       IF (Ndata_rep < Ndata) THEN
    6547        4824 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6548             :       END IF
    6549       49448 :    END SUBROUTINE ints2bits_10
    6550             : 
    6551             : ! **************************************************************************************************
    6552             : !> \brief ...
    6553             : !> \param Ndata ...
    6554             : !> \param packed_data ...
    6555             : !> \param full_data ...
    6556             : ! **************************************************************************************************
    6557      249033 :    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      249033 :       ipack = 0
    6568      249033 :       idata = 0
    6569      249033 :       pack_tmp = 0
    6570      249033 :       Ndata_rep = (Ndata/64)*64
    6571      249033 :       DO kdata = 1, Ndata_rep, 64
    6572     3639750 :          idata = idata + 1
    6573     3639750 :          data_tmp = ISHFT(pack_tmp, 10)
    6574     3639750 :          ipack = ipack + 1
    6575     3639750 :          pack_tmp = packed_data(ipack)
    6576     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6577     3639750 :          pack_tmp = ISHFT(pack_tmp, -10)
    6578     3639750 :          idata = idata + 1
    6579     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6580     3639750 :          full_data(idata) = data_tmp
    6581     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6582     3639750 :          idata = idata + 1
    6583     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6584     3639750 :          full_data(idata) = data_tmp
    6585     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6586     3639750 :          idata = idata + 1
    6587     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6588     3639750 :          full_data(idata) = data_tmp
    6589     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6590     3639750 :          idata = idata + 1
    6591     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6592     3639750 :          full_data(idata) = data_tmp
    6593     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6594     3639750 :          idata = idata + 1
    6595     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6596     3639750 :          full_data(idata) = data_tmp
    6597     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6598     3639750 :          idata = idata + 1
    6599     3639750 :          data_tmp = ISHFT(pack_tmp, 6)
    6600     3639750 :          ipack = ipack + 1
    6601     3639750 :          pack_tmp = packed_data(ipack)
    6602     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6603     3639750 :          pack_tmp = ISHFT(pack_tmp, -6)
    6604     3639750 :          idata = idata + 1
    6605     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6606     3639750 :          full_data(idata) = data_tmp
    6607     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6608     3639750 :          idata = idata + 1
    6609     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6610     3639750 :          full_data(idata) = data_tmp
    6611     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6612     3639750 :          idata = idata + 1
    6613     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6614     3639750 :          full_data(idata) = data_tmp
    6615     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6616     3639750 :          idata = idata + 1
    6617     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6618     3639750 :          full_data(idata) = data_tmp
    6619     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6620     3639750 :          idata = idata + 1
    6621     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6622     3639750 :          full_data(idata) = data_tmp
    6623     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6624     3639750 :          idata = idata + 1
    6625     3639750 :          data_tmp = ISHFT(pack_tmp, 2)
    6626     3639750 :          ipack = ipack + 1
    6627     3639750 :          pack_tmp = packed_data(ipack)
    6628     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6629     3639750 :          pack_tmp = ISHFT(pack_tmp, -2)
    6630     3639750 :          idata = idata + 1
    6631     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6632     3639750 :          full_data(idata) = data_tmp
    6633     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6634     3639750 :          idata = idata + 1
    6635     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6636     3639750 :          full_data(idata) = data_tmp
    6637     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6638     3639750 :          idata = idata + 1
    6639     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6640     3639750 :          full_data(idata) = data_tmp
    6641     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6642     3639750 :          idata = idata + 1
    6643     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6644     3639750 :          full_data(idata) = data_tmp
    6645     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6646     3639750 :          idata = idata + 1
    6647     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6648     3639750 :          full_data(idata) = data_tmp
    6649     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6650     3639750 :          idata = idata + 1
    6651     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6652     3639750 :          full_data(idata) = data_tmp
    6653     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6654     3639750 :          idata = idata + 1
    6655     3639750 :          data_tmp = ISHFT(pack_tmp, 8)
    6656     3639750 :          ipack = ipack + 1
    6657     3639750 :          pack_tmp = packed_data(ipack)
    6658     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6659     3639750 :          pack_tmp = ISHFT(pack_tmp, -8)
    6660     3639750 :          idata = idata + 1
    6661     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6662     3639750 :          full_data(idata) = data_tmp
    6663     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6664     3639750 :          idata = idata + 1
    6665     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6666     3639750 :          full_data(idata) = data_tmp
    6667     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6668     3639750 :          idata = idata + 1
    6669     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6670     3639750 :          full_data(idata) = data_tmp
    6671     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6672     3639750 :          idata = idata + 1
    6673     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6674     3639750 :          full_data(idata) = data_tmp
    6675     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6676     3639750 :          idata = idata + 1
    6677     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6678     3639750 :          full_data(idata) = data_tmp
    6679     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6680     3639750 :          idata = idata + 1
    6681     3639750 :          data_tmp = ISHFT(pack_tmp, 4)
    6682     3639750 :          ipack = ipack + 1
    6683     3639750 :          pack_tmp = packed_data(ipack)
    6684     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6685     3639750 :          pack_tmp = ISHFT(pack_tmp, -4)
    6686     3639750 :          idata = idata + 1
    6687     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6688     3639750 :          full_data(idata) = data_tmp
    6689     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6690     3639750 :          idata = idata + 1
    6691     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6692     3639750 :          full_data(idata) = data_tmp
    6693     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6694     3639750 :          idata = idata + 1
    6695     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6696     3639750 :          full_data(idata) = data_tmp
    6697     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6698     3639750 :          idata = idata + 1
    6699     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6700     3639750 :          full_data(idata) = data_tmp
    6701     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6702     3639750 :          idata = idata + 1
    6703     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6704     3639750 :          full_data(idata) = data_tmp
    6705     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6706     3639750 :          idata = idata + 1
    6707     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6708     3639750 :          full_data(idata) = data_tmp
    6709     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6710     3639750 :          idata = idata + 1
    6711     3639750 :          data_tmp = ISHFT(pack_tmp, 10)
    6712     3639750 :          ipack = ipack + 1
    6713     3639750 :          pack_tmp = packed_data(ipack)
    6714     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6715     3639750 :          pack_tmp = ISHFT(pack_tmp, -10)
    6716     3639750 :          idata = idata + 1
    6717     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6718     3639750 :          full_data(idata) = data_tmp
    6719     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6720     3639750 :          idata = idata + 1
    6721     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6722     3639750 :          full_data(idata) = data_tmp
    6723     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6724     3639750 :          idata = idata + 1
    6725     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6726     3639750 :          full_data(idata) = data_tmp
    6727     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6728     3639750 :          idata = idata + 1
    6729     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6730     3639750 :          full_data(idata) = data_tmp
    6731     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6732     3639750 :          idata = idata + 1
    6733     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6734     3639750 :          full_data(idata) = data_tmp
    6735     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6736     3639750 :          idata = idata + 1
    6737     3639750 :          data_tmp = ISHFT(pack_tmp, 6)
    6738     3639750 :          ipack = ipack + 1
    6739     3639750 :          pack_tmp = packed_data(ipack)
    6740     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6741     3639750 :          pack_tmp = ISHFT(pack_tmp, -6)
    6742     3639750 :          idata = idata + 1
    6743     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6744     3639750 :          full_data(idata) = data_tmp
    6745     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6746     3639750 :          idata = idata + 1
    6747     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6748     3639750 :          full_data(idata) = data_tmp
    6749     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6750     3639750 :          idata = idata + 1
    6751     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6752     3639750 :          full_data(idata) = data_tmp
    6753     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6754     3639750 :          idata = idata + 1
    6755     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6756     3639750 :          full_data(idata) = data_tmp
    6757     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6758     3639750 :          idata = idata + 1
    6759     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6760     3639750 :          full_data(idata) = data_tmp
    6761     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6762     3639750 :          idata = idata + 1
    6763     3639750 :          data_tmp = ISHFT(pack_tmp, 2)
    6764     3639750 :          ipack = ipack + 1
    6765     3639750 :          pack_tmp = packed_data(ipack)
    6766     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6767     3639750 :          pack_tmp = ISHFT(pack_tmp, -2)
    6768     3639750 :          idata = idata + 1
    6769     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6770     3639750 :          full_data(idata) = data_tmp
    6771     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6772     3639750 :          idata = idata + 1
    6773     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6774     3639750 :          full_data(idata) = data_tmp
    6775     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6776     3639750 :          idata = idata + 1
    6777     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6778     3639750 :          full_data(idata) = data_tmp
    6779     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6780     3639750 :          idata = idata + 1
    6781     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6782     3639750 :          full_data(idata) = data_tmp
    6783     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6784     3639750 :          idata = idata + 1
    6785     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6786     3639750 :          full_data(idata) = data_tmp
    6787     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6788     3639750 :          idata = idata + 1
    6789     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6790     3639750 :          full_data(idata) = data_tmp
    6791     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6792     3639750 :          idata = idata + 1
    6793     3639750 :          data_tmp = ISHFT(pack_tmp, 8)
    6794     3639750 :          ipack = ipack + 1
    6795     3639750 :          pack_tmp = packed_data(ipack)
    6796     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6797     3639750 :          pack_tmp = ISHFT(pack_tmp, -8)
    6798     3639750 :          idata = idata + 1
    6799     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6800     3639750 :          full_data(idata) = data_tmp
    6801     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6802     3639750 :          idata = idata + 1
    6803     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6804     3639750 :          full_data(idata) = data_tmp
    6805     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6806     3639750 :          idata = idata + 1
    6807     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6808     3639750 :          full_data(idata) = data_tmp
    6809     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6810     3639750 :          idata = idata + 1
    6811     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6812     3639750 :          full_data(idata) = data_tmp
    6813     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6814     3639750 :          idata = idata + 1
    6815     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6816     3639750 :          full_data(idata) = data_tmp
    6817     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6818     3639750 :          idata = idata + 1
    6819     3639750 :          data_tmp = ISHFT(pack_tmp, 4)
    6820     3639750 :          ipack = ipack + 1
    6821     3639750 :          pack_tmp = packed_data(ipack)
    6822     3639750 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6823     3639750 :          pack_tmp = ISHFT(pack_tmp, -4)
    6824     3639750 :          idata = idata + 1
    6825     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6826     3639750 :          full_data(idata) = data_tmp
    6827     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6828     3639750 :          idata = idata + 1
    6829     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6830     3639750 :          full_data(idata) = data_tmp
    6831     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6832     3639750 :          idata = idata + 1
    6833     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6834     3639750 :          full_data(idata) = data_tmp
    6835     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6836     3639750 :          idata = idata + 1
    6837     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6838     3639750 :          full_data(idata) = data_tmp
    6839     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6840     3639750 :          idata = idata + 1
    6841     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6842     3639750 :          full_data(idata) = data_tmp
    6843     3639750 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6844     3639750 :          idata = idata + 1
    6845     3639750 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6846     3639750 :          full_data(idata) = data_tmp
    6847     3641764 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6848             :       END DO
    6849      249033 :       IF (Ndata_rep < Ndata) THEN
    6850       28212 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6851             :       END IF
    6852      249033 :    END SUBROUTINE bits2ints_10
    6853             : 
    6854             : ! **************************************************************************************************
    6855             : !> \brief ...
    6856             : !> \param Ndata ...
    6857             : !> \param packed_data ...
    6858             : !> \param full_data ...
    6859             : ! **************************************************************************************************
    6860       25448 :    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       25448 :       idata = 0
    6871       25448 :       ipack = 0
    6872       25448 :       Ndata_rep = (Ndata/64)*64
    6873       25448 :       DO kdata = 1, Ndata_rep, 64
    6874      400504 :          pack_tmp = 0
    6875      400504 :          idata = idata + 1
    6876      400504 :          data_tmp = full_data(idata)
    6877      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6878      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6879      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6880      400504 :          idata = idata + 1
    6881      400504 :          data_tmp = full_data(idata)
    6882      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6883      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6884      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6885      400504 :          idata = idata + 1
    6886      400504 :          data_tmp = full_data(idata)
    6887      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6888      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6889      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6890      400504 :          idata = idata + 1
    6891      400504 :          data_tmp = full_data(idata)
    6892      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6893      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6894      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6895      400504 :          idata = idata + 1
    6896      400504 :          data_tmp = full_data(idata)
    6897      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6898      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6899      400504 :          pack_tmp = ISHFT(pack_tmp, -9)
    6900      400504 :          idata = idata + 1
    6901      400504 :          data_tmp = full_data(idata)
    6902      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6903      400504 :          data_tmp = IAND(data_tmp, mask_left(9))
    6904      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6905      400504 :          ipack = ipack + 1
    6906      400504 :          packed_data(ipack) = pack_tmp
    6907      400504 :          data_tmp = full_data(idata)
    6908      400504 :          pack_tmp = ISHFT(data_tmp, 62)
    6909      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6910      400504 :          idata = idata + 1
    6911      400504 :          data_tmp = full_data(idata)
    6912      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6913      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6914      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6915      400504 :          idata = idata + 1
    6916      400504 :          data_tmp = full_data(idata)
    6917      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6918      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6919      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6920      400504 :          idata = idata + 1
    6921      400504 :          data_tmp = full_data(idata)
    6922      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6923      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6924      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6925      400504 :          idata = idata + 1
    6926      400504 :          data_tmp = full_data(idata)
    6927      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6928      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6929      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6930      400504 :          idata = idata + 1
    6931      400504 :          data_tmp = full_data(idata)
    6932      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6933      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6934      400504 :          pack_tmp = ISHFT(pack_tmp, -7)
    6935      400504 :          idata = idata + 1
    6936      400504 :          data_tmp = full_data(idata)
    6937      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6938      400504 :          data_tmp = IAND(data_tmp, mask_left(7))
    6939      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6940      400504 :          ipack = ipack + 1
    6941      400504 :          packed_data(ipack) = pack_tmp
    6942      400504 :          data_tmp = full_data(idata)
    6943      400504 :          pack_tmp = ISHFT(data_tmp, 60)
    6944      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6945      400504 :          idata = idata + 1
    6946      400504 :          data_tmp = full_data(idata)
    6947      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6948      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6949      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6950      400504 :          idata = idata + 1
    6951      400504 :          data_tmp = full_data(idata)
    6952      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6953      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6954      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6955      400504 :          idata = idata + 1
    6956      400504 :          data_tmp = full_data(idata)
    6957      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6958      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6959      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6960      400504 :          idata = idata + 1
    6961      400504 :          data_tmp = full_data(idata)
    6962      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6963      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6964      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6965      400504 :          idata = idata + 1
    6966      400504 :          data_tmp = full_data(idata)
    6967      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6968      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6969      400504 :          pack_tmp = ISHFT(pack_tmp, -5)
    6970      400504 :          idata = idata + 1
    6971      400504 :          data_tmp = full_data(idata)
    6972      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6973      400504 :          data_tmp = IAND(data_tmp, mask_left(5))
    6974      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6975      400504 :          ipack = ipack + 1
    6976      400504 :          packed_data(ipack) = pack_tmp
    6977      400504 :          data_tmp = full_data(idata)
    6978      400504 :          pack_tmp = ISHFT(data_tmp, 58)
    6979      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6980      400504 :          idata = idata + 1
    6981      400504 :          data_tmp = full_data(idata)
    6982      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6983      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6984      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6985      400504 :          idata = idata + 1
    6986      400504 :          data_tmp = full_data(idata)
    6987      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6988      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6989      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6990      400504 :          idata = idata + 1
    6991      400504 :          data_tmp = full_data(idata)
    6992      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6993      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6994      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    6995      400504 :          idata = idata + 1
    6996      400504 :          data_tmp = full_data(idata)
    6997      400504 :          data_tmp = ISHFT(data_tmp, 53)
    6998      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6999      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7000      400504 :          idata = idata + 1
    7001      400504 :          data_tmp = full_data(idata)
    7002      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7003      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7004      400504 :          pack_tmp = ISHFT(pack_tmp, -3)
    7005      400504 :          idata = idata + 1
    7006      400504 :          data_tmp = full_data(idata)
    7007      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7008      400504 :          data_tmp = IAND(data_tmp, mask_left(3))
    7009      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7010      400504 :          ipack = ipack + 1
    7011      400504 :          packed_data(ipack) = pack_tmp
    7012      400504 :          data_tmp = full_data(idata)
    7013      400504 :          pack_tmp = ISHFT(data_tmp, 56)
    7014      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7015      400504 :          idata = idata + 1
    7016      400504 :          data_tmp = full_data(idata)
    7017      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7018      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7019      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7020      400504 :          idata = idata + 1
    7021      400504 :          data_tmp = full_data(idata)
    7022      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7023      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7024      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7025      400504 :          idata = idata + 1
    7026      400504 :          data_tmp = full_data(idata)
    7027      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7028      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7029      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7030      400504 :          idata = idata + 1
    7031      400504 :          data_tmp = full_data(idata)
    7032      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7033      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7034      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7035      400504 :          idata = idata + 1
    7036      400504 :          data_tmp = full_data(idata)
    7037      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7038      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7039      400504 :          pack_tmp = ISHFT(pack_tmp, -1)
    7040      400504 :          idata = idata + 1
    7041      400504 :          data_tmp = full_data(idata)
    7042      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7043      400504 :          data_tmp = IAND(data_tmp, mask_left(1))
    7044      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7045      400504 :          ipack = ipack + 1
    7046      400504 :          packed_data(ipack) = pack_tmp
    7047      400504 :          data_tmp = full_data(idata)
    7048      400504 :          pack_tmp = ISHFT(data_tmp, 54)
    7049      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7050      400504 :          idata = idata + 1
    7051      400504 :          data_tmp = full_data(idata)
    7052      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7053      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7054      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7055      400504 :          idata = idata + 1
    7056      400504 :          data_tmp = full_data(idata)
    7057      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7058      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7059      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7060      400504 :          idata = idata + 1
    7061      400504 :          data_tmp = full_data(idata)
    7062      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7063      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7064      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7065      400504 :          idata = idata + 1
    7066      400504 :          data_tmp = full_data(idata)
    7067      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7068      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7069      400504 :          pack_tmp = ISHFT(pack_tmp, -10)
    7070      400504 :          idata = idata + 1
    7071      400504 :          data_tmp = full_data(idata)
    7072      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7073      400504 :          data_tmp = IAND(data_tmp, mask_left(10))
    7074      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7075      400504 :          ipack = ipack + 1
    7076      400504 :          packed_data(ipack) = pack_tmp
    7077      400504 :          data_tmp = full_data(idata)
    7078      400504 :          pack_tmp = ISHFT(data_tmp, 63)
    7079      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7080      400504 :          idata = idata + 1
    7081      400504 :          data_tmp = full_data(idata)
    7082      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7083      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7084      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7085      400504 :          idata = idata + 1
    7086      400504 :          data_tmp = full_data(idata)
    7087      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7088      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7089      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7090      400504 :          idata = idata + 1
    7091      400504 :          data_tmp = full_data(idata)
    7092      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7093      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7094      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7095      400504 :          idata = idata + 1
    7096      400504 :          data_tmp = full_data(idata)
    7097      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7098      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7099      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7100      400504 :          idata = idata + 1
    7101      400504 :          data_tmp = full_data(idata)
    7102      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7103      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7104      400504 :          pack_tmp = ISHFT(pack_tmp, -8)
    7105      400504 :          idata = idata + 1
    7106      400504 :          data_tmp = full_data(idata)
    7107      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7108      400504 :          data_tmp = IAND(data_tmp, mask_left(8))
    7109      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7110      400504 :          ipack = ipack + 1
    7111      400504 :          packed_data(ipack) = pack_tmp
    7112      400504 :          data_tmp = full_data(idata)
    7113      400504 :          pack_tmp = ISHFT(data_tmp, 61)
    7114      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7115      400504 :          idata = idata + 1
    7116      400504 :          data_tmp = full_data(idata)
    7117      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7118      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7119      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7120      400504 :          idata = idata + 1
    7121      400504 :          data_tmp = full_data(idata)
    7122      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7123      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7124      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7125      400504 :          idata = idata + 1
    7126      400504 :          data_tmp = full_data(idata)
    7127      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7128      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7129      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7130      400504 :          idata = idata + 1
    7131      400504 :          data_tmp = full_data(idata)
    7132      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7133      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7134      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7135      400504 :          idata = idata + 1
    7136      400504 :          data_tmp = full_data(idata)
    7137      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7138      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7139      400504 :          pack_tmp = ISHFT(pack_tmp, -6)
    7140      400504 :          idata = idata + 1
    7141      400504 :          data_tmp = full_data(idata)
    7142      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7143      400504 :          data_tmp = IAND(data_tmp, mask_left(6))
    7144      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7145      400504 :          ipack = ipack + 1
    7146      400504 :          packed_data(ipack) = pack_tmp
    7147      400504 :          data_tmp = full_data(idata)
    7148      400504 :          pack_tmp = ISHFT(data_tmp, 59)
    7149      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7150      400504 :          idata = idata + 1
    7151      400504 :          data_tmp = full_data(idata)
    7152      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7153      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7154      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7155      400504 :          idata = idata + 1
    7156      400504 :          data_tmp = full_data(idata)
    7157      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7158      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7159      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7160      400504 :          idata = idata + 1
    7161      400504 :          data_tmp = full_data(idata)
    7162      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7163      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7164      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7165      400504 :          idata = idata + 1
    7166      400504 :          data_tmp = full_data(idata)
    7167      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7168      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7169      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7170      400504 :          idata = idata + 1
    7171      400504 :          data_tmp = full_data(idata)
    7172      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7173      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7174      400504 :          pack_tmp = ISHFT(pack_tmp, -4)
    7175      400504 :          idata = idata + 1
    7176      400504 :          data_tmp = full_data(idata)
    7177      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7178      400504 :          data_tmp = IAND(data_tmp, mask_left(4))
    7179      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7180      400504 :          ipack = ipack + 1
    7181      400504 :          packed_data(ipack) = pack_tmp
    7182      400504 :          data_tmp = full_data(idata)
    7183      400504 :          pack_tmp = ISHFT(data_tmp, 57)
    7184      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7185      400504 :          idata = idata + 1
    7186      400504 :          data_tmp = full_data(idata)
    7187      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7188      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7189      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7190      400504 :          idata = idata + 1
    7191      400504 :          data_tmp = full_data(idata)
    7192      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7193      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7194      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7195      400504 :          idata = idata + 1
    7196      400504 :          data_tmp = full_data(idata)
    7197      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7198      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7199      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7200      400504 :          idata = idata + 1
    7201      400504 :          data_tmp = full_data(idata)
    7202      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7203      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7204      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7205      400504 :          idata = idata + 1
    7206      400504 :          data_tmp = full_data(idata)
    7207      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7208      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7209      400504 :          pack_tmp = ISHFT(pack_tmp, -2)
    7210      400504 :          idata = idata + 1
    7211      400504 :          data_tmp = full_data(idata)
    7212      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7213      400504 :          data_tmp = IAND(data_tmp, mask_left(2))
    7214      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7215      400504 :          ipack = ipack + 1
    7216      400504 :          packed_data(ipack) = pack_tmp
    7217      400504 :          data_tmp = full_data(idata)
    7218      400504 :          pack_tmp = ISHFT(data_tmp, 55)
    7219      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7220      400504 :          idata = idata + 1
    7221      400504 :          data_tmp = full_data(idata)
    7222      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7223      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7224      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7225      400504 :          idata = idata + 1
    7226      400504 :          data_tmp = full_data(idata)
    7227      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7228      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7229      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7230      400504 :          idata = idata + 1
    7231      400504 :          data_tmp = full_data(idata)
    7232      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7233      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7234      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7235      400504 :          idata = idata + 1
    7236      400504 :          data_tmp = full_data(idata)
    7237      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7238      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7239      400504 :          pack_tmp = ISHFT(pack_tmp, -11)
    7240      400504 :          idata = idata + 1
    7241      400504 :          data_tmp = full_data(idata)
    7242      400504 :          data_tmp = ISHFT(data_tmp, 53)
    7243      400504 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7244             :          pack_tmp = ISHFT(pack_tmp, 0)
    7245      400504 :          pack_tmp = ISHFT(pack_tmp, 0)
    7246      400504 :          ipack = ipack + 1
    7247      400542 :          packed_data(ipack) = pack_tmp
    7248             :       END DO
    7249       25448 :       IF (Ndata_rep < Ndata) THEN
    7250         784 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7251             :       END IF
    7252       25448 :    END SUBROUTINE ints2bits_11
    7253             : 
    7254             : ! **************************************************************************************************
    7255             : !> \brief ...
    7256             : !> \param Ndata ...
    7257             : !> \param packed_data ...
    7258             : !> \param full_data ...
    7259             : ! **************************************************************************************************
    7260      108956 :    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      108956 :       ipack = 0
    7271      108956 :       idata = 0
    7272      108956 :       pack_tmp = 0
    7273      108956 :       Ndata_rep = (Ndata/64)*64
    7274      108956 :       DO kdata = 1, Ndata_rep, 64
    7275     1708072 :          idata = idata + 1
    7276     1708072 :          data_tmp = ISHFT(pack_tmp, 11)
    7277     1708072 :          ipack = ipack + 1
    7278     1708072 :          pack_tmp = packed_data(ipack)
    7279     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    7280     1708072 :          pack_tmp = ISHFT(pack_tmp, -11)
    7281     1708072 :          idata = idata + 1
    7282     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7283     1708072 :          full_data(idata) = data_tmp
    7284     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7285     1708072 :          idata = idata + 1
    7286     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7287     1708072 :          full_data(idata) = data_tmp
    7288     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7289     1708072 :          idata = idata + 1
    7290     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7291     1708072 :          full_data(idata) = data_tmp
    7292     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7293     1708072 :          idata = idata + 1
    7294     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7295     1708072 :          full_data(idata) = data_tmp
    7296     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7297     1708072 :          idata = idata + 1
    7298     1708072 :          data_tmp = ISHFT(pack_tmp, 2)
    7299     1708072 :          ipack = ipack + 1
    7300     1708072 :          pack_tmp = packed_data(ipack)
    7301     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    7302     1708072 :          pack_tmp = ISHFT(pack_tmp, -2)
    7303     1708072 :          idata = idata + 1
    7304     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7305     1708072 :          full_data(idata) = data_tmp
    7306     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7307     1708072 :          idata = idata + 1
    7308     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7309     1708072 :          full_data(idata) = data_tmp
    7310     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7311     1708072 :          idata = idata + 1
    7312     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7313     1708072 :          full_data(idata) = data_tmp
    7314     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7315     1708072 :          idata = idata + 1
    7316     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7317     1708072 :          full_data(idata) = data_tmp
    7318     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7319     1708072 :          idata = idata + 1
    7320     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7321     1708072 :          full_data(idata) = data_tmp
    7322     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7323     1708072 :          idata = idata + 1
    7324     1708072 :          data_tmp = ISHFT(pack_tmp, 4)
    7325     1708072 :          ipack = ipack + 1
    7326     1708072 :          pack_tmp = packed_data(ipack)
    7327     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    7328     1708072 :          pack_tmp = ISHFT(pack_tmp, -4)
    7329     1708072 :          idata = idata + 1
    7330     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7331     1708072 :          full_data(idata) = data_tmp
    7332     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7333     1708072 :          idata = idata + 1
    7334     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7335     1708072 :          full_data(idata) = data_tmp
    7336     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7337     1708072 :          idata = idata + 1
    7338     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7339     1708072 :          full_data(idata) = data_tmp
    7340     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7341     1708072 :          idata = idata + 1
    7342     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7343     1708072 :          full_data(idata) = data_tmp
    7344     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7345     1708072 :          idata = idata + 1
    7346     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7347     1708072 :          full_data(idata) = data_tmp
    7348     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7349     1708072 :          idata = idata + 1
    7350     1708072 :          data_tmp = ISHFT(pack_tmp, 6)
    7351     1708072 :          ipack = ipack + 1
    7352     1708072 :          pack_tmp = packed_data(ipack)
    7353     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    7354     1708072 :          pack_tmp = ISHFT(pack_tmp, -6)
    7355     1708072 :          idata = idata + 1
    7356     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7357     1708072 :          full_data(idata) = data_tmp
    7358     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7359     1708072 :          idata = idata + 1
    7360     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7361     1708072 :          full_data(idata) = data_tmp
    7362     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7363     1708072 :          idata = idata + 1
    7364     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7365     1708072 :          full_data(idata) = data_tmp
    7366     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7367     1708072 :          idata = idata + 1
    7368     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7369     1708072 :          full_data(idata) = data_tmp
    7370     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7371     1708072 :          idata = idata + 1
    7372     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7373     1708072 :          full_data(idata) = data_tmp
    7374     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7375     1708072 :          idata = idata + 1
    7376     1708072 :          data_tmp = ISHFT(pack_tmp, 8)
    7377     1708072 :          ipack = ipack + 1
    7378     1708072 :          pack_tmp = packed_data(ipack)
    7379     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    7380     1708072 :          pack_tmp = ISHFT(pack_tmp, -8)
    7381     1708072 :          idata = idata + 1
    7382     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7383     1708072 :          full_data(idata) = data_tmp
    7384     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7385     1708072 :          idata = idata + 1
    7386     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7387     1708072 :          full_data(idata) = data_tmp
    7388     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7389     1708072 :          idata = idata + 1
    7390     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7391     1708072 :          full_data(idata) = data_tmp
    7392     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7393     1708072 :          idata = idata + 1
    7394     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7395     1708072 :          full_data(idata) = data_tmp
    7396     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7397     1708072 :          idata = idata + 1
    7398     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7399     1708072 :          full_data(idata) = data_tmp
    7400     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7401     1708072 :          idata = idata + 1
    7402     1708072 :          data_tmp = ISHFT(pack_tmp, 10)
    7403     1708072 :          ipack = ipack + 1
    7404     1708072 :          pack_tmp = packed_data(ipack)
    7405     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    7406     1708072 :          pack_tmp = ISHFT(pack_tmp, -10)
    7407     1708072 :          idata = idata + 1
    7408     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7409     1708072 :          full_data(idata) = data_tmp
    7410     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7411     1708072 :          idata = idata + 1
    7412     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7413     1708072 :          full_data(idata) = data_tmp
    7414     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7415     1708072 :          idata = idata + 1
    7416     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7417     1708072 :          full_data(idata) = data_tmp
    7418     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7419     1708072 :          idata = idata + 1
    7420     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7421     1708072 :          full_data(idata) = data_tmp
    7422     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7423     1708072 :          idata = idata + 1
    7424     1708072 :          data_tmp = ISHFT(pack_tmp, 1)
    7425     1708072 :          ipack = ipack + 1
    7426     1708072 :          pack_tmp = packed_data(ipack)
    7427     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    7428     1708072 :          pack_tmp = ISHFT(pack_tmp, -1)
    7429     1708072 :          idata = idata + 1
    7430     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7431     1708072 :          full_data(idata) = data_tmp
    7432     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7433     1708072 :          idata = idata + 1
    7434     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7435     1708072 :          full_data(idata) = data_tmp
    7436     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7437     1708072 :          idata = idata + 1
    7438     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7439     1708072 :          full_data(idata) = data_tmp
    7440     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7441     1708072 :          idata = idata + 1
    7442     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7443     1708072 :          full_data(idata) = data_tmp
    7444     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7445     1708072 :          idata = idata + 1
    7446     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7447     1708072 :          full_data(idata) = data_tmp
    7448     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7449     1708072 :          idata = idata + 1
    7450     1708072 :          data_tmp = ISHFT(pack_tmp, 3)
    7451     1708072 :          ipack = ipack + 1
    7452     1708072 :          pack_tmp = packed_data(ipack)
    7453     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    7454     1708072 :          pack_tmp = ISHFT(pack_tmp, -3)
    7455     1708072 :          idata = idata + 1
    7456     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7457     1708072 :          full_data(idata) = data_tmp
    7458     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7459     1708072 :          idata = idata + 1
    7460     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7461     1708072 :          full_data(idata) = data_tmp
    7462     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7463     1708072 :          idata = idata + 1
    7464     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7465     1708072 :          full_data(idata) = data_tmp
    7466     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7467     1708072 :          idata = idata + 1
    7468     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7469     1708072 :          full_data(idata) = data_tmp
    7470     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7471     1708072 :          idata = idata + 1
    7472     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7473     1708072 :          full_data(idata) = data_tmp
    7474     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7475     1708072 :          idata = idata + 1
    7476     1708072 :          data_tmp = ISHFT(pack_tmp, 5)
    7477     1708072 :          ipack = ipack + 1
    7478     1708072 :          pack_tmp = packed_data(ipack)
    7479     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    7480     1708072 :          pack_tmp = ISHFT(pack_tmp, -5)
    7481     1708072 :          idata = idata + 1
    7482     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7483     1708072 :          full_data(idata) = data_tmp
    7484     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7485     1708072 :          idata = idata + 1
    7486     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7487     1708072 :          full_data(idata) = data_tmp
    7488     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7489     1708072 :          idata = idata + 1
    7490     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7491     1708072 :          full_data(idata) = data_tmp
    7492     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7493     1708072 :          idata = idata + 1
    7494     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7495     1708072 :          full_data(idata) = data_tmp
    7496     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7497     1708072 :          idata = idata + 1
    7498     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7499     1708072 :          full_data(idata) = data_tmp
    7500     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7501     1708072 :          idata = idata + 1
    7502     1708072 :          data_tmp = ISHFT(pack_tmp, 7)
    7503     1708072 :          ipack = ipack + 1
    7504     1708072 :          pack_tmp = packed_data(ipack)
    7505     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    7506     1708072 :          pack_tmp = ISHFT(pack_tmp, -7)
    7507     1708072 :          idata = idata + 1
    7508     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7509     1708072 :          full_data(idata) = data_tmp
    7510     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7511     1708072 :          idata = idata + 1
    7512     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7513     1708072 :          full_data(idata) = data_tmp
    7514     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7515     1708072 :          idata = idata + 1
    7516     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7517     1708072 :          full_data(idata) = data_tmp
    7518     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7519     1708072 :          idata = idata + 1
    7520     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7521     1708072 :          full_data(idata) = data_tmp
    7522     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7523     1708072 :          idata = idata + 1
    7524     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7525     1708072 :          full_data(idata) = data_tmp
    7526     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7527     1708072 :          idata = idata + 1
    7528     1708072 :          data_tmp = ISHFT(pack_tmp, 9)
    7529     1708072 :          ipack = ipack + 1
    7530     1708072 :          pack_tmp = packed_data(ipack)
    7531     1708072 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    7532     1708072 :          pack_tmp = ISHFT(pack_tmp, -9)
    7533     1708072 :          idata = idata + 1
    7534     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7535     1708072 :          full_data(idata) = data_tmp
    7536     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7537     1708072 :          idata = idata + 1
    7538     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7539     1708072 :          full_data(idata) = data_tmp
    7540     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7541     1708072 :          idata = idata + 1
    7542     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7543     1708072 :          full_data(idata) = data_tmp
    7544     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7545     1708072 :          idata = idata + 1
    7546     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7547     1708072 :          full_data(idata) = data_tmp
    7548     1708072 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7549     1708072 :          idata = idata + 1
    7550     1708072 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7551     1708072 :          full_data(idata) = data_tmp
    7552     1708277 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7553             :       END DO
    7554      108956 :       IF (Ndata_rep < Ndata) THEN
    7555        4144 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7556             :       END IF
    7557      108956 :    END SUBROUTINE bits2ints_11
    7558             : 
    7559             : ! **************************************************************************************************
    7560             : !> \brief ...
    7561             : !> \param Ndata ...
    7562             : !> \param packed_data ...
    7563             : !> \param full_data ...
    7564             : ! **************************************************************************************************
    7565       25685 :    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       25685 :       idata = 0
    7576       25685 :       ipack = 0
    7577       25685 :       Ndata_rep = (Ndata/64)*64
    7578       25685 :       DO kdata = 1, Ndata_rep, 64
    7579      403157 :          pack_tmp = 0
    7580      403157 :          idata = idata + 1
    7581      403157 :          data_tmp = full_data(idata)
    7582      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7583      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7584      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7585      403157 :          idata = idata + 1
    7586      403157 :          data_tmp = full_data(idata)
    7587      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7588      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7589      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7590      403157 :          idata = idata + 1
    7591      403157 :          data_tmp = full_data(idata)
    7592      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7593      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7594      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7595      403157 :          idata = idata + 1
    7596      403157 :          data_tmp = full_data(idata)
    7597      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7598      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7599      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7600      403157 :          idata = idata + 1
    7601      403157 :          data_tmp = full_data(idata)
    7602      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7603      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7604      403157 :          pack_tmp = ISHFT(pack_tmp, -4)
    7605      403157 :          idata = idata + 1
    7606      403157 :          data_tmp = full_data(idata)
    7607      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7608      403157 :          data_tmp = IAND(data_tmp, mask_left(4))
    7609      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7610      403157 :          ipack = ipack + 1
    7611      403157 :          packed_data(ipack) = pack_tmp
    7612      403157 :          data_tmp = full_data(idata)
    7613      403157 :          pack_tmp = ISHFT(data_tmp, 56)
    7614      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7615      403157 :          idata = idata + 1
    7616      403157 :          data_tmp = full_data(idata)
    7617      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7618      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7619      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7620      403157 :          idata = idata + 1
    7621      403157 :          data_tmp = full_data(idata)
    7622      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7623      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7624      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7625      403157 :          idata = idata + 1
    7626      403157 :          data_tmp = full_data(idata)
    7627      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7628      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7629      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7630      403157 :          idata = idata + 1
    7631      403157 :          data_tmp = full_data(idata)
    7632      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7633      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7634      403157 :          pack_tmp = ISHFT(pack_tmp, -8)
    7635      403157 :          idata = idata + 1
    7636      403157 :          data_tmp = full_data(idata)
    7637      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7638      403157 :          data_tmp = IAND(data_tmp, mask_left(8))
    7639      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7640      403157 :          ipack = ipack + 1
    7641      403157 :          packed_data(ipack) = pack_tmp
    7642      403157 :          data_tmp = full_data(idata)
    7643      403157 :          pack_tmp = ISHFT(data_tmp, 60)
    7644      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7645      403157 :          idata = idata + 1
    7646      403157 :          data_tmp = full_data(idata)
    7647      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7648      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7649      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7650      403157 :          idata = idata + 1
    7651      403157 :          data_tmp = full_data(idata)
    7652      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7653      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7654      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7655      403157 :          idata = idata + 1
    7656      403157 :          data_tmp = full_data(idata)
    7657      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7658      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7659      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7660      403157 :          idata = idata + 1
    7661      403157 :          data_tmp = full_data(idata)
    7662      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7663      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7664      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7665      403157 :          idata = idata + 1
    7666      403157 :          data_tmp = full_data(idata)
    7667      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7668      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7669      403157 :          pack_tmp = ISHFT(pack_tmp, 0)
    7670      403157 :          idata = idata + 1
    7671      403157 :          data_tmp = full_data(idata)
    7672      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7673      403157 :          data_tmp = IAND(data_tmp, mask_left(0))
    7674      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7675      403157 :          ipack = ipack + 1
    7676      403157 :          packed_data(ipack) = pack_tmp
    7677      403157 :          data_tmp = full_data(idata)
    7678      403157 :          pack_tmp = ISHFT(data_tmp, 52)
    7679      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7680      403157 :          idata = idata + 1
    7681      403157 :          data_tmp = full_data(idata)
    7682      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7683      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7684      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7685      403157 :          idata = idata + 1
    7686      403157 :          data_tmp = full_data(idata)
    7687      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7688      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7689      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7690      403157 :          idata = idata + 1
    7691      403157 :          data_tmp = full_data(idata)
    7692      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7693      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7694      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7695      403157 :          idata = idata + 1
    7696      403157 :          data_tmp = full_data(idata)
    7697      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7698      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7699      403157 :          pack_tmp = ISHFT(pack_tmp, -4)
    7700      403157 :          idata = idata + 1
    7701      403157 :          data_tmp = full_data(idata)
    7702      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7703      403157 :          data_tmp = IAND(data_tmp, mask_left(4))
    7704      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7705      403157 :          ipack = ipack + 1
    7706      403157 :          packed_data(ipack) = pack_tmp
    7707      403157 :          data_tmp = full_data(idata)
    7708      403157 :          pack_tmp = ISHFT(data_tmp, 56)
    7709      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7710      403157 :          idata = idata + 1
    7711      403157 :          data_tmp = full_data(idata)
    7712      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7713      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7714      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7715      403157 :          idata = idata + 1
    7716      403157 :          data_tmp = full_data(idata)
    7717      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7718      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7719      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7720      403157 :          idata = idata + 1
    7721      403157 :          data_tmp = full_data(idata)
    7722      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7723      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7724      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7725      403157 :          idata = idata + 1
    7726      403157 :          data_tmp = full_data(idata)
    7727      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7728      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7729      403157 :          pack_tmp = ISHFT(pack_tmp, -8)
    7730      403157 :          idata = idata + 1
    7731      403157 :          data_tmp = full_data(idata)
    7732      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7733      403157 :          data_tmp = IAND(data_tmp, mask_left(8))
    7734      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7735      403157 :          ipack = ipack + 1
    7736      403157 :          packed_data(ipack) = pack_tmp
    7737      403157 :          data_tmp = full_data(idata)
    7738      403157 :          pack_tmp = ISHFT(data_tmp, 60)
    7739      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7740      403157 :          idata = idata + 1
    7741      403157 :          data_tmp = full_data(idata)
    7742      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7743      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7744      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7745      403157 :          idata = idata + 1
    7746      403157 :          data_tmp = full_data(idata)
    7747      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7748      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7749      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7750      403157 :          idata = idata + 1
    7751      403157 :          data_tmp = full_data(idata)
    7752      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7753      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7754      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7755      403157 :          idata = idata + 1
    7756      403157 :          data_tmp = full_data(idata)
    7757      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7758      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7759      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7760      403157 :          idata = idata + 1
    7761      403157 :          data_tmp = full_data(idata)
    7762      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7763      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7764      403157 :          pack_tmp = ISHFT(pack_tmp, 0)
    7765      403157 :          idata = idata + 1
    7766      403157 :          data_tmp = full_data(idata)
    7767      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7768      403157 :          data_tmp = IAND(data_tmp, mask_left(0))
    7769      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7770      403157 :          ipack = ipack + 1
    7771      403157 :          packed_data(ipack) = pack_tmp
    7772      403157 :          data_tmp = full_data(idata)
    7773      403157 :          pack_tmp = ISHFT(data_tmp, 52)
    7774      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7775      403157 :          idata = idata + 1
    7776      403157 :          data_tmp = full_data(idata)
    7777      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7778      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7779      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7780      403157 :          idata = idata + 1
    7781      403157 :          data_tmp = full_data(idata)
    7782      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7783      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7784      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7785      403157 :          idata = idata + 1
    7786      403157 :          data_tmp = full_data(idata)
    7787      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7788      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7789      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7790      403157 :          idata = idata + 1
    7791      403157 :          data_tmp = full_data(idata)
    7792      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7793      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7794      403157 :          pack_tmp = ISHFT(pack_tmp, -4)
    7795      403157 :          idata = idata + 1
    7796      403157 :          data_tmp = full_data(idata)
    7797      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7798      403157 :          data_tmp = IAND(data_tmp, mask_left(4))
    7799      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7800      403157 :          ipack = ipack + 1
    7801      403157 :          packed_data(ipack) = pack_tmp
    7802      403157 :          data_tmp = full_data(idata)
    7803      403157 :          pack_tmp = ISHFT(data_tmp, 56)
    7804      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7805      403157 :          idata = idata + 1
    7806      403157 :          data_tmp = full_data(idata)
    7807      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7808      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7809      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7810      403157 :          idata = idata + 1
    7811      403157 :          data_tmp = full_data(idata)
    7812      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7813      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7814      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7815      403157 :          idata = idata + 1
    7816      403157 :          data_tmp = full_data(idata)
    7817      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7818      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7819      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7820      403157 :          idata = idata + 1
    7821      403157 :          data_tmp = full_data(idata)
    7822      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7823      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7824      403157 :          pack_tmp = ISHFT(pack_tmp, -8)
    7825      403157 :          idata = idata + 1
    7826      403157 :          data_tmp = full_data(idata)
    7827      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7828      403157 :          data_tmp = IAND(data_tmp, mask_left(8))
    7829      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7830      403157 :          ipack = ipack + 1
    7831      403157 :          packed_data(ipack) = pack_tmp
    7832      403157 :          data_tmp = full_data(idata)
    7833      403157 :          pack_tmp = ISHFT(data_tmp, 60)
    7834      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7835      403157 :          idata = idata + 1
    7836      403157 :          data_tmp = full_data(idata)
    7837      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7838      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7839      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7840      403157 :          idata = idata + 1
    7841      403157 :          data_tmp = full_data(idata)
    7842      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7843      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7844      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7845      403157 :          idata = idata + 1
    7846      403157 :          data_tmp = full_data(idata)
    7847      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7848      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7849      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7850      403157 :          idata = idata + 1
    7851      403157 :          data_tmp = full_data(idata)
    7852      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7853      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7854      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7855      403157 :          idata = idata + 1
    7856      403157 :          data_tmp = full_data(idata)
    7857      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7858      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7859      403157 :          pack_tmp = ISHFT(pack_tmp, 0)
    7860      403157 :          idata = idata + 1
    7861      403157 :          data_tmp = full_data(idata)
    7862      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7863      403157 :          data_tmp = IAND(data_tmp, mask_left(0))
    7864      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7865      403157 :          ipack = ipack + 1
    7866      403157 :          packed_data(ipack) = pack_tmp
    7867      403157 :          data_tmp = full_data(idata)
    7868      403157 :          pack_tmp = ISHFT(data_tmp, 52)
    7869      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7870      403157 :          idata = idata + 1
    7871      403157 :          data_tmp = full_data(idata)
    7872      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7873      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7874      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7875      403157 :          idata = idata + 1
    7876      403157 :          data_tmp = full_data(idata)
    7877      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7878      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7879      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7880      403157 :          idata = idata + 1
    7881      403157 :          data_tmp = full_data(idata)
    7882      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7883      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7884      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7885      403157 :          idata = idata + 1
    7886      403157 :          data_tmp = full_data(idata)
    7887      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7888      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7889      403157 :          pack_tmp = ISHFT(pack_tmp, -4)
    7890      403157 :          idata = idata + 1
    7891      403157 :          data_tmp = full_data(idata)
    7892      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7893      403157 :          data_tmp = IAND(data_tmp, mask_left(4))
    7894      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7895      403157 :          ipack = ipack + 1
    7896      403157 :          packed_data(ipack) = pack_tmp
    7897      403157 :          data_tmp = full_data(idata)
    7898      403157 :          pack_tmp = ISHFT(data_tmp, 56)
    7899      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7900      403157 :          idata = idata + 1
    7901      403157 :          data_tmp = full_data(idata)
    7902      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7903      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7904      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7905      403157 :          idata = idata + 1
    7906      403157 :          data_tmp = full_data(idata)
    7907      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7908      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7909      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7910      403157 :          idata = idata + 1
    7911      403157 :          data_tmp = full_data(idata)
    7912      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7913      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7914      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7915      403157 :          idata = idata + 1
    7916      403157 :          data_tmp = full_data(idata)
    7917      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7918      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7919      403157 :          pack_tmp = ISHFT(pack_tmp, -8)
    7920      403157 :          idata = idata + 1
    7921      403157 :          data_tmp = full_data(idata)
    7922      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7923      403157 :          data_tmp = IAND(data_tmp, mask_left(8))
    7924      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7925      403157 :          ipack = ipack + 1
    7926      403157 :          packed_data(ipack) = pack_tmp
    7927      403157 :          data_tmp = full_data(idata)
    7928      403157 :          pack_tmp = ISHFT(data_tmp, 60)
    7929      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7930      403157 :          idata = idata + 1
    7931      403157 :          data_tmp = full_data(idata)
    7932      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7933      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7934      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7935      403157 :          idata = idata + 1
    7936      403157 :          data_tmp = full_data(idata)
    7937      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7938      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7939      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7940      403157 :          idata = idata + 1
    7941      403157 :          data_tmp = full_data(idata)
    7942      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7943      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7944      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7945      403157 :          idata = idata + 1
    7946      403157 :          data_tmp = full_data(idata)
    7947      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7948      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7949      403157 :          pack_tmp = ISHFT(pack_tmp, -12)
    7950      403157 :          idata = idata + 1
    7951      403157 :          data_tmp = full_data(idata)
    7952      403157 :          data_tmp = ISHFT(data_tmp, 52)
    7953      403157 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7954             :          pack_tmp = ISHFT(pack_tmp, 0)
    7955      403157 :          pack_tmp = ISHFT(pack_tmp, 0)
    7956      403157 :          ipack = ipack + 1
    7957      403224 :          packed_data(ipack) = pack_tmp
    7958             :       END DO
    7959       25685 :       IF (Ndata_rep < Ndata) THEN
    7960         918 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7961             :       END IF
    7962       25685 :    END SUBROUTINE ints2bits_12
    7963             : 
    7964             : ! **************************************************************************************************
    7965             : !> \brief ...
    7966             : !> \param Ndata ...
    7967             : !> \param packed_data ...
    7968             : !> \param full_data ...
    7969             : ! **************************************************************************************************
    7970      110093 :    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      110093 :       ipack = 0
    7981      110093 :       idata = 0
    7982      110093 :       pack_tmp = 0
    7983      110093 :       Ndata_rep = (Ndata/64)*64
    7984      110093 :       DO kdata = 1, Ndata_rep, 64
    7985     1720739 :          idata = idata + 1
    7986     1720739 :          data_tmp = ISHFT(pack_tmp, 12)
    7987     1720739 :          ipack = ipack + 1
    7988     1720739 :          pack_tmp = packed_data(ipack)
    7989     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    7990     1720739 :          pack_tmp = ISHFT(pack_tmp, -12)
    7991     1720739 :          idata = idata + 1
    7992     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7993     1720739 :          full_data(idata) = data_tmp
    7994     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7995     1720739 :          idata = idata + 1
    7996     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7997     1720739 :          full_data(idata) = data_tmp
    7998     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7999     1720739 :          idata = idata + 1
    8000     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8001     1720739 :          full_data(idata) = data_tmp
    8002     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8003     1720739 :          idata = idata + 1
    8004     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8005     1720739 :          full_data(idata) = data_tmp
    8006     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8007     1720739 :          idata = idata + 1
    8008     1720739 :          data_tmp = ISHFT(pack_tmp, 8)
    8009     1720739 :          ipack = ipack + 1
    8010     1720739 :          pack_tmp = packed_data(ipack)
    8011     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8012     1720739 :          pack_tmp = ISHFT(pack_tmp, -8)
    8013     1720739 :          idata = idata + 1
    8014     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8015     1720739 :          full_data(idata) = data_tmp
    8016     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8017     1720739 :          idata = idata + 1
    8018     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8019     1720739 :          full_data(idata) = data_tmp
    8020     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8021     1720739 :          idata = idata + 1
    8022     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8023     1720739 :          full_data(idata) = data_tmp
    8024     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8025     1720739 :          idata = idata + 1
    8026     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8027     1720739 :          full_data(idata) = data_tmp
    8028     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8029     1720739 :          idata = idata + 1
    8030     1720739 :          data_tmp = ISHFT(pack_tmp, 4)
    8031     1720739 :          ipack = ipack + 1
    8032     1720739 :          pack_tmp = packed_data(ipack)
    8033     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8034     1720739 :          pack_tmp = ISHFT(pack_tmp, -4)
    8035     1720739 :          idata = idata + 1
    8036     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8037     1720739 :          full_data(idata) = data_tmp
    8038     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8039     1720739 :          idata = idata + 1
    8040     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8041     1720739 :          full_data(idata) = data_tmp
    8042     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8043     1720739 :          idata = idata + 1
    8044     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8045     1720739 :          full_data(idata) = data_tmp
    8046     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8047     1720739 :          idata = idata + 1
    8048     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8049     1720739 :          full_data(idata) = data_tmp
    8050     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8051     1720739 :          idata = idata + 1
    8052     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8053     1720739 :          full_data(idata) = data_tmp
    8054     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8055     1720739 :          idata = idata + 1
    8056     1720739 :          data_tmp = ISHFT(pack_tmp, 12)
    8057     1720739 :          ipack = ipack + 1
    8058     1720739 :          pack_tmp = packed_data(ipack)
    8059     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8060     1720739 :          pack_tmp = ISHFT(pack_tmp, -12)
    8061     1720739 :          idata = idata + 1
    8062     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8063     1720739 :          full_data(idata) = data_tmp
    8064     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8065     1720739 :          idata = idata + 1
    8066     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8067     1720739 :          full_data(idata) = data_tmp
    8068     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8069     1720739 :          idata = idata + 1
    8070     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8071     1720739 :          full_data(idata) = data_tmp
    8072     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8073     1720739 :          idata = idata + 1
    8074     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8075     1720739 :          full_data(idata) = data_tmp
    8076     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8077     1720739 :          idata = idata + 1
    8078     1720739 :          data_tmp = ISHFT(pack_tmp, 8)
    8079     1720739 :          ipack = ipack + 1
    8080     1720739 :          pack_tmp = packed_data(ipack)
    8081     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8082     1720739 :          pack_tmp = ISHFT(pack_tmp, -8)
    8083     1720739 :          idata = idata + 1
    8084     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8085     1720739 :          full_data(idata) = data_tmp
    8086     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8087     1720739 :          idata = idata + 1
    8088     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8089     1720739 :          full_data(idata) = data_tmp
    8090     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8091     1720739 :          idata = idata + 1
    8092     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8093     1720739 :          full_data(idata) = data_tmp
    8094     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8095     1720739 :          idata = idata + 1
    8096     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8097     1720739 :          full_data(idata) = data_tmp
    8098     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8099     1720739 :          idata = idata + 1
    8100     1720739 :          data_tmp = ISHFT(pack_tmp, 4)
    8101     1720739 :          ipack = ipack + 1
    8102     1720739 :          pack_tmp = packed_data(ipack)
    8103     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8104     1720739 :          pack_tmp = ISHFT(pack_tmp, -4)
    8105     1720739 :          idata = idata + 1
    8106     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8107     1720739 :          full_data(idata) = data_tmp
    8108     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8109     1720739 :          idata = idata + 1
    8110     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8111     1720739 :          full_data(idata) = data_tmp
    8112     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8113     1720739 :          idata = idata + 1
    8114     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8115     1720739 :          full_data(idata) = data_tmp
    8116     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8117     1720739 :          idata = idata + 1
    8118     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8119     1720739 :          full_data(idata) = data_tmp
    8120     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8121     1720739 :          idata = idata + 1
    8122     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8123     1720739 :          full_data(idata) = data_tmp
    8124     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8125     1720739 :          idata = idata + 1
    8126     1720739 :          data_tmp = ISHFT(pack_tmp, 12)
    8127     1720739 :          ipack = ipack + 1
    8128     1720739 :          pack_tmp = packed_data(ipack)
    8129     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8130     1720739 :          pack_tmp = ISHFT(pack_tmp, -12)
    8131     1720739 :          idata = idata + 1
    8132     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8133     1720739 :          full_data(idata) = data_tmp
    8134     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8135     1720739 :          idata = idata + 1
    8136     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8137     1720739 :          full_data(idata) = data_tmp
    8138     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8139     1720739 :          idata = idata + 1
    8140     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8141     1720739 :          full_data(idata) = data_tmp
    8142     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8143     1720739 :          idata = idata + 1
    8144     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8145     1720739 :          full_data(idata) = data_tmp
    8146     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8147     1720739 :          idata = idata + 1
    8148     1720739 :          data_tmp = ISHFT(pack_tmp, 8)
    8149     1720739 :          ipack = ipack + 1
    8150     1720739 :          pack_tmp = packed_data(ipack)
    8151     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8152     1720739 :          pack_tmp = ISHFT(pack_tmp, -8)
    8153     1720739 :          idata = idata + 1
    8154     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8155     1720739 :          full_data(idata) = data_tmp
    8156     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8157     1720739 :          idata = idata + 1
    8158     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8159     1720739 :          full_data(idata) = data_tmp
    8160     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8161     1720739 :          idata = idata + 1
    8162     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8163     1720739 :          full_data(idata) = data_tmp
    8164     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8165     1720739 :          idata = idata + 1
    8166     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8167     1720739 :          full_data(idata) = data_tmp
    8168     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8169     1720739 :          idata = idata + 1
    8170     1720739 :          data_tmp = ISHFT(pack_tmp, 4)
    8171     1720739 :          ipack = ipack + 1
    8172     1720739 :          pack_tmp = packed_data(ipack)
    8173     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8174     1720739 :          pack_tmp = ISHFT(pack_tmp, -4)
    8175     1720739 :          idata = idata + 1
    8176     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8177     1720739 :          full_data(idata) = data_tmp
    8178     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8179     1720739 :          idata = idata + 1
    8180     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8181     1720739 :          full_data(idata) = data_tmp
    8182     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8183     1720739 :          idata = idata + 1
    8184     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8185     1720739 :          full_data(idata) = data_tmp
    8186     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8187     1720739 :          idata = idata + 1
    8188     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8189     1720739 :          full_data(idata) = data_tmp
    8190     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8191     1720739 :          idata = idata + 1
    8192     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8193     1720739 :          full_data(idata) = data_tmp
    8194     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8195     1720739 :          idata = idata + 1
    8196     1720739 :          data_tmp = ISHFT(pack_tmp, 12)
    8197     1720739 :          ipack = ipack + 1
    8198     1720739 :          pack_tmp = packed_data(ipack)
    8199     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8200     1720739 :          pack_tmp = ISHFT(pack_tmp, -12)
    8201     1720739 :          idata = idata + 1
    8202     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8203     1720739 :          full_data(idata) = data_tmp
    8204     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8205     1720739 :          idata = idata + 1
    8206     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8207     1720739 :          full_data(idata) = data_tmp
    8208     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8209     1720739 :          idata = idata + 1
    8210     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8211     1720739 :          full_data(idata) = data_tmp
    8212     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8213     1720739 :          idata = idata + 1
    8214     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8215     1720739 :          full_data(idata) = data_tmp
    8216     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8217     1720739 :          idata = idata + 1
    8218     1720739 :          data_tmp = ISHFT(pack_tmp, 8)
    8219     1720739 :          ipack = ipack + 1
    8220     1720739 :          pack_tmp = packed_data(ipack)
    8221     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8222     1720739 :          pack_tmp = ISHFT(pack_tmp, -8)
    8223     1720739 :          idata = idata + 1
    8224     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8225     1720739 :          full_data(idata) = data_tmp
    8226     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8227     1720739 :          idata = idata + 1
    8228     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8229     1720739 :          full_data(idata) = data_tmp
    8230     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8231     1720739 :          idata = idata + 1
    8232     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8233     1720739 :          full_data(idata) = data_tmp
    8234     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8235     1720739 :          idata = idata + 1
    8236     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8237     1720739 :          full_data(idata) = data_tmp
    8238     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8239     1720739 :          idata = idata + 1
    8240     1720739 :          data_tmp = ISHFT(pack_tmp, 4)
    8241     1720739 :          ipack = ipack + 1
    8242     1720739 :          pack_tmp = packed_data(ipack)
    8243     1720739 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8244     1720739 :          pack_tmp = ISHFT(pack_tmp, -4)
    8245     1720739 :          idata = idata + 1
    8246     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8247     1720739 :          full_data(idata) = data_tmp
    8248     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8249     1720739 :          idata = idata + 1
    8250     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8251     1720739 :          full_data(idata) = data_tmp
    8252     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8253     1720739 :          idata = idata + 1
    8254     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8255     1720739 :          full_data(idata) = data_tmp
    8256     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8257     1720739 :          idata = idata + 1
    8258     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8259     1720739 :          full_data(idata) = data_tmp
    8260     1720739 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8261     1720739 :          idata = idata + 1
    8262     1720739 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8263     1720739 :          full_data(idata) = data_tmp
    8264     1721102 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8265             :       END DO
    8266      110093 :       IF (Ndata_rep < Ndata) THEN
    8267        4794 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8268             :       END IF
    8269      110093 :    END SUBROUTINE bits2ints_12
    8270             : 
    8271             : ! **************************************************************************************************
    8272             : !> \brief ...
    8273             : !> \param Ndata ...
    8274             : !> \param packed_data ...
    8275             : !> \param full_data ...
    8276             : ! **************************************************************************************************
    8277       27147 :    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       27147 :       idata = 0
    8288       27147 :       ipack = 0
    8289       27147 :       Ndata_rep = (Ndata/64)*64
    8290       27147 :       DO kdata = 1, Ndata_rep, 64
    8291      422012 :          pack_tmp = 0
    8292      422012 :          idata = idata + 1
    8293      422012 :          data_tmp = full_data(idata)
    8294      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8295      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8296      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8297      422012 :          idata = idata + 1
    8298      422012 :          data_tmp = full_data(idata)
    8299      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8300      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8301      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8302      422012 :          idata = idata + 1
    8303      422012 :          data_tmp = full_data(idata)
    8304      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8305      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8306      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8307      422012 :          idata = idata + 1
    8308      422012 :          data_tmp = full_data(idata)
    8309      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8310      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8311      422012 :          pack_tmp = ISHFT(pack_tmp, -12)
    8312      422012 :          idata = idata + 1
    8313      422012 :          data_tmp = full_data(idata)
    8314      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8315      422012 :          data_tmp = IAND(data_tmp, mask_left(12))
    8316      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8317      422012 :          ipack = ipack + 1
    8318      422012 :          packed_data(ipack) = pack_tmp
    8319      422012 :          data_tmp = full_data(idata)
    8320      422012 :          pack_tmp = ISHFT(data_tmp, 63)
    8321      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8322      422012 :          idata = idata + 1
    8323      422012 :          data_tmp = full_data(idata)
    8324      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8325      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8326      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8327      422012 :          idata = idata + 1
    8328      422012 :          data_tmp = full_data(idata)
    8329      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8330      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8331      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8332      422012 :          idata = idata + 1
    8333      422012 :          data_tmp = full_data(idata)
    8334      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8335      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8336      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8337      422012 :          idata = idata + 1
    8338      422012 :          data_tmp = full_data(idata)
    8339      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8340      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8341      422012 :          pack_tmp = ISHFT(pack_tmp, -11)
    8342      422012 :          idata = idata + 1
    8343      422012 :          data_tmp = full_data(idata)
    8344      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8345      422012 :          data_tmp = IAND(data_tmp, mask_left(11))
    8346      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8347      422012 :          ipack = ipack + 1
    8348      422012 :          packed_data(ipack) = pack_tmp
    8349      422012 :          data_tmp = full_data(idata)
    8350      422012 :          pack_tmp = ISHFT(data_tmp, 62)
    8351      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8352      422012 :          idata = idata + 1
    8353      422012 :          data_tmp = full_data(idata)
    8354      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8355      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8356      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8357      422012 :          idata = idata + 1
    8358      422012 :          data_tmp = full_data(idata)
    8359      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8360      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8361      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8362      422012 :          idata = idata + 1
    8363      422012 :          data_tmp = full_data(idata)
    8364      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8365      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8366      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8367      422012 :          idata = idata + 1
    8368      422012 :          data_tmp = full_data(idata)
    8369      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8370      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8371      422012 :          pack_tmp = ISHFT(pack_tmp, -10)
    8372      422012 :          idata = idata + 1
    8373      422012 :          data_tmp = full_data(idata)
    8374      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8375      422012 :          data_tmp = IAND(data_tmp, mask_left(10))
    8376      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8377      422012 :          ipack = ipack + 1
    8378      422012 :          packed_data(ipack) = pack_tmp
    8379      422012 :          data_tmp = full_data(idata)
    8380      422012 :          pack_tmp = ISHFT(data_tmp, 61)
    8381      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8382      422012 :          idata = idata + 1
    8383      422012 :          data_tmp = full_data(idata)
    8384      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8385      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8386      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8387      422012 :          idata = idata + 1
    8388      422012 :          data_tmp = full_data(idata)
    8389      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8390      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8391      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8392      422012 :          idata = idata + 1
    8393      422012 :          data_tmp = full_data(idata)
    8394      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8395      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8396      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8397      422012 :          idata = idata + 1
    8398      422012 :          data_tmp = full_data(idata)
    8399      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8400      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8401      422012 :          pack_tmp = ISHFT(pack_tmp, -9)
    8402      422012 :          idata = idata + 1
    8403      422012 :          data_tmp = full_data(idata)
    8404      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8405      422012 :          data_tmp = IAND(data_tmp, mask_left(9))
    8406      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8407      422012 :          ipack = ipack + 1
    8408      422012 :          packed_data(ipack) = pack_tmp
    8409      422012 :          data_tmp = full_data(idata)
    8410      422012 :          pack_tmp = ISHFT(data_tmp, 60)
    8411      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8412      422012 :          idata = idata + 1
    8413      422012 :          data_tmp = full_data(idata)
    8414      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8415      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8416      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8417      422012 :          idata = idata + 1
    8418      422012 :          data_tmp = full_data(idata)
    8419      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8420      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8421      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8422      422012 :          idata = idata + 1
    8423      422012 :          data_tmp = full_data(idata)
    8424      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8425      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8426      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8427      422012 :          idata = idata + 1
    8428      422012 :          data_tmp = full_data(idata)
    8429      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8430      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8431      422012 :          pack_tmp = ISHFT(pack_tmp, -8)
    8432      422012 :          idata = idata + 1
    8433      422012 :          data_tmp = full_data(idata)
    8434      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8435      422012 :          data_tmp = IAND(data_tmp, mask_left(8))
    8436      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8437      422012 :          ipack = ipack + 1
    8438      422012 :          packed_data(ipack) = pack_tmp
    8439      422012 :          data_tmp = full_data(idata)
    8440      422012 :          pack_tmp = ISHFT(data_tmp, 59)
    8441      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8442      422012 :          idata = idata + 1
    8443      422012 :          data_tmp = full_data(idata)
    8444      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8445      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8446      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8447      422012 :          idata = idata + 1
    8448      422012 :          data_tmp = full_data(idata)
    8449      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8450      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8451      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8452      422012 :          idata = idata + 1
    8453      422012 :          data_tmp = full_data(idata)
    8454      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8455      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8456      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8457      422012 :          idata = idata + 1
    8458      422012 :          data_tmp = full_data(idata)
    8459      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8460      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8461      422012 :          pack_tmp = ISHFT(pack_tmp, -7)
    8462      422012 :          idata = idata + 1
    8463      422012 :          data_tmp = full_data(idata)
    8464      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8465      422012 :          data_tmp = IAND(data_tmp, mask_left(7))
    8466      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8467      422012 :          ipack = ipack + 1
    8468      422012 :          packed_data(ipack) = pack_tmp
    8469      422012 :          data_tmp = full_data(idata)
    8470      422012 :          pack_tmp = ISHFT(data_tmp, 58)
    8471      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8472      422012 :          idata = idata + 1
    8473      422012 :          data_tmp = full_data(idata)
    8474      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8475      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8476      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8477      422012 :          idata = idata + 1
    8478      422012 :          data_tmp = full_data(idata)
    8479      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8480      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8481      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8482      422012 :          idata = idata + 1
    8483      422012 :          data_tmp = full_data(idata)
    8484      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8485      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8486      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8487      422012 :          idata = idata + 1
    8488      422012 :          data_tmp = full_data(idata)
    8489      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8490      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8491      422012 :          pack_tmp = ISHFT(pack_tmp, -6)
    8492      422012 :          idata = idata + 1
    8493      422012 :          data_tmp = full_data(idata)
    8494      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8495      422012 :          data_tmp = IAND(data_tmp, mask_left(6))
    8496      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8497      422012 :          ipack = ipack + 1
    8498      422012 :          packed_data(ipack) = pack_tmp
    8499      422012 :          data_tmp = full_data(idata)
    8500      422012 :          pack_tmp = ISHFT(data_tmp, 57)
    8501      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8502      422012 :          idata = idata + 1
    8503      422012 :          data_tmp = full_data(idata)
    8504      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8505      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8506      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8507      422012 :          idata = idata + 1
    8508      422012 :          data_tmp = full_data(idata)
    8509      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8510      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8511      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8512      422012 :          idata = idata + 1
    8513      422012 :          data_tmp = full_data(idata)
    8514      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8515      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8516      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8517      422012 :          idata = idata + 1
    8518      422012 :          data_tmp = full_data(idata)
    8519      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8520      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8521      422012 :          pack_tmp = ISHFT(pack_tmp, -5)
    8522      422012 :          idata = idata + 1
    8523      422012 :          data_tmp = full_data(idata)
    8524      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8525      422012 :          data_tmp = IAND(data_tmp, mask_left(5))
    8526      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8527      422012 :          ipack = ipack + 1
    8528      422012 :          packed_data(ipack) = pack_tmp
    8529      422012 :          data_tmp = full_data(idata)
    8530      422012 :          pack_tmp = ISHFT(data_tmp, 56)
    8531      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8532      422012 :          idata = idata + 1
    8533      422012 :          data_tmp = full_data(idata)
    8534      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8535      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8536      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8537      422012 :          idata = idata + 1
    8538      422012 :          data_tmp = full_data(idata)
    8539      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8540      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8541      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8542      422012 :          idata = idata + 1
    8543      422012 :          data_tmp = full_data(idata)
    8544      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8545      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8546      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8547      422012 :          idata = idata + 1
    8548      422012 :          data_tmp = full_data(idata)
    8549      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8550      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8551      422012 :          pack_tmp = ISHFT(pack_tmp, -4)
    8552      422012 :          idata = idata + 1
    8553      422012 :          data_tmp = full_data(idata)
    8554      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8555      422012 :          data_tmp = IAND(data_tmp, mask_left(4))
    8556      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8557      422012 :          ipack = ipack + 1
    8558      422012 :          packed_data(ipack) = pack_tmp
    8559      422012 :          data_tmp = full_data(idata)
    8560      422012 :          pack_tmp = ISHFT(data_tmp, 55)
    8561      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8562      422012 :          idata = idata + 1
    8563      422012 :          data_tmp = full_data(idata)
    8564      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8565      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8566      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8567      422012 :          idata = idata + 1
    8568      422012 :          data_tmp = full_data(idata)
    8569      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8570      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8571      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8572      422012 :          idata = idata + 1
    8573      422012 :          data_tmp = full_data(idata)
    8574      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8575      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8576      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8577      422012 :          idata = idata + 1
    8578      422012 :          data_tmp = full_data(idata)
    8579      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8580      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8581      422012 :          pack_tmp = ISHFT(pack_tmp, -3)
    8582      422012 :          idata = idata + 1
    8583      422012 :          data_tmp = full_data(idata)
    8584      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8585      422012 :          data_tmp = IAND(data_tmp, mask_left(3))
    8586      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8587      422012 :          ipack = ipack + 1
    8588      422012 :          packed_data(ipack) = pack_tmp
    8589      422012 :          data_tmp = full_data(idata)
    8590      422012 :          pack_tmp = ISHFT(data_tmp, 54)
    8591      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8592      422012 :          idata = idata + 1
    8593      422012 :          data_tmp = full_data(idata)
    8594      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8595      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8596      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8597      422012 :          idata = idata + 1
    8598      422012 :          data_tmp = full_data(idata)
    8599      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8600      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8601      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8602      422012 :          idata = idata + 1
    8603      422012 :          data_tmp = full_data(idata)
    8604      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8605      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8606      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8607      422012 :          idata = idata + 1
    8608      422012 :          data_tmp = full_data(idata)
    8609      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8610      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8611      422012 :          pack_tmp = ISHFT(pack_tmp, -2)
    8612      422012 :          idata = idata + 1
    8613      422012 :          data_tmp = full_data(idata)
    8614      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8615      422012 :          data_tmp = IAND(data_tmp, mask_left(2))
    8616      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8617      422012 :          ipack = ipack + 1
    8618      422012 :          packed_data(ipack) = pack_tmp
    8619      422012 :          data_tmp = full_data(idata)
    8620      422012 :          pack_tmp = ISHFT(data_tmp, 53)
    8621      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8622      422012 :          idata = idata + 1
    8623      422012 :          data_tmp = full_data(idata)
    8624      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8625      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8626      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8627      422012 :          idata = idata + 1
    8628      422012 :          data_tmp = full_data(idata)
    8629      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8630      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8631      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8632      422012 :          idata = idata + 1
    8633      422012 :          data_tmp = full_data(idata)
    8634      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8635      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8636      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8637      422012 :          idata = idata + 1
    8638      422012 :          data_tmp = full_data(idata)
    8639      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8640      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8641      422012 :          pack_tmp = ISHFT(pack_tmp, -1)
    8642      422012 :          idata = idata + 1
    8643      422012 :          data_tmp = full_data(idata)
    8644      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8645      422012 :          data_tmp = IAND(data_tmp, mask_left(1))
    8646      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8647      422012 :          ipack = ipack + 1
    8648      422012 :          packed_data(ipack) = pack_tmp
    8649      422012 :          data_tmp = full_data(idata)
    8650      422012 :          pack_tmp = ISHFT(data_tmp, 52)
    8651      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8652      422012 :          idata = idata + 1
    8653      422012 :          data_tmp = full_data(idata)
    8654      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8655      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8656      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8657      422012 :          idata = idata + 1
    8658      422012 :          data_tmp = full_data(idata)
    8659      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8660      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8661      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8662      422012 :          idata = idata + 1
    8663      422012 :          data_tmp = full_data(idata)
    8664      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8665      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8666      422012 :          pack_tmp = ISHFT(pack_tmp, -13)
    8667      422012 :          idata = idata + 1
    8668      422012 :          data_tmp = full_data(idata)
    8669      422012 :          data_tmp = ISHFT(data_tmp, 51)
    8670      422012 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8671             :          pack_tmp = ISHFT(pack_tmp, 0)
    8672      422012 :          pack_tmp = ISHFT(pack_tmp, 0)
    8673      422012 :          ipack = ipack + 1
    8674      422082 :          packed_data(ipack) = pack_tmp
    8675             :       END DO
    8676       27147 :       IF (Ndata_rep < Ndata) THEN
    8677        1352 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8678             :       END IF
    8679       27147 :    END SUBROUTINE ints2bits_13
    8680             : 
    8681             : ! **************************************************************************************************
    8682             : !> \brief ...
    8683             : !> \param Ndata ...
    8684             : !> \param packed_data ...
    8685             : !> \param full_data ...
    8686             : ! **************************************************************************************************
    8687      122253 :    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      122253 :       ipack = 0
    8698      122253 :       idata = 0
    8699      122253 :       pack_tmp = 0
    8700      122253 :       Ndata_rep = (Ndata/64)*64
    8701      122253 :       DO kdata = 1, Ndata_rep, 64
    8702     1877341 :          idata = idata + 1
    8703     1877341 :          data_tmp = ISHFT(pack_tmp, 13)
    8704     1877341 :          ipack = ipack + 1
    8705     1877341 :          pack_tmp = packed_data(ipack)
    8706     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
    8707     1877341 :          pack_tmp = ISHFT(pack_tmp, -13)
    8708     1877341 :          idata = idata + 1
    8709     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8710     1877341 :          full_data(idata) = data_tmp
    8711     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8712     1877341 :          idata = idata + 1
    8713     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8714     1877341 :          full_data(idata) = data_tmp
    8715     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8716     1877341 :          idata = idata + 1
    8717     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8718     1877341 :          full_data(idata) = data_tmp
    8719     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8720     1877341 :          idata = idata + 1
    8721     1877341 :          data_tmp = ISHFT(pack_tmp, 1)
    8722     1877341 :          ipack = ipack + 1
    8723     1877341 :          pack_tmp = packed_data(ipack)
    8724     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    8725     1877341 :          pack_tmp = ISHFT(pack_tmp, -1)
    8726     1877341 :          idata = idata + 1
    8727     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8728     1877341 :          full_data(idata) = data_tmp
    8729     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8730     1877341 :          idata = idata + 1
    8731     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8732     1877341 :          full_data(idata) = data_tmp
    8733     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8734     1877341 :          idata = idata + 1
    8735     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8736     1877341 :          full_data(idata) = data_tmp
    8737     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8738     1877341 :          idata = idata + 1
    8739     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8740     1877341 :          full_data(idata) = data_tmp
    8741     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8742     1877341 :          idata = idata + 1
    8743     1877341 :          data_tmp = ISHFT(pack_tmp, 2)
    8744     1877341 :          ipack = ipack + 1
    8745     1877341 :          pack_tmp = packed_data(ipack)
    8746     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    8747     1877341 :          pack_tmp = ISHFT(pack_tmp, -2)
    8748     1877341 :          idata = idata + 1
    8749     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8750     1877341 :          full_data(idata) = data_tmp
    8751     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8752     1877341 :          idata = idata + 1
    8753     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8754     1877341 :          full_data(idata) = data_tmp
    8755     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8756     1877341 :          idata = idata + 1
    8757     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8758     1877341 :          full_data(idata) = data_tmp
    8759     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8760     1877341 :          idata = idata + 1
    8761     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8762     1877341 :          full_data(idata) = data_tmp
    8763     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8764     1877341 :          idata = idata + 1
    8765     1877341 :          data_tmp = ISHFT(pack_tmp, 3)
    8766     1877341 :          ipack = ipack + 1
    8767     1877341 :          pack_tmp = packed_data(ipack)
    8768     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    8769     1877341 :          pack_tmp = ISHFT(pack_tmp, -3)
    8770     1877341 :          idata = idata + 1
    8771     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8772     1877341 :          full_data(idata) = data_tmp
    8773     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8774     1877341 :          idata = idata + 1
    8775     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8776     1877341 :          full_data(idata) = data_tmp
    8777     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8778     1877341 :          idata = idata + 1
    8779     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8780     1877341 :          full_data(idata) = data_tmp
    8781     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8782     1877341 :          idata = idata + 1
    8783     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8784     1877341 :          full_data(idata) = data_tmp
    8785     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8786     1877341 :          idata = idata + 1
    8787     1877341 :          data_tmp = ISHFT(pack_tmp, 4)
    8788     1877341 :          ipack = ipack + 1
    8789     1877341 :          pack_tmp = packed_data(ipack)
    8790     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8791     1877341 :          pack_tmp = ISHFT(pack_tmp, -4)
    8792     1877341 :          idata = idata + 1
    8793     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8794     1877341 :          full_data(idata) = data_tmp
    8795     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8796     1877341 :          idata = idata + 1
    8797     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8798     1877341 :          full_data(idata) = data_tmp
    8799     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8800     1877341 :          idata = idata + 1
    8801     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8802     1877341 :          full_data(idata) = data_tmp
    8803     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8804     1877341 :          idata = idata + 1
    8805     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8806     1877341 :          full_data(idata) = data_tmp
    8807     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8808     1877341 :          idata = idata + 1
    8809     1877341 :          data_tmp = ISHFT(pack_tmp, 5)
    8810     1877341 :          ipack = ipack + 1
    8811     1877341 :          pack_tmp = packed_data(ipack)
    8812     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    8813     1877341 :          pack_tmp = ISHFT(pack_tmp, -5)
    8814     1877341 :          idata = idata + 1
    8815     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8816     1877341 :          full_data(idata) = data_tmp
    8817     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8818     1877341 :          idata = idata + 1
    8819     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8820     1877341 :          full_data(idata) = data_tmp
    8821     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8822     1877341 :          idata = idata + 1
    8823     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8824     1877341 :          full_data(idata) = data_tmp
    8825     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8826     1877341 :          idata = idata + 1
    8827     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8828     1877341 :          full_data(idata) = data_tmp
    8829     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8830     1877341 :          idata = idata + 1
    8831     1877341 :          data_tmp = ISHFT(pack_tmp, 6)
    8832     1877341 :          ipack = ipack + 1
    8833     1877341 :          pack_tmp = packed_data(ipack)
    8834     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    8835     1877341 :          pack_tmp = ISHFT(pack_tmp, -6)
    8836     1877341 :          idata = idata + 1
    8837     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8838     1877341 :          full_data(idata) = data_tmp
    8839     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8840     1877341 :          idata = idata + 1
    8841     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8842     1877341 :          full_data(idata) = data_tmp
    8843     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8844     1877341 :          idata = idata + 1
    8845     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8846     1877341 :          full_data(idata) = data_tmp
    8847     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8848     1877341 :          idata = idata + 1
    8849     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8850     1877341 :          full_data(idata) = data_tmp
    8851     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8852     1877341 :          idata = idata + 1
    8853     1877341 :          data_tmp = ISHFT(pack_tmp, 7)
    8854     1877341 :          ipack = ipack + 1
    8855     1877341 :          pack_tmp = packed_data(ipack)
    8856     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    8857     1877341 :          pack_tmp = ISHFT(pack_tmp, -7)
    8858     1877341 :          idata = idata + 1
    8859     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8860     1877341 :          full_data(idata) = data_tmp
    8861     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8862     1877341 :          idata = idata + 1
    8863     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8864     1877341 :          full_data(idata) = data_tmp
    8865     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8866     1877341 :          idata = idata + 1
    8867     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8868     1877341 :          full_data(idata) = data_tmp
    8869     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8870     1877341 :          idata = idata + 1
    8871     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8872     1877341 :          full_data(idata) = data_tmp
    8873     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8874     1877341 :          idata = idata + 1
    8875     1877341 :          data_tmp = ISHFT(pack_tmp, 8)
    8876     1877341 :          ipack = ipack + 1
    8877     1877341 :          pack_tmp = packed_data(ipack)
    8878     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8879     1877341 :          pack_tmp = ISHFT(pack_tmp, -8)
    8880     1877341 :          idata = idata + 1
    8881     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8882     1877341 :          full_data(idata) = data_tmp
    8883     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8884     1877341 :          idata = idata + 1
    8885     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8886     1877341 :          full_data(idata) = data_tmp
    8887     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8888     1877341 :          idata = idata + 1
    8889     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8890     1877341 :          full_data(idata) = data_tmp
    8891     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8892     1877341 :          idata = idata + 1
    8893     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8894     1877341 :          full_data(idata) = data_tmp
    8895     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8896     1877341 :          idata = idata + 1
    8897     1877341 :          data_tmp = ISHFT(pack_tmp, 9)
    8898     1877341 :          ipack = ipack + 1
    8899     1877341 :          pack_tmp = packed_data(ipack)
    8900     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    8901     1877341 :          pack_tmp = ISHFT(pack_tmp, -9)
    8902     1877341 :          idata = idata + 1
    8903     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8904     1877341 :          full_data(idata) = data_tmp
    8905     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8906     1877341 :          idata = idata + 1
    8907     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8908     1877341 :          full_data(idata) = data_tmp
    8909     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8910     1877341 :          idata = idata + 1
    8911     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8912     1877341 :          full_data(idata) = data_tmp
    8913     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8914     1877341 :          idata = idata + 1
    8915     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8916     1877341 :          full_data(idata) = data_tmp
    8917     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8918     1877341 :          idata = idata + 1
    8919     1877341 :          data_tmp = ISHFT(pack_tmp, 10)
    8920     1877341 :          ipack = ipack + 1
    8921     1877341 :          pack_tmp = packed_data(ipack)
    8922     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    8923     1877341 :          pack_tmp = ISHFT(pack_tmp, -10)
    8924     1877341 :          idata = idata + 1
    8925     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8926     1877341 :          full_data(idata) = data_tmp
    8927     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8928     1877341 :          idata = idata + 1
    8929     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8930     1877341 :          full_data(idata) = data_tmp
    8931     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8932     1877341 :          idata = idata + 1
    8933     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8934     1877341 :          full_data(idata) = data_tmp
    8935     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8936     1877341 :          idata = idata + 1
    8937     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8938     1877341 :          full_data(idata) = data_tmp
    8939     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8940     1877341 :          idata = idata + 1
    8941     1877341 :          data_tmp = ISHFT(pack_tmp, 11)
    8942     1877341 :          ipack = ipack + 1
    8943     1877341 :          pack_tmp = packed_data(ipack)
    8944     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    8945     1877341 :          pack_tmp = ISHFT(pack_tmp, -11)
    8946     1877341 :          idata = idata + 1
    8947     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8948     1877341 :          full_data(idata) = data_tmp
    8949     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8950     1877341 :          idata = idata + 1
    8951     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8952     1877341 :          full_data(idata) = data_tmp
    8953     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8954     1877341 :          idata = idata + 1
    8955     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8956     1877341 :          full_data(idata) = data_tmp
    8957     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8958     1877341 :          idata = idata + 1
    8959     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8960     1877341 :          full_data(idata) = data_tmp
    8961     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8962     1877341 :          idata = idata + 1
    8963     1877341 :          data_tmp = ISHFT(pack_tmp, 12)
    8964     1877341 :          ipack = ipack + 1
    8965     1877341 :          pack_tmp = packed_data(ipack)
    8966     1877341 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8967     1877341 :          pack_tmp = ISHFT(pack_tmp, -12)
    8968     1877341 :          idata = idata + 1
    8969     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8970     1877341 :          full_data(idata) = data_tmp
    8971     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8972     1877341 :          idata = idata + 1
    8973     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8974     1877341 :          full_data(idata) = data_tmp
    8975     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8976     1877341 :          idata = idata + 1
    8977     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8978     1877341 :          full_data(idata) = data_tmp
    8979     1877341 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8980     1877341 :          idata = idata + 1
    8981     1877341 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8982     1877341 :          full_data(idata) = data_tmp
    8983     1877777 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8984             :       END DO
    8985      122253 :       IF (Ndata_rep < Ndata) THEN
    8986        8678 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8987             :       END IF
    8988      122253 :    END SUBROUTINE bits2ints_13
    8989             : 
    8990             : ! **************************************************************************************************
    8991             : !> \brief ...
    8992             : !> \param Ndata ...
    8993             : !> \param packed_data ...
    8994             : !> \param full_data ...
    8995             : ! **************************************************************************************************
    8996       26562 :    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       26562 :       idata = 0
    9007       26562 :       ipack = 0
    9008       26562 :       Ndata_rep = (Ndata/64)*64
    9009       26562 :       DO kdata = 1, Ndata_rep, 64
    9010      413620 :          pack_tmp = 0
    9011      413620 :          idata = idata + 1
    9012      413620 :          data_tmp = full_data(idata)
    9013      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9014      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9015      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9016      413620 :          idata = idata + 1
    9017      413620 :          data_tmp = full_data(idata)
    9018      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9019      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9020      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9021      413620 :          idata = idata + 1
    9022      413620 :          data_tmp = full_data(idata)
    9023      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9024      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9025      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9026      413620 :          idata = idata + 1
    9027      413620 :          data_tmp = full_data(idata)
    9028      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9029      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9030      413620 :          pack_tmp = ISHFT(pack_tmp, -8)
    9031      413620 :          idata = idata + 1
    9032      413620 :          data_tmp = full_data(idata)
    9033      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9034      413620 :          data_tmp = IAND(data_tmp, mask_left(8))
    9035      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9036      413620 :          ipack = ipack + 1
    9037      413620 :          packed_data(ipack) = pack_tmp
    9038      413620 :          data_tmp = full_data(idata)
    9039      413620 :          pack_tmp = ISHFT(data_tmp, 58)
    9040      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9041      413620 :          idata = idata + 1
    9042      413620 :          data_tmp = full_data(idata)
    9043      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9044      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9045      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9046      413620 :          idata = idata + 1
    9047      413620 :          data_tmp = full_data(idata)
    9048      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9049      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9050      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9051      413620 :          idata = idata + 1
    9052      413620 :          data_tmp = full_data(idata)
    9053      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9054      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9055      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9056      413620 :          idata = idata + 1
    9057      413620 :          data_tmp = full_data(idata)
    9058      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9059      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9060      413620 :          pack_tmp = ISHFT(pack_tmp, -2)
    9061      413620 :          idata = idata + 1
    9062      413620 :          data_tmp = full_data(idata)
    9063      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9064      413620 :          data_tmp = IAND(data_tmp, mask_left(2))
    9065      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9066      413620 :          ipack = ipack + 1
    9067      413620 :          packed_data(ipack) = pack_tmp
    9068      413620 :          data_tmp = full_data(idata)
    9069      413620 :          pack_tmp = ISHFT(data_tmp, 52)
    9070      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9071      413620 :          idata = idata + 1
    9072      413620 :          data_tmp = full_data(idata)
    9073      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9074      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9075      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9076      413620 :          idata = idata + 1
    9077      413620 :          data_tmp = full_data(idata)
    9078      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9079      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9080      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9081      413620 :          idata = idata + 1
    9082      413620 :          data_tmp = full_data(idata)
    9083      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9084      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9085      413620 :          pack_tmp = ISHFT(pack_tmp, -10)
    9086      413620 :          idata = idata + 1
    9087      413620 :          data_tmp = full_data(idata)
    9088      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9089      413620 :          data_tmp = IAND(data_tmp, mask_left(10))
    9090      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9091      413620 :          ipack = ipack + 1
    9092      413620 :          packed_data(ipack) = pack_tmp
    9093      413620 :          data_tmp = full_data(idata)
    9094      413620 :          pack_tmp = ISHFT(data_tmp, 60)
    9095      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9096      413620 :          idata = idata + 1
    9097      413620 :          data_tmp = full_data(idata)
    9098      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9099      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9100      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9101      413620 :          idata = idata + 1
    9102      413620 :          data_tmp = full_data(idata)
    9103      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9104      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9105      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9106      413620 :          idata = idata + 1
    9107      413620 :          data_tmp = full_data(idata)
    9108      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9109      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9110      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9111      413620 :          idata = idata + 1
    9112      413620 :          data_tmp = full_data(idata)
    9113      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9114      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9115      413620 :          pack_tmp = ISHFT(pack_tmp, -4)
    9116      413620 :          idata = idata + 1
    9117      413620 :          data_tmp = full_data(idata)
    9118      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9119      413620 :          data_tmp = IAND(data_tmp, mask_left(4))
    9120      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9121      413620 :          ipack = ipack + 1
    9122      413620 :          packed_data(ipack) = pack_tmp
    9123      413620 :          data_tmp = full_data(idata)
    9124      413620 :          pack_tmp = ISHFT(data_tmp, 54)
    9125      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9126      413620 :          idata = idata + 1
    9127      413620 :          data_tmp = full_data(idata)
    9128      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9129      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9130      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9131      413620 :          idata = idata + 1
    9132      413620 :          data_tmp = full_data(idata)
    9133      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9134      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9135      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9136      413620 :          idata = idata + 1
    9137      413620 :          data_tmp = full_data(idata)
    9138      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9139      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9140      413620 :          pack_tmp = ISHFT(pack_tmp, -12)
    9141      413620 :          idata = idata + 1
    9142      413620 :          data_tmp = full_data(idata)
    9143      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9144      413620 :          data_tmp = IAND(data_tmp, mask_left(12))
    9145      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9146      413620 :          ipack = ipack + 1
    9147      413620 :          packed_data(ipack) = pack_tmp
    9148      413620 :          data_tmp = full_data(idata)
    9149      413620 :          pack_tmp = ISHFT(data_tmp, 62)
    9150      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9151      413620 :          idata = idata + 1
    9152      413620 :          data_tmp = full_data(idata)
    9153      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9154      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9155      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9156      413620 :          idata = idata + 1
    9157      413620 :          data_tmp = full_data(idata)
    9158      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9159      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9160      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9161      413620 :          idata = idata + 1
    9162      413620 :          data_tmp = full_data(idata)
    9163      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9164      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9165      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9166      413620 :          idata = idata + 1
    9167      413620 :          data_tmp = full_data(idata)
    9168      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9169      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9170      413620 :          pack_tmp = ISHFT(pack_tmp, -6)
    9171      413620 :          idata = idata + 1
    9172      413620 :          data_tmp = full_data(idata)
    9173      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9174      413620 :          data_tmp = IAND(data_tmp, mask_left(6))
    9175      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9176      413620 :          ipack = ipack + 1
    9177      413620 :          packed_data(ipack) = pack_tmp
    9178      413620 :          data_tmp = full_data(idata)
    9179      413620 :          pack_tmp = ISHFT(data_tmp, 56)
    9180      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9181      413620 :          idata = idata + 1
    9182      413620 :          data_tmp = full_data(idata)
    9183      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9184      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9185      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9186      413620 :          idata = idata + 1
    9187      413620 :          data_tmp = full_data(idata)
    9188      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9189      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9190      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9191      413620 :          idata = idata + 1
    9192      413620 :          data_tmp = full_data(idata)
    9193      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9194      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9195      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9196      413620 :          idata = idata + 1
    9197      413620 :          data_tmp = full_data(idata)
    9198      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9199      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9200      413620 :          pack_tmp = ISHFT(pack_tmp, 0)
    9201      413620 :          idata = idata + 1
    9202      413620 :          data_tmp = full_data(idata)
    9203      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9204      413620 :          data_tmp = IAND(data_tmp, mask_left(0))
    9205      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9206      413620 :          ipack = ipack + 1
    9207      413620 :          packed_data(ipack) = pack_tmp
    9208      413620 :          data_tmp = full_data(idata)
    9209      413620 :          pack_tmp = ISHFT(data_tmp, 50)
    9210      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9211      413620 :          idata = idata + 1
    9212      413620 :          data_tmp = full_data(idata)
    9213      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9214      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9215      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9216      413620 :          idata = idata + 1
    9217      413620 :          data_tmp = full_data(idata)
    9218      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9219      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9220      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9221      413620 :          idata = idata + 1
    9222      413620 :          data_tmp = full_data(idata)
    9223      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9224      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9225      413620 :          pack_tmp = ISHFT(pack_tmp, -8)
    9226      413620 :          idata = idata + 1
    9227      413620 :          data_tmp = full_data(idata)
    9228      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9229      413620 :          data_tmp = IAND(data_tmp, mask_left(8))
    9230      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9231      413620 :          ipack = ipack + 1
    9232      413620 :          packed_data(ipack) = pack_tmp
    9233      413620 :          data_tmp = full_data(idata)
    9234      413620 :          pack_tmp = ISHFT(data_tmp, 58)
    9235      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9236      413620 :          idata = idata + 1
    9237      413620 :          data_tmp = full_data(idata)
    9238      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9239      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9240      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9241      413620 :          idata = idata + 1
    9242      413620 :          data_tmp = full_data(idata)
    9243      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9244      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9245      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9246      413620 :          idata = idata + 1
    9247      413620 :          data_tmp = full_data(idata)
    9248      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9249      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9250      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9251      413620 :          idata = idata + 1
    9252      413620 :          data_tmp = full_data(idata)
    9253      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9254      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9255      413620 :          pack_tmp = ISHFT(pack_tmp, -2)
    9256      413620 :          idata = idata + 1
    9257      413620 :          data_tmp = full_data(idata)
    9258      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9259      413620 :          data_tmp = IAND(data_tmp, mask_left(2))
    9260      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9261      413620 :          ipack = ipack + 1
    9262      413620 :          packed_data(ipack) = pack_tmp
    9263      413620 :          data_tmp = full_data(idata)
    9264      413620 :          pack_tmp = ISHFT(data_tmp, 52)
    9265      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9266      413620 :          idata = idata + 1
    9267      413620 :          data_tmp = full_data(idata)
    9268      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9269      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9270      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9271      413620 :          idata = idata + 1
    9272      413620 :          data_tmp = full_data(idata)
    9273      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9274      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9275      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9276      413620 :          idata = idata + 1
    9277      413620 :          data_tmp = full_data(idata)
    9278      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9279      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9280      413620 :          pack_tmp = ISHFT(pack_tmp, -10)
    9281      413620 :          idata = idata + 1
    9282      413620 :          data_tmp = full_data(idata)
    9283      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9284      413620 :          data_tmp = IAND(data_tmp, mask_left(10))
    9285      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9286      413620 :          ipack = ipack + 1
    9287      413620 :          packed_data(ipack) = pack_tmp
    9288      413620 :          data_tmp = full_data(idata)
    9289      413620 :          pack_tmp = ISHFT(data_tmp, 60)
    9290      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9291      413620 :          idata = idata + 1
    9292      413620 :          data_tmp = full_data(idata)
    9293      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9294      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9295      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9296      413620 :          idata = idata + 1
    9297      413620 :          data_tmp = full_data(idata)
    9298      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9299      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9300      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9301      413620 :          idata = idata + 1
    9302      413620 :          data_tmp = full_data(idata)
    9303      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9304      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9305      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9306      413620 :          idata = idata + 1
    9307      413620 :          data_tmp = full_data(idata)
    9308      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9309      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9310      413620 :          pack_tmp = ISHFT(pack_tmp, -4)
    9311      413620 :          idata = idata + 1
    9312      413620 :          data_tmp = full_data(idata)
    9313      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9314      413620 :          data_tmp = IAND(data_tmp, mask_left(4))
    9315      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9316      413620 :          ipack = ipack + 1
    9317      413620 :          packed_data(ipack) = pack_tmp
    9318      413620 :          data_tmp = full_data(idata)
    9319      413620 :          pack_tmp = ISHFT(data_tmp, 54)
    9320      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9321      413620 :          idata = idata + 1
    9322      413620 :          data_tmp = full_data(idata)
    9323      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9324      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9325      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9326      413620 :          idata = idata + 1
    9327      413620 :          data_tmp = full_data(idata)
    9328      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9329      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9330      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9331      413620 :          idata = idata + 1
    9332      413620 :          data_tmp = full_data(idata)
    9333      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9334      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9335      413620 :          pack_tmp = ISHFT(pack_tmp, -12)
    9336      413620 :          idata = idata + 1
    9337      413620 :          data_tmp = full_data(idata)
    9338      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9339      413620 :          data_tmp = IAND(data_tmp, mask_left(12))
    9340      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9341      413620 :          ipack = ipack + 1
    9342      413620 :          packed_data(ipack) = pack_tmp
    9343      413620 :          data_tmp = full_data(idata)
    9344      413620 :          pack_tmp = ISHFT(data_tmp, 62)
    9345      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9346      413620 :          idata = idata + 1
    9347      413620 :          data_tmp = full_data(idata)
    9348      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9349      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9350      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9351      413620 :          idata = idata + 1
    9352      413620 :          data_tmp = full_data(idata)
    9353      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9354      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9355      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9356      413620 :          idata = idata + 1
    9357      413620 :          data_tmp = full_data(idata)
    9358      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9359      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9360      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9361      413620 :          idata = idata + 1
    9362      413620 :          data_tmp = full_data(idata)
    9363      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9364      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9365      413620 :          pack_tmp = ISHFT(pack_tmp, -6)
    9366      413620 :          idata = idata + 1
    9367      413620 :          data_tmp = full_data(idata)
    9368      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9369      413620 :          data_tmp = IAND(data_tmp, mask_left(6))
    9370      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9371      413620 :          ipack = ipack + 1
    9372      413620 :          packed_data(ipack) = pack_tmp
    9373      413620 :          data_tmp = full_data(idata)
    9374      413620 :          pack_tmp = ISHFT(data_tmp, 56)
    9375      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9376      413620 :          idata = idata + 1
    9377      413620 :          data_tmp = full_data(idata)
    9378      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9379      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9380      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9381      413620 :          idata = idata + 1
    9382      413620 :          data_tmp = full_data(idata)
    9383      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9384      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9385      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9386      413620 :          idata = idata + 1
    9387      413620 :          data_tmp = full_data(idata)
    9388      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9389      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9390      413620 :          pack_tmp = ISHFT(pack_tmp, -14)
    9391      413620 :          idata = idata + 1
    9392      413620 :          data_tmp = full_data(idata)
    9393      413620 :          data_tmp = ISHFT(data_tmp, 50)
    9394      413620 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9395             :          pack_tmp = ISHFT(pack_tmp, 0)
    9396      413620 :          pack_tmp = ISHFT(pack_tmp, 0)
    9397      413620 :          ipack = ipack + 1
    9398      413680 :          packed_data(ipack) = pack_tmp
    9399             :       END DO
    9400       26562 :       IF (Ndata_rep < Ndata) THEN
    9401        1272 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9402             :       END IF
    9403       26562 :    END SUBROUTINE ints2bits_14
    9404             : 
    9405             : ! **************************************************************************************************
    9406             : !> \brief ...
    9407             : !> \param Ndata ...
    9408             : !> \param packed_data ...
    9409             : !> \param full_data ...
    9410             : ! **************************************************************************************************
    9411      113651 :    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      113651 :       ipack = 0
    9422      113651 :       idata = 0
    9423      113651 :       pack_tmp = 0
    9424      113651 :       Ndata_rep = (Ndata/64)*64
    9425      113651 :       DO kdata = 1, Ndata_rep, 64
    9426     1761638 :          idata = idata + 1
    9427     1761638 :          data_tmp = ISHFT(pack_tmp, 14)
    9428     1761638 :          ipack = ipack + 1
    9429     1761638 :          pack_tmp = packed_data(ipack)
    9430     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9431     1761638 :          pack_tmp = ISHFT(pack_tmp, -14)
    9432     1761638 :          idata = idata + 1
    9433     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9434     1761638 :          full_data(idata) = data_tmp
    9435     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9436     1761638 :          idata = idata + 1
    9437     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9438     1761638 :          full_data(idata) = data_tmp
    9439     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9440     1761638 :          idata = idata + 1
    9441     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9442     1761638 :          full_data(idata) = data_tmp
    9443     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9444     1761638 :          idata = idata + 1
    9445     1761638 :          data_tmp = ISHFT(pack_tmp, 6)
    9446     1761638 :          ipack = ipack + 1
    9447     1761638 :          pack_tmp = packed_data(ipack)
    9448     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9449     1761638 :          pack_tmp = ISHFT(pack_tmp, -6)
    9450     1761638 :          idata = idata + 1
    9451     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9452     1761638 :          full_data(idata) = data_tmp
    9453     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9454     1761638 :          idata = idata + 1
    9455     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9456     1761638 :          full_data(idata) = data_tmp
    9457     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9458     1761638 :          idata = idata + 1
    9459     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9460     1761638 :          full_data(idata) = data_tmp
    9461     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9462     1761638 :          idata = idata + 1
    9463     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9464     1761638 :          full_data(idata) = data_tmp
    9465     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9466     1761638 :          idata = idata + 1
    9467     1761638 :          data_tmp = ISHFT(pack_tmp, 12)
    9468     1761638 :          ipack = ipack + 1
    9469     1761638 :          pack_tmp = packed_data(ipack)
    9470     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9471     1761638 :          pack_tmp = ISHFT(pack_tmp, -12)
    9472     1761638 :          idata = idata + 1
    9473     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9474     1761638 :          full_data(idata) = data_tmp
    9475     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9476     1761638 :          idata = idata + 1
    9477     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9478     1761638 :          full_data(idata) = data_tmp
    9479     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9480     1761638 :          idata = idata + 1
    9481     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9482     1761638 :          full_data(idata) = data_tmp
    9483     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9484     1761638 :          idata = idata + 1
    9485     1761638 :          data_tmp = ISHFT(pack_tmp, 4)
    9486     1761638 :          ipack = ipack + 1
    9487     1761638 :          pack_tmp = packed_data(ipack)
    9488     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9489     1761638 :          pack_tmp = ISHFT(pack_tmp, -4)
    9490     1761638 :          idata = idata + 1
    9491     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9492     1761638 :          full_data(idata) = data_tmp
    9493     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9494     1761638 :          idata = idata + 1
    9495     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9496     1761638 :          full_data(idata) = data_tmp
    9497     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9498     1761638 :          idata = idata + 1
    9499     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9500     1761638 :          full_data(idata) = data_tmp
    9501     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9502     1761638 :          idata = idata + 1
    9503     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9504     1761638 :          full_data(idata) = data_tmp
    9505     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9506     1761638 :          idata = idata + 1
    9507     1761638 :          data_tmp = ISHFT(pack_tmp, 10)
    9508     1761638 :          ipack = ipack + 1
    9509     1761638 :          pack_tmp = packed_data(ipack)
    9510     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9511     1761638 :          pack_tmp = ISHFT(pack_tmp, -10)
    9512     1761638 :          idata = idata + 1
    9513     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9514     1761638 :          full_data(idata) = data_tmp
    9515     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9516     1761638 :          idata = idata + 1
    9517     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9518     1761638 :          full_data(idata) = data_tmp
    9519     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9520     1761638 :          idata = idata + 1
    9521     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9522     1761638 :          full_data(idata) = data_tmp
    9523     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9524     1761638 :          idata = idata + 1
    9525     1761638 :          data_tmp = ISHFT(pack_tmp, 2)
    9526     1761638 :          ipack = ipack + 1
    9527     1761638 :          pack_tmp = packed_data(ipack)
    9528     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9529     1761638 :          pack_tmp = ISHFT(pack_tmp, -2)
    9530     1761638 :          idata = idata + 1
    9531     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9532     1761638 :          full_data(idata) = data_tmp
    9533     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9534     1761638 :          idata = idata + 1
    9535     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9536     1761638 :          full_data(idata) = data_tmp
    9537     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9538     1761638 :          idata = idata + 1
    9539     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9540     1761638 :          full_data(idata) = data_tmp
    9541     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9542     1761638 :          idata = idata + 1
    9543     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9544     1761638 :          full_data(idata) = data_tmp
    9545     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9546     1761638 :          idata = idata + 1
    9547     1761638 :          data_tmp = ISHFT(pack_tmp, 8)
    9548     1761638 :          ipack = ipack + 1
    9549     1761638 :          pack_tmp = packed_data(ipack)
    9550     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9551     1761638 :          pack_tmp = ISHFT(pack_tmp, -8)
    9552     1761638 :          idata = idata + 1
    9553     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9554     1761638 :          full_data(idata) = data_tmp
    9555     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9556     1761638 :          idata = idata + 1
    9557     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9558     1761638 :          full_data(idata) = data_tmp
    9559     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9560     1761638 :          idata = idata + 1
    9561     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9562     1761638 :          full_data(idata) = data_tmp
    9563     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9564     1761638 :          idata = idata + 1
    9565     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9566     1761638 :          full_data(idata) = data_tmp
    9567     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9568     1761638 :          idata = idata + 1
    9569     1761638 :          data_tmp = ISHFT(pack_tmp, 14)
    9570     1761638 :          ipack = ipack + 1
    9571     1761638 :          pack_tmp = packed_data(ipack)
    9572     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9573     1761638 :          pack_tmp = ISHFT(pack_tmp, -14)
    9574     1761638 :          idata = idata + 1
    9575     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9576     1761638 :          full_data(idata) = data_tmp
    9577     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9578     1761638 :          idata = idata + 1
    9579     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9580     1761638 :          full_data(idata) = data_tmp
    9581     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9582     1761638 :          idata = idata + 1
    9583     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9584     1761638 :          full_data(idata) = data_tmp
    9585     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9586     1761638 :          idata = idata + 1
    9587     1761638 :          data_tmp = ISHFT(pack_tmp, 6)
    9588     1761638 :          ipack = ipack + 1
    9589     1761638 :          pack_tmp = packed_data(ipack)
    9590     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9591     1761638 :          pack_tmp = ISHFT(pack_tmp, -6)
    9592     1761638 :          idata = idata + 1
    9593     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9594     1761638 :          full_data(idata) = data_tmp
    9595     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9596     1761638 :          idata = idata + 1
    9597     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9598     1761638 :          full_data(idata) = data_tmp
    9599     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9600     1761638 :          idata = idata + 1
    9601     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9602     1761638 :          full_data(idata) = data_tmp
    9603     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9604     1761638 :          idata = idata + 1
    9605     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9606     1761638 :          full_data(idata) = data_tmp
    9607     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9608     1761638 :          idata = idata + 1
    9609     1761638 :          data_tmp = ISHFT(pack_tmp, 12)
    9610     1761638 :          ipack = ipack + 1
    9611     1761638 :          pack_tmp = packed_data(ipack)
    9612     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9613     1761638 :          pack_tmp = ISHFT(pack_tmp, -12)
    9614     1761638 :          idata = idata + 1
    9615     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9616     1761638 :          full_data(idata) = data_tmp
    9617     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9618     1761638 :          idata = idata + 1
    9619     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9620     1761638 :          full_data(idata) = data_tmp
    9621     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9622     1761638 :          idata = idata + 1
    9623     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9624     1761638 :          full_data(idata) = data_tmp
    9625     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9626     1761638 :          idata = idata + 1
    9627     1761638 :          data_tmp = ISHFT(pack_tmp, 4)
    9628     1761638 :          ipack = ipack + 1
    9629     1761638 :          pack_tmp = packed_data(ipack)
    9630     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9631     1761638 :          pack_tmp = ISHFT(pack_tmp, -4)
    9632     1761638 :          idata = idata + 1
    9633     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9634     1761638 :          full_data(idata) = data_tmp
    9635     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9636     1761638 :          idata = idata + 1
    9637     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9638     1761638 :          full_data(idata) = data_tmp
    9639     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9640     1761638 :          idata = idata + 1
    9641     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9642     1761638 :          full_data(idata) = data_tmp
    9643     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9644     1761638 :          idata = idata + 1
    9645     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9646     1761638 :          full_data(idata) = data_tmp
    9647     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9648     1761638 :          idata = idata + 1
    9649     1761638 :          data_tmp = ISHFT(pack_tmp, 10)
    9650     1761638 :          ipack = ipack + 1
    9651     1761638 :          pack_tmp = packed_data(ipack)
    9652     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9653     1761638 :          pack_tmp = ISHFT(pack_tmp, -10)
    9654     1761638 :          idata = idata + 1
    9655     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9656     1761638 :          full_data(idata) = data_tmp
    9657     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9658     1761638 :          idata = idata + 1
    9659     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9660     1761638 :          full_data(idata) = data_tmp
    9661     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9662     1761638 :          idata = idata + 1
    9663     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9664     1761638 :          full_data(idata) = data_tmp
    9665     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9666     1761638 :          idata = idata + 1
    9667     1761638 :          data_tmp = ISHFT(pack_tmp, 2)
    9668     1761638 :          ipack = ipack + 1
    9669     1761638 :          pack_tmp = packed_data(ipack)
    9670     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9671     1761638 :          pack_tmp = ISHFT(pack_tmp, -2)
    9672     1761638 :          idata = idata + 1
    9673     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9674     1761638 :          full_data(idata) = data_tmp
    9675     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9676     1761638 :          idata = idata + 1
    9677     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9678     1761638 :          full_data(idata) = data_tmp
    9679     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9680     1761638 :          idata = idata + 1
    9681     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9682     1761638 :          full_data(idata) = data_tmp
    9683     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9684     1761638 :          idata = idata + 1
    9685     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9686     1761638 :          full_data(idata) = data_tmp
    9687     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9688     1761638 :          idata = idata + 1
    9689     1761638 :          data_tmp = ISHFT(pack_tmp, 8)
    9690     1761638 :          ipack = ipack + 1
    9691     1761638 :          pack_tmp = packed_data(ipack)
    9692     1761638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9693     1761638 :          pack_tmp = ISHFT(pack_tmp, -8)
    9694     1761638 :          idata = idata + 1
    9695     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9696     1761638 :          full_data(idata) = data_tmp
    9697     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9698     1761638 :          idata = idata + 1
    9699     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9700     1761638 :          full_data(idata) = data_tmp
    9701     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9702     1761638 :          idata = idata + 1
    9703     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9704     1761638 :          full_data(idata) = data_tmp
    9705     1761638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9706     1761638 :          idata = idata + 1
    9707     1761638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9708     1761638 :          full_data(idata) = data_tmp
    9709     1761955 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9710             :       END DO
    9711      113651 :       IF (Ndata_rep < Ndata) THEN
    9712        6324 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9713             :       END IF
    9714      113651 :    END SUBROUTINE bits2ints_14
    9715             : 
    9716             : ! **************************************************************************************************
    9717             : !> \brief ...
    9718             : !> \param Ndata ...
    9719             : !> \param packed_data ...
    9720             : !> \param full_data ...
    9721             : ! **************************************************************************************************
    9722       26954 :    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       26954 :       idata = 0
    9733       26954 :       ipack = 0
    9734       26954 :       Ndata_rep = (Ndata/64)*64
    9735       26954 :       DO kdata = 1, Ndata_rep, 64
    9736      417987 :          pack_tmp = 0
    9737      417987 :          idata = idata + 1
    9738      417987 :          data_tmp = full_data(idata)
    9739      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9740      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9741      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9742      417987 :          idata = idata + 1
    9743      417987 :          data_tmp = full_data(idata)
    9744      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9745      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9746      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9747      417987 :          idata = idata + 1
    9748      417987 :          data_tmp = full_data(idata)
    9749      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9750      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9751      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9752      417987 :          idata = idata + 1
    9753      417987 :          data_tmp = full_data(idata)
    9754      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9755      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9756      417987 :          pack_tmp = ISHFT(pack_tmp, -4)
    9757      417987 :          idata = idata + 1
    9758      417987 :          data_tmp = full_data(idata)
    9759      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9760      417987 :          data_tmp = IAND(data_tmp, mask_left(4))
    9761      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9762      417987 :          ipack = ipack + 1
    9763      417987 :          packed_data(ipack) = pack_tmp
    9764      417987 :          data_tmp = full_data(idata)
    9765      417987 :          pack_tmp = ISHFT(data_tmp, 53)
    9766      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9767      417987 :          idata = idata + 1
    9768      417987 :          data_tmp = full_data(idata)
    9769      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9770      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9771      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9772      417987 :          idata = idata + 1
    9773      417987 :          data_tmp = full_data(idata)
    9774      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9775      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9776      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9777      417987 :          idata = idata + 1
    9778      417987 :          data_tmp = full_data(idata)
    9779      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9780      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9781      417987 :          pack_tmp = ISHFT(pack_tmp, -8)
    9782      417987 :          idata = idata + 1
    9783      417987 :          data_tmp = full_data(idata)
    9784      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9785      417987 :          data_tmp = IAND(data_tmp, mask_left(8))
    9786      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9787      417987 :          ipack = ipack + 1
    9788      417987 :          packed_data(ipack) = pack_tmp
    9789      417987 :          data_tmp = full_data(idata)
    9790      417987 :          pack_tmp = ISHFT(data_tmp, 57)
    9791      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9792      417987 :          idata = idata + 1
    9793      417987 :          data_tmp = full_data(idata)
    9794      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9795      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9796      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9797      417987 :          idata = idata + 1
    9798      417987 :          data_tmp = full_data(idata)
    9799      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9800      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9801      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9802      417987 :          idata = idata + 1
    9803      417987 :          data_tmp = full_data(idata)
    9804      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9805      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9806      417987 :          pack_tmp = ISHFT(pack_tmp, -12)
    9807      417987 :          idata = idata + 1
    9808      417987 :          data_tmp = full_data(idata)
    9809      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9810      417987 :          data_tmp = IAND(data_tmp, mask_left(12))
    9811      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9812      417987 :          ipack = ipack + 1
    9813      417987 :          packed_data(ipack) = pack_tmp
    9814      417987 :          data_tmp = full_data(idata)
    9815      417987 :          pack_tmp = ISHFT(data_tmp, 61)
    9816      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9817      417987 :          idata = idata + 1
    9818      417987 :          data_tmp = full_data(idata)
    9819      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9820      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9821      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9822      417987 :          idata = idata + 1
    9823      417987 :          data_tmp = full_data(idata)
    9824      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9825      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9826      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9827      417987 :          idata = idata + 1
    9828      417987 :          data_tmp = full_data(idata)
    9829      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9830      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9831      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9832      417987 :          idata = idata + 1
    9833      417987 :          data_tmp = full_data(idata)
    9834      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9835      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9836      417987 :          pack_tmp = ISHFT(pack_tmp, -1)
    9837      417987 :          idata = idata + 1
    9838      417987 :          data_tmp = full_data(idata)
    9839      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9840      417987 :          data_tmp = IAND(data_tmp, mask_left(1))
    9841      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9842      417987 :          ipack = ipack + 1
    9843      417987 :          packed_data(ipack) = pack_tmp
    9844      417987 :          data_tmp = full_data(idata)
    9845      417987 :          pack_tmp = ISHFT(data_tmp, 50)
    9846      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9847      417987 :          idata = idata + 1
    9848      417987 :          data_tmp = full_data(idata)
    9849      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9850      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9851      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9852      417987 :          idata = idata + 1
    9853      417987 :          data_tmp = full_data(idata)
    9854      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9855      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9856      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9857      417987 :          idata = idata + 1
    9858      417987 :          data_tmp = full_data(idata)
    9859      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9860      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9861      417987 :          pack_tmp = ISHFT(pack_tmp, -5)
    9862      417987 :          idata = idata + 1
    9863      417987 :          data_tmp = full_data(idata)
    9864      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9865      417987 :          data_tmp = IAND(data_tmp, mask_left(5))
    9866      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9867      417987 :          ipack = ipack + 1
    9868      417987 :          packed_data(ipack) = pack_tmp
    9869      417987 :          data_tmp = full_data(idata)
    9870      417987 :          pack_tmp = ISHFT(data_tmp, 54)
    9871      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9872      417987 :          idata = idata + 1
    9873      417987 :          data_tmp = full_data(idata)
    9874      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9875      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9876      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9877      417987 :          idata = idata + 1
    9878      417987 :          data_tmp = full_data(idata)
    9879      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9880      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9881      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9882      417987 :          idata = idata + 1
    9883      417987 :          data_tmp = full_data(idata)
    9884      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9885      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9886      417987 :          pack_tmp = ISHFT(pack_tmp, -9)
    9887      417987 :          idata = idata + 1
    9888      417987 :          data_tmp = full_data(idata)
    9889      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9890      417987 :          data_tmp = IAND(data_tmp, mask_left(9))
    9891      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9892      417987 :          ipack = ipack + 1
    9893      417987 :          packed_data(ipack) = pack_tmp
    9894      417987 :          data_tmp = full_data(idata)
    9895      417987 :          pack_tmp = ISHFT(data_tmp, 58)
    9896      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9897      417987 :          idata = idata + 1
    9898      417987 :          data_tmp = full_data(idata)
    9899      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9900      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9901      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9902      417987 :          idata = idata + 1
    9903      417987 :          data_tmp = full_data(idata)
    9904      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9905      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9906      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9907      417987 :          idata = idata + 1
    9908      417987 :          data_tmp = full_data(idata)
    9909      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9910      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9911      417987 :          pack_tmp = ISHFT(pack_tmp, -13)
    9912      417987 :          idata = idata + 1
    9913      417987 :          data_tmp = full_data(idata)
    9914      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9915      417987 :          data_tmp = IAND(data_tmp, mask_left(13))
    9916      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9917      417987 :          ipack = ipack + 1
    9918      417987 :          packed_data(ipack) = pack_tmp
    9919      417987 :          data_tmp = full_data(idata)
    9920      417987 :          pack_tmp = ISHFT(data_tmp, 62)
    9921      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9922      417987 :          idata = idata + 1
    9923      417987 :          data_tmp = full_data(idata)
    9924      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9925      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9926      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9927      417987 :          idata = idata + 1
    9928      417987 :          data_tmp = full_data(idata)
    9929      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9930      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9931      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9932      417987 :          idata = idata + 1
    9933      417987 :          data_tmp = full_data(idata)
    9934      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9935      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9936      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9937      417987 :          idata = idata + 1
    9938      417987 :          data_tmp = full_data(idata)
    9939      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9940      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9941      417987 :          pack_tmp = ISHFT(pack_tmp, -2)
    9942      417987 :          idata = idata + 1
    9943      417987 :          data_tmp = full_data(idata)
    9944      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9945      417987 :          data_tmp = IAND(data_tmp, mask_left(2))
    9946      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9947      417987 :          ipack = ipack + 1
    9948      417987 :          packed_data(ipack) = pack_tmp
    9949      417987 :          data_tmp = full_data(idata)
    9950      417987 :          pack_tmp = ISHFT(data_tmp, 51)
    9951      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9952      417987 :          idata = idata + 1
    9953      417987 :          data_tmp = full_data(idata)
    9954      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9955      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9956      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9957      417987 :          idata = idata + 1
    9958      417987 :          data_tmp = full_data(idata)
    9959      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9960      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9961      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9962      417987 :          idata = idata + 1
    9963      417987 :          data_tmp = full_data(idata)
    9964      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9965      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9966      417987 :          pack_tmp = ISHFT(pack_tmp, -6)
    9967      417987 :          idata = idata + 1
    9968      417987 :          data_tmp = full_data(idata)
    9969      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9970      417987 :          data_tmp = IAND(data_tmp, mask_left(6))
    9971      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9972      417987 :          ipack = ipack + 1
    9973      417987 :          packed_data(ipack) = pack_tmp
    9974      417987 :          data_tmp = full_data(idata)
    9975      417987 :          pack_tmp = ISHFT(data_tmp, 55)
    9976      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9977      417987 :          idata = idata + 1
    9978      417987 :          data_tmp = full_data(idata)
    9979      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9980      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9981      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9982      417987 :          idata = idata + 1
    9983      417987 :          data_tmp = full_data(idata)
    9984      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9985      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9986      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
    9987      417987 :          idata = idata + 1
    9988      417987 :          data_tmp = full_data(idata)
    9989      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9990      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9991      417987 :          pack_tmp = ISHFT(pack_tmp, -10)
    9992      417987 :          idata = idata + 1
    9993      417987 :          data_tmp = full_data(idata)
    9994      417987 :          data_tmp = ISHFT(data_tmp, 49)
    9995      417987 :          data_tmp = IAND(data_tmp, mask_left(10))
    9996      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9997      417987 :          ipack = ipack + 1
    9998      417987 :          packed_data(ipack) = pack_tmp
    9999      417987 :          data_tmp = full_data(idata)
   10000      417987 :          pack_tmp = ISHFT(data_tmp, 59)
   10001      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10002      417987 :          idata = idata + 1
   10003      417987 :          data_tmp = full_data(idata)
   10004      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10005      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10006      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10007      417987 :          idata = idata + 1
   10008      417987 :          data_tmp = full_data(idata)
   10009      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10010      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10011      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10012      417987 :          idata = idata + 1
   10013      417987 :          data_tmp = full_data(idata)
   10014      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10015      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10016      417987 :          pack_tmp = ISHFT(pack_tmp, -14)
   10017      417987 :          idata = idata + 1
   10018      417987 :          data_tmp = full_data(idata)
   10019      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10020      417987 :          data_tmp = IAND(data_tmp, mask_left(14))
   10021      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10022      417987 :          ipack = ipack + 1
   10023      417987 :          packed_data(ipack) = pack_tmp
   10024      417987 :          data_tmp = full_data(idata)
   10025      417987 :          pack_tmp = ISHFT(data_tmp, 63)
   10026      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10027      417987 :          idata = idata + 1
   10028      417987 :          data_tmp = full_data(idata)
   10029      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10030      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10031      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10032      417987 :          idata = idata + 1
   10033      417987 :          data_tmp = full_data(idata)
   10034      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10035      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10036      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10037      417987 :          idata = idata + 1
   10038      417987 :          data_tmp = full_data(idata)
   10039      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10040      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10041      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10042      417987 :          idata = idata + 1
   10043      417987 :          data_tmp = full_data(idata)
   10044      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10045      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10046      417987 :          pack_tmp = ISHFT(pack_tmp, -3)
   10047      417987 :          idata = idata + 1
   10048      417987 :          data_tmp = full_data(idata)
   10049      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10050      417987 :          data_tmp = IAND(data_tmp, mask_left(3))
   10051      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10052      417987 :          ipack = ipack + 1
   10053      417987 :          packed_data(ipack) = pack_tmp
   10054      417987 :          data_tmp = full_data(idata)
   10055      417987 :          pack_tmp = ISHFT(data_tmp, 52)
   10056      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10057      417987 :          idata = idata + 1
   10058      417987 :          data_tmp = full_data(idata)
   10059      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10060      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10061      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10062      417987 :          idata = idata + 1
   10063      417987 :          data_tmp = full_data(idata)
   10064      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10065      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10066      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10067      417987 :          idata = idata + 1
   10068      417987 :          data_tmp = full_data(idata)
   10069      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10070      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10071      417987 :          pack_tmp = ISHFT(pack_tmp, -7)
   10072      417987 :          idata = idata + 1
   10073      417987 :          data_tmp = full_data(idata)
   10074      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10075      417987 :          data_tmp = IAND(data_tmp, mask_left(7))
   10076      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10077      417987 :          ipack = ipack + 1
   10078      417987 :          packed_data(ipack) = pack_tmp
   10079      417987 :          data_tmp = full_data(idata)
   10080      417987 :          pack_tmp = ISHFT(data_tmp, 56)
   10081      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10082      417987 :          idata = idata + 1
   10083      417987 :          data_tmp = full_data(idata)
   10084      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10085      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10086      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10087      417987 :          idata = idata + 1
   10088      417987 :          data_tmp = full_data(idata)
   10089      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10090      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10091      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10092      417987 :          idata = idata + 1
   10093      417987 :          data_tmp = full_data(idata)
   10094      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10095      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10096      417987 :          pack_tmp = ISHFT(pack_tmp, -11)
   10097      417987 :          idata = idata + 1
   10098      417987 :          data_tmp = full_data(idata)
   10099      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10100      417987 :          data_tmp = IAND(data_tmp, mask_left(11))
   10101      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10102      417987 :          ipack = ipack + 1
   10103      417987 :          packed_data(ipack) = pack_tmp
   10104      417987 :          data_tmp = full_data(idata)
   10105      417987 :          pack_tmp = ISHFT(data_tmp, 60)
   10106      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10107      417987 :          idata = idata + 1
   10108      417987 :          data_tmp = full_data(idata)
   10109      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10110      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10111      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10112      417987 :          idata = idata + 1
   10113      417987 :          data_tmp = full_data(idata)
   10114      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10115      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10116      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10117      417987 :          idata = idata + 1
   10118      417987 :          data_tmp = full_data(idata)
   10119      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10120      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10121      417987 :          pack_tmp = ISHFT(pack_tmp, -15)
   10122      417987 :          idata = idata + 1
   10123      417987 :          data_tmp = full_data(idata)
   10124      417987 :          data_tmp = ISHFT(data_tmp, 49)
   10125      417987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10126             :          pack_tmp = ISHFT(pack_tmp, 0)
   10127      417987 :          pack_tmp = ISHFT(pack_tmp, 0)
   10128      417987 :          ipack = ipack + 1
   10129      418088 :          packed_data(ipack) = pack_tmp
   10130             :       END DO
   10131       26954 :       IF (Ndata_rep < Ndata) THEN
   10132        1562 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10133             :       END IF
   10134       26954 :    END SUBROUTINE ints2bits_15
   10135             : 
   10136             : ! **************************************************************************************************
   10137             : !> \brief ...
   10138             : !> \param Ndata ...
   10139             : !> \param packed_data ...
   10140             : !> \param full_data ...
   10141             : ! **************************************************************************************************
   10142      115333 :    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      115333 :       ipack = 0
   10153      115333 :       idata = 0
   10154      115333 :       pack_tmp = 0
   10155      115333 :       Ndata_rep = (Ndata/64)*64
   10156      115333 :       DO kdata = 1, Ndata_rep, 64
   10157     1778756 :          idata = idata + 1
   10158     1778756 :          data_tmp = ISHFT(pack_tmp, 15)
   10159     1778756 :          ipack = ipack + 1
   10160     1778756 :          pack_tmp = packed_data(ipack)
   10161     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   10162     1778756 :          pack_tmp = ISHFT(pack_tmp, -15)
   10163     1778756 :          idata = idata + 1
   10164     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10165     1778756 :          full_data(idata) = data_tmp
   10166     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10167     1778756 :          idata = idata + 1
   10168     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10169     1778756 :          full_data(idata) = data_tmp
   10170     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10171     1778756 :          idata = idata + 1
   10172     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10173     1778756 :          full_data(idata) = data_tmp
   10174     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10175     1778756 :          idata = idata + 1
   10176     1778756 :          data_tmp = ISHFT(pack_tmp, 11)
   10177     1778756 :          ipack = ipack + 1
   10178     1778756 :          pack_tmp = packed_data(ipack)
   10179     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   10180     1778756 :          pack_tmp = ISHFT(pack_tmp, -11)
   10181     1778756 :          idata = idata + 1
   10182     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10183     1778756 :          full_data(idata) = data_tmp
   10184     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10185     1778756 :          idata = idata + 1
   10186     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10187     1778756 :          full_data(idata) = data_tmp
   10188     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10189     1778756 :          idata = idata + 1
   10190     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10191     1778756 :          full_data(idata) = data_tmp
   10192     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10193     1778756 :          idata = idata + 1
   10194     1778756 :          data_tmp = ISHFT(pack_tmp, 7)
   10195     1778756 :          ipack = ipack + 1
   10196     1778756 :          pack_tmp = packed_data(ipack)
   10197     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   10198     1778756 :          pack_tmp = ISHFT(pack_tmp, -7)
   10199     1778756 :          idata = idata + 1
   10200     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10201     1778756 :          full_data(idata) = data_tmp
   10202     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10203     1778756 :          idata = idata + 1
   10204     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10205     1778756 :          full_data(idata) = data_tmp
   10206     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10207     1778756 :          idata = idata + 1
   10208     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10209     1778756 :          full_data(idata) = data_tmp
   10210     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10211     1778756 :          idata = idata + 1
   10212     1778756 :          data_tmp = ISHFT(pack_tmp, 3)
   10213     1778756 :          ipack = ipack + 1
   10214     1778756 :          pack_tmp = packed_data(ipack)
   10215     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   10216     1778756 :          pack_tmp = ISHFT(pack_tmp, -3)
   10217     1778756 :          idata = idata + 1
   10218     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10219     1778756 :          full_data(idata) = data_tmp
   10220     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10221     1778756 :          idata = idata + 1
   10222     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10223     1778756 :          full_data(idata) = data_tmp
   10224     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10225     1778756 :          idata = idata + 1
   10226     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10227     1778756 :          full_data(idata) = data_tmp
   10228     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10229     1778756 :          idata = idata + 1
   10230     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10231     1778756 :          full_data(idata) = data_tmp
   10232     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10233     1778756 :          idata = idata + 1
   10234     1778756 :          data_tmp = ISHFT(pack_tmp, 14)
   10235     1778756 :          ipack = ipack + 1
   10236     1778756 :          pack_tmp = packed_data(ipack)
   10237     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   10238     1778756 :          pack_tmp = ISHFT(pack_tmp, -14)
   10239     1778756 :          idata = idata + 1
   10240     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10241     1778756 :          full_data(idata) = data_tmp
   10242     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10243     1778756 :          idata = idata + 1
   10244     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10245     1778756 :          full_data(idata) = data_tmp
   10246     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10247     1778756 :          idata = idata + 1
   10248     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10249     1778756 :          full_data(idata) = data_tmp
   10250     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10251     1778756 :          idata = idata + 1
   10252     1778756 :          data_tmp = ISHFT(pack_tmp, 10)
   10253     1778756 :          ipack = ipack + 1
   10254     1778756 :          pack_tmp = packed_data(ipack)
   10255     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   10256     1778756 :          pack_tmp = ISHFT(pack_tmp, -10)
   10257     1778756 :          idata = idata + 1
   10258     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10259     1778756 :          full_data(idata) = data_tmp
   10260     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10261     1778756 :          idata = idata + 1
   10262     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10263     1778756 :          full_data(idata) = data_tmp
   10264     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10265     1778756 :          idata = idata + 1
   10266     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10267     1778756 :          full_data(idata) = data_tmp
   10268     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10269     1778756 :          idata = idata + 1
   10270     1778756 :          data_tmp = ISHFT(pack_tmp, 6)
   10271     1778756 :          ipack = ipack + 1
   10272     1778756 :          pack_tmp = packed_data(ipack)
   10273     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   10274     1778756 :          pack_tmp = ISHFT(pack_tmp, -6)
   10275     1778756 :          idata = idata + 1
   10276     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10277     1778756 :          full_data(idata) = data_tmp
   10278     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10279     1778756 :          idata = idata + 1
   10280     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10281     1778756 :          full_data(idata) = data_tmp
   10282     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10283     1778756 :          idata = idata + 1
   10284     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10285     1778756 :          full_data(idata) = data_tmp
   10286     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10287     1778756 :          idata = idata + 1
   10288     1778756 :          data_tmp = ISHFT(pack_tmp, 2)
   10289     1778756 :          ipack = ipack + 1
   10290     1778756 :          pack_tmp = packed_data(ipack)
   10291     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   10292     1778756 :          pack_tmp = ISHFT(pack_tmp, -2)
   10293     1778756 :          idata = idata + 1
   10294     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10295     1778756 :          full_data(idata) = data_tmp
   10296     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10297     1778756 :          idata = idata + 1
   10298     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10299     1778756 :          full_data(idata) = data_tmp
   10300     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10301     1778756 :          idata = idata + 1
   10302     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10303     1778756 :          full_data(idata) = data_tmp
   10304     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10305     1778756 :          idata = idata + 1
   10306     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10307     1778756 :          full_data(idata) = data_tmp
   10308     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10309     1778756 :          idata = idata + 1
   10310     1778756 :          data_tmp = ISHFT(pack_tmp, 13)
   10311     1778756 :          ipack = ipack + 1
   10312     1778756 :          pack_tmp = packed_data(ipack)
   10313     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   10314     1778756 :          pack_tmp = ISHFT(pack_tmp, -13)
   10315     1778756 :          idata = idata + 1
   10316     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10317     1778756 :          full_data(idata) = data_tmp
   10318     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10319     1778756 :          idata = idata + 1
   10320     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10321     1778756 :          full_data(idata) = data_tmp
   10322     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10323     1778756 :          idata = idata + 1
   10324     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10325     1778756 :          full_data(idata) = data_tmp
   10326     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10327     1778756 :          idata = idata + 1
   10328     1778756 :          data_tmp = ISHFT(pack_tmp, 9)
   10329     1778756 :          ipack = ipack + 1
   10330     1778756 :          pack_tmp = packed_data(ipack)
   10331     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   10332     1778756 :          pack_tmp = ISHFT(pack_tmp, -9)
   10333     1778756 :          idata = idata + 1
   10334     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10335     1778756 :          full_data(idata) = data_tmp
   10336     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10337     1778756 :          idata = idata + 1
   10338     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10339     1778756 :          full_data(idata) = data_tmp
   10340     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10341     1778756 :          idata = idata + 1
   10342     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10343     1778756 :          full_data(idata) = data_tmp
   10344     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10345     1778756 :          idata = idata + 1
   10346     1778756 :          data_tmp = ISHFT(pack_tmp, 5)
   10347     1778756 :          ipack = ipack + 1
   10348     1778756 :          pack_tmp = packed_data(ipack)
   10349     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   10350     1778756 :          pack_tmp = ISHFT(pack_tmp, -5)
   10351     1778756 :          idata = idata + 1
   10352     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10353     1778756 :          full_data(idata) = data_tmp
   10354     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10355     1778756 :          idata = idata + 1
   10356     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10357     1778756 :          full_data(idata) = data_tmp
   10358     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10359     1778756 :          idata = idata + 1
   10360     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10361     1778756 :          full_data(idata) = data_tmp
   10362     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10363     1778756 :          idata = idata + 1
   10364     1778756 :          data_tmp = ISHFT(pack_tmp, 1)
   10365     1778756 :          ipack = ipack + 1
   10366     1778756 :          pack_tmp = packed_data(ipack)
   10367     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   10368     1778756 :          pack_tmp = ISHFT(pack_tmp, -1)
   10369     1778756 :          idata = idata + 1
   10370     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10371     1778756 :          full_data(idata) = data_tmp
   10372     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10373     1778756 :          idata = idata + 1
   10374     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10375     1778756 :          full_data(idata) = data_tmp
   10376     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10377     1778756 :          idata = idata + 1
   10378     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10379     1778756 :          full_data(idata) = data_tmp
   10380     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10381     1778756 :          idata = idata + 1
   10382     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10383     1778756 :          full_data(idata) = data_tmp
   10384     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10385     1778756 :          idata = idata + 1
   10386     1778756 :          data_tmp = ISHFT(pack_tmp, 12)
   10387     1778756 :          ipack = ipack + 1
   10388     1778756 :          pack_tmp = packed_data(ipack)
   10389     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   10390     1778756 :          pack_tmp = ISHFT(pack_tmp, -12)
   10391     1778756 :          idata = idata + 1
   10392     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10393     1778756 :          full_data(idata) = data_tmp
   10394     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10395     1778756 :          idata = idata + 1
   10396     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10397     1778756 :          full_data(idata) = data_tmp
   10398     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10399     1778756 :          idata = idata + 1
   10400     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10401     1778756 :          full_data(idata) = data_tmp
   10402     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10403     1778756 :          idata = idata + 1
   10404     1778756 :          data_tmp = ISHFT(pack_tmp, 8)
   10405     1778756 :          ipack = ipack + 1
   10406     1778756 :          pack_tmp = packed_data(ipack)
   10407     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   10408     1778756 :          pack_tmp = ISHFT(pack_tmp, -8)
   10409     1778756 :          idata = idata + 1
   10410     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10411     1778756 :          full_data(idata) = data_tmp
   10412     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10413     1778756 :          idata = idata + 1
   10414     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10415     1778756 :          full_data(idata) = data_tmp
   10416     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10417     1778756 :          idata = idata + 1
   10418     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10419     1778756 :          full_data(idata) = data_tmp
   10420     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10421     1778756 :          idata = idata + 1
   10422     1778756 :          data_tmp = ISHFT(pack_tmp, 4)
   10423     1778756 :          ipack = ipack + 1
   10424     1778756 :          pack_tmp = packed_data(ipack)
   10425     1778756 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   10426     1778756 :          pack_tmp = ISHFT(pack_tmp, -4)
   10427     1778756 :          idata = idata + 1
   10428     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10429     1778756 :          full_data(idata) = data_tmp
   10430     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10431     1778756 :          idata = idata + 1
   10432     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10433     1778756 :          full_data(idata) = data_tmp
   10434     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10435     1778756 :          idata = idata + 1
   10436     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10437     1778756 :          full_data(idata) = data_tmp
   10438     1778756 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10439     1778756 :          idata = idata + 1
   10440     1778756 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10441     1778756 :          full_data(idata) = data_tmp
   10442     1779242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10443             :       END DO
   10444      115333 :       IF (Ndata_rep < Ndata) THEN
   10445        7832 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10446             :       END IF
   10447      115333 :    END SUBROUTINE bits2ints_15
   10448             : 
   10449             : ! **************************************************************************************************
   10450             : !> \brief ...
   10451             : !> \param Ndata ...
   10452             : !> \param packed_data ...
   10453             : !> \param full_data ...
   10454             : ! **************************************************************************************************
   10455       27702 :    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       27702 :       idata = 0
   10466       27702 :       ipack = 0
   10467       27702 :       Ndata_rep = (Ndata/64)*64
   10468       27702 :       DO kdata = 1, Ndata_rep, 64
   10469      428112 :          pack_tmp = 0
   10470      428112 :          idata = idata + 1
   10471      428112 :          data_tmp = full_data(idata)
   10472      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10473      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10474      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10475      428112 :          idata = idata + 1
   10476      428112 :          data_tmp = full_data(idata)
   10477      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10478      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10479      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10480      428112 :          idata = idata + 1
   10481      428112 :          data_tmp = full_data(idata)
   10482      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10483      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10484      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10485      428112 :          idata = idata + 1
   10486      428112 :          data_tmp = full_data(idata)
   10487      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10488      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10489      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10490      428112 :          idata = idata + 1
   10491      428112 :          data_tmp = full_data(idata)
   10492      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10493      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10494      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10495      428112 :          ipack = ipack + 1
   10496      428112 :          packed_data(ipack) = pack_tmp
   10497      428112 :          data_tmp = full_data(idata)
   10498      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10499      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10500      428112 :          idata = idata + 1
   10501      428112 :          data_tmp = full_data(idata)
   10502      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10503      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10504      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10505      428112 :          idata = idata + 1
   10506      428112 :          data_tmp = full_data(idata)
   10507      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10508      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10509      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10510      428112 :          idata = idata + 1
   10511      428112 :          data_tmp = full_data(idata)
   10512      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10513      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10514      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10515      428112 :          idata = idata + 1
   10516      428112 :          data_tmp = full_data(idata)
   10517      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10518      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10519      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10520      428112 :          ipack = ipack + 1
   10521      428112 :          packed_data(ipack) = pack_tmp
   10522      428112 :          data_tmp = full_data(idata)
   10523      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10524      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10525      428112 :          idata = idata + 1
   10526      428112 :          data_tmp = full_data(idata)
   10527      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10528      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10529      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10530      428112 :          idata = idata + 1
   10531      428112 :          data_tmp = full_data(idata)
   10532      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10533      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10534      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10535      428112 :          idata = idata + 1
   10536      428112 :          data_tmp = full_data(idata)
   10537      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10538      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10539      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10540      428112 :          idata = idata + 1
   10541      428112 :          data_tmp = full_data(idata)
   10542      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10543      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10544      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10545      428112 :          ipack = ipack + 1
   10546      428112 :          packed_data(ipack) = pack_tmp
   10547      428112 :          data_tmp = full_data(idata)
   10548      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10549      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10550      428112 :          idata = idata + 1
   10551      428112 :          data_tmp = full_data(idata)
   10552      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10553      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10554      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10555      428112 :          idata = idata + 1
   10556      428112 :          data_tmp = full_data(idata)
   10557      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10558      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10559      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10560      428112 :          idata = idata + 1
   10561      428112 :          data_tmp = full_data(idata)
   10562      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10563      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10564      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10565      428112 :          idata = idata + 1
   10566      428112 :          data_tmp = full_data(idata)
   10567      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10568      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10569      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10570      428112 :          ipack = ipack + 1
   10571      428112 :          packed_data(ipack) = pack_tmp
   10572      428112 :          data_tmp = full_data(idata)
   10573      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10574      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10575      428112 :          idata = idata + 1
   10576      428112 :          data_tmp = full_data(idata)
   10577      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10578      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10579      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10580      428112 :          idata = idata + 1
   10581      428112 :          data_tmp = full_data(idata)
   10582      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10583      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10584      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10585      428112 :          idata = idata + 1
   10586      428112 :          data_tmp = full_data(idata)
   10587      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10588      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10589      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10590      428112 :          idata = idata + 1
   10591      428112 :          data_tmp = full_data(idata)
   10592      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10593      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10594      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10595      428112 :          ipack = ipack + 1
   10596      428112 :          packed_data(ipack) = pack_tmp
   10597      428112 :          data_tmp = full_data(idata)
   10598      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10599      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10600      428112 :          idata = idata + 1
   10601      428112 :          data_tmp = full_data(idata)
   10602      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10603      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10604      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10605      428112 :          idata = idata + 1
   10606      428112 :          data_tmp = full_data(idata)
   10607      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10608      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10609      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10610      428112 :          idata = idata + 1
   10611      428112 :          data_tmp = full_data(idata)
   10612      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10613      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10614      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10615      428112 :          idata = idata + 1
   10616      428112 :          data_tmp = full_data(idata)
   10617      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10618      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10619      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10620      428112 :          ipack = ipack + 1
   10621      428112 :          packed_data(ipack) = pack_tmp
   10622      428112 :          data_tmp = full_data(idata)
   10623      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10624      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10625      428112 :          idata = idata + 1
   10626      428112 :          data_tmp = full_data(idata)
   10627      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10628      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10629      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10630      428112 :          idata = idata + 1
   10631      428112 :          data_tmp = full_data(idata)
   10632      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10633      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10634      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10635      428112 :          idata = idata + 1
   10636      428112 :          data_tmp = full_data(idata)
   10637      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10638      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10639      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10640      428112 :          idata = idata + 1
   10641      428112 :          data_tmp = full_data(idata)
   10642      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10643      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10644      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10645      428112 :          ipack = ipack + 1
   10646      428112 :          packed_data(ipack) = pack_tmp
   10647      428112 :          data_tmp = full_data(idata)
   10648      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10649      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10650      428112 :          idata = idata + 1
   10651      428112 :          data_tmp = full_data(idata)
   10652      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10653      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10654      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10655      428112 :          idata = idata + 1
   10656      428112 :          data_tmp = full_data(idata)
   10657      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10658      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10659      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10660      428112 :          idata = idata + 1
   10661      428112 :          data_tmp = full_data(idata)
   10662      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10663      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10664      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10665      428112 :          idata = idata + 1
   10666      428112 :          data_tmp = full_data(idata)
   10667      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10668      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10669      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10670      428112 :          ipack = ipack + 1
   10671      428112 :          packed_data(ipack) = pack_tmp
   10672      428112 :          data_tmp = full_data(idata)
   10673      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10674      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10675      428112 :          idata = idata + 1
   10676      428112 :          data_tmp = full_data(idata)
   10677      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10678      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10679      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10680      428112 :          idata = idata + 1
   10681      428112 :          data_tmp = full_data(idata)
   10682      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10683      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10684      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10685      428112 :          idata = idata + 1
   10686      428112 :          data_tmp = full_data(idata)
   10687      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10688      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10689      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10690      428112 :          idata = idata + 1
   10691      428112 :          data_tmp = full_data(idata)
   10692      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10693      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10694      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10695      428112 :          ipack = ipack + 1
   10696      428112 :          packed_data(ipack) = pack_tmp
   10697      428112 :          data_tmp = full_data(idata)
   10698      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10699      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10700      428112 :          idata = idata + 1
   10701      428112 :          data_tmp = full_data(idata)
   10702      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10703      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10704      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10705      428112 :          idata = idata + 1
   10706      428112 :          data_tmp = full_data(idata)
   10707      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10708      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10709      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10710      428112 :          idata = idata + 1
   10711      428112 :          data_tmp = full_data(idata)
   10712      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10713      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10714      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10715      428112 :          idata = idata + 1
   10716      428112 :          data_tmp = full_data(idata)
   10717      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10718      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10719      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10720      428112 :          ipack = ipack + 1
   10721      428112 :          packed_data(ipack) = pack_tmp
   10722      428112 :          data_tmp = full_data(idata)
   10723      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10724      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10725      428112 :          idata = idata + 1
   10726      428112 :          data_tmp = full_data(idata)
   10727      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10728      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10729      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10730      428112 :          idata = idata + 1
   10731      428112 :          data_tmp = full_data(idata)
   10732      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10733      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10734      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10735      428112 :          idata = idata + 1
   10736      428112 :          data_tmp = full_data(idata)
   10737      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10738      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10739      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10740      428112 :          idata = idata + 1
   10741      428112 :          data_tmp = full_data(idata)
   10742      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10743      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10744      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10745      428112 :          ipack = ipack + 1
   10746      428112 :          packed_data(ipack) = pack_tmp
   10747      428112 :          data_tmp = full_data(idata)
   10748      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10749      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10750      428112 :          idata = idata + 1
   10751      428112 :          data_tmp = full_data(idata)
   10752      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10753      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10754      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10755      428112 :          idata = idata + 1
   10756      428112 :          data_tmp = full_data(idata)
   10757      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10758      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10759      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10760      428112 :          idata = idata + 1
   10761      428112 :          data_tmp = full_data(idata)
   10762      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10763      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10764      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10765      428112 :          idata = idata + 1
   10766      428112 :          data_tmp = full_data(idata)
   10767      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10768      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10769      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10770      428112 :          ipack = ipack + 1
   10771      428112 :          packed_data(ipack) = pack_tmp
   10772      428112 :          data_tmp = full_data(idata)
   10773      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10774      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10775      428112 :          idata = idata + 1
   10776      428112 :          data_tmp = full_data(idata)
   10777      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10778      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10779      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10780      428112 :          idata = idata + 1
   10781      428112 :          data_tmp = full_data(idata)
   10782      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10783      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10784      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10785      428112 :          idata = idata + 1
   10786      428112 :          data_tmp = full_data(idata)
   10787      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10788      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10789      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10790      428112 :          idata = idata + 1
   10791      428112 :          data_tmp = full_data(idata)
   10792      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10793      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10794      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10795      428112 :          ipack = ipack + 1
   10796      428112 :          packed_data(ipack) = pack_tmp
   10797      428112 :          data_tmp = full_data(idata)
   10798      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10799      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10800      428112 :          idata = idata + 1
   10801      428112 :          data_tmp = full_data(idata)
   10802      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10803      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10804      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10805      428112 :          idata = idata + 1
   10806      428112 :          data_tmp = full_data(idata)
   10807      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10808      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10809      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10810      428112 :          idata = idata + 1
   10811      428112 :          data_tmp = full_data(idata)
   10812      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10813      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10814      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10815      428112 :          idata = idata + 1
   10816      428112 :          data_tmp = full_data(idata)
   10817      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10818      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10819      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10820      428112 :          ipack = ipack + 1
   10821      428112 :          packed_data(ipack) = pack_tmp
   10822      428112 :          data_tmp = full_data(idata)
   10823      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10824      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10825      428112 :          idata = idata + 1
   10826      428112 :          data_tmp = full_data(idata)
   10827      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10828      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10829      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10830      428112 :          idata = idata + 1
   10831      428112 :          data_tmp = full_data(idata)
   10832      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10833      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10834      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10835      428112 :          idata = idata + 1
   10836      428112 :          data_tmp = full_data(idata)
   10837      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10838      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10839      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10840      428112 :          idata = idata + 1
   10841      428112 :          data_tmp = full_data(idata)
   10842      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10843      428112 :          data_tmp = IAND(data_tmp, mask_left(0))
   10844      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10845      428112 :          ipack = ipack + 1
   10846      428112 :          packed_data(ipack) = pack_tmp
   10847      428112 :          data_tmp = full_data(idata)
   10848      428112 :          pack_tmp = ISHFT(data_tmp, 48)
   10849      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10850      428112 :          idata = idata + 1
   10851      428112 :          data_tmp = full_data(idata)
   10852      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10853      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10854      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10855      428112 :          idata = idata + 1
   10856      428112 :          data_tmp = full_data(idata)
   10857      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10858      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10859      428112 :          pack_tmp = ISHFT(pack_tmp, -16)
   10860      428112 :          idata = idata + 1
   10861      428112 :          data_tmp = full_data(idata)
   10862      428112 :          data_tmp = ISHFT(data_tmp, 48)
   10863      428112 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10864             :          pack_tmp = ISHFT(pack_tmp, 0)
   10865      428112 :          pack_tmp = ISHFT(pack_tmp, 0)
   10866      428112 :          ipack = ipack + 1
   10867      429057 :          packed_data(ipack) = pack_tmp
   10868             :       END DO
   10869       27702 :       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       27702 :    END SUBROUTINE ints2bits_16
   10873             : 
   10874             : ! **************************************************************************************************
   10875             : !> \brief ...
   10876             : !> \param Ndata ...
   10877             : !> \param packed_data ...
   10878             : !> \param full_data ...
   10879             : ! **************************************************************************************************
   10880      130301 :    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      130301 :       ipack = 0
   10891      130301 :       idata = 0
   10892      130301 :       pack_tmp = 0
   10893      130301 :       Ndata_rep = (Ndata/64)*64
   10894      130301 :       DO kdata = 1, Ndata_rep, 64
   10895     1976512 :          idata = idata + 1
   10896     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10897     1976512 :          ipack = ipack + 1
   10898     1976512 :          pack_tmp = packed_data(ipack)
   10899     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10900     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10901     1976512 :          idata = idata + 1
   10902     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10903     1976512 :          full_data(idata) = data_tmp
   10904     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10905     1976512 :          idata = idata + 1
   10906     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10907     1976512 :          full_data(idata) = data_tmp
   10908     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10909     1976512 :          idata = idata + 1
   10910     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10911     1976512 :          full_data(idata) = data_tmp
   10912     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10913     1976512 :          idata = idata + 1
   10914     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10915     1976512 :          ipack = ipack + 1
   10916     1976512 :          pack_tmp = packed_data(ipack)
   10917     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10918     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10919     1976512 :          idata = idata + 1
   10920     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10921     1976512 :          full_data(idata) = data_tmp
   10922     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10923     1976512 :          idata = idata + 1
   10924     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10925     1976512 :          full_data(idata) = data_tmp
   10926     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10927     1976512 :          idata = idata + 1
   10928     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10929     1976512 :          full_data(idata) = data_tmp
   10930     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10931     1976512 :          idata = idata + 1
   10932     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10933     1976512 :          ipack = ipack + 1
   10934     1976512 :          pack_tmp = packed_data(ipack)
   10935     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10936     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10937     1976512 :          idata = idata + 1
   10938     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10939     1976512 :          full_data(idata) = data_tmp
   10940     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10941     1976512 :          idata = idata + 1
   10942     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10943     1976512 :          full_data(idata) = data_tmp
   10944     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10945     1976512 :          idata = idata + 1
   10946     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10947     1976512 :          full_data(idata) = data_tmp
   10948     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10949     1976512 :          idata = idata + 1
   10950     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10951     1976512 :          ipack = ipack + 1
   10952     1976512 :          pack_tmp = packed_data(ipack)
   10953     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10954     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10955     1976512 :          idata = idata + 1
   10956     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10957     1976512 :          full_data(idata) = data_tmp
   10958     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10959     1976512 :          idata = idata + 1
   10960     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10961     1976512 :          full_data(idata) = data_tmp
   10962     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10963     1976512 :          idata = idata + 1
   10964     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10965     1976512 :          full_data(idata) = data_tmp
   10966     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10967     1976512 :          idata = idata + 1
   10968     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10969     1976512 :          ipack = ipack + 1
   10970     1976512 :          pack_tmp = packed_data(ipack)
   10971     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10972     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10973     1976512 :          idata = idata + 1
   10974     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10975     1976512 :          full_data(idata) = data_tmp
   10976     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10977     1976512 :          idata = idata + 1
   10978     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10979     1976512 :          full_data(idata) = data_tmp
   10980     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10981     1976512 :          idata = idata + 1
   10982     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10983     1976512 :          full_data(idata) = data_tmp
   10984     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10985     1976512 :          idata = idata + 1
   10986     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   10987     1976512 :          ipack = ipack + 1
   10988     1976512 :          pack_tmp = packed_data(ipack)
   10989     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10990     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   10991     1976512 :          idata = idata + 1
   10992     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10993     1976512 :          full_data(idata) = data_tmp
   10994     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10995     1976512 :          idata = idata + 1
   10996     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10997     1976512 :          full_data(idata) = data_tmp
   10998     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10999     1976512 :          idata = idata + 1
   11000     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11001     1976512 :          full_data(idata) = data_tmp
   11002     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11003     1976512 :          idata = idata + 1
   11004     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11005     1976512 :          ipack = ipack + 1
   11006     1976512 :          pack_tmp = packed_data(ipack)
   11007     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11008     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11009     1976512 :          idata = idata + 1
   11010     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11011     1976512 :          full_data(idata) = data_tmp
   11012     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11013     1976512 :          idata = idata + 1
   11014     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11015     1976512 :          full_data(idata) = data_tmp
   11016     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11017     1976512 :          idata = idata + 1
   11018     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11019     1976512 :          full_data(idata) = data_tmp
   11020     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11021     1976512 :          idata = idata + 1
   11022     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11023     1976512 :          ipack = ipack + 1
   11024     1976512 :          pack_tmp = packed_data(ipack)
   11025     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11026     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11027     1976512 :          idata = idata + 1
   11028     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11029     1976512 :          full_data(idata) = data_tmp
   11030     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11031     1976512 :          idata = idata + 1
   11032     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11033     1976512 :          full_data(idata) = data_tmp
   11034     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11035     1976512 :          idata = idata + 1
   11036     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11037     1976512 :          full_data(idata) = data_tmp
   11038     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11039     1976512 :          idata = idata + 1
   11040     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11041     1976512 :          ipack = ipack + 1
   11042     1976512 :          pack_tmp = packed_data(ipack)
   11043     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11044     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11045     1976512 :          idata = idata + 1
   11046     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11047     1976512 :          full_data(idata) = data_tmp
   11048     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11049     1976512 :          idata = idata + 1
   11050     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11051     1976512 :          full_data(idata) = data_tmp
   11052     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11053     1976512 :          idata = idata + 1
   11054     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11055     1976512 :          full_data(idata) = data_tmp
   11056     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11057     1976512 :          idata = idata + 1
   11058     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11059     1976512 :          ipack = ipack + 1
   11060     1976512 :          pack_tmp = packed_data(ipack)
   11061     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11062     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11063     1976512 :          idata = idata + 1
   11064     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11065     1976512 :          full_data(idata) = data_tmp
   11066     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11067     1976512 :          idata = idata + 1
   11068     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11069     1976512 :          full_data(idata) = data_tmp
   11070     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11071     1976512 :          idata = idata + 1
   11072     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11073     1976512 :          full_data(idata) = data_tmp
   11074     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11075     1976512 :          idata = idata + 1
   11076     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11077     1976512 :          ipack = ipack + 1
   11078     1976512 :          pack_tmp = packed_data(ipack)
   11079     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11080     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11081     1976512 :          idata = idata + 1
   11082     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11083     1976512 :          full_data(idata) = data_tmp
   11084     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11085     1976512 :          idata = idata + 1
   11086     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11087     1976512 :          full_data(idata) = data_tmp
   11088     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11089     1976512 :          idata = idata + 1
   11090     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11091     1976512 :          full_data(idata) = data_tmp
   11092     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11093     1976512 :          idata = idata + 1
   11094     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11095     1976512 :          ipack = ipack + 1
   11096     1976512 :          pack_tmp = packed_data(ipack)
   11097     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11098     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11099     1976512 :          idata = idata + 1
   11100     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11101     1976512 :          full_data(idata) = data_tmp
   11102     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11103     1976512 :          idata = idata + 1
   11104     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11105     1976512 :          full_data(idata) = data_tmp
   11106     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11107     1976512 :          idata = idata + 1
   11108     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11109     1976512 :          full_data(idata) = data_tmp
   11110     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11111     1976512 :          idata = idata + 1
   11112     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11113     1976512 :          ipack = ipack + 1
   11114     1976512 :          pack_tmp = packed_data(ipack)
   11115     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11116     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11117     1976512 :          idata = idata + 1
   11118     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11119     1976512 :          full_data(idata) = data_tmp
   11120     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11121     1976512 :          idata = idata + 1
   11122     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11123     1976512 :          full_data(idata) = data_tmp
   11124     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11125     1976512 :          idata = idata + 1
   11126     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11127     1976512 :          full_data(idata) = data_tmp
   11128     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11129     1976512 :          idata = idata + 1
   11130     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11131     1976512 :          ipack = ipack + 1
   11132     1976512 :          pack_tmp = packed_data(ipack)
   11133     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11134     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11135     1976512 :          idata = idata + 1
   11136     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11137     1976512 :          full_data(idata) = data_tmp
   11138     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11139     1976512 :          idata = idata + 1
   11140     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11141     1976512 :          full_data(idata) = data_tmp
   11142     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11143     1976512 :          idata = idata + 1
   11144     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11145     1976512 :          full_data(idata) = data_tmp
   11146     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11147     1976512 :          idata = idata + 1
   11148     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11149     1976512 :          ipack = ipack + 1
   11150     1976512 :          pack_tmp = packed_data(ipack)
   11151     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11152     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11153     1976512 :          idata = idata + 1
   11154     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11155     1976512 :          full_data(idata) = data_tmp
   11156     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11157     1976512 :          idata = idata + 1
   11158     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11159     1976512 :          full_data(idata) = data_tmp
   11160     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11161     1976512 :          idata = idata + 1
   11162     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11163     1976512 :          full_data(idata) = data_tmp
   11164     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11165     1976512 :          idata = idata + 1
   11166     1976512 :          data_tmp = ISHFT(pack_tmp, 16)
   11167     1976512 :          ipack = ipack + 1
   11168     1976512 :          pack_tmp = packed_data(ipack)
   11169     1976512 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11170     1976512 :          pack_tmp = ISHFT(pack_tmp, -16)
   11171     1976512 :          idata = idata + 1
   11172     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11173     1976512 :          full_data(idata) = data_tmp
   11174     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11175     1976512 :          idata = idata + 1
   11176     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11177     1976512 :          full_data(idata) = data_tmp
   11178     1976512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11179     1976512 :          idata = idata + 1
   11180     1976512 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11181     1976512 :          full_data(idata) = data_tmp
   11182     1983281 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11183             :       END DO
   11184      130301 :       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      130301 :    END SUBROUTINE bits2ints_16
   11188             : 
   11189             : ! **************************************************************************************************
   11190             : !> \brief ...
   11191             : !> \param Ndata ...
   11192             : !> \param packed_data ...
   11193             : !> \param full_data ...
   11194             : ! **************************************************************************************************
   11195       31099 :    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       31099 :       idata = 0
   11206       31099 :       ipack = 0
   11207       31099 :       Ndata_rep = (Ndata/64)*64
   11208       31099 :       DO kdata = 1, Ndata_rep, 64
   11209      469046 :          pack_tmp = 0
   11210      469046 :          idata = idata + 1
   11211      469046 :          data_tmp = full_data(idata)
   11212      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11213      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11214      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11215      469046 :          idata = idata + 1
   11216      469046 :          data_tmp = full_data(idata)
   11217      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11218      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11219      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11220      469046 :          idata = idata + 1
   11221      469046 :          data_tmp = full_data(idata)
   11222      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11223      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11224      469046 :          pack_tmp = ISHFT(pack_tmp, -13)
   11225      469046 :          idata = idata + 1
   11226      469046 :          data_tmp = full_data(idata)
   11227      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11228      469046 :          data_tmp = IAND(data_tmp, mask_left(13))
   11229      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11230      469046 :          ipack = ipack + 1
   11231      469046 :          packed_data(ipack) = pack_tmp
   11232      469046 :          data_tmp = full_data(idata)
   11233      469046 :          pack_tmp = ISHFT(data_tmp, 60)
   11234      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11235      469046 :          idata = idata + 1
   11236      469046 :          data_tmp = full_data(idata)
   11237      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11238      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11239      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11240      469046 :          idata = idata + 1
   11241      469046 :          data_tmp = full_data(idata)
   11242      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11243      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11244      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11245      469046 :          idata = idata + 1
   11246      469046 :          data_tmp = full_data(idata)
   11247      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11248      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11249      469046 :          pack_tmp = ISHFT(pack_tmp, -9)
   11250      469046 :          idata = idata + 1
   11251      469046 :          data_tmp = full_data(idata)
   11252      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11253      469046 :          data_tmp = IAND(data_tmp, mask_left(9))
   11254      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11255      469046 :          ipack = ipack + 1
   11256      469046 :          packed_data(ipack) = pack_tmp
   11257      469046 :          data_tmp = full_data(idata)
   11258      469046 :          pack_tmp = ISHFT(data_tmp, 56)
   11259      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11260      469046 :          idata = idata + 1
   11261      469046 :          data_tmp = full_data(idata)
   11262      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11263      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11264      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11265      469046 :          idata = idata + 1
   11266      469046 :          data_tmp = full_data(idata)
   11267      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11268      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11269      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11270      469046 :          idata = idata + 1
   11271      469046 :          data_tmp = full_data(idata)
   11272      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11273      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11274      469046 :          pack_tmp = ISHFT(pack_tmp, -5)
   11275      469046 :          idata = idata + 1
   11276      469046 :          data_tmp = full_data(idata)
   11277      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11278      469046 :          data_tmp = IAND(data_tmp, mask_left(5))
   11279      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11280      469046 :          ipack = ipack + 1
   11281      469046 :          packed_data(ipack) = pack_tmp
   11282      469046 :          data_tmp = full_data(idata)
   11283      469046 :          pack_tmp = ISHFT(data_tmp, 52)
   11284      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11285      469046 :          idata = idata + 1
   11286      469046 :          data_tmp = full_data(idata)
   11287      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11288      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11289      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11290      469046 :          idata = idata + 1
   11291      469046 :          data_tmp = full_data(idata)
   11292      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11293      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11294      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11295      469046 :          idata = idata + 1
   11296      469046 :          data_tmp = full_data(idata)
   11297      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11298      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11299      469046 :          pack_tmp = ISHFT(pack_tmp, -1)
   11300      469046 :          idata = idata + 1
   11301      469046 :          data_tmp = full_data(idata)
   11302      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11303      469046 :          data_tmp = IAND(data_tmp, mask_left(1))
   11304      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11305      469046 :          ipack = ipack + 1
   11306      469046 :          packed_data(ipack) = pack_tmp
   11307      469046 :          data_tmp = full_data(idata)
   11308      469046 :          pack_tmp = ISHFT(data_tmp, 48)
   11309      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11310      469046 :          idata = idata + 1
   11311      469046 :          data_tmp = full_data(idata)
   11312      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11313      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11314      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11315      469046 :          idata = idata + 1
   11316      469046 :          data_tmp = full_data(idata)
   11317      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11318      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11319      469046 :          pack_tmp = ISHFT(pack_tmp, -14)
   11320      469046 :          idata = idata + 1
   11321      469046 :          data_tmp = full_data(idata)
   11322      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11323      469046 :          data_tmp = IAND(data_tmp, mask_left(14))
   11324      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11325      469046 :          ipack = ipack + 1
   11326      469046 :          packed_data(ipack) = pack_tmp
   11327      469046 :          data_tmp = full_data(idata)
   11328      469046 :          pack_tmp = ISHFT(data_tmp, 61)
   11329      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11330      469046 :          idata = idata + 1
   11331      469046 :          data_tmp = full_data(idata)
   11332      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11333      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11334      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11335      469046 :          idata = idata + 1
   11336      469046 :          data_tmp = full_data(idata)
   11337      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11338      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11339      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11340      469046 :          idata = idata + 1
   11341      469046 :          data_tmp = full_data(idata)
   11342      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11343      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11344      469046 :          pack_tmp = ISHFT(pack_tmp, -10)
   11345      469046 :          idata = idata + 1
   11346      469046 :          data_tmp = full_data(idata)
   11347      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11348      469046 :          data_tmp = IAND(data_tmp, mask_left(10))
   11349      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11350      469046 :          ipack = ipack + 1
   11351      469046 :          packed_data(ipack) = pack_tmp
   11352      469046 :          data_tmp = full_data(idata)
   11353      469046 :          pack_tmp = ISHFT(data_tmp, 57)
   11354      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11355      469046 :          idata = idata + 1
   11356      469046 :          data_tmp = full_data(idata)
   11357      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11358      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11359      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11360      469046 :          idata = idata + 1
   11361      469046 :          data_tmp = full_data(idata)
   11362      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11363      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11364      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11365      469046 :          idata = idata + 1
   11366      469046 :          data_tmp = full_data(idata)
   11367      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11368      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11369      469046 :          pack_tmp = ISHFT(pack_tmp, -6)
   11370      469046 :          idata = idata + 1
   11371      469046 :          data_tmp = full_data(idata)
   11372      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11373      469046 :          data_tmp = IAND(data_tmp, mask_left(6))
   11374      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11375      469046 :          ipack = ipack + 1
   11376      469046 :          packed_data(ipack) = pack_tmp
   11377      469046 :          data_tmp = full_data(idata)
   11378      469046 :          pack_tmp = ISHFT(data_tmp, 53)
   11379      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11380      469046 :          idata = idata + 1
   11381      469046 :          data_tmp = full_data(idata)
   11382      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11383      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11384      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11385      469046 :          idata = idata + 1
   11386      469046 :          data_tmp = full_data(idata)
   11387      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11388      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11389      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11390      469046 :          idata = idata + 1
   11391      469046 :          data_tmp = full_data(idata)
   11392      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11393      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11394      469046 :          pack_tmp = ISHFT(pack_tmp, -2)
   11395      469046 :          idata = idata + 1
   11396      469046 :          data_tmp = full_data(idata)
   11397      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11398      469046 :          data_tmp = IAND(data_tmp, mask_left(2))
   11399      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11400      469046 :          ipack = ipack + 1
   11401      469046 :          packed_data(ipack) = pack_tmp
   11402      469046 :          data_tmp = full_data(idata)
   11403      469046 :          pack_tmp = ISHFT(data_tmp, 49)
   11404      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11405      469046 :          idata = idata + 1
   11406      469046 :          data_tmp = full_data(idata)
   11407      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11408      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11409      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11410      469046 :          idata = idata + 1
   11411      469046 :          data_tmp = full_data(idata)
   11412      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11413      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11414      469046 :          pack_tmp = ISHFT(pack_tmp, -15)
   11415      469046 :          idata = idata + 1
   11416      469046 :          data_tmp = full_data(idata)
   11417      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11418      469046 :          data_tmp = IAND(data_tmp, mask_left(15))
   11419      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11420      469046 :          ipack = ipack + 1
   11421      469046 :          packed_data(ipack) = pack_tmp
   11422      469046 :          data_tmp = full_data(idata)
   11423      469046 :          pack_tmp = ISHFT(data_tmp, 62)
   11424      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11425      469046 :          idata = idata + 1
   11426      469046 :          data_tmp = full_data(idata)
   11427      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11428      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11429      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11430      469046 :          idata = idata + 1
   11431      469046 :          data_tmp = full_data(idata)
   11432      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11433      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11434      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11435      469046 :          idata = idata + 1
   11436      469046 :          data_tmp = full_data(idata)
   11437      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11438      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11439      469046 :          pack_tmp = ISHFT(pack_tmp, -11)
   11440      469046 :          idata = idata + 1
   11441      469046 :          data_tmp = full_data(idata)
   11442      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11443      469046 :          data_tmp = IAND(data_tmp, mask_left(11))
   11444      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11445      469046 :          ipack = ipack + 1
   11446      469046 :          packed_data(ipack) = pack_tmp
   11447      469046 :          data_tmp = full_data(idata)
   11448      469046 :          pack_tmp = ISHFT(data_tmp, 58)
   11449      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11450      469046 :          idata = idata + 1
   11451      469046 :          data_tmp = full_data(idata)
   11452      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11453      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11454      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11455      469046 :          idata = idata + 1
   11456      469046 :          data_tmp = full_data(idata)
   11457      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11458      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11459      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11460      469046 :          idata = idata + 1
   11461      469046 :          data_tmp = full_data(idata)
   11462      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11463      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11464      469046 :          pack_tmp = ISHFT(pack_tmp, -7)
   11465      469046 :          idata = idata + 1
   11466      469046 :          data_tmp = full_data(idata)
   11467      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11468      469046 :          data_tmp = IAND(data_tmp, mask_left(7))
   11469      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11470      469046 :          ipack = ipack + 1
   11471      469046 :          packed_data(ipack) = pack_tmp
   11472      469046 :          data_tmp = full_data(idata)
   11473      469046 :          pack_tmp = ISHFT(data_tmp, 54)
   11474      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11475      469046 :          idata = idata + 1
   11476      469046 :          data_tmp = full_data(idata)
   11477      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11478      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11479      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11480      469046 :          idata = idata + 1
   11481      469046 :          data_tmp = full_data(idata)
   11482      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11483      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11484      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11485      469046 :          idata = idata + 1
   11486      469046 :          data_tmp = full_data(idata)
   11487      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11488      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11489      469046 :          pack_tmp = ISHFT(pack_tmp, -3)
   11490      469046 :          idata = idata + 1
   11491      469046 :          data_tmp = full_data(idata)
   11492      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11493      469046 :          data_tmp = IAND(data_tmp, mask_left(3))
   11494      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11495      469046 :          ipack = ipack + 1
   11496      469046 :          packed_data(ipack) = pack_tmp
   11497      469046 :          data_tmp = full_data(idata)
   11498      469046 :          pack_tmp = ISHFT(data_tmp, 50)
   11499      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11500      469046 :          idata = idata + 1
   11501      469046 :          data_tmp = full_data(idata)
   11502      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11503      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11504      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11505      469046 :          idata = idata + 1
   11506      469046 :          data_tmp = full_data(idata)
   11507      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11508      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11509      469046 :          pack_tmp = ISHFT(pack_tmp, -16)
   11510      469046 :          idata = idata + 1
   11511      469046 :          data_tmp = full_data(idata)
   11512      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11513      469046 :          data_tmp = IAND(data_tmp, mask_left(16))
   11514      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11515      469046 :          ipack = ipack + 1
   11516      469046 :          packed_data(ipack) = pack_tmp
   11517      469046 :          data_tmp = full_data(idata)
   11518      469046 :          pack_tmp = ISHFT(data_tmp, 63)
   11519      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11520      469046 :          idata = idata + 1
   11521      469046 :          data_tmp = full_data(idata)
   11522      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11523      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11524      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11525      469046 :          idata = idata + 1
   11526      469046 :          data_tmp = full_data(idata)
   11527      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11528      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11529      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11530      469046 :          idata = idata + 1
   11531      469046 :          data_tmp = full_data(idata)
   11532      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11533      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11534      469046 :          pack_tmp = ISHFT(pack_tmp, -12)
   11535      469046 :          idata = idata + 1
   11536      469046 :          data_tmp = full_data(idata)
   11537      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11538      469046 :          data_tmp = IAND(data_tmp, mask_left(12))
   11539      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11540      469046 :          ipack = ipack + 1
   11541      469046 :          packed_data(ipack) = pack_tmp
   11542      469046 :          data_tmp = full_data(idata)
   11543      469046 :          pack_tmp = ISHFT(data_tmp, 59)
   11544      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11545      469046 :          idata = idata + 1
   11546      469046 :          data_tmp = full_data(idata)
   11547      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11548      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11549      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11550      469046 :          idata = idata + 1
   11551      469046 :          data_tmp = full_data(idata)
   11552      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11553      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11554      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11555      469046 :          idata = idata + 1
   11556      469046 :          data_tmp = full_data(idata)
   11557      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11558      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11559      469046 :          pack_tmp = ISHFT(pack_tmp, -8)
   11560      469046 :          idata = idata + 1
   11561      469046 :          data_tmp = full_data(idata)
   11562      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11563      469046 :          data_tmp = IAND(data_tmp, mask_left(8))
   11564      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11565      469046 :          ipack = ipack + 1
   11566      469046 :          packed_data(ipack) = pack_tmp
   11567      469046 :          data_tmp = full_data(idata)
   11568      469046 :          pack_tmp = ISHFT(data_tmp, 55)
   11569      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11570      469046 :          idata = idata + 1
   11571      469046 :          data_tmp = full_data(idata)
   11572      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11573      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11574      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11575      469046 :          idata = idata + 1
   11576      469046 :          data_tmp = full_data(idata)
   11577      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11578      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11579      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11580      469046 :          idata = idata + 1
   11581      469046 :          data_tmp = full_data(idata)
   11582      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11583      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11584      469046 :          pack_tmp = ISHFT(pack_tmp, -4)
   11585      469046 :          idata = idata + 1
   11586      469046 :          data_tmp = full_data(idata)
   11587      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11588      469046 :          data_tmp = IAND(data_tmp, mask_left(4))
   11589      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11590      469046 :          ipack = ipack + 1
   11591      469046 :          packed_data(ipack) = pack_tmp
   11592      469046 :          data_tmp = full_data(idata)
   11593      469046 :          pack_tmp = ISHFT(data_tmp, 51)
   11594      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11595      469046 :          idata = idata + 1
   11596      469046 :          data_tmp = full_data(idata)
   11597      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11598      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11599      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11600      469046 :          idata = idata + 1
   11601      469046 :          data_tmp = full_data(idata)
   11602      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11603      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11604      469046 :          pack_tmp = ISHFT(pack_tmp, -17)
   11605      469046 :          idata = idata + 1
   11606      469046 :          data_tmp = full_data(idata)
   11607      469046 :          data_tmp = ISHFT(data_tmp, 47)
   11608      469046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11609             :          pack_tmp = ISHFT(pack_tmp, 0)
   11610      469046 :          pack_tmp = ISHFT(pack_tmp, 0)
   11611      469046 :          ipack = ipack + 1
   11612      469188 :          packed_data(ipack) = pack_tmp
   11613             :       END DO
   11614       31099 :       IF (Ndata_rep < Ndata) THEN
   11615        3252 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11616             :       END IF
   11617       31099 :    END SUBROUTINE ints2bits_17
   11618             : 
   11619             : ! **************************************************************************************************
   11620             : !> \brief ...
   11621             : !> \param Ndata ...
   11622             : !> \param packed_data ...
   11623             : !> \param full_data ...
   11624             : ! **************************************************************************************************
   11625      162632 :    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      162632 :       ipack = 0
   11636      162632 :       idata = 0
   11637      162632 :       pack_tmp = 0
   11638      162632 :       Ndata_rep = (Ndata/64)*64
   11639      162632 :       DO kdata = 1, Ndata_rep, 64
   11640     2370099 :          idata = idata + 1
   11641     2370099 :          data_tmp = ISHFT(pack_tmp, 17)
   11642     2370099 :          ipack = ipack + 1
   11643     2370099 :          pack_tmp = packed_data(ipack)
   11644     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   11645     2370099 :          pack_tmp = ISHFT(pack_tmp, -17)
   11646     2370099 :          idata = idata + 1
   11647     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11648     2370099 :          full_data(idata) = data_tmp
   11649     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11650     2370099 :          idata = idata + 1
   11651     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11652     2370099 :          full_data(idata) = data_tmp
   11653     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11654     2370099 :          idata = idata + 1
   11655     2370099 :          data_tmp = ISHFT(pack_tmp, 4)
   11656     2370099 :          ipack = ipack + 1
   11657     2370099 :          pack_tmp = packed_data(ipack)
   11658     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   11659     2370099 :          pack_tmp = ISHFT(pack_tmp, -4)
   11660     2370099 :          idata = idata + 1
   11661     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11662     2370099 :          full_data(idata) = data_tmp
   11663     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11664     2370099 :          idata = idata + 1
   11665     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11666     2370099 :          full_data(idata) = data_tmp
   11667     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11668     2370099 :          idata = idata + 1
   11669     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11670     2370099 :          full_data(idata) = data_tmp
   11671     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11672     2370099 :          idata = idata + 1
   11673     2370099 :          data_tmp = ISHFT(pack_tmp, 8)
   11674     2370099 :          ipack = ipack + 1
   11675     2370099 :          pack_tmp = packed_data(ipack)
   11676     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   11677     2370099 :          pack_tmp = ISHFT(pack_tmp, -8)
   11678     2370099 :          idata = idata + 1
   11679     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11680     2370099 :          full_data(idata) = data_tmp
   11681     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11682     2370099 :          idata = idata + 1
   11683     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11684     2370099 :          full_data(idata) = data_tmp
   11685     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11686     2370099 :          idata = idata + 1
   11687     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11688     2370099 :          full_data(idata) = data_tmp
   11689     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11690     2370099 :          idata = idata + 1
   11691     2370099 :          data_tmp = ISHFT(pack_tmp, 12)
   11692     2370099 :          ipack = ipack + 1
   11693     2370099 :          pack_tmp = packed_data(ipack)
   11694     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   11695     2370099 :          pack_tmp = ISHFT(pack_tmp, -12)
   11696     2370099 :          idata = idata + 1
   11697     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11698     2370099 :          full_data(idata) = data_tmp
   11699     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11700     2370099 :          idata = idata + 1
   11701     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11702     2370099 :          full_data(idata) = data_tmp
   11703     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11704     2370099 :          idata = idata + 1
   11705     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11706     2370099 :          full_data(idata) = data_tmp
   11707     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11708     2370099 :          idata = idata + 1
   11709     2370099 :          data_tmp = ISHFT(pack_tmp, 16)
   11710     2370099 :          ipack = ipack + 1
   11711     2370099 :          pack_tmp = packed_data(ipack)
   11712     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11713     2370099 :          pack_tmp = ISHFT(pack_tmp, -16)
   11714     2370099 :          idata = idata + 1
   11715     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11716     2370099 :          full_data(idata) = data_tmp
   11717     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11718     2370099 :          idata = idata + 1
   11719     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11720     2370099 :          full_data(idata) = data_tmp
   11721     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11722     2370099 :          idata = idata + 1
   11723     2370099 :          data_tmp = ISHFT(pack_tmp, 3)
   11724     2370099 :          ipack = ipack + 1
   11725     2370099 :          pack_tmp = packed_data(ipack)
   11726     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   11727     2370099 :          pack_tmp = ISHFT(pack_tmp, -3)
   11728     2370099 :          idata = idata + 1
   11729     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11730     2370099 :          full_data(idata) = data_tmp
   11731     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11732     2370099 :          idata = idata + 1
   11733     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11734     2370099 :          full_data(idata) = data_tmp
   11735     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11736     2370099 :          idata = idata + 1
   11737     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11738     2370099 :          full_data(idata) = data_tmp
   11739     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11740     2370099 :          idata = idata + 1
   11741     2370099 :          data_tmp = ISHFT(pack_tmp, 7)
   11742     2370099 :          ipack = ipack + 1
   11743     2370099 :          pack_tmp = packed_data(ipack)
   11744     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   11745     2370099 :          pack_tmp = ISHFT(pack_tmp, -7)
   11746     2370099 :          idata = idata + 1
   11747     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11748     2370099 :          full_data(idata) = data_tmp
   11749     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11750     2370099 :          idata = idata + 1
   11751     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11752     2370099 :          full_data(idata) = data_tmp
   11753     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11754     2370099 :          idata = idata + 1
   11755     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11756     2370099 :          full_data(idata) = data_tmp
   11757     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11758     2370099 :          idata = idata + 1
   11759     2370099 :          data_tmp = ISHFT(pack_tmp, 11)
   11760     2370099 :          ipack = ipack + 1
   11761     2370099 :          pack_tmp = packed_data(ipack)
   11762     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   11763     2370099 :          pack_tmp = ISHFT(pack_tmp, -11)
   11764     2370099 :          idata = idata + 1
   11765     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11766     2370099 :          full_data(idata) = data_tmp
   11767     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11768     2370099 :          idata = idata + 1
   11769     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11770     2370099 :          full_data(idata) = data_tmp
   11771     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11772     2370099 :          idata = idata + 1
   11773     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11774     2370099 :          full_data(idata) = data_tmp
   11775     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11776     2370099 :          idata = idata + 1
   11777     2370099 :          data_tmp = ISHFT(pack_tmp, 15)
   11778     2370099 :          ipack = ipack + 1
   11779     2370099 :          pack_tmp = packed_data(ipack)
   11780     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   11781     2370099 :          pack_tmp = ISHFT(pack_tmp, -15)
   11782     2370099 :          idata = idata + 1
   11783     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11784     2370099 :          full_data(idata) = data_tmp
   11785     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11786     2370099 :          idata = idata + 1
   11787     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11788     2370099 :          full_data(idata) = data_tmp
   11789     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11790     2370099 :          idata = idata + 1
   11791     2370099 :          data_tmp = ISHFT(pack_tmp, 2)
   11792     2370099 :          ipack = ipack + 1
   11793     2370099 :          pack_tmp = packed_data(ipack)
   11794     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   11795     2370099 :          pack_tmp = ISHFT(pack_tmp, -2)
   11796     2370099 :          idata = idata + 1
   11797     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11798     2370099 :          full_data(idata) = data_tmp
   11799     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11800     2370099 :          idata = idata + 1
   11801     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11802     2370099 :          full_data(idata) = data_tmp
   11803     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11804     2370099 :          idata = idata + 1
   11805     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11806     2370099 :          full_data(idata) = data_tmp
   11807     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11808     2370099 :          idata = idata + 1
   11809     2370099 :          data_tmp = ISHFT(pack_tmp, 6)
   11810     2370099 :          ipack = ipack + 1
   11811     2370099 :          pack_tmp = packed_data(ipack)
   11812     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   11813     2370099 :          pack_tmp = ISHFT(pack_tmp, -6)
   11814     2370099 :          idata = idata + 1
   11815     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11816     2370099 :          full_data(idata) = data_tmp
   11817     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11818     2370099 :          idata = idata + 1
   11819     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11820     2370099 :          full_data(idata) = data_tmp
   11821     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11822     2370099 :          idata = idata + 1
   11823     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11824     2370099 :          full_data(idata) = data_tmp
   11825     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11826     2370099 :          idata = idata + 1
   11827     2370099 :          data_tmp = ISHFT(pack_tmp, 10)
   11828     2370099 :          ipack = ipack + 1
   11829     2370099 :          pack_tmp = packed_data(ipack)
   11830     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   11831     2370099 :          pack_tmp = ISHFT(pack_tmp, -10)
   11832     2370099 :          idata = idata + 1
   11833     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11834     2370099 :          full_data(idata) = data_tmp
   11835     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11836     2370099 :          idata = idata + 1
   11837     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11838     2370099 :          full_data(idata) = data_tmp
   11839     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11840     2370099 :          idata = idata + 1
   11841     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11842     2370099 :          full_data(idata) = data_tmp
   11843     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11844     2370099 :          idata = idata + 1
   11845     2370099 :          data_tmp = ISHFT(pack_tmp, 14)
   11846     2370099 :          ipack = ipack + 1
   11847     2370099 :          pack_tmp = packed_data(ipack)
   11848     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   11849     2370099 :          pack_tmp = ISHFT(pack_tmp, -14)
   11850     2370099 :          idata = idata + 1
   11851     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11852     2370099 :          full_data(idata) = data_tmp
   11853     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11854     2370099 :          idata = idata + 1
   11855     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11856     2370099 :          full_data(idata) = data_tmp
   11857     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11858     2370099 :          idata = idata + 1
   11859     2370099 :          data_tmp = ISHFT(pack_tmp, 1)
   11860     2370099 :          ipack = ipack + 1
   11861     2370099 :          pack_tmp = packed_data(ipack)
   11862     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   11863     2370099 :          pack_tmp = ISHFT(pack_tmp, -1)
   11864     2370099 :          idata = idata + 1
   11865     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11866     2370099 :          full_data(idata) = data_tmp
   11867     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11868     2370099 :          idata = idata + 1
   11869     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11870     2370099 :          full_data(idata) = data_tmp
   11871     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11872     2370099 :          idata = idata + 1
   11873     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11874     2370099 :          full_data(idata) = data_tmp
   11875     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11876     2370099 :          idata = idata + 1
   11877     2370099 :          data_tmp = ISHFT(pack_tmp, 5)
   11878     2370099 :          ipack = ipack + 1
   11879     2370099 :          pack_tmp = packed_data(ipack)
   11880     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   11881     2370099 :          pack_tmp = ISHFT(pack_tmp, -5)
   11882     2370099 :          idata = idata + 1
   11883     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11884     2370099 :          full_data(idata) = data_tmp
   11885     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11886     2370099 :          idata = idata + 1
   11887     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11888     2370099 :          full_data(idata) = data_tmp
   11889     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11890     2370099 :          idata = idata + 1
   11891     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11892     2370099 :          full_data(idata) = data_tmp
   11893     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11894     2370099 :          idata = idata + 1
   11895     2370099 :          data_tmp = ISHFT(pack_tmp, 9)
   11896     2370099 :          ipack = ipack + 1
   11897     2370099 :          pack_tmp = packed_data(ipack)
   11898     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   11899     2370099 :          pack_tmp = ISHFT(pack_tmp, -9)
   11900     2370099 :          idata = idata + 1
   11901     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11902     2370099 :          full_data(idata) = data_tmp
   11903     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11904     2370099 :          idata = idata + 1
   11905     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11906     2370099 :          full_data(idata) = data_tmp
   11907     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11908     2370099 :          idata = idata + 1
   11909     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11910     2370099 :          full_data(idata) = data_tmp
   11911     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11912     2370099 :          idata = idata + 1
   11913     2370099 :          data_tmp = ISHFT(pack_tmp, 13)
   11914     2370099 :          ipack = ipack + 1
   11915     2370099 :          pack_tmp = packed_data(ipack)
   11916     2370099 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   11917     2370099 :          pack_tmp = ISHFT(pack_tmp, -13)
   11918     2370099 :          idata = idata + 1
   11919     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11920     2370099 :          full_data(idata) = data_tmp
   11921     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11922     2370099 :          idata = idata + 1
   11923     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11924     2370099 :          full_data(idata) = data_tmp
   11925     2370099 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11926     2370099 :          idata = idata + 1
   11927     2370099 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11928     2370099 :          full_data(idata) = data_tmp
   11929     2371309 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11930             :       END DO
   11931      162632 :       IF (Ndata_rep < Ndata) THEN
   11932       26682 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11933             :       END IF
   11934      162632 :    END SUBROUTINE bits2ints_17
   11935             : 
   11936             : ! **************************************************************************************************
   11937             : !> \brief ...
   11938             : !> \param Ndata ...
   11939             : !> \param packed_data ...
   11940             : !> \param full_data ...
   11941             : ! **************************************************************************************************
   11942       31826 :    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       31826 :       idata = 0
   11953       31826 :       ipack = 0
   11954       31826 :       Ndata_rep = (Ndata/64)*64
   11955       31826 :       DO kdata = 1, Ndata_rep, 64
   11956      475743 :          pack_tmp = 0
   11957      475743 :          idata = idata + 1
   11958      475743 :          data_tmp = full_data(idata)
   11959      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11960      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11961      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   11962      475743 :          idata = idata + 1
   11963      475743 :          data_tmp = full_data(idata)
   11964      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11965      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11966      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   11967      475743 :          idata = idata + 1
   11968      475743 :          data_tmp = full_data(idata)
   11969      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11970      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11971      475743 :          pack_tmp = ISHFT(pack_tmp, -10)
   11972      475743 :          idata = idata + 1
   11973      475743 :          data_tmp = full_data(idata)
   11974      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11975      475743 :          data_tmp = IAND(data_tmp, mask_left(10))
   11976      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11977      475743 :          ipack = ipack + 1
   11978      475743 :          packed_data(ipack) = pack_tmp
   11979      475743 :          data_tmp = full_data(idata)
   11980      475743 :          pack_tmp = ISHFT(data_tmp, 56)
   11981      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   11982      475743 :          idata = idata + 1
   11983      475743 :          data_tmp = full_data(idata)
   11984      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11985      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11986      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   11987      475743 :          idata = idata + 1
   11988      475743 :          data_tmp = full_data(idata)
   11989      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11990      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11991      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   11992      475743 :          idata = idata + 1
   11993      475743 :          data_tmp = full_data(idata)
   11994      475743 :          data_tmp = ISHFT(data_tmp, 46)
   11995      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11996      475743 :          pack_tmp = ISHFT(pack_tmp, -2)
   11997      475743 :          idata = idata + 1
   11998      475743 :          data_tmp = full_data(idata)
   11999      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12000      475743 :          data_tmp = IAND(data_tmp, mask_left(2))
   12001      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12002      475743 :          ipack = ipack + 1
   12003      475743 :          packed_data(ipack) = pack_tmp
   12004      475743 :          data_tmp = full_data(idata)
   12005      475743 :          pack_tmp = ISHFT(data_tmp, 48)
   12006      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12007      475743 :          idata = idata + 1
   12008      475743 :          data_tmp = full_data(idata)
   12009      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12010      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12011      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12012      475743 :          idata = idata + 1
   12013      475743 :          data_tmp = full_data(idata)
   12014      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12015      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12016      475743 :          pack_tmp = ISHFT(pack_tmp, -12)
   12017      475743 :          idata = idata + 1
   12018      475743 :          data_tmp = full_data(idata)
   12019      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12020      475743 :          data_tmp = IAND(data_tmp, mask_left(12))
   12021      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12022      475743 :          ipack = ipack + 1
   12023      475743 :          packed_data(ipack) = pack_tmp
   12024      475743 :          data_tmp = full_data(idata)
   12025      475743 :          pack_tmp = ISHFT(data_tmp, 58)
   12026      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12027      475743 :          idata = idata + 1
   12028      475743 :          data_tmp = full_data(idata)
   12029      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12030      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12031      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12032      475743 :          idata = idata + 1
   12033      475743 :          data_tmp = full_data(idata)
   12034      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12035      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12036      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12037      475743 :          idata = idata + 1
   12038      475743 :          data_tmp = full_data(idata)
   12039      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12040      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12041      475743 :          pack_tmp = ISHFT(pack_tmp, -4)
   12042      475743 :          idata = idata + 1
   12043      475743 :          data_tmp = full_data(idata)
   12044      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12045      475743 :          data_tmp = IAND(data_tmp, mask_left(4))
   12046      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12047      475743 :          ipack = ipack + 1
   12048      475743 :          packed_data(ipack) = pack_tmp
   12049      475743 :          data_tmp = full_data(idata)
   12050      475743 :          pack_tmp = ISHFT(data_tmp, 50)
   12051      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12052      475743 :          idata = idata + 1
   12053      475743 :          data_tmp = full_data(idata)
   12054      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12055      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12056      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12057      475743 :          idata = idata + 1
   12058      475743 :          data_tmp = full_data(idata)
   12059      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12060      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12061      475743 :          pack_tmp = ISHFT(pack_tmp, -14)
   12062      475743 :          idata = idata + 1
   12063      475743 :          data_tmp = full_data(idata)
   12064      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12065      475743 :          data_tmp = IAND(data_tmp, mask_left(14))
   12066      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12067      475743 :          ipack = ipack + 1
   12068      475743 :          packed_data(ipack) = pack_tmp
   12069      475743 :          data_tmp = full_data(idata)
   12070      475743 :          pack_tmp = ISHFT(data_tmp, 60)
   12071      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12072      475743 :          idata = idata + 1
   12073      475743 :          data_tmp = full_data(idata)
   12074      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12075      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12076      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12077      475743 :          idata = idata + 1
   12078      475743 :          data_tmp = full_data(idata)
   12079      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12080      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12081      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12082      475743 :          idata = idata + 1
   12083      475743 :          data_tmp = full_data(idata)
   12084      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12085      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12086      475743 :          pack_tmp = ISHFT(pack_tmp, -6)
   12087      475743 :          idata = idata + 1
   12088      475743 :          data_tmp = full_data(idata)
   12089      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12090      475743 :          data_tmp = IAND(data_tmp, mask_left(6))
   12091      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12092      475743 :          ipack = ipack + 1
   12093      475743 :          packed_data(ipack) = pack_tmp
   12094      475743 :          data_tmp = full_data(idata)
   12095      475743 :          pack_tmp = ISHFT(data_tmp, 52)
   12096      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12097      475743 :          idata = idata + 1
   12098      475743 :          data_tmp = full_data(idata)
   12099      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12100      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12101      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12102      475743 :          idata = idata + 1
   12103      475743 :          data_tmp = full_data(idata)
   12104      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12105      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12106      475743 :          pack_tmp = ISHFT(pack_tmp, -16)
   12107      475743 :          idata = idata + 1
   12108      475743 :          data_tmp = full_data(idata)
   12109      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12110      475743 :          data_tmp = IAND(data_tmp, mask_left(16))
   12111      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12112      475743 :          ipack = ipack + 1
   12113      475743 :          packed_data(ipack) = pack_tmp
   12114      475743 :          data_tmp = full_data(idata)
   12115      475743 :          pack_tmp = ISHFT(data_tmp, 62)
   12116      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12117      475743 :          idata = idata + 1
   12118      475743 :          data_tmp = full_data(idata)
   12119      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12120      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12121      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12122      475743 :          idata = idata + 1
   12123      475743 :          data_tmp = full_data(idata)
   12124      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12125      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12126      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12127      475743 :          idata = idata + 1
   12128      475743 :          data_tmp = full_data(idata)
   12129      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12130      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12131      475743 :          pack_tmp = ISHFT(pack_tmp, -8)
   12132      475743 :          idata = idata + 1
   12133      475743 :          data_tmp = full_data(idata)
   12134      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12135      475743 :          data_tmp = IAND(data_tmp, mask_left(8))
   12136      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12137      475743 :          ipack = ipack + 1
   12138      475743 :          packed_data(ipack) = pack_tmp
   12139      475743 :          data_tmp = full_data(idata)
   12140      475743 :          pack_tmp = ISHFT(data_tmp, 54)
   12141      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12142      475743 :          idata = idata + 1
   12143      475743 :          data_tmp = full_data(idata)
   12144      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12145      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12146      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12147      475743 :          idata = idata + 1
   12148      475743 :          data_tmp = full_data(idata)
   12149      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12150      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12151      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12152      475743 :          idata = idata + 1
   12153      475743 :          data_tmp = full_data(idata)
   12154      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12155      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12156      475743 :          pack_tmp = ISHFT(pack_tmp, 0)
   12157      475743 :          idata = idata + 1
   12158      475743 :          data_tmp = full_data(idata)
   12159      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12160      475743 :          data_tmp = IAND(data_tmp, mask_left(0))
   12161      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12162      475743 :          ipack = ipack + 1
   12163      475743 :          packed_data(ipack) = pack_tmp
   12164      475743 :          data_tmp = full_data(idata)
   12165      475743 :          pack_tmp = ISHFT(data_tmp, 46)
   12166      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12167      475743 :          idata = idata + 1
   12168      475743 :          data_tmp = full_data(idata)
   12169      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12170      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12171      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12172      475743 :          idata = idata + 1
   12173      475743 :          data_tmp = full_data(idata)
   12174      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12175      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12176      475743 :          pack_tmp = ISHFT(pack_tmp, -10)
   12177      475743 :          idata = idata + 1
   12178      475743 :          data_tmp = full_data(idata)
   12179      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12180      475743 :          data_tmp = IAND(data_tmp, mask_left(10))
   12181      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12182      475743 :          ipack = ipack + 1
   12183      475743 :          packed_data(ipack) = pack_tmp
   12184      475743 :          data_tmp = full_data(idata)
   12185      475743 :          pack_tmp = ISHFT(data_tmp, 56)
   12186      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12187      475743 :          idata = idata + 1
   12188      475743 :          data_tmp = full_data(idata)
   12189      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12190      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12191      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12192      475743 :          idata = idata + 1
   12193      475743 :          data_tmp = full_data(idata)
   12194      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12195      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12196      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12197      475743 :          idata = idata + 1
   12198      475743 :          data_tmp = full_data(idata)
   12199      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12200      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12201      475743 :          pack_tmp = ISHFT(pack_tmp, -2)
   12202      475743 :          idata = idata + 1
   12203      475743 :          data_tmp = full_data(idata)
   12204      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12205      475743 :          data_tmp = IAND(data_tmp, mask_left(2))
   12206      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12207      475743 :          ipack = ipack + 1
   12208      475743 :          packed_data(ipack) = pack_tmp
   12209      475743 :          data_tmp = full_data(idata)
   12210      475743 :          pack_tmp = ISHFT(data_tmp, 48)
   12211      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12212      475743 :          idata = idata + 1
   12213      475743 :          data_tmp = full_data(idata)
   12214      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12215      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12216      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12217      475743 :          idata = idata + 1
   12218      475743 :          data_tmp = full_data(idata)
   12219      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12220      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12221      475743 :          pack_tmp = ISHFT(pack_tmp, -12)
   12222      475743 :          idata = idata + 1
   12223      475743 :          data_tmp = full_data(idata)
   12224      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12225      475743 :          data_tmp = IAND(data_tmp, mask_left(12))
   12226      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12227      475743 :          ipack = ipack + 1
   12228      475743 :          packed_data(ipack) = pack_tmp
   12229      475743 :          data_tmp = full_data(idata)
   12230      475743 :          pack_tmp = ISHFT(data_tmp, 58)
   12231      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12232      475743 :          idata = idata + 1
   12233      475743 :          data_tmp = full_data(idata)
   12234      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12235      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12236      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12237      475743 :          idata = idata + 1
   12238      475743 :          data_tmp = full_data(idata)
   12239      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12240      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12241      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12242      475743 :          idata = idata + 1
   12243      475743 :          data_tmp = full_data(idata)
   12244      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12245      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12246      475743 :          pack_tmp = ISHFT(pack_tmp, -4)
   12247      475743 :          idata = idata + 1
   12248      475743 :          data_tmp = full_data(idata)
   12249      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12250      475743 :          data_tmp = IAND(data_tmp, mask_left(4))
   12251      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12252      475743 :          ipack = ipack + 1
   12253      475743 :          packed_data(ipack) = pack_tmp
   12254      475743 :          data_tmp = full_data(idata)
   12255      475743 :          pack_tmp = ISHFT(data_tmp, 50)
   12256      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12257      475743 :          idata = idata + 1
   12258      475743 :          data_tmp = full_data(idata)
   12259      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12260      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12261      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12262      475743 :          idata = idata + 1
   12263      475743 :          data_tmp = full_data(idata)
   12264      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12265      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12266      475743 :          pack_tmp = ISHFT(pack_tmp, -14)
   12267      475743 :          idata = idata + 1
   12268      475743 :          data_tmp = full_data(idata)
   12269      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12270      475743 :          data_tmp = IAND(data_tmp, mask_left(14))
   12271      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12272      475743 :          ipack = ipack + 1
   12273      475743 :          packed_data(ipack) = pack_tmp
   12274      475743 :          data_tmp = full_data(idata)
   12275      475743 :          pack_tmp = ISHFT(data_tmp, 60)
   12276      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12277      475743 :          idata = idata + 1
   12278      475743 :          data_tmp = full_data(idata)
   12279      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12280      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12281      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12282      475743 :          idata = idata + 1
   12283      475743 :          data_tmp = full_data(idata)
   12284      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12285      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12286      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12287      475743 :          idata = idata + 1
   12288      475743 :          data_tmp = full_data(idata)
   12289      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12290      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12291      475743 :          pack_tmp = ISHFT(pack_tmp, -6)
   12292      475743 :          idata = idata + 1
   12293      475743 :          data_tmp = full_data(idata)
   12294      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12295      475743 :          data_tmp = IAND(data_tmp, mask_left(6))
   12296      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12297      475743 :          ipack = ipack + 1
   12298      475743 :          packed_data(ipack) = pack_tmp
   12299      475743 :          data_tmp = full_data(idata)
   12300      475743 :          pack_tmp = ISHFT(data_tmp, 52)
   12301      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12302      475743 :          idata = idata + 1
   12303      475743 :          data_tmp = full_data(idata)
   12304      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12305      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12306      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12307      475743 :          idata = idata + 1
   12308      475743 :          data_tmp = full_data(idata)
   12309      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12310      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12311      475743 :          pack_tmp = ISHFT(pack_tmp, -16)
   12312      475743 :          idata = idata + 1
   12313      475743 :          data_tmp = full_data(idata)
   12314      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12315      475743 :          data_tmp = IAND(data_tmp, mask_left(16))
   12316      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12317      475743 :          ipack = ipack + 1
   12318      475743 :          packed_data(ipack) = pack_tmp
   12319      475743 :          data_tmp = full_data(idata)
   12320      475743 :          pack_tmp = ISHFT(data_tmp, 62)
   12321      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12322      475743 :          idata = idata + 1
   12323      475743 :          data_tmp = full_data(idata)
   12324      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12325      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12326      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12327      475743 :          idata = idata + 1
   12328      475743 :          data_tmp = full_data(idata)
   12329      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12330      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12331      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12332      475743 :          idata = idata + 1
   12333      475743 :          data_tmp = full_data(idata)
   12334      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12335      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12336      475743 :          pack_tmp = ISHFT(pack_tmp, -8)
   12337      475743 :          idata = idata + 1
   12338      475743 :          data_tmp = full_data(idata)
   12339      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12340      475743 :          data_tmp = IAND(data_tmp, mask_left(8))
   12341      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12342      475743 :          ipack = ipack + 1
   12343      475743 :          packed_data(ipack) = pack_tmp
   12344      475743 :          data_tmp = full_data(idata)
   12345      475743 :          pack_tmp = ISHFT(data_tmp, 54)
   12346      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12347      475743 :          idata = idata + 1
   12348      475743 :          data_tmp = full_data(idata)
   12349      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12350      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12351      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12352      475743 :          idata = idata + 1
   12353      475743 :          data_tmp = full_data(idata)
   12354      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12355      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12356      475743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12357      475743 :          idata = idata + 1
   12358      475743 :          data_tmp = full_data(idata)
   12359      475743 :          data_tmp = ISHFT(data_tmp, 46)
   12360      475743 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12361             :          pack_tmp = ISHFT(pack_tmp, 0)
   12362      475743 :          pack_tmp = ISHFT(pack_tmp, 0)
   12363      475743 :          ipack = ipack + 1
   12364      475835 :          packed_data(ipack) = pack_tmp
   12365             :       END DO
   12366       31826 :       IF (Ndata_rep < Ndata) THEN
   12367        3938 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12368             :       END IF
   12369       31826 :    END SUBROUTINE ints2bits_18
   12370             : 
   12371             : ! **************************************************************************************************
   12372             : !> \brief ...
   12373             : !> \param Ndata ...
   12374             : !> \param packed_data ...
   12375             : !> \param full_data ...
   12376             : ! **************************************************************************************************
   12377      171951 :    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      171951 :       ipack = 0
   12388      171951 :       idata = 0
   12389      171951 :       pack_tmp = 0
   12390      171951 :       Ndata_rep = (Ndata/64)*64
   12391      171951 :       DO kdata = 1, Ndata_rep, 64
   12392     2467061 :          idata = idata + 1
   12393     2467061 :          data_tmp = ISHFT(pack_tmp, 18)
   12394     2467061 :          ipack = ipack + 1
   12395     2467061 :          pack_tmp = packed_data(ipack)
   12396     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12397     2467061 :          pack_tmp = ISHFT(pack_tmp, -18)
   12398     2467061 :          idata = idata + 1
   12399     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12400     2467061 :          full_data(idata) = data_tmp
   12401     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12402     2467061 :          idata = idata + 1
   12403     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12404     2467061 :          full_data(idata) = data_tmp
   12405     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12406     2467061 :          idata = idata + 1
   12407     2467061 :          data_tmp = ISHFT(pack_tmp, 8)
   12408     2467061 :          ipack = ipack + 1
   12409     2467061 :          pack_tmp = packed_data(ipack)
   12410     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12411     2467061 :          pack_tmp = ISHFT(pack_tmp, -8)
   12412     2467061 :          idata = idata + 1
   12413     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12414     2467061 :          full_data(idata) = data_tmp
   12415     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12416     2467061 :          idata = idata + 1
   12417     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12418     2467061 :          full_data(idata) = data_tmp
   12419     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12420     2467061 :          idata = idata + 1
   12421     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12422     2467061 :          full_data(idata) = data_tmp
   12423     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12424     2467061 :          idata = idata + 1
   12425     2467061 :          data_tmp = ISHFT(pack_tmp, 16)
   12426     2467061 :          ipack = ipack + 1
   12427     2467061 :          pack_tmp = packed_data(ipack)
   12428     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12429     2467061 :          pack_tmp = ISHFT(pack_tmp, -16)
   12430     2467061 :          idata = idata + 1
   12431     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12432     2467061 :          full_data(idata) = data_tmp
   12433     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12434     2467061 :          idata = idata + 1
   12435     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12436     2467061 :          full_data(idata) = data_tmp
   12437     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12438     2467061 :          idata = idata + 1
   12439     2467061 :          data_tmp = ISHFT(pack_tmp, 6)
   12440     2467061 :          ipack = ipack + 1
   12441     2467061 :          pack_tmp = packed_data(ipack)
   12442     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12443     2467061 :          pack_tmp = ISHFT(pack_tmp, -6)
   12444     2467061 :          idata = idata + 1
   12445     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12446     2467061 :          full_data(idata) = data_tmp
   12447     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12448     2467061 :          idata = idata + 1
   12449     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12450     2467061 :          full_data(idata) = data_tmp
   12451     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12452     2467061 :          idata = idata + 1
   12453     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12454     2467061 :          full_data(idata) = data_tmp
   12455     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12456     2467061 :          idata = idata + 1
   12457     2467061 :          data_tmp = ISHFT(pack_tmp, 14)
   12458     2467061 :          ipack = ipack + 1
   12459     2467061 :          pack_tmp = packed_data(ipack)
   12460     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12461     2467061 :          pack_tmp = ISHFT(pack_tmp, -14)
   12462     2467061 :          idata = idata + 1
   12463     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12464     2467061 :          full_data(idata) = data_tmp
   12465     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12466     2467061 :          idata = idata + 1
   12467     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12468     2467061 :          full_data(idata) = data_tmp
   12469     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12470     2467061 :          idata = idata + 1
   12471     2467061 :          data_tmp = ISHFT(pack_tmp, 4)
   12472     2467061 :          ipack = ipack + 1
   12473     2467061 :          pack_tmp = packed_data(ipack)
   12474     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12475     2467061 :          pack_tmp = ISHFT(pack_tmp, -4)
   12476     2467061 :          idata = idata + 1
   12477     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12478     2467061 :          full_data(idata) = data_tmp
   12479     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12480     2467061 :          idata = idata + 1
   12481     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12482     2467061 :          full_data(idata) = data_tmp
   12483     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12484     2467061 :          idata = idata + 1
   12485     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12486     2467061 :          full_data(idata) = data_tmp
   12487     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12488     2467061 :          idata = idata + 1
   12489     2467061 :          data_tmp = ISHFT(pack_tmp, 12)
   12490     2467061 :          ipack = ipack + 1
   12491     2467061 :          pack_tmp = packed_data(ipack)
   12492     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12493     2467061 :          pack_tmp = ISHFT(pack_tmp, -12)
   12494     2467061 :          idata = idata + 1
   12495     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12496     2467061 :          full_data(idata) = data_tmp
   12497     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12498     2467061 :          idata = idata + 1
   12499     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12500     2467061 :          full_data(idata) = data_tmp
   12501     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12502     2467061 :          idata = idata + 1
   12503     2467061 :          data_tmp = ISHFT(pack_tmp, 2)
   12504     2467061 :          ipack = ipack + 1
   12505     2467061 :          pack_tmp = packed_data(ipack)
   12506     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12507     2467061 :          pack_tmp = ISHFT(pack_tmp, -2)
   12508     2467061 :          idata = idata + 1
   12509     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12510     2467061 :          full_data(idata) = data_tmp
   12511     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12512     2467061 :          idata = idata + 1
   12513     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12514     2467061 :          full_data(idata) = data_tmp
   12515     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12516     2467061 :          idata = idata + 1
   12517     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12518     2467061 :          full_data(idata) = data_tmp
   12519     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12520     2467061 :          idata = idata + 1
   12521     2467061 :          data_tmp = ISHFT(pack_tmp, 10)
   12522     2467061 :          ipack = ipack + 1
   12523     2467061 :          pack_tmp = packed_data(ipack)
   12524     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12525     2467061 :          pack_tmp = ISHFT(pack_tmp, -10)
   12526     2467061 :          idata = idata + 1
   12527     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12528     2467061 :          full_data(idata) = data_tmp
   12529     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12530     2467061 :          idata = idata + 1
   12531     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12532     2467061 :          full_data(idata) = data_tmp
   12533     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12534     2467061 :          idata = idata + 1
   12535     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12536     2467061 :          full_data(idata) = data_tmp
   12537     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12538     2467061 :          idata = idata + 1
   12539     2467061 :          data_tmp = ISHFT(pack_tmp, 18)
   12540     2467061 :          ipack = ipack + 1
   12541     2467061 :          pack_tmp = packed_data(ipack)
   12542     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12543     2467061 :          pack_tmp = ISHFT(pack_tmp, -18)
   12544     2467061 :          idata = idata + 1
   12545     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12546     2467061 :          full_data(idata) = data_tmp
   12547     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12548     2467061 :          idata = idata + 1
   12549     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12550     2467061 :          full_data(idata) = data_tmp
   12551     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12552     2467061 :          idata = idata + 1
   12553     2467061 :          data_tmp = ISHFT(pack_tmp, 8)
   12554     2467061 :          ipack = ipack + 1
   12555     2467061 :          pack_tmp = packed_data(ipack)
   12556     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12557     2467061 :          pack_tmp = ISHFT(pack_tmp, -8)
   12558     2467061 :          idata = idata + 1
   12559     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12560     2467061 :          full_data(idata) = data_tmp
   12561     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12562     2467061 :          idata = idata + 1
   12563     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12564     2467061 :          full_data(idata) = data_tmp
   12565     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12566     2467061 :          idata = idata + 1
   12567     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12568     2467061 :          full_data(idata) = data_tmp
   12569     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12570     2467061 :          idata = idata + 1
   12571     2467061 :          data_tmp = ISHFT(pack_tmp, 16)
   12572     2467061 :          ipack = ipack + 1
   12573     2467061 :          pack_tmp = packed_data(ipack)
   12574     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12575     2467061 :          pack_tmp = ISHFT(pack_tmp, -16)
   12576     2467061 :          idata = idata + 1
   12577     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12578     2467061 :          full_data(idata) = data_tmp
   12579     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12580     2467061 :          idata = idata + 1
   12581     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12582     2467061 :          full_data(idata) = data_tmp
   12583     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12584     2467061 :          idata = idata + 1
   12585     2467061 :          data_tmp = ISHFT(pack_tmp, 6)
   12586     2467061 :          ipack = ipack + 1
   12587     2467061 :          pack_tmp = packed_data(ipack)
   12588     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12589     2467061 :          pack_tmp = ISHFT(pack_tmp, -6)
   12590     2467061 :          idata = idata + 1
   12591     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12592     2467061 :          full_data(idata) = data_tmp
   12593     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12594     2467061 :          idata = idata + 1
   12595     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12596     2467061 :          full_data(idata) = data_tmp
   12597     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12598     2467061 :          idata = idata + 1
   12599     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12600     2467061 :          full_data(idata) = data_tmp
   12601     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12602     2467061 :          idata = idata + 1
   12603     2467061 :          data_tmp = ISHFT(pack_tmp, 14)
   12604     2467061 :          ipack = ipack + 1
   12605     2467061 :          pack_tmp = packed_data(ipack)
   12606     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12607     2467061 :          pack_tmp = ISHFT(pack_tmp, -14)
   12608     2467061 :          idata = idata + 1
   12609     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12610     2467061 :          full_data(idata) = data_tmp
   12611     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12612     2467061 :          idata = idata + 1
   12613     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12614     2467061 :          full_data(idata) = data_tmp
   12615     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12616     2467061 :          idata = idata + 1
   12617     2467061 :          data_tmp = ISHFT(pack_tmp, 4)
   12618     2467061 :          ipack = ipack + 1
   12619     2467061 :          pack_tmp = packed_data(ipack)
   12620     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12621     2467061 :          pack_tmp = ISHFT(pack_tmp, -4)
   12622     2467061 :          idata = idata + 1
   12623     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12624     2467061 :          full_data(idata) = data_tmp
   12625     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12626     2467061 :          idata = idata + 1
   12627     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12628     2467061 :          full_data(idata) = data_tmp
   12629     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12630     2467061 :          idata = idata + 1
   12631     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12632     2467061 :          full_data(idata) = data_tmp
   12633     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12634     2467061 :          idata = idata + 1
   12635     2467061 :          data_tmp = ISHFT(pack_tmp, 12)
   12636     2467061 :          ipack = ipack + 1
   12637     2467061 :          pack_tmp = packed_data(ipack)
   12638     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12639     2467061 :          pack_tmp = ISHFT(pack_tmp, -12)
   12640     2467061 :          idata = idata + 1
   12641     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12642     2467061 :          full_data(idata) = data_tmp
   12643     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12644     2467061 :          idata = idata + 1
   12645     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12646     2467061 :          full_data(idata) = data_tmp
   12647     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12648     2467061 :          idata = idata + 1
   12649     2467061 :          data_tmp = ISHFT(pack_tmp, 2)
   12650     2467061 :          ipack = ipack + 1
   12651     2467061 :          pack_tmp = packed_data(ipack)
   12652     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12653     2467061 :          pack_tmp = ISHFT(pack_tmp, -2)
   12654     2467061 :          idata = idata + 1
   12655     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12656     2467061 :          full_data(idata) = data_tmp
   12657     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12658     2467061 :          idata = idata + 1
   12659     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12660     2467061 :          full_data(idata) = data_tmp
   12661     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12662     2467061 :          idata = idata + 1
   12663     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12664     2467061 :          full_data(idata) = data_tmp
   12665     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12666     2467061 :          idata = idata + 1
   12667     2467061 :          data_tmp = ISHFT(pack_tmp, 10)
   12668     2467061 :          ipack = ipack + 1
   12669     2467061 :          pack_tmp = packed_data(ipack)
   12670     2467061 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12671     2467061 :          pack_tmp = ISHFT(pack_tmp, -10)
   12672     2467061 :          idata = idata + 1
   12673     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12674     2467061 :          full_data(idata) = data_tmp
   12675     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12676     2467061 :          idata = idata + 1
   12677     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12678     2467061 :          full_data(idata) = data_tmp
   12679     2467061 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12680     2467061 :          idata = idata + 1
   12681     2467061 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12682     2467061 :          full_data(idata) = data_tmp
   12683     2467640 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12684             :       END DO
   12685      171951 :       IF (Ndata_rep < Ndata) THEN
   12686       33430 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12687             :       END IF
   12688      171951 :    END SUBROUTINE bits2ints_18
   12689             : 
   12690             : ! **************************************************************************************************
   12691             : !> \brief ...
   12692             : !> \param Ndata ...
   12693             : !> \param packed_data ...
   12694             : !> \param full_data ...
   12695             : ! **************************************************************************************************
   12696       29503 :    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       29503 :       idata = 0
   12707       29503 :       ipack = 0
   12708       29503 :       Ndata_rep = (Ndata/64)*64
   12709       29503 :       DO kdata = 1, Ndata_rep, 64
   12710      447435 :          pack_tmp = 0
   12711      447435 :          idata = idata + 1
   12712      447435 :          data_tmp = full_data(idata)
   12713      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12714      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12715      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12716      447435 :          idata = idata + 1
   12717      447435 :          data_tmp = full_data(idata)
   12718      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12719      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12720      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12721      447435 :          idata = idata + 1
   12722      447435 :          data_tmp = full_data(idata)
   12723      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12724      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12725      447435 :          pack_tmp = ISHFT(pack_tmp, -7)
   12726      447435 :          idata = idata + 1
   12727      447435 :          data_tmp = full_data(idata)
   12728      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12729      447435 :          data_tmp = IAND(data_tmp, mask_left(7))
   12730      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12731      447435 :          ipack = ipack + 1
   12732      447435 :          packed_data(ipack) = pack_tmp
   12733      447435 :          data_tmp = full_data(idata)
   12734      447435 :          pack_tmp = ISHFT(data_tmp, 52)
   12735      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12736      447435 :          idata = idata + 1
   12737      447435 :          data_tmp = full_data(idata)
   12738      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12739      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12740      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12741      447435 :          idata = idata + 1
   12742      447435 :          data_tmp = full_data(idata)
   12743      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12744      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12745      447435 :          pack_tmp = ISHFT(pack_tmp, -14)
   12746      447435 :          idata = idata + 1
   12747      447435 :          data_tmp = full_data(idata)
   12748      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12749      447435 :          data_tmp = IAND(data_tmp, mask_left(14))
   12750      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12751      447435 :          ipack = ipack + 1
   12752      447435 :          packed_data(ipack) = pack_tmp
   12753      447435 :          data_tmp = full_data(idata)
   12754      447435 :          pack_tmp = ISHFT(data_tmp, 59)
   12755      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12756      447435 :          idata = idata + 1
   12757      447435 :          data_tmp = full_data(idata)
   12758      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12759      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12760      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12761      447435 :          idata = idata + 1
   12762      447435 :          data_tmp = full_data(idata)
   12763      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12764      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12765      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12766      447435 :          idata = idata + 1
   12767      447435 :          data_tmp = full_data(idata)
   12768      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12769      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12770      447435 :          pack_tmp = ISHFT(pack_tmp, -2)
   12771      447435 :          idata = idata + 1
   12772      447435 :          data_tmp = full_data(idata)
   12773      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12774      447435 :          data_tmp = IAND(data_tmp, mask_left(2))
   12775      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12776      447435 :          ipack = ipack + 1
   12777      447435 :          packed_data(ipack) = pack_tmp
   12778      447435 :          data_tmp = full_data(idata)
   12779      447435 :          pack_tmp = ISHFT(data_tmp, 47)
   12780      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12781      447435 :          idata = idata + 1
   12782      447435 :          data_tmp = full_data(idata)
   12783      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12784      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12785      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12786      447435 :          idata = idata + 1
   12787      447435 :          data_tmp = full_data(idata)
   12788      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12789      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12790      447435 :          pack_tmp = ISHFT(pack_tmp, -9)
   12791      447435 :          idata = idata + 1
   12792      447435 :          data_tmp = full_data(idata)
   12793      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12794      447435 :          data_tmp = IAND(data_tmp, mask_left(9))
   12795      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12796      447435 :          ipack = ipack + 1
   12797      447435 :          packed_data(ipack) = pack_tmp
   12798      447435 :          data_tmp = full_data(idata)
   12799      447435 :          pack_tmp = ISHFT(data_tmp, 54)
   12800      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12801      447435 :          idata = idata + 1
   12802      447435 :          data_tmp = full_data(idata)
   12803      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12804      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12805      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12806      447435 :          idata = idata + 1
   12807      447435 :          data_tmp = full_data(idata)
   12808      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12809      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12810      447435 :          pack_tmp = ISHFT(pack_tmp, -16)
   12811      447435 :          idata = idata + 1
   12812      447435 :          data_tmp = full_data(idata)
   12813      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12814      447435 :          data_tmp = IAND(data_tmp, mask_left(16))
   12815      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12816      447435 :          ipack = ipack + 1
   12817      447435 :          packed_data(ipack) = pack_tmp
   12818      447435 :          data_tmp = full_data(idata)
   12819      447435 :          pack_tmp = ISHFT(data_tmp, 61)
   12820      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12821      447435 :          idata = idata + 1
   12822      447435 :          data_tmp = full_data(idata)
   12823      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12824      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12825      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12826      447435 :          idata = idata + 1
   12827      447435 :          data_tmp = full_data(idata)
   12828      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12829      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12830      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12831      447435 :          idata = idata + 1
   12832      447435 :          data_tmp = full_data(idata)
   12833      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12834      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12835      447435 :          pack_tmp = ISHFT(pack_tmp, -4)
   12836      447435 :          idata = idata + 1
   12837      447435 :          data_tmp = full_data(idata)
   12838      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12839      447435 :          data_tmp = IAND(data_tmp, mask_left(4))
   12840      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12841      447435 :          ipack = ipack + 1
   12842      447435 :          packed_data(ipack) = pack_tmp
   12843      447435 :          data_tmp = full_data(idata)
   12844      447435 :          pack_tmp = ISHFT(data_tmp, 49)
   12845      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12846      447435 :          idata = idata + 1
   12847      447435 :          data_tmp = full_data(idata)
   12848      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12849      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12850      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12851      447435 :          idata = idata + 1
   12852      447435 :          data_tmp = full_data(idata)
   12853      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12854      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12855      447435 :          pack_tmp = ISHFT(pack_tmp, -11)
   12856      447435 :          idata = idata + 1
   12857      447435 :          data_tmp = full_data(idata)
   12858      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12859      447435 :          data_tmp = IAND(data_tmp, mask_left(11))
   12860      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12861      447435 :          ipack = ipack + 1
   12862      447435 :          packed_data(ipack) = pack_tmp
   12863      447435 :          data_tmp = full_data(idata)
   12864      447435 :          pack_tmp = ISHFT(data_tmp, 56)
   12865      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12866      447435 :          idata = idata + 1
   12867      447435 :          data_tmp = full_data(idata)
   12868      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12869      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12870      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12871      447435 :          idata = idata + 1
   12872      447435 :          data_tmp = full_data(idata)
   12873      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12874      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12875      447435 :          pack_tmp = ISHFT(pack_tmp, -18)
   12876      447435 :          idata = idata + 1
   12877      447435 :          data_tmp = full_data(idata)
   12878      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12879      447435 :          data_tmp = IAND(data_tmp, mask_left(18))
   12880      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12881      447435 :          ipack = ipack + 1
   12882      447435 :          packed_data(ipack) = pack_tmp
   12883      447435 :          data_tmp = full_data(idata)
   12884      447435 :          pack_tmp = ISHFT(data_tmp, 63)
   12885      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12886      447435 :          idata = idata + 1
   12887      447435 :          data_tmp = full_data(idata)
   12888      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12889      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12890      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12891      447435 :          idata = idata + 1
   12892      447435 :          data_tmp = full_data(idata)
   12893      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12894      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12895      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12896      447435 :          idata = idata + 1
   12897      447435 :          data_tmp = full_data(idata)
   12898      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12899      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12900      447435 :          pack_tmp = ISHFT(pack_tmp, -6)
   12901      447435 :          idata = idata + 1
   12902      447435 :          data_tmp = full_data(idata)
   12903      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12904      447435 :          data_tmp = IAND(data_tmp, mask_left(6))
   12905      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12906      447435 :          ipack = ipack + 1
   12907      447435 :          packed_data(ipack) = pack_tmp
   12908      447435 :          data_tmp = full_data(idata)
   12909      447435 :          pack_tmp = ISHFT(data_tmp, 51)
   12910      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12911      447435 :          idata = idata + 1
   12912      447435 :          data_tmp = full_data(idata)
   12913      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12914      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12915      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12916      447435 :          idata = idata + 1
   12917      447435 :          data_tmp = full_data(idata)
   12918      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12919      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12920      447435 :          pack_tmp = ISHFT(pack_tmp, -13)
   12921      447435 :          idata = idata + 1
   12922      447435 :          data_tmp = full_data(idata)
   12923      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12924      447435 :          data_tmp = IAND(data_tmp, mask_left(13))
   12925      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12926      447435 :          ipack = ipack + 1
   12927      447435 :          packed_data(ipack) = pack_tmp
   12928      447435 :          data_tmp = full_data(idata)
   12929      447435 :          pack_tmp = ISHFT(data_tmp, 58)
   12930      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12931      447435 :          idata = idata + 1
   12932      447435 :          data_tmp = full_data(idata)
   12933      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12934      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12935      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12936      447435 :          idata = idata + 1
   12937      447435 :          data_tmp = full_data(idata)
   12938      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12939      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12940      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12941      447435 :          idata = idata + 1
   12942      447435 :          data_tmp = full_data(idata)
   12943      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12944      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12945      447435 :          pack_tmp = ISHFT(pack_tmp, -1)
   12946      447435 :          idata = idata + 1
   12947      447435 :          data_tmp = full_data(idata)
   12948      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12949      447435 :          data_tmp = IAND(data_tmp, mask_left(1))
   12950      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12951      447435 :          ipack = ipack + 1
   12952      447435 :          packed_data(ipack) = pack_tmp
   12953      447435 :          data_tmp = full_data(idata)
   12954      447435 :          pack_tmp = ISHFT(data_tmp, 46)
   12955      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12956      447435 :          idata = idata + 1
   12957      447435 :          data_tmp = full_data(idata)
   12958      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12959      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12960      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12961      447435 :          idata = idata + 1
   12962      447435 :          data_tmp = full_data(idata)
   12963      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12964      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12965      447435 :          pack_tmp = ISHFT(pack_tmp, -8)
   12966      447435 :          idata = idata + 1
   12967      447435 :          data_tmp = full_data(idata)
   12968      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12969      447435 :          data_tmp = IAND(data_tmp, mask_left(8))
   12970      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12971      447435 :          ipack = ipack + 1
   12972      447435 :          packed_data(ipack) = pack_tmp
   12973      447435 :          data_tmp = full_data(idata)
   12974      447435 :          pack_tmp = ISHFT(data_tmp, 53)
   12975      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12976      447435 :          idata = idata + 1
   12977      447435 :          data_tmp = full_data(idata)
   12978      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12979      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12980      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12981      447435 :          idata = idata + 1
   12982      447435 :          data_tmp = full_data(idata)
   12983      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12984      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12985      447435 :          pack_tmp = ISHFT(pack_tmp, -15)
   12986      447435 :          idata = idata + 1
   12987      447435 :          data_tmp = full_data(idata)
   12988      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12989      447435 :          data_tmp = IAND(data_tmp, mask_left(15))
   12990      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12991      447435 :          ipack = ipack + 1
   12992      447435 :          packed_data(ipack) = pack_tmp
   12993      447435 :          data_tmp = full_data(idata)
   12994      447435 :          pack_tmp = ISHFT(data_tmp, 60)
   12995      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   12996      447435 :          idata = idata + 1
   12997      447435 :          data_tmp = full_data(idata)
   12998      447435 :          data_tmp = ISHFT(data_tmp, 45)
   12999      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13000      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13001      447435 :          idata = idata + 1
   13002      447435 :          data_tmp = full_data(idata)
   13003      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13004      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13005      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13006      447435 :          idata = idata + 1
   13007      447435 :          data_tmp = full_data(idata)
   13008      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13009      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13010      447435 :          pack_tmp = ISHFT(pack_tmp, -3)
   13011      447435 :          idata = idata + 1
   13012      447435 :          data_tmp = full_data(idata)
   13013      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13014      447435 :          data_tmp = IAND(data_tmp, mask_left(3))
   13015      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13016      447435 :          ipack = ipack + 1
   13017      447435 :          packed_data(ipack) = pack_tmp
   13018      447435 :          data_tmp = full_data(idata)
   13019      447435 :          pack_tmp = ISHFT(data_tmp, 48)
   13020      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13021      447435 :          idata = idata + 1
   13022      447435 :          data_tmp = full_data(idata)
   13023      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13024      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13025      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13026      447435 :          idata = idata + 1
   13027      447435 :          data_tmp = full_data(idata)
   13028      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13029      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13030      447435 :          pack_tmp = ISHFT(pack_tmp, -10)
   13031      447435 :          idata = idata + 1
   13032      447435 :          data_tmp = full_data(idata)
   13033      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13034      447435 :          data_tmp = IAND(data_tmp, mask_left(10))
   13035      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13036      447435 :          ipack = ipack + 1
   13037      447435 :          packed_data(ipack) = pack_tmp
   13038      447435 :          data_tmp = full_data(idata)
   13039      447435 :          pack_tmp = ISHFT(data_tmp, 55)
   13040      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13041      447435 :          idata = idata + 1
   13042      447435 :          data_tmp = full_data(idata)
   13043      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13044      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13045      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13046      447435 :          idata = idata + 1
   13047      447435 :          data_tmp = full_data(idata)
   13048      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13049      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13050      447435 :          pack_tmp = ISHFT(pack_tmp, -17)
   13051      447435 :          idata = idata + 1
   13052      447435 :          data_tmp = full_data(idata)
   13053      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13054      447435 :          data_tmp = IAND(data_tmp, mask_left(17))
   13055      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13056      447435 :          ipack = ipack + 1
   13057      447435 :          packed_data(ipack) = pack_tmp
   13058      447435 :          data_tmp = full_data(idata)
   13059      447435 :          pack_tmp = ISHFT(data_tmp, 62)
   13060      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13061      447435 :          idata = idata + 1
   13062      447435 :          data_tmp = full_data(idata)
   13063      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13064      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13065      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13066      447435 :          idata = idata + 1
   13067      447435 :          data_tmp = full_data(idata)
   13068      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13069      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13070      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13071      447435 :          idata = idata + 1
   13072      447435 :          data_tmp = full_data(idata)
   13073      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13074      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13075      447435 :          pack_tmp = ISHFT(pack_tmp, -5)
   13076      447435 :          idata = idata + 1
   13077      447435 :          data_tmp = full_data(idata)
   13078      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13079      447435 :          data_tmp = IAND(data_tmp, mask_left(5))
   13080      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13081      447435 :          ipack = ipack + 1
   13082      447435 :          packed_data(ipack) = pack_tmp
   13083      447435 :          data_tmp = full_data(idata)
   13084      447435 :          pack_tmp = ISHFT(data_tmp, 50)
   13085      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13086      447435 :          idata = idata + 1
   13087      447435 :          data_tmp = full_data(idata)
   13088      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13089      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13090      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13091      447435 :          idata = idata + 1
   13092      447435 :          data_tmp = full_data(idata)
   13093      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13094      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13095      447435 :          pack_tmp = ISHFT(pack_tmp, -12)
   13096      447435 :          idata = idata + 1
   13097      447435 :          data_tmp = full_data(idata)
   13098      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13099      447435 :          data_tmp = IAND(data_tmp, mask_left(12))
   13100      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13101      447435 :          ipack = ipack + 1
   13102      447435 :          packed_data(ipack) = pack_tmp
   13103      447435 :          data_tmp = full_data(idata)
   13104      447435 :          pack_tmp = ISHFT(data_tmp, 57)
   13105      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13106      447435 :          idata = idata + 1
   13107      447435 :          data_tmp = full_data(idata)
   13108      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13109      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13110      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13111      447435 :          idata = idata + 1
   13112      447435 :          data_tmp = full_data(idata)
   13113      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13114      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13115      447435 :          pack_tmp = ISHFT(pack_tmp, -19)
   13116      447435 :          idata = idata + 1
   13117      447435 :          data_tmp = full_data(idata)
   13118      447435 :          data_tmp = ISHFT(data_tmp, 45)
   13119      447435 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13120             :          pack_tmp = ISHFT(pack_tmp, 0)
   13121      447435 :          pack_tmp = ISHFT(pack_tmp, 0)
   13122      447435 :          ipack = ipack + 1
   13123      447531 :          packed_data(ipack) = pack_tmp
   13124             :       END DO
   13125       29503 :       IF (Ndata_rep < Ndata) THEN
   13126        2794 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13127             :       END IF
   13128       29503 :    END SUBROUTINE ints2bits_19
   13129             : 
   13130             : ! **************************************************************************************************
   13131             : !> \brief ...
   13132             : !> \param Ndata ...
   13133             : !> \param packed_data ...
   13134             : !> \param full_data ...
   13135             : ! **************************************************************************************************
   13136      152498 :    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      152498 :       ipack = 0
   13147      152498 :       idata = 0
   13148      152498 :       pack_tmp = 0
   13149      152498 :       Ndata_rep = (Ndata/64)*64
   13150      152498 :       DO kdata = 1, Ndata_rep, 64
   13151     2233137 :          idata = idata + 1
   13152     2233137 :          data_tmp = ISHFT(pack_tmp, 19)
   13153     2233137 :          ipack = ipack + 1
   13154     2233137 :          pack_tmp = packed_data(ipack)
   13155     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   13156     2233137 :          pack_tmp = ISHFT(pack_tmp, -19)
   13157     2233137 :          idata = idata + 1
   13158     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13159     2233137 :          full_data(idata) = data_tmp
   13160     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13161     2233137 :          idata = idata + 1
   13162     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13163     2233137 :          full_data(idata) = data_tmp
   13164     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13165     2233137 :          idata = idata + 1
   13166     2233137 :          data_tmp = ISHFT(pack_tmp, 12)
   13167     2233137 :          ipack = ipack + 1
   13168     2233137 :          pack_tmp = packed_data(ipack)
   13169     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13170     2233137 :          pack_tmp = ISHFT(pack_tmp, -12)
   13171     2233137 :          idata = idata + 1
   13172     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13173     2233137 :          full_data(idata) = data_tmp
   13174     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13175     2233137 :          idata = idata + 1
   13176     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13177     2233137 :          full_data(idata) = data_tmp
   13178     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13179     2233137 :          idata = idata + 1
   13180     2233137 :          data_tmp = ISHFT(pack_tmp, 5)
   13181     2233137 :          ipack = ipack + 1
   13182     2233137 :          pack_tmp = packed_data(ipack)
   13183     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   13184     2233137 :          pack_tmp = ISHFT(pack_tmp, -5)
   13185     2233137 :          idata = idata + 1
   13186     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13187     2233137 :          full_data(idata) = data_tmp
   13188     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13189     2233137 :          idata = idata + 1
   13190     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13191     2233137 :          full_data(idata) = data_tmp
   13192     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13193     2233137 :          idata = idata + 1
   13194     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13195     2233137 :          full_data(idata) = data_tmp
   13196     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13197     2233137 :          idata = idata + 1
   13198     2233137 :          data_tmp = ISHFT(pack_tmp, 17)
   13199     2233137 :          ipack = ipack + 1
   13200     2233137 :          pack_tmp = packed_data(ipack)
   13201     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   13202     2233137 :          pack_tmp = ISHFT(pack_tmp, -17)
   13203     2233137 :          idata = idata + 1
   13204     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13205     2233137 :          full_data(idata) = data_tmp
   13206     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13207     2233137 :          idata = idata + 1
   13208     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13209     2233137 :          full_data(idata) = data_tmp
   13210     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13211     2233137 :          idata = idata + 1
   13212     2233137 :          data_tmp = ISHFT(pack_tmp, 10)
   13213     2233137 :          ipack = ipack + 1
   13214     2233137 :          pack_tmp = packed_data(ipack)
   13215     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   13216     2233137 :          pack_tmp = ISHFT(pack_tmp, -10)
   13217     2233137 :          idata = idata + 1
   13218     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13219     2233137 :          full_data(idata) = data_tmp
   13220     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13221     2233137 :          idata = idata + 1
   13222     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13223     2233137 :          full_data(idata) = data_tmp
   13224     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13225     2233137 :          idata = idata + 1
   13226     2233137 :          data_tmp = ISHFT(pack_tmp, 3)
   13227     2233137 :          ipack = ipack + 1
   13228     2233137 :          pack_tmp = packed_data(ipack)
   13229     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   13230     2233137 :          pack_tmp = ISHFT(pack_tmp, -3)
   13231     2233137 :          idata = idata + 1
   13232     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13233     2233137 :          full_data(idata) = data_tmp
   13234     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13235     2233137 :          idata = idata + 1
   13236     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13237     2233137 :          full_data(idata) = data_tmp
   13238     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13239     2233137 :          idata = idata + 1
   13240     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13241     2233137 :          full_data(idata) = data_tmp
   13242     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13243     2233137 :          idata = idata + 1
   13244     2233137 :          data_tmp = ISHFT(pack_tmp, 15)
   13245     2233137 :          ipack = ipack + 1
   13246     2233137 :          pack_tmp = packed_data(ipack)
   13247     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   13248     2233137 :          pack_tmp = ISHFT(pack_tmp, -15)
   13249     2233137 :          idata = idata + 1
   13250     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13251     2233137 :          full_data(idata) = data_tmp
   13252     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13253     2233137 :          idata = idata + 1
   13254     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13255     2233137 :          full_data(idata) = data_tmp
   13256     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13257     2233137 :          idata = idata + 1
   13258     2233137 :          data_tmp = ISHFT(pack_tmp, 8)
   13259     2233137 :          ipack = ipack + 1
   13260     2233137 :          pack_tmp = packed_data(ipack)
   13261     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13262     2233137 :          pack_tmp = ISHFT(pack_tmp, -8)
   13263     2233137 :          idata = idata + 1
   13264     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13265     2233137 :          full_data(idata) = data_tmp
   13266     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13267     2233137 :          idata = idata + 1
   13268     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13269     2233137 :          full_data(idata) = data_tmp
   13270     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13271     2233137 :          idata = idata + 1
   13272     2233137 :          data_tmp = ISHFT(pack_tmp, 1)
   13273     2233137 :          ipack = ipack + 1
   13274     2233137 :          pack_tmp = packed_data(ipack)
   13275     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   13276     2233137 :          pack_tmp = ISHFT(pack_tmp, -1)
   13277     2233137 :          idata = idata + 1
   13278     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13279     2233137 :          full_data(idata) = data_tmp
   13280     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13281     2233137 :          idata = idata + 1
   13282     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13283     2233137 :          full_data(idata) = data_tmp
   13284     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13285     2233137 :          idata = idata + 1
   13286     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13287     2233137 :          full_data(idata) = data_tmp
   13288     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13289     2233137 :          idata = idata + 1
   13290     2233137 :          data_tmp = ISHFT(pack_tmp, 13)
   13291     2233137 :          ipack = ipack + 1
   13292     2233137 :          pack_tmp = packed_data(ipack)
   13293     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   13294     2233137 :          pack_tmp = ISHFT(pack_tmp, -13)
   13295     2233137 :          idata = idata + 1
   13296     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13297     2233137 :          full_data(idata) = data_tmp
   13298     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13299     2233137 :          idata = idata + 1
   13300     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13301     2233137 :          full_data(idata) = data_tmp
   13302     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13303     2233137 :          idata = idata + 1
   13304     2233137 :          data_tmp = ISHFT(pack_tmp, 6)
   13305     2233137 :          ipack = ipack + 1
   13306     2233137 :          pack_tmp = packed_data(ipack)
   13307     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   13308     2233137 :          pack_tmp = ISHFT(pack_tmp, -6)
   13309     2233137 :          idata = idata + 1
   13310     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13311     2233137 :          full_data(idata) = data_tmp
   13312     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13313     2233137 :          idata = idata + 1
   13314     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13315     2233137 :          full_data(idata) = data_tmp
   13316     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13317     2233137 :          idata = idata + 1
   13318     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13319     2233137 :          full_data(idata) = data_tmp
   13320     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13321     2233137 :          idata = idata + 1
   13322     2233137 :          data_tmp = ISHFT(pack_tmp, 18)
   13323     2233137 :          ipack = ipack + 1
   13324     2233137 :          pack_tmp = packed_data(ipack)
   13325     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   13326     2233137 :          pack_tmp = ISHFT(pack_tmp, -18)
   13327     2233137 :          idata = idata + 1
   13328     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13329     2233137 :          full_data(idata) = data_tmp
   13330     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13331     2233137 :          idata = idata + 1
   13332     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13333     2233137 :          full_data(idata) = data_tmp
   13334     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13335     2233137 :          idata = idata + 1
   13336     2233137 :          data_tmp = ISHFT(pack_tmp, 11)
   13337     2233137 :          ipack = ipack + 1
   13338     2233137 :          pack_tmp = packed_data(ipack)
   13339     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   13340     2233137 :          pack_tmp = ISHFT(pack_tmp, -11)
   13341     2233137 :          idata = idata + 1
   13342     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13343     2233137 :          full_data(idata) = data_tmp
   13344     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13345     2233137 :          idata = idata + 1
   13346     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13347     2233137 :          full_data(idata) = data_tmp
   13348     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13349     2233137 :          idata = idata + 1
   13350     2233137 :          data_tmp = ISHFT(pack_tmp, 4)
   13351     2233137 :          ipack = ipack + 1
   13352     2233137 :          pack_tmp = packed_data(ipack)
   13353     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13354     2233137 :          pack_tmp = ISHFT(pack_tmp, -4)
   13355     2233137 :          idata = idata + 1
   13356     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13357     2233137 :          full_data(idata) = data_tmp
   13358     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13359     2233137 :          idata = idata + 1
   13360     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13361     2233137 :          full_data(idata) = data_tmp
   13362     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13363     2233137 :          idata = idata + 1
   13364     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13365     2233137 :          full_data(idata) = data_tmp
   13366     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13367     2233137 :          idata = idata + 1
   13368     2233137 :          data_tmp = ISHFT(pack_tmp, 16)
   13369     2233137 :          ipack = ipack + 1
   13370     2233137 :          pack_tmp = packed_data(ipack)
   13371     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13372     2233137 :          pack_tmp = ISHFT(pack_tmp, -16)
   13373     2233137 :          idata = idata + 1
   13374     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13375     2233137 :          full_data(idata) = data_tmp
   13376     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13377     2233137 :          idata = idata + 1
   13378     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13379     2233137 :          full_data(idata) = data_tmp
   13380     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13381     2233137 :          idata = idata + 1
   13382     2233137 :          data_tmp = ISHFT(pack_tmp, 9)
   13383     2233137 :          ipack = ipack + 1
   13384     2233137 :          pack_tmp = packed_data(ipack)
   13385     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   13386     2233137 :          pack_tmp = ISHFT(pack_tmp, -9)
   13387     2233137 :          idata = idata + 1
   13388     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13389     2233137 :          full_data(idata) = data_tmp
   13390     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13391     2233137 :          idata = idata + 1
   13392     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13393     2233137 :          full_data(idata) = data_tmp
   13394     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13395     2233137 :          idata = idata + 1
   13396     2233137 :          data_tmp = ISHFT(pack_tmp, 2)
   13397     2233137 :          ipack = ipack + 1
   13398     2233137 :          pack_tmp = packed_data(ipack)
   13399     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   13400     2233137 :          pack_tmp = ISHFT(pack_tmp, -2)
   13401     2233137 :          idata = idata + 1
   13402     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13403     2233137 :          full_data(idata) = data_tmp
   13404     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13405     2233137 :          idata = idata + 1
   13406     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13407     2233137 :          full_data(idata) = data_tmp
   13408     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13409     2233137 :          idata = idata + 1
   13410     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13411     2233137 :          full_data(idata) = data_tmp
   13412     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13413     2233137 :          idata = idata + 1
   13414     2233137 :          data_tmp = ISHFT(pack_tmp, 14)
   13415     2233137 :          ipack = ipack + 1
   13416     2233137 :          pack_tmp = packed_data(ipack)
   13417     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   13418     2233137 :          pack_tmp = ISHFT(pack_tmp, -14)
   13419     2233137 :          idata = idata + 1
   13420     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13421     2233137 :          full_data(idata) = data_tmp
   13422     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13423     2233137 :          idata = idata + 1
   13424     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13425     2233137 :          full_data(idata) = data_tmp
   13426     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13427     2233137 :          idata = idata + 1
   13428     2233137 :          data_tmp = ISHFT(pack_tmp, 7)
   13429     2233137 :          ipack = ipack + 1
   13430     2233137 :          pack_tmp = packed_data(ipack)
   13431     2233137 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   13432     2233137 :          pack_tmp = ISHFT(pack_tmp, -7)
   13433     2233137 :          idata = idata + 1
   13434     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13435     2233137 :          full_data(idata) = data_tmp
   13436     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13437     2233137 :          idata = idata + 1
   13438     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13439     2233137 :          full_data(idata) = data_tmp
   13440     2233137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13441     2233137 :          idata = idata + 1
   13442     2233137 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13443     2233137 :          full_data(idata) = data_tmp
   13444     2233794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13445             :       END DO
   13446      152498 :       IF (Ndata_rep < Ndata) THEN
   13447       23646 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13448             :       END IF
   13449      152498 :    END SUBROUTINE bits2ints_19
   13450             : 
   13451             : ! **************************************************************************************************
   13452             : !> \brief ...
   13453             : !> \param Ndata ...
   13454             : !> \param packed_data ...
   13455             : !> \param full_data ...
   13456             : ! **************************************************************************************************
   13457       40310 :    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       40310 :       idata = 0
   13468       40310 :       ipack = 0
   13469       40310 :       Ndata_rep = (Ndata/64)*64
   13470       40310 :       DO kdata = 1, Ndata_rep, 64
   13471      575265 :          pack_tmp = 0
   13472      575265 :          idata = idata + 1
   13473      575265 :          data_tmp = full_data(idata)
   13474      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13475      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13476      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13477      575265 :          idata = idata + 1
   13478      575265 :          data_tmp = full_data(idata)
   13479      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13480      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13481      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13482      575265 :          idata = idata + 1
   13483      575265 :          data_tmp = full_data(idata)
   13484      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13485      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13486      575265 :          pack_tmp = ISHFT(pack_tmp, -4)
   13487      575265 :          idata = idata + 1
   13488      575265 :          data_tmp = full_data(idata)
   13489      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13490      575265 :          data_tmp = IAND(data_tmp, mask_left(4))
   13491      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13492      575265 :          ipack = ipack + 1
   13493      575265 :          packed_data(ipack) = pack_tmp
   13494      575265 :          data_tmp = full_data(idata)
   13495      575265 :          pack_tmp = ISHFT(data_tmp, 48)
   13496      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13497      575265 :          idata = idata + 1
   13498      575265 :          data_tmp = full_data(idata)
   13499      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13500      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13501      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13502      575265 :          idata = idata + 1
   13503      575265 :          data_tmp = full_data(idata)
   13504      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13505      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13506      575265 :          pack_tmp = ISHFT(pack_tmp, -8)
   13507      575265 :          idata = idata + 1
   13508      575265 :          data_tmp = full_data(idata)
   13509      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13510      575265 :          data_tmp = IAND(data_tmp, mask_left(8))
   13511      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13512      575265 :          ipack = ipack + 1
   13513      575265 :          packed_data(ipack) = pack_tmp
   13514      575265 :          data_tmp = full_data(idata)
   13515      575265 :          pack_tmp = ISHFT(data_tmp, 52)
   13516      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13517      575265 :          idata = idata + 1
   13518      575265 :          data_tmp = full_data(idata)
   13519      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13520      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13521      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13522      575265 :          idata = idata + 1
   13523      575265 :          data_tmp = full_data(idata)
   13524      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13525      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13526      575265 :          pack_tmp = ISHFT(pack_tmp, -12)
   13527      575265 :          idata = idata + 1
   13528      575265 :          data_tmp = full_data(idata)
   13529      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13530      575265 :          data_tmp = IAND(data_tmp, mask_left(12))
   13531      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13532      575265 :          ipack = ipack + 1
   13533      575265 :          packed_data(ipack) = pack_tmp
   13534      575265 :          data_tmp = full_data(idata)
   13535      575265 :          pack_tmp = ISHFT(data_tmp, 56)
   13536      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13537      575265 :          idata = idata + 1
   13538      575265 :          data_tmp = full_data(idata)
   13539      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13540      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13541      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13542      575265 :          idata = idata + 1
   13543      575265 :          data_tmp = full_data(idata)
   13544      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13545      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13546      575265 :          pack_tmp = ISHFT(pack_tmp, -16)
   13547      575265 :          idata = idata + 1
   13548      575265 :          data_tmp = full_data(idata)
   13549      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13550      575265 :          data_tmp = IAND(data_tmp, mask_left(16))
   13551      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13552      575265 :          ipack = ipack + 1
   13553      575265 :          packed_data(ipack) = pack_tmp
   13554      575265 :          data_tmp = full_data(idata)
   13555      575265 :          pack_tmp = ISHFT(data_tmp, 60)
   13556      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13557      575265 :          idata = idata + 1
   13558      575265 :          data_tmp = full_data(idata)
   13559      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13560      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13561      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13562      575265 :          idata = idata + 1
   13563      575265 :          data_tmp = full_data(idata)
   13564      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13565      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13566      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13567      575265 :          idata = idata + 1
   13568      575265 :          data_tmp = full_data(idata)
   13569      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13570      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13571      575265 :          pack_tmp = ISHFT(pack_tmp, 0)
   13572      575265 :          idata = idata + 1
   13573      575265 :          data_tmp = full_data(idata)
   13574      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13575      575265 :          data_tmp = IAND(data_tmp, mask_left(0))
   13576      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13577      575265 :          ipack = ipack + 1
   13578      575265 :          packed_data(ipack) = pack_tmp
   13579      575265 :          data_tmp = full_data(idata)
   13580      575265 :          pack_tmp = ISHFT(data_tmp, 44)
   13581      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13582      575265 :          idata = idata + 1
   13583      575265 :          data_tmp = full_data(idata)
   13584      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13585      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13586      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13587      575265 :          idata = idata + 1
   13588      575265 :          data_tmp = full_data(idata)
   13589      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13590      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13591      575265 :          pack_tmp = ISHFT(pack_tmp, -4)
   13592      575265 :          idata = idata + 1
   13593      575265 :          data_tmp = full_data(idata)
   13594      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13595      575265 :          data_tmp = IAND(data_tmp, mask_left(4))
   13596      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13597      575265 :          ipack = ipack + 1
   13598      575265 :          packed_data(ipack) = pack_tmp
   13599      575265 :          data_tmp = full_data(idata)
   13600      575265 :          pack_tmp = ISHFT(data_tmp, 48)
   13601      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13602      575265 :          idata = idata + 1
   13603      575265 :          data_tmp = full_data(idata)
   13604      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13605      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13606      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13607      575265 :          idata = idata + 1
   13608      575265 :          data_tmp = full_data(idata)
   13609      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13610      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13611      575265 :          pack_tmp = ISHFT(pack_tmp, -8)
   13612      575265 :          idata = idata + 1
   13613      575265 :          data_tmp = full_data(idata)
   13614      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13615      575265 :          data_tmp = IAND(data_tmp, mask_left(8))
   13616      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13617      575265 :          ipack = ipack + 1
   13618      575265 :          packed_data(ipack) = pack_tmp
   13619      575265 :          data_tmp = full_data(idata)
   13620      575265 :          pack_tmp = ISHFT(data_tmp, 52)
   13621      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13622      575265 :          idata = idata + 1
   13623      575265 :          data_tmp = full_data(idata)
   13624      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13625      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13626      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13627      575265 :          idata = idata + 1
   13628      575265 :          data_tmp = full_data(idata)
   13629      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13630      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13631      575265 :          pack_tmp = ISHFT(pack_tmp, -12)
   13632      575265 :          idata = idata + 1
   13633      575265 :          data_tmp = full_data(idata)
   13634      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13635      575265 :          data_tmp = IAND(data_tmp, mask_left(12))
   13636      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13637      575265 :          ipack = ipack + 1
   13638      575265 :          packed_data(ipack) = pack_tmp
   13639      575265 :          data_tmp = full_data(idata)
   13640      575265 :          pack_tmp = ISHFT(data_tmp, 56)
   13641      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13642      575265 :          idata = idata + 1
   13643      575265 :          data_tmp = full_data(idata)
   13644      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13645      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13646      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13647      575265 :          idata = idata + 1
   13648      575265 :          data_tmp = full_data(idata)
   13649      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13650      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13651      575265 :          pack_tmp = ISHFT(pack_tmp, -16)
   13652      575265 :          idata = idata + 1
   13653      575265 :          data_tmp = full_data(idata)
   13654      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13655      575265 :          data_tmp = IAND(data_tmp, mask_left(16))
   13656      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13657      575265 :          ipack = ipack + 1
   13658      575265 :          packed_data(ipack) = pack_tmp
   13659      575265 :          data_tmp = full_data(idata)
   13660      575265 :          pack_tmp = ISHFT(data_tmp, 60)
   13661      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13662      575265 :          idata = idata + 1
   13663      575265 :          data_tmp = full_data(idata)
   13664      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13665      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13666      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13667      575265 :          idata = idata + 1
   13668      575265 :          data_tmp = full_data(idata)
   13669      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13670      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13671      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13672      575265 :          idata = idata + 1
   13673      575265 :          data_tmp = full_data(idata)
   13674      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13675      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13676      575265 :          pack_tmp = ISHFT(pack_tmp, 0)
   13677      575265 :          idata = idata + 1
   13678      575265 :          data_tmp = full_data(idata)
   13679      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13680      575265 :          data_tmp = IAND(data_tmp, mask_left(0))
   13681      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13682      575265 :          ipack = ipack + 1
   13683      575265 :          packed_data(ipack) = pack_tmp
   13684      575265 :          data_tmp = full_data(idata)
   13685      575265 :          pack_tmp = ISHFT(data_tmp, 44)
   13686      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13687      575265 :          idata = idata + 1
   13688      575265 :          data_tmp = full_data(idata)
   13689      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13690      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13691      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13692      575265 :          idata = idata + 1
   13693      575265 :          data_tmp = full_data(idata)
   13694      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13695      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13696      575265 :          pack_tmp = ISHFT(pack_tmp, -4)
   13697      575265 :          idata = idata + 1
   13698      575265 :          data_tmp = full_data(idata)
   13699      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13700      575265 :          data_tmp = IAND(data_tmp, mask_left(4))
   13701      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13702      575265 :          ipack = ipack + 1
   13703      575265 :          packed_data(ipack) = pack_tmp
   13704      575265 :          data_tmp = full_data(idata)
   13705      575265 :          pack_tmp = ISHFT(data_tmp, 48)
   13706      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13707      575265 :          idata = idata + 1
   13708      575265 :          data_tmp = full_data(idata)
   13709      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13710      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13711      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13712      575265 :          idata = idata + 1
   13713      575265 :          data_tmp = full_data(idata)
   13714      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13715      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13716      575265 :          pack_tmp = ISHFT(pack_tmp, -8)
   13717      575265 :          idata = idata + 1
   13718      575265 :          data_tmp = full_data(idata)
   13719      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13720      575265 :          data_tmp = IAND(data_tmp, mask_left(8))
   13721      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13722      575265 :          ipack = ipack + 1
   13723      575265 :          packed_data(ipack) = pack_tmp
   13724      575265 :          data_tmp = full_data(idata)
   13725      575265 :          pack_tmp = ISHFT(data_tmp, 52)
   13726      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13727      575265 :          idata = idata + 1
   13728      575265 :          data_tmp = full_data(idata)
   13729      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13730      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13731      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13732      575265 :          idata = idata + 1
   13733      575265 :          data_tmp = full_data(idata)
   13734      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13735      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13736      575265 :          pack_tmp = ISHFT(pack_tmp, -12)
   13737      575265 :          idata = idata + 1
   13738      575265 :          data_tmp = full_data(idata)
   13739      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13740      575265 :          data_tmp = IAND(data_tmp, mask_left(12))
   13741      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13742      575265 :          ipack = ipack + 1
   13743      575265 :          packed_data(ipack) = pack_tmp
   13744      575265 :          data_tmp = full_data(idata)
   13745      575265 :          pack_tmp = ISHFT(data_tmp, 56)
   13746      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13747      575265 :          idata = idata + 1
   13748      575265 :          data_tmp = full_data(idata)
   13749      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13750      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13751      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13752      575265 :          idata = idata + 1
   13753      575265 :          data_tmp = full_data(idata)
   13754      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13755      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13756      575265 :          pack_tmp = ISHFT(pack_tmp, -16)
   13757      575265 :          idata = idata + 1
   13758      575265 :          data_tmp = full_data(idata)
   13759      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13760      575265 :          data_tmp = IAND(data_tmp, mask_left(16))
   13761      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13762      575265 :          ipack = ipack + 1
   13763      575265 :          packed_data(ipack) = pack_tmp
   13764      575265 :          data_tmp = full_data(idata)
   13765      575265 :          pack_tmp = ISHFT(data_tmp, 60)
   13766      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13767      575265 :          idata = idata + 1
   13768      575265 :          data_tmp = full_data(idata)
   13769      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13770      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13771      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13772      575265 :          idata = idata + 1
   13773      575265 :          data_tmp = full_data(idata)
   13774      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13775      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13776      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13777      575265 :          idata = idata + 1
   13778      575265 :          data_tmp = full_data(idata)
   13779      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13780      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13781      575265 :          pack_tmp = ISHFT(pack_tmp, 0)
   13782      575265 :          idata = idata + 1
   13783      575265 :          data_tmp = full_data(idata)
   13784      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13785      575265 :          data_tmp = IAND(data_tmp, mask_left(0))
   13786      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13787      575265 :          ipack = ipack + 1
   13788      575265 :          packed_data(ipack) = pack_tmp
   13789      575265 :          data_tmp = full_data(idata)
   13790      575265 :          pack_tmp = ISHFT(data_tmp, 44)
   13791      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13792      575265 :          idata = idata + 1
   13793      575265 :          data_tmp = full_data(idata)
   13794      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13795      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13796      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13797      575265 :          idata = idata + 1
   13798      575265 :          data_tmp = full_data(idata)
   13799      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13800      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13801      575265 :          pack_tmp = ISHFT(pack_tmp, -4)
   13802      575265 :          idata = idata + 1
   13803      575265 :          data_tmp = full_data(idata)
   13804      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13805      575265 :          data_tmp = IAND(data_tmp, mask_left(4))
   13806      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13807      575265 :          ipack = ipack + 1
   13808      575265 :          packed_data(ipack) = pack_tmp
   13809      575265 :          data_tmp = full_data(idata)
   13810      575265 :          pack_tmp = ISHFT(data_tmp, 48)
   13811      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13812      575265 :          idata = idata + 1
   13813      575265 :          data_tmp = full_data(idata)
   13814      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13815      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13816      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13817      575265 :          idata = idata + 1
   13818      575265 :          data_tmp = full_data(idata)
   13819      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13820      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13821      575265 :          pack_tmp = ISHFT(pack_tmp, -8)
   13822      575265 :          idata = idata + 1
   13823      575265 :          data_tmp = full_data(idata)
   13824      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13825      575265 :          data_tmp = IAND(data_tmp, mask_left(8))
   13826      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13827      575265 :          ipack = ipack + 1
   13828      575265 :          packed_data(ipack) = pack_tmp
   13829      575265 :          data_tmp = full_data(idata)
   13830      575265 :          pack_tmp = ISHFT(data_tmp, 52)
   13831      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13832      575265 :          idata = idata + 1
   13833      575265 :          data_tmp = full_data(idata)
   13834      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13835      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13836      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13837      575265 :          idata = idata + 1
   13838      575265 :          data_tmp = full_data(idata)
   13839      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13840      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13841      575265 :          pack_tmp = ISHFT(pack_tmp, -12)
   13842      575265 :          idata = idata + 1
   13843      575265 :          data_tmp = full_data(idata)
   13844      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13845      575265 :          data_tmp = IAND(data_tmp, mask_left(12))
   13846      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13847      575265 :          ipack = ipack + 1
   13848      575265 :          packed_data(ipack) = pack_tmp
   13849      575265 :          data_tmp = full_data(idata)
   13850      575265 :          pack_tmp = ISHFT(data_tmp, 56)
   13851      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13852      575265 :          idata = idata + 1
   13853      575265 :          data_tmp = full_data(idata)
   13854      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13855      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13856      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13857      575265 :          idata = idata + 1
   13858      575265 :          data_tmp = full_data(idata)
   13859      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13860      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13861      575265 :          pack_tmp = ISHFT(pack_tmp, -16)
   13862      575265 :          idata = idata + 1
   13863      575265 :          data_tmp = full_data(idata)
   13864      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13865      575265 :          data_tmp = IAND(data_tmp, mask_left(16))
   13866      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13867      575265 :          ipack = ipack + 1
   13868      575265 :          packed_data(ipack) = pack_tmp
   13869      575265 :          data_tmp = full_data(idata)
   13870      575265 :          pack_tmp = ISHFT(data_tmp, 60)
   13871      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13872      575265 :          idata = idata + 1
   13873      575265 :          data_tmp = full_data(idata)
   13874      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13875      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13876      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13877      575265 :          idata = idata + 1
   13878      575265 :          data_tmp = full_data(idata)
   13879      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13880      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13881      575265 :          pack_tmp = ISHFT(pack_tmp, -20)
   13882      575265 :          idata = idata + 1
   13883      575265 :          data_tmp = full_data(idata)
   13884      575265 :          data_tmp = ISHFT(data_tmp, 44)
   13885      575265 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13886             :          pack_tmp = ISHFT(pack_tmp, 0)
   13887      575265 :          pack_tmp = ISHFT(pack_tmp, 0)
   13888      575265 :          ipack = ipack + 1
   13889      575648 :          packed_data(ipack) = pack_tmp
   13890             :       END DO
   13891       40310 :       IF (Ndata_rep < Ndata) THEN
   13892        7262 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13893             :       END IF
   13894       40310 :    END SUBROUTINE ints2bits_20
   13895             : 
   13896             : ! **************************************************************************************************
   13897             : !> \brief ...
   13898             : !> \param Ndata ...
   13899             : !> \param packed_data ...
   13900             : !> \param full_data ...
   13901             : ! **************************************************************************************************
   13902      281258 :    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      281258 :       ipack = 0
   13913      281258 :       idata = 0
   13914      281258 :       pack_tmp = 0
   13915      281258 :       Ndata_rep = (Ndata/64)*64
   13916      281258 :       DO kdata = 1, Ndata_rep, 64
   13917     3767423 :          idata = idata + 1
   13918     3767423 :          data_tmp = ISHFT(pack_tmp, 20)
   13919     3767423 :          ipack = ipack + 1
   13920     3767423 :          pack_tmp = packed_data(ipack)
   13921     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13922     3767423 :          pack_tmp = ISHFT(pack_tmp, -20)
   13923     3767423 :          idata = idata + 1
   13924     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13925     3767423 :          full_data(idata) = data_tmp
   13926     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13927     3767423 :          idata = idata + 1
   13928     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13929     3767423 :          full_data(idata) = data_tmp
   13930     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13931     3767423 :          idata = idata + 1
   13932     3767423 :          data_tmp = ISHFT(pack_tmp, 16)
   13933     3767423 :          ipack = ipack + 1
   13934     3767423 :          pack_tmp = packed_data(ipack)
   13935     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13936     3767423 :          pack_tmp = ISHFT(pack_tmp, -16)
   13937     3767423 :          idata = idata + 1
   13938     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13939     3767423 :          full_data(idata) = data_tmp
   13940     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13941     3767423 :          idata = idata + 1
   13942     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13943     3767423 :          full_data(idata) = data_tmp
   13944     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13945     3767423 :          idata = idata + 1
   13946     3767423 :          data_tmp = ISHFT(pack_tmp, 12)
   13947     3767423 :          ipack = ipack + 1
   13948     3767423 :          pack_tmp = packed_data(ipack)
   13949     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13950     3767423 :          pack_tmp = ISHFT(pack_tmp, -12)
   13951     3767423 :          idata = idata + 1
   13952     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13953     3767423 :          full_data(idata) = data_tmp
   13954     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13955     3767423 :          idata = idata + 1
   13956     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13957     3767423 :          full_data(idata) = data_tmp
   13958     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13959     3767423 :          idata = idata + 1
   13960     3767423 :          data_tmp = ISHFT(pack_tmp, 8)
   13961     3767423 :          ipack = ipack + 1
   13962     3767423 :          pack_tmp = packed_data(ipack)
   13963     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13964     3767423 :          pack_tmp = ISHFT(pack_tmp, -8)
   13965     3767423 :          idata = idata + 1
   13966     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13967     3767423 :          full_data(idata) = data_tmp
   13968     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13969     3767423 :          idata = idata + 1
   13970     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13971     3767423 :          full_data(idata) = data_tmp
   13972     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13973     3767423 :          idata = idata + 1
   13974     3767423 :          data_tmp = ISHFT(pack_tmp, 4)
   13975     3767423 :          ipack = ipack + 1
   13976     3767423 :          pack_tmp = packed_data(ipack)
   13977     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13978     3767423 :          pack_tmp = ISHFT(pack_tmp, -4)
   13979     3767423 :          idata = idata + 1
   13980     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13981     3767423 :          full_data(idata) = data_tmp
   13982     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13983     3767423 :          idata = idata + 1
   13984     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13985     3767423 :          full_data(idata) = data_tmp
   13986     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13987     3767423 :          idata = idata + 1
   13988     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13989     3767423 :          full_data(idata) = data_tmp
   13990     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13991     3767423 :          idata = idata + 1
   13992     3767423 :          data_tmp = ISHFT(pack_tmp, 20)
   13993     3767423 :          ipack = ipack + 1
   13994     3767423 :          pack_tmp = packed_data(ipack)
   13995     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13996     3767423 :          pack_tmp = ISHFT(pack_tmp, -20)
   13997     3767423 :          idata = idata + 1
   13998     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13999     3767423 :          full_data(idata) = data_tmp
   14000     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14001     3767423 :          idata = idata + 1
   14002     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14003     3767423 :          full_data(idata) = data_tmp
   14004     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14005     3767423 :          idata = idata + 1
   14006     3767423 :          data_tmp = ISHFT(pack_tmp, 16)
   14007     3767423 :          ipack = ipack + 1
   14008     3767423 :          pack_tmp = packed_data(ipack)
   14009     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14010     3767423 :          pack_tmp = ISHFT(pack_tmp, -16)
   14011     3767423 :          idata = idata + 1
   14012     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14013     3767423 :          full_data(idata) = data_tmp
   14014     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14015     3767423 :          idata = idata + 1
   14016     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14017     3767423 :          full_data(idata) = data_tmp
   14018     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14019     3767423 :          idata = idata + 1
   14020     3767423 :          data_tmp = ISHFT(pack_tmp, 12)
   14021     3767423 :          ipack = ipack + 1
   14022     3767423 :          pack_tmp = packed_data(ipack)
   14023     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14024     3767423 :          pack_tmp = ISHFT(pack_tmp, -12)
   14025     3767423 :          idata = idata + 1
   14026     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14027     3767423 :          full_data(idata) = data_tmp
   14028     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14029     3767423 :          idata = idata + 1
   14030     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14031     3767423 :          full_data(idata) = data_tmp
   14032     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14033     3767423 :          idata = idata + 1
   14034     3767423 :          data_tmp = ISHFT(pack_tmp, 8)
   14035     3767423 :          ipack = ipack + 1
   14036     3767423 :          pack_tmp = packed_data(ipack)
   14037     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14038     3767423 :          pack_tmp = ISHFT(pack_tmp, -8)
   14039     3767423 :          idata = idata + 1
   14040     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14041     3767423 :          full_data(idata) = data_tmp
   14042     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14043     3767423 :          idata = idata + 1
   14044     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14045     3767423 :          full_data(idata) = data_tmp
   14046     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14047     3767423 :          idata = idata + 1
   14048     3767423 :          data_tmp = ISHFT(pack_tmp, 4)
   14049     3767423 :          ipack = ipack + 1
   14050     3767423 :          pack_tmp = packed_data(ipack)
   14051     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14052     3767423 :          pack_tmp = ISHFT(pack_tmp, -4)
   14053     3767423 :          idata = idata + 1
   14054     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14055     3767423 :          full_data(idata) = data_tmp
   14056     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14057     3767423 :          idata = idata + 1
   14058     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14059     3767423 :          full_data(idata) = data_tmp
   14060     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14061     3767423 :          idata = idata + 1
   14062     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14063     3767423 :          full_data(idata) = data_tmp
   14064     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14065     3767423 :          idata = idata + 1
   14066     3767423 :          data_tmp = ISHFT(pack_tmp, 20)
   14067     3767423 :          ipack = ipack + 1
   14068     3767423 :          pack_tmp = packed_data(ipack)
   14069     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14070     3767423 :          pack_tmp = ISHFT(pack_tmp, -20)
   14071     3767423 :          idata = idata + 1
   14072     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14073     3767423 :          full_data(idata) = data_tmp
   14074     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14075     3767423 :          idata = idata + 1
   14076     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14077     3767423 :          full_data(idata) = data_tmp
   14078     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14079     3767423 :          idata = idata + 1
   14080     3767423 :          data_tmp = ISHFT(pack_tmp, 16)
   14081     3767423 :          ipack = ipack + 1
   14082     3767423 :          pack_tmp = packed_data(ipack)
   14083     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14084     3767423 :          pack_tmp = ISHFT(pack_tmp, -16)
   14085     3767423 :          idata = idata + 1
   14086     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14087     3767423 :          full_data(idata) = data_tmp
   14088     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14089     3767423 :          idata = idata + 1
   14090     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14091     3767423 :          full_data(idata) = data_tmp
   14092     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14093     3767423 :          idata = idata + 1
   14094     3767423 :          data_tmp = ISHFT(pack_tmp, 12)
   14095     3767423 :          ipack = ipack + 1
   14096     3767423 :          pack_tmp = packed_data(ipack)
   14097     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14098     3767423 :          pack_tmp = ISHFT(pack_tmp, -12)
   14099     3767423 :          idata = idata + 1
   14100     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14101     3767423 :          full_data(idata) = data_tmp
   14102     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14103     3767423 :          idata = idata + 1
   14104     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14105     3767423 :          full_data(idata) = data_tmp
   14106     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14107     3767423 :          idata = idata + 1
   14108     3767423 :          data_tmp = ISHFT(pack_tmp, 8)
   14109     3767423 :          ipack = ipack + 1
   14110     3767423 :          pack_tmp = packed_data(ipack)
   14111     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14112     3767423 :          pack_tmp = ISHFT(pack_tmp, -8)
   14113     3767423 :          idata = idata + 1
   14114     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14115     3767423 :          full_data(idata) = data_tmp
   14116     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14117     3767423 :          idata = idata + 1
   14118     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14119     3767423 :          full_data(idata) = data_tmp
   14120     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14121     3767423 :          idata = idata + 1
   14122     3767423 :          data_tmp = ISHFT(pack_tmp, 4)
   14123     3767423 :          ipack = ipack + 1
   14124     3767423 :          pack_tmp = packed_data(ipack)
   14125     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14126     3767423 :          pack_tmp = ISHFT(pack_tmp, -4)
   14127     3767423 :          idata = idata + 1
   14128     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14129     3767423 :          full_data(idata) = data_tmp
   14130     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14131     3767423 :          idata = idata + 1
   14132     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14133     3767423 :          full_data(idata) = data_tmp
   14134     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14135     3767423 :          idata = idata + 1
   14136     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14137     3767423 :          full_data(idata) = data_tmp
   14138     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14139     3767423 :          idata = idata + 1
   14140     3767423 :          data_tmp = ISHFT(pack_tmp, 20)
   14141     3767423 :          ipack = ipack + 1
   14142     3767423 :          pack_tmp = packed_data(ipack)
   14143     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14144     3767423 :          pack_tmp = ISHFT(pack_tmp, -20)
   14145     3767423 :          idata = idata + 1
   14146     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14147     3767423 :          full_data(idata) = data_tmp
   14148     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14149     3767423 :          idata = idata + 1
   14150     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14151     3767423 :          full_data(idata) = data_tmp
   14152     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14153     3767423 :          idata = idata + 1
   14154     3767423 :          data_tmp = ISHFT(pack_tmp, 16)
   14155     3767423 :          ipack = ipack + 1
   14156     3767423 :          pack_tmp = packed_data(ipack)
   14157     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14158     3767423 :          pack_tmp = ISHFT(pack_tmp, -16)
   14159     3767423 :          idata = idata + 1
   14160     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14161     3767423 :          full_data(idata) = data_tmp
   14162     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14163     3767423 :          idata = idata + 1
   14164     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14165     3767423 :          full_data(idata) = data_tmp
   14166     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14167     3767423 :          idata = idata + 1
   14168     3767423 :          data_tmp = ISHFT(pack_tmp, 12)
   14169     3767423 :          ipack = ipack + 1
   14170     3767423 :          pack_tmp = packed_data(ipack)
   14171     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14172     3767423 :          pack_tmp = ISHFT(pack_tmp, -12)
   14173     3767423 :          idata = idata + 1
   14174     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14175     3767423 :          full_data(idata) = data_tmp
   14176     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14177     3767423 :          idata = idata + 1
   14178     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14179     3767423 :          full_data(idata) = data_tmp
   14180     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14181     3767423 :          idata = idata + 1
   14182     3767423 :          data_tmp = ISHFT(pack_tmp, 8)
   14183     3767423 :          ipack = ipack + 1
   14184     3767423 :          pack_tmp = packed_data(ipack)
   14185     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14186     3767423 :          pack_tmp = ISHFT(pack_tmp, -8)
   14187     3767423 :          idata = idata + 1
   14188     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14189     3767423 :          full_data(idata) = data_tmp
   14190     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14191     3767423 :          idata = idata + 1
   14192     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14193     3767423 :          full_data(idata) = data_tmp
   14194     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14195     3767423 :          idata = idata + 1
   14196     3767423 :          data_tmp = ISHFT(pack_tmp, 4)
   14197     3767423 :          ipack = ipack + 1
   14198     3767423 :          pack_tmp = packed_data(ipack)
   14199     3767423 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14200     3767423 :          pack_tmp = ISHFT(pack_tmp, -4)
   14201     3767423 :          idata = idata + 1
   14202     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14203     3767423 :          full_data(idata) = data_tmp
   14204     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14205     3767423 :          idata = idata + 1
   14206     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14207     3767423 :          full_data(idata) = data_tmp
   14208     3767423 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14209     3767423 :          idata = idata + 1
   14210     3767423 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14211     3767423 :          full_data(idata) = data_tmp
   14212     3771113 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14213             :       END DO
   14214      281258 :       IF (Ndata_rep < Ndata) THEN
   14215       78018 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14216             :       END IF
   14217      281258 :    END SUBROUTINE bits2ints_20
   14218             : 
   14219             : ! **************************************************************************************************
   14220             : !> \brief ...
   14221             : !> \param Ndata ...
   14222             : !> \param packed_data ...
   14223             : !> \param full_data ...
   14224             : ! **************************************************************************************************
   14225       28480 :    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       28480 :       idata = 0
   14236       28480 :       ipack = 0
   14237       28480 :       Ndata_rep = (Ndata/64)*64
   14238       28480 :       DO kdata = 1, Ndata_rep, 64
   14239      432917 :          pack_tmp = 0
   14240      432917 :          idata = idata + 1
   14241      432917 :          data_tmp = full_data(idata)
   14242      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14243      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14244      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14245      432917 :          idata = idata + 1
   14246      432917 :          data_tmp = full_data(idata)
   14247      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14248      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14249      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14250      432917 :          idata = idata + 1
   14251      432917 :          data_tmp = full_data(idata)
   14252      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14253      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14254      432917 :          pack_tmp = ISHFT(pack_tmp, -1)
   14255      432917 :          idata = idata + 1
   14256      432917 :          data_tmp = full_data(idata)
   14257      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14258      432917 :          data_tmp = IAND(data_tmp, mask_left(1))
   14259      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14260      432917 :          ipack = ipack + 1
   14261      432917 :          packed_data(ipack) = pack_tmp
   14262      432917 :          data_tmp = full_data(idata)
   14263      432917 :          pack_tmp = ISHFT(data_tmp, 44)
   14264      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14265      432917 :          idata = idata + 1
   14266      432917 :          data_tmp = full_data(idata)
   14267      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14268      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14269      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14270      432917 :          idata = idata + 1
   14271      432917 :          data_tmp = full_data(idata)
   14272      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14273      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14274      432917 :          pack_tmp = ISHFT(pack_tmp, -2)
   14275      432917 :          idata = idata + 1
   14276      432917 :          data_tmp = full_data(idata)
   14277      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14278      432917 :          data_tmp = IAND(data_tmp, mask_left(2))
   14279      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14280      432917 :          ipack = ipack + 1
   14281      432917 :          packed_data(ipack) = pack_tmp
   14282      432917 :          data_tmp = full_data(idata)
   14283      432917 :          pack_tmp = ISHFT(data_tmp, 45)
   14284      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14285      432917 :          idata = idata + 1
   14286      432917 :          data_tmp = full_data(idata)
   14287      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14288      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14289      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14290      432917 :          idata = idata + 1
   14291      432917 :          data_tmp = full_data(idata)
   14292      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14293      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14294      432917 :          pack_tmp = ISHFT(pack_tmp, -3)
   14295      432917 :          idata = idata + 1
   14296      432917 :          data_tmp = full_data(idata)
   14297      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14298      432917 :          data_tmp = IAND(data_tmp, mask_left(3))
   14299      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14300      432917 :          ipack = ipack + 1
   14301      432917 :          packed_data(ipack) = pack_tmp
   14302      432917 :          data_tmp = full_data(idata)
   14303      432917 :          pack_tmp = ISHFT(data_tmp, 46)
   14304      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14305      432917 :          idata = idata + 1
   14306      432917 :          data_tmp = full_data(idata)
   14307      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14308      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14309      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14310      432917 :          idata = idata + 1
   14311      432917 :          data_tmp = full_data(idata)
   14312      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14313      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14314      432917 :          pack_tmp = ISHFT(pack_tmp, -4)
   14315      432917 :          idata = idata + 1
   14316      432917 :          data_tmp = full_data(idata)
   14317      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14318      432917 :          data_tmp = IAND(data_tmp, mask_left(4))
   14319      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14320      432917 :          ipack = ipack + 1
   14321      432917 :          packed_data(ipack) = pack_tmp
   14322      432917 :          data_tmp = full_data(idata)
   14323      432917 :          pack_tmp = ISHFT(data_tmp, 47)
   14324      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14325      432917 :          idata = idata + 1
   14326      432917 :          data_tmp = full_data(idata)
   14327      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14328      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14329      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14330      432917 :          idata = idata + 1
   14331      432917 :          data_tmp = full_data(idata)
   14332      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14333      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14334      432917 :          pack_tmp = ISHFT(pack_tmp, -5)
   14335      432917 :          idata = idata + 1
   14336      432917 :          data_tmp = full_data(idata)
   14337      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14338      432917 :          data_tmp = IAND(data_tmp, mask_left(5))
   14339      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14340      432917 :          ipack = ipack + 1
   14341      432917 :          packed_data(ipack) = pack_tmp
   14342      432917 :          data_tmp = full_data(idata)
   14343      432917 :          pack_tmp = ISHFT(data_tmp, 48)
   14344      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14345      432917 :          idata = idata + 1
   14346      432917 :          data_tmp = full_data(idata)
   14347      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14348      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14349      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14350      432917 :          idata = idata + 1
   14351      432917 :          data_tmp = full_data(idata)
   14352      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14353      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14354      432917 :          pack_tmp = ISHFT(pack_tmp, -6)
   14355      432917 :          idata = idata + 1
   14356      432917 :          data_tmp = full_data(idata)
   14357      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14358      432917 :          data_tmp = IAND(data_tmp, mask_left(6))
   14359      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14360      432917 :          ipack = ipack + 1
   14361      432917 :          packed_data(ipack) = pack_tmp
   14362      432917 :          data_tmp = full_data(idata)
   14363      432917 :          pack_tmp = ISHFT(data_tmp, 49)
   14364      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14365      432917 :          idata = idata + 1
   14366      432917 :          data_tmp = full_data(idata)
   14367      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14368      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14369      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14370      432917 :          idata = idata + 1
   14371      432917 :          data_tmp = full_data(idata)
   14372      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14373      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14374      432917 :          pack_tmp = ISHFT(pack_tmp, -7)
   14375      432917 :          idata = idata + 1
   14376      432917 :          data_tmp = full_data(idata)
   14377      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14378      432917 :          data_tmp = IAND(data_tmp, mask_left(7))
   14379      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14380      432917 :          ipack = ipack + 1
   14381      432917 :          packed_data(ipack) = pack_tmp
   14382      432917 :          data_tmp = full_data(idata)
   14383      432917 :          pack_tmp = ISHFT(data_tmp, 50)
   14384      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14385      432917 :          idata = idata + 1
   14386      432917 :          data_tmp = full_data(idata)
   14387      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14388      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14389      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14390      432917 :          idata = idata + 1
   14391      432917 :          data_tmp = full_data(idata)
   14392      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14393      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14394      432917 :          pack_tmp = ISHFT(pack_tmp, -8)
   14395      432917 :          idata = idata + 1
   14396      432917 :          data_tmp = full_data(idata)
   14397      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14398      432917 :          data_tmp = IAND(data_tmp, mask_left(8))
   14399      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14400      432917 :          ipack = ipack + 1
   14401      432917 :          packed_data(ipack) = pack_tmp
   14402      432917 :          data_tmp = full_data(idata)
   14403      432917 :          pack_tmp = ISHFT(data_tmp, 51)
   14404      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14405      432917 :          idata = idata + 1
   14406      432917 :          data_tmp = full_data(idata)
   14407      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14408      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14409      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14410      432917 :          idata = idata + 1
   14411      432917 :          data_tmp = full_data(idata)
   14412      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14413      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14414      432917 :          pack_tmp = ISHFT(pack_tmp, -9)
   14415      432917 :          idata = idata + 1
   14416      432917 :          data_tmp = full_data(idata)
   14417      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14418      432917 :          data_tmp = IAND(data_tmp, mask_left(9))
   14419      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14420      432917 :          ipack = ipack + 1
   14421      432917 :          packed_data(ipack) = pack_tmp
   14422      432917 :          data_tmp = full_data(idata)
   14423      432917 :          pack_tmp = ISHFT(data_tmp, 52)
   14424      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14425      432917 :          idata = idata + 1
   14426      432917 :          data_tmp = full_data(idata)
   14427      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14428      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14429      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14430      432917 :          idata = idata + 1
   14431      432917 :          data_tmp = full_data(idata)
   14432      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14433      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14434      432917 :          pack_tmp = ISHFT(pack_tmp, -10)
   14435      432917 :          idata = idata + 1
   14436      432917 :          data_tmp = full_data(idata)
   14437      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14438      432917 :          data_tmp = IAND(data_tmp, mask_left(10))
   14439      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14440      432917 :          ipack = ipack + 1
   14441      432917 :          packed_data(ipack) = pack_tmp
   14442      432917 :          data_tmp = full_data(idata)
   14443      432917 :          pack_tmp = ISHFT(data_tmp, 53)
   14444      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14445      432917 :          idata = idata + 1
   14446      432917 :          data_tmp = full_data(idata)
   14447      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14448      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14449      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14450      432917 :          idata = idata + 1
   14451      432917 :          data_tmp = full_data(idata)
   14452      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14453      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14454      432917 :          pack_tmp = ISHFT(pack_tmp, -11)
   14455      432917 :          idata = idata + 1
   14456      432917 :          data_tmp = full_data(idata)
   14457      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14458      432917 :          data_tmp = IAND(data_tmp, mask_left(11))
   14459      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14460      432917 :          ipack = ipack + 1
   14461      432917 :          packed_data(ipack) = pack_tmp
   14462      432917 :          data_tmp = full_data(idata)
   14463      432917 :          pack_tmp = ISHFT(data_tmp, 54)
   14464      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14465      432917 :          idata = idata + 1
   14466      432917 :          data_tmp = full_data(idata)
   14467      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14468      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14469      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14470      432917 :          idata = idata + 1
   14471      432917 :          data_tmp = full_data(idata)
   14472      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14473      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14474      432917 :          pack_tmp = ISHFT(pack_tmp, -12)
   14475      432917 :          idata = idata + 1
   14476      432917 :          data_tmp = full_data(idata)
   14477      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14478      432917 :          data_tmp = IAND(data_tmp, mask_left(12))
   14479      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14480      432917 :          ipack = ipack + 1
   14481      432917 :          packed_data(ipack) = pack_tmp
   14482      432917 :          data_tmp = full_data(idata)
   14483      432917 :          pack_tmp = ISHFT(data_tmp, 55)
   14484      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14485      432917 :          idata = idata + 1
   14486      432917 :          data_tmp = full_data(idata)
   14487      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14488      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14489      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14490      432917 :          idata = idata + 1
   14491      432917 :          data_tmp = full_data(idata)
   14492      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14493      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14494      432917 :          pack_tmp = ISHFT(pack_tmp, -13)
   14495      432917 :          idata = idata + 1
   14496      432917 :          data_tmp = full_data(idata)
   14497      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14498      432917 :          data_tmp = IAND(data_tmp, mask_left(13))
   14499      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14500      432917 :          ipack = ipack + 1
   14501      432917 :          packed_data(ipack) = pack_tmp
   14502      432917 :          data_tmp = full_data(idata)
   14503      432917 :          pack_tmp = ISHFT(data_tmp, 56)
   14504      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14505      432917 :          idata = idata + 1
   14506      432917 :          data_tmp = full_data(idata)
   14507      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14508      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14509      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14510      432917 :          idata = idata + 1
   14511      432917 :          data_tmp = full_data(idata)
   14512      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14513      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14514      432917 :          pack_tmp = ISHFT(pack_tmp, -14)
   14515      432917 :          idata = idata + 1
   14516      432917 :          data_tmp = full_data(idata)
   14517      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14518      432917 :          data_tmp = IAND(data_tmp, mask_left(14))
   14519      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14520      432917 :          ipack = ipack + 1
   14521      432917 :          packed_data(ipack) = pack_tmp
   14522      432917 :          data_tmp = full_data(idata)
   14523      432917 :          pack_tmp = ISHFT(data_tmp, 57)
   14524      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14525      432917 :          idata = idata + 1
   14526      432917 :          data_tmp = full_data(idata)
   14527      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14528      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14529      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14530      432917 :          idata = idata + 1
   14531      432917 :          data_tmp = full_data(idata)
   14532      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14533      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14534      432917 :          pack_tmp = ISHFT(pack_tmp, -15)
   14535      432917 :          idata = idata + 1
   14536      432917 :          data_tmp = full_data(idata)
   14537      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14538      432917 :          data_tmp = IAND(data_tmp, mask_left(15))
   14539      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14540      432917 :          ipack = ipack + 1
   14541      432917 :          packed_data(ipack) = pack_tmp
   14542      432917 :          data_tmp = full_data(idata)
   14543      432917 :          pack_tmp = ISHFT(data_tmp, 58)
   14544      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14545      432917 :          idata = idata + 1
   14546      432917 :          data_tmp = full_data(idata)
   14547      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14548      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14549      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14550      432917 :          idata = idata + 1
   14551      432917 :          data_tmp = full_data(idata)
   14552      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14553      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14554      432917 :          pack_tmp = ISHFT(pack_tmp, -16)
   14555      432917 :          idata = idata + 1
   14556      432917 :          data_tmp = full_data(idata)
   14557      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14558      432917 :          data_tmp = IAND(data_tmp, mask_left(16))
   14559      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14560      432917 :          ipack = ipack + 1
   14561      432917 :          packed_data(ipack) = pack_tmp
   14562      432917 :          data_tmp = full_data(idata)
   14563      432917 :          pack_tmp = ISHFT(data_tmp, 59)
   14564      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14565      432917 :          idata = idata + 1
   14566      432917 :          data_tmp = full_data(idata)
   14567      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14568      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14569      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14570      432917 :          idata = idata + 1
   14571      432917 :          data_tmp = full_data(idata)
   14572      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14573      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14574      432917 :          pack_tmp = ISHFT(pack_tmp, -17)
   14575      432917 :          idata = idata + 1
   14576      432917 :          data_tmp = full_data(idata)
   14577      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14578      432917 :          data_tmp = IAND(data_tmp, mask_left(17))
   14579      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14580      432917 :          ipack = ipack + 1
   14581      432917 :          packed_data(ipack) = pack_tmp
   14582      432917 :          data_tmp = full_data(idata)
   14583      432917 :          pack_tmp = ISHFT(data_tmp, 60)
   14584      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14585      432917 :          idata = idata + 1
   14586      432917 :          data_tmp = full_data(idata)
   14587      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14588      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14589      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14590      432917 :          idata = idata + 1
   14591      432917 :          data_tmp = full_data(idata)
   14592      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14593      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14594      432917 :          pack_tmp = ISHFT(pack_tmp, -18)
   14595      432917 :          idata = idata + 1
   14596      432917 :          data_tmp = full_data(idata)
   14597      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14598      432917 :          data_tmp = IAND(data_tmp, mask_left(18))
   14599      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14600      432917 :          ipack = ipack + 1
   14601      432917 :          packed_data(ipack) = pack_tmp
   14602      432917 :          data_tmp = full_data(idata)
   14603      432917 :          pack_tmp = ISHFT(data_tmp, 61)
   14604      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14605      432917 :          idata = idata + 1
   14606      432917 :          data_tmp = full_data(idata)
   14607      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14608      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14609      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14610      432917 :          idata = idata + 1
   14611      432917 :          data_tmp = full_data(idata)
   14612      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14613      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14614      432917 :          pack_tmp = ISHFT(pack_tmp, -19)
   14615      432917 :          idata = idata + 1
   14616      432917 :          data_tmp = full_data(idata)
   14617      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14618      432917 :          data_tmp = IAND(data_tmp, mask_left(19))
   14619      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14620      432917 :          ipack = ipack + 1
   14621      432917 :          packed_data(ipack) = pack_tmp
   14622      432917 :          data_tmp = full_data(idata)
   14623      432917 :          pack_tmp = ISHFT(data_tmp, 62)
   14624      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14625      432917 :          idata = idata + 1
   14626      432917 :          data_tmp = full_data(idata)
   14627      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14628      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14629      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14630      432917 :          idata = idata + 1
   14631      432917 :          data_tmp = full_data(idata)
   14632      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14633      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14634      432917 :          pack_tmp = ISHFT(pack_tmp, -20)
   14635      432917 :          idata = idata + 1
   14636      432917 :          data_tmp = full_data(idata)
   14637      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14638      432917 :          data_tmp = IAND(data_tmp, mask_left(20))
   14639      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14640      432917 :          ipack = ipack + 1
   14641      432917 :          packed_data(ipack) = pack_tmp
   14642      432917 :          data_tmp = full_data(idata)
   14643      432917 :          pack_tmp = ISHFT(data_tmp, 63)
   14644      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14645      432917 :          idata = idata + 1
   14646      432917 :          data_tmp = full_data(idata)
   14647      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14648      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14649      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14650      432917 :          idata = idata + 1
   14651      432917 :          data_tmp = full_data(idata)
   14652      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14653      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14654      432917 :          pack_tmp = ISHFT(pack_tmp, -21)
   14655      432917 :          idata = idata + 1
   14656      432917 :          data_tmp = full_data(idata)
   14657      432917 :          data_tmp = ISHFT(data_tmp, 43)
   14658      432917 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14659             :          pack_tmp = ISHFT(pack_tmp, 0)
   14660      432917 :          pack_tmp = ISHFT(pack_tmp, 0)
   14661      432917 :          ipack = ipack + 1
   14662      433274 :          packed_data(ipack) = pack_tmp
   14663             :       END DO
   14664       28480 :       IF (Ndata_rep < Ndata) THEN
   14665        2678 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14666             :       END IF
   14667       28480 :    END SUBROUTINE ints2bits_21
   14668             : 
   14669             : ! **************************************************************************************************
   14670             : !> \brief ...
   14671             : !> \param Ndata ...
   14672             : !> \param packed_data ...
   14673             : !> \param full_data ...
   14674             : ! **************************************************************************************************
   14675      147546 :    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      147546 :       ipack = 0
   14686      147546 :       idata = 0
   14687      147546 :       pack_tmp = 0
   14688      147546 :       Ndata_rep = (Ndata/64)*64
   14689      147546 :       DO kdata = 1, Ndata_rep, 64
   14690     2159558 :          idata = idata + 1
   14691     2159558 :          data_tmp = ISHFT(pack_tmp, 21)
   14692     2159558 :          ipack = ipack + 1
   14693     2159558 :          pack_tmp = packed_data(ipack)
   14694     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   14695     2159558 :          pack_tmp = ISHFT(pack_tmp, -21)
   14696     2159558 :          idata = idata + 1
   14697     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14698     2159558 :          full_data(idata) = data_tmp
   14699     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14700     2159558 :          idata = idata + 1
   14701     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14702     2159558 :          full_data(idata) = data_tmp
   14703     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14704     2159558 :          idata = idata + 1
   14705     2159558 :          data_tmp = ISHFT(pack_tmp, 20)
   14706     2159558 :          ipack = ipack + 1
   14707     2159558 :          pack_tmp = packed_data(ipack)
   14708     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14709     2159558 :          pack_tmp = ISHFT(pack_tmp, -20)
   14710     2159558 :          idata = idata + 1
   14711     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14712     2159558 :          full_data(idata) = data_tmp
   14713     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14714     2159558 :          idata = idata + 1
   14715     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14716     2159558 :          full_data(idata) = data_tmp
   14717     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14718     2159558 :          idata = idata + 1
   14719     2159558 :          data_tmp = ISHFT(pack_tmp, 19)
   14720     2159558 :          ipack = ipack + 1
   14721     2159558 :          pack_tmp = packed_data(ipack)
   14722     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   14723     2159558 :          pack_tmp = ISHFT(pack_tmp, -19)
   14724     2159558 :          idata = idata + 1
   14725     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14726     2159558 :          full_data(idata) = data_tmp
   14727     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14728     2159558 :          idata = idata + 1
   14729     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14730     2159558 :          full_data(idata) = data_tmp
   14731     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14732     2159558 :          idata = idata + 1
   14733     2159558 :          data_tmp = ISHFT(pack_tmp, 18)
   14734     2159558 :          ipack = ipack + 1
   14735     2159558 :          pack_tmp = packed_data(ipack)
   14736     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   14737     2159558 :          pack_tmp = ISHFT(pack_tmp, -18)
   14738     2159558 :          idata = idata + 1
   14739     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14740     2159558 :          full_data(idata) = data_tmp
   14741     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14742     2159558 :          idata = idata + 1
   14743     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14744     2159558 :          full_data(idata) = data_tmp
   14745     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14746     2159558 :          idata = idata + 1
   14747     2159558 :          data_tmp = ISHFT(pack_tmp, 17)
   14748     2159558 :          ipack = ipack + 1
   14749     2159558 :          pack_tmp = packed_data(ipack)
   14750     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   14751     2159558 :          pack_tmp = ISHFT(pack_tmp, -17)
   14752     2159558 :          idata = idata + 1
   14753     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14754     2159558 :          full_data(idata) = data_tmp
   14755     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14756     2159558 :          idata = idata + 1
   14757     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14758     2159558 :          full_data(idata) = data_tmp
   14759     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14760     2159558 :          idata = idata + 1
   14761     2159558 :          data_tmp = ISHFT(pack_tmp, 16)
   14762     2159558 :          ipack = ipack + 1
   14763     2159558 :          pack_tmp = packed_data(ipack)
   14764     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14765     2159558 :          pack_tmp = ISHFT(pack_tmp, -16)
   14766     2159558 :          idata = idata + 1
   14767     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14768     2159558 :          full_data(idata) = data_tmp
   14769     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14770     2159558 :          idata = idata + 1
   14771     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14772     2159558 :          full_data(idata) = data_tmp
   14773     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14774     2159558 :          idata = idata + 1
   14775     2159558 :          data_tmp = ISHFT(pack_tmp, 15)
   14776     2159558 :          ipack = ipack + 1
   14777     2159558 :          pack_tmp = packed_data(ipack)
   14778     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   14779     2159558 :          pack_tmp = ISHFT(pack_tmp, -15)
   14780     2159558 :          idata = idata + 1
   14781     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14782     2159558 :          full_data(idata) = data_tmp
   14783     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14784     2159558 :          idata = idata + 1
   14785     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14786     2159558 :          full_data(idata) = data_tmp
   14787     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14788     2159558 :          idata = idata + 1
   14789     2159558 :          data_tmp = ISHFT(pack_tmp, 14)
   14790     2159558 :          ipack = ipack + 1
   14791     2159558 :          pack_tmp = packed_data(ipack)
   14792     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   14793     2159558 :          pack_tmp = ISHFT(pack_tmp, -14)
   14794     2159558 :          idata = idata + 1
   14795     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14796     2159558 :          full_data(idata) = data_tmp
   14797     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14798     2159558 :          idata = idata + 1
   14799     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14800     2159558 :          full_data(idata) = data_tmp
   14801     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14802     2159558 :          idata = idata + 1
   14803     2159558 :          data_tmp = ISHFT(pack_tmp, 13)
   14804     2159558 :          ipack = ipack + 1
   14805     2159558 :          pack_tmp = packed_data(ipack)
   14806     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   14807     2159558 :          pack_tmp = ISHFT(pack_tmp, -13)
   14808     2159558 :          idata = idata + 1
   14809     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14810     2159558 :          full_data(idata) = data_tmp
   14811     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14812     2159558 :          idata = idata + 1
   14813     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14814     2159558 :          full_data(idata) = data_tmp
   14815     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14816     2159558 :          idata = idata + 1
   14817     2159558 :          data_tmp = ISHFT(pack_tmp, 12)
   14818     2159558 :          ipack = ipack + 1
   14819     2159558 :          pack_tmp = packed_data(ipack)
   14820     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14821     2159558 :          pack_tmp = ISHFT(pack_tmp, -12)
   14822     2159558 :          idata = idata + 1
   14823     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14824     2159558 :          full_data(idata) = data_tmp
   14825     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14826     2159558 :          idata = idata + 1
   14827     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14828     2159558 :          full_data(idata) = data_tmp
   14829     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14830     2159558 :          idata = idata + 1
   14831     2159558 :          data_tmp = ISHFT(pack_tmp, 11)
   14832     2159558 :          ipack = ipack + 1
   14833     2159558 :          pack_tmp = packed_data(ipack)
   14834     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   14835     2159558 :          pack_tmp = ISHFT(pack_tmp, -11)
   14836     2159558 :          idata = idata + 1
   14837     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14838     2159558 :          full_data(idata) = data_tmp
   14839     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14840     2159558 :          idata = idata + 1
   14841     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14842     2159558 :          full_data(idata) = data_tmp
   14843     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14844     2159558 :          idata = idata + 1
   14845     2159558 :          data_tmp = ISHFT(pack_tmp, 10)
   14846     2159558 :          ipack = ipack + 1
   14847     2159558 :          pack_tmp = packed_data(ipack)
   14848     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   14849     2159558 :          pack_tmp = ISHFT(pack_tmp, -10)
   14850     2159558 :          idata = idata + 1
   14851     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14852     2159558 :          full_data(idata) = data_tmp
   14853     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14854     2159558 :          idata = idata + 1
   14855     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14856     2159558 :          full_data(idata) = data_tmp
   14857     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14858     2159558 :          idata = idata + 1
   14859     2159558 :          data_tmp = ISHFT(pack_tmp, 9)
   14860     2159558 :          ipack = ipack + 1
   14861     2159558 :          pack_tmp = packed_data(ipack)
   14862     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   14863     2159558 :          pack_tmp = ISHFT(pack_tmp, -9)
   14864     2159558 :          idata = idata + 1
   14865     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14866     2159558 :          full_data(idata) = data_tmp
   14867     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14868     2159558 :          idata = idata + 1
   14869     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14870     2159558 :          full_data(idata) = data_tmp
   14871     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14872     2159558 :          idata = idata + 1
   14873     2159558 :          data_tmp = ISHFT(pack_tmp, 8)
   14874     2159558 :          ipack = ipack + 1
   14875     2159558 :          pack_tmp = packed_data(ipack)
   14876     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14877     2159558 :          pack_tmp = ISHFT(pack_tmp, -8)
   14878     2159558 :          idata = idata + 1
   14879     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14880     2159558 :          full_data(idata) = data_tmp
   14881     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14882     2159558 :          idata = idata + 1
   14883     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14884     2159558 :          full_data(idata) = data_tmp
   14885     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14886     2159558 :          idata = idata + 1
   14887     2159558 :          data_tmp = ISHFT(pack_tmp, 7)
   14888     2159558 :          ipack = ipack + 1
   14889     2159558 :          pack_tmp = packed_data(ipack)
   14890     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   14891     2159558 :          pack_tmp = ISHFT(pack_tmp, -7)
   14892     2159558 :          idata = idata + 1
   14893     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14894     2159558 :          full_data(idata) = data_tmp
   14895     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14896     2159558 :          idata = idata + 1
   14897     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14898     2159558 :          full_data(idata) = data_tmp
   14899     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14900     2159558 :          idata = idata + 1
   14901     2159558 :          data_tmp = ISHFT(pack_tmp, 6)
   14902     2159558 :          ipack = ipack + 1
   14903     2159558 :          pack_tmp = packed_data(ipack)
   14904     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   14905     2159558 :          pack_tmp = ISHFT(pack_tmp, -6)
   14906     2159558 :          idata = idata + 1
   14907     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14908     2159558 :          full_data(idata) = data_tmp
   14909     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14910     2159558 :          idata = idata + 1
   14911     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14912     2159558 :          full_data(idata) = data_tmp
   14913     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14914     2159558 :          idata = idata + 1
   14915     2159558 :          data_tmp = ISHFT(pack_tmp, 5)
   14916     2159558 :          ipack = ipack + 1
   14917     2159558 :          pack_tmp = packed_data(ipack)
   14918     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   14919     2159558 :          pack_tmp = ISHFT(pack_tmp, -5)
   14920     2159558 :          idata = idata + 1
   14921     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14922     2159558 :          full_data(idata) = data_tmp
   14923     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14924     2159558 :          idata = idata + 1
   14925     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14926     2159558 :          full_data(idata) = data_tmp
   14927     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14928     2159558 :          idata = idata + 1
   14929     2159558 :          data_tmp = ISHFT(pack_tmp, 4)
   14930     2159558 :          ipack = ipack + 1
   14931     2159558 :          pack_tmp = packed_data(ipack)
   14932     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14933     2159558 :          pack_tmp = ISHFT(pack_tmp, -4)
   14934     2159558 :          idata = idata + 1
   14935     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14936     2159558 :          full_data(idata) = data_tmp
   14937     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14938     2159558 :          idata = idata + 1
   14939     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14940     2159558 :          full_data(idata) = data_tmp
   14941     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14942     2159558 :          idata = idata + 1
   14943     2159558 :          data_tmp = ISHFT(pack_tmp, 3)
   14944     2159558 :          ipack = ipack + 1
   14945     2159558 :          pack_tmp = packed_data(ipack)
   14946     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   14947     2159558 :          pack_tmp = ISHFT(pack_tmp, -3)
   14948     2159558 :          idata = idata + 1
   14949     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14950     2159558 :          full_data(idata) = data_tmp
   14951     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14952     2159558 :          idata = idata + 1
   14953     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14954     2159558 :          full_data(idata) = data_tmp
   14955     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14956     2159558 :          idata = idata + 1
   14957     2159558 :          data_tmp = ISHFT(pack_tmp, 2)
   14958     2159558 :          ipack = ipack + 1
   14959     2159558 :          pack_tmp = packed_data(ipack)
   14960     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   14961     2159558 :          pack_tmp = ISHFT(pack_tmp, -2)
   14962     2159558 :          idata = idata + 1
   14963     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14964     2159558 :          full_data(idata) = data_tmp
   14965     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14966     2159558 :          idata = idata + 1
   14967     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14968     2159558 :          full_data(idata) = data_tmp
   14969     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14970     2159558 :          idata = idata + 1
   14971     2159558 :          data_tmp = ISHFT(pack_tmp, 1)
   14972     2159558 :          ipack = ipack + 1
   14973     2159558 :          pack_tmp = packed_data(ipack)
   14974     2159558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   14975     2159558 :          pack_tmp = ISHFT(pack_tmp, -1)
   14976     2159558 :          idata = idata + 1
   14977     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14978     2159558 :          full_data(idata) = data_tmp
   14979     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14980     2159558 :          idata = idata + 1
   14981     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14982     2159558 :          full_data(idata) = data_tmp
   14983     2159558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14984     2159558 :          idata = idata + 1
   14985     2159558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14986     2159558 :          full_data(idata) = data_tmp
   14987     2163158 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14988             :       END DO
   14989      147546 :       IF (Ndata_rep < Ndata) THEN
   14990       23668 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14991             :       END IF
   14992      147546 :    END SUBROUTINE bits2ints_21
   14993             : 
   14994             : ! **************************************************************************************************
   14995             : !> \brief ...
   14996             : !> \param Ndata ...
   14997             : !> \param packed_data ...
   14998             : !> \param full_data ...
   14999             : ! **************************************************************************************************
   15000       28271 :    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       28271 :       idata = 0
   15011       28271 :       ipack = 0
   15012       28271 :       Ndata_rep = (Ndata/64)*64
   15013       28271 :       DO kdata = 1, Ndata_rep, 64
   15014      428417 :          pack_tmp = 0
   15015      428417 :          idata = idata + 1
   15016      428417 :          data_tmp = full_data(idata)
   15017      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15018      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15019      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15020      428417 :          idata = idata + 1
   15021      428417 :          data_tmp = full_data(idata)
   15022      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15023      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15024      428417 :          pack_tmp = ISHFT(pack_tmp, -20)
   15025      428417 :          idata = idata + 1
   15026      428417 :          data_tmp = full_data(idata)
   15027      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15028      428417 :          data_tmp = IAND(data_tmp, mask_left(20))
   15029      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15030      428417 :          ipack = ipack + 1
   15031      428417 :          packed_data(ipack) = pack_tmp
   15032      428417 :          data_tmp = full_data(idata)
   15033      428417 :          pack_tmp = ISHFT(data_tmp, 62)
   15034      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15035      428417 :          idata = idata + 1
   15036      428417 :          data_tmp = full_data(idata)
   15037      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15038      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15039      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15040      428417 :          idata = idata + 1
   15041      428417 :          data_tmp = full_data(idata)
   15042      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15043      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15044      428417 :          pack_tmp = ISHFT(pack_tmp, -18)
   15045      428417 :          idata = idata + 1
   15046      428417 :          data_tmp = full_data(idata)
   15047      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15048      428417 :          data_tmp = IAND(data_tmp, mask_left(18))
   15049      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15050      428417 :          ipack = ipack + 1
   15051      428417 :          packed_data(ipack) = pack_tmp
   15052      428417 :          data_tmp = full_data(idata)
   15053      428417 :          pack_tmp = ISHFT(data_tmp, 60)
   15054      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15055      428417 :          idata = idata + 1
   15056      428417 :          data_tmp = full_data(idata)
   15057      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15058      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15059      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15060      428417 :          idata = idata + 1
   15061      428417 :          data_tmp = full_data(idata)
   15062      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15063      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15064      428417 :          pack_tmp = ISHFT(pack_tmp, -16)
   15065      428417 :          idata = idata + 1
   15066      428417 :          data_tmp = full_data(idata)
   15067      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15068      428417 :          data_tmp = IAND(data_tmp, mask_left(16))
   15069      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15070      428417 :          ipack = ipack + 1
   15071      428417 :          packed_data(ipack) = pack_tmp
   15072      428417 :          data_tmp = full_data(idata)
   15073      428417 :          pack_tmp = ISHFT(data_tmp, 58)
   15074      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15075      428417 :          idata = idata + 1
   15076      428417 :          data_tmp = full_data(idata)
   15077      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15078      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15079      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15080      428417 :          idata = idata + 1
   15081      428417 :          data_tmp = full_data(idata)
   15082      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15083      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15084      428417 :          pack_tmp = ISHFT(pack_tmp, -14)
   15085      428417 :          idata = idata + 1
   15086      428417 :          data_tmp = full_data(idata)
   15087      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15088      428417 :          data_tmp = IAND(data_tmp, mask_left(14))
   15089      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15090      428417 :          ipack = ipack + 1
   15091      428417 :          packed_data(ipack) = pack_tmp
   15092      428417 :          data_tmp = full_data(idata)
   15093      428417 :          pack_tmp = ISHFT(data_tmp, 56)
   15094      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15095      428417 :          idata = idata + 1
   15096      428417 :          data_tmp = full_data(idata)
   15097      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15098      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15099      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15100      428417 :          idata = idata + 1
   15101      428417 :          data_tmp = full_data(idata)
   15102      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15103      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15104      428417 :          pack_tmp = ISHFT(pack_tmp, -12)
   15105      428417 :          idata = idata + 1
   15106      428417 :          data_tmp = full_data(idata)
   15107      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15108      428417 :          data_tmp = IAND(data_tmp, mask_left(12))
   15109      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15110      428417 :          ipack = ipack + 1
   15111      428417 :          packed_data(ipack) = pack_tmp
   15112      428417 :          data_tmp = full_data(idata)
   15113      428417 :          pack_tmp = ISHFT(data_tmp, 54)
   15114      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15115      428417 :          idata = idata + 1
   15116      428417 :          data_tmp = full_data(idata)
   15117      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15118      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15119      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15120      428417 :          idata = idata + 1
   15121      428417 :          data_tmp = full_data(idata)
   15122      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15123      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15124      428417 :          pack_tmp = ISHFT(pack_tmp, -10)
   15125      428417 :          idata = idata + 1
   15126      428417 :          data_tmp = full_data(idata)
   15127      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15128      428417 :          data_tmp = IAND(data_tmp, mask_left(10))
   15129      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15130      428417 :          ipack = ipack + 1
   15131      428417 :          packed_data(ipack) = pack_tmp
   15132      428417 :          data_tmp = full_data(idata)
   15133      428417 :          pack_tmp = ISHFT(data_tmp, 52)
   15134      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15135      428417 :          idata = idata + 1
   15136      428417 :          data_tmp = full_data(idata)
   15137      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15138      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15139      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15140      428417 :          idata = idata + 1
   15141      428417 :          data_tmp = full_data(idata)
   15142      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15143      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15144      428417 :          pack_tmp = ISHFT(pack_tmp, -8)
   15145      428417 :          idata = idata + 1
   15146      428417 :          data_tmp = full_data(idata)
   15147      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15148      428417 :          data_tmp = IAND(data_tmp, mask_left(8))
   15149      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15150      428417 :          ipack = ipack + 1
   15151      428417 :          packed_data(ipack) = pack_tmp
   15152      428417 :          data_tmp = full_data(idata)
   15153      428417 :          pack_tmp = ISHFT(data_tmp, 50)
   15154      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15155      428417 :          idata = idata + 1
   15156      428417 :          data_tmp = full_data(idata)
   15157      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15158      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15159      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15160      428417 :          idata = idata + 1
   15161      428417 :          data_tmp = full_data(idata)
   15162      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15163      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15164      428417 :          pack_tmp = ISHFT(pack_tmp, -6)
   15165      428417 :          idata = idata + 1
   15166      428417 :          data_tmp = full_data(idata)
   15167      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15168      428417 :          data_tmp = IAND(data_tmp, mask_left(6))
   15169      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15170      428417 :          ipack = ipack + 1
   15171      428417 :          packed_data(ipack) = pack_tmp
   15172      428417 :          data_tmp = full_data(idata)
   15173      428417 :          pack_tmp = ISHFT(data_tmp, 48)
   15174      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15175      428417 :          idata = idata + 1
   15176      428417 :          data_tmp = full_data(idata)
   15177      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15178      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15179      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15180      428417 :          idata = idata + 1
   15181      428417 :          data_tmp = full_data(idata)
   15182      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15183      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15184      428417 :          pack_tmp = ISHFT(pack_tmp, -4)
   15185      428417 :          idata = idata + 1
   15186      428417 :          data_tmp = full_data(idata)
   15187      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15188      428417 :          data_tmp = IAND(data_tmp, mask_left(4))
   15189      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15190      428417 :          ipack = ipack + 1
   15191      428417 :          packed_data(ipack) = pack_tmp
   15192      428417 :          data_tmp = full_data(idata)
   15193      428417 :          pack_tmp = ISHFT(data_tmp, 46)
   15194      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15195      428417 :          idata = idata + 1
   15196      428417 :          data_tmp = full_data(idata)
   15197      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15198      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15199      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15200      428417 :          idata = idata + 1
   15201      428417 :          data_tmp = full_data(idata)
   15202      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15203      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15204      428417 :          pack_tmp = ISHFT(pack_tmp, -2)
   15205      428417 :          idata = idata + 1
   15206      428417 :          data_tmp = full_data(idata)
   15207      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15208      428417 :          data_tmp = IAND(data_tmp, mask_left(2))
   15209      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15210      428417 :          ipack = ipack + 1
   15211      428417 :          packed_data(ipack) = pack_tmp
   15212      428417 :          data_tmp = full_data(idata)
   15213      428417 :          pack_tmp = ISHFT(data_tmp, 44)
   15214      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15215      428417 :          idata = idata + 1
   15216      428417 :          data_tmp = full_data(idata)
   15217      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15218      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15219      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15220      428417 :          idata = idata + 1
   15221      428417 :          data_tmp = full_data(idata)
   15222      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15223      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15224      428417 :          pack_tmp = ISHFT(pack_tmp, 0)
   15225      428417 :          idata = idata + 1
   15226      428417 :          data_tmp = full_data(idata)
   15227      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15228      428417 :          data_tmp = IAND(data_tmp, mask_left(0))
   15229      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15230      428417 :          ipack = ipack + 1
   15231      428417 :          packed_data(ipack) = pack_tmp
   15232      428417 :          data_tmp = full_data(idata)
   15233      428417 :          pack_tmp = ISHFT(data_tmp, 42)
   15234      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15235      428417 :          idata = idata + 1
   15236      428417 :          data_tmp = full_data(idata)
   15237      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15238      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15239      428417 :          pack_tmp = ISHFT(pack_tmp, -20)
   15240      428417 :          idata = idata + 1
   15241      428417 :          data_tmp = full_data(idata)
   15242      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15243      428417 :          data_tmp = IAND(data_tmp, mask_left(20))
   15244      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15245      428417 :          ipack = ipack + 1
   15246      428417 :          packed_data(ipack) = pack_tmp
   15247      428417 :          data_tmp = full_data(idata)
   15248      428417 :          pack_tmp = ISHFT(data_tmp, 62)
   15249      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15250      428417 :          idata = idata + 1
   15251      428417 :          data_tmp = full_data(idata)
   15252      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15253      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15254      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15255      428417 :          idata = idata + 1
   15256      428417 :          data_tmp = full_data(idata)
   15257      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15258      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15259      428417 :          pack_tmp = ISHFT(pack_tmp, -18)
   15260      428417 :          idata = idata + 1
   15261      428417 :          data_tmp = full_data(idata)
   15262      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15263      428417 :          data_tmp = IAND(data_tmp, mask_left(18))
   15264      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15265      428417 :          ipack = ipack + 1
   15266      428417 :          packed_data(ipack) = pack_tmp
   15267      428417 :          data_tmp = full_data(idata)
   15268      428417 :          pack_tmp = ISHFT(data_tmp, 60)
   15269      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15270      428417 :          idata = idata + 1
   15271      428417 :          data_tmp = full_data(idata)
   15272      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15273      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15274      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15275      428417 :          idata = idata + 1
   15276      428417 :          data_tmp = full_data(idata)
   15277      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15278      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15279      428417 :          pack_tmp = ISHFT(pack_tmp, -16)
   15280      428417 :          idata = idata + 1
   15281      428417 :          data_tmp = full_data(idata)
   15282      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15283      428417 :          data_tmp = IAND(data_tmp, mask_left(16))
   15284      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15285      428417 :          ipack = ipack + 1
   15286      428417 :          packed_data(ipack) = pack_tmp
   15287      428417 :          data_tmp = full_data(idata)
   15288      428417 :          pack_tmp = ISHFT(data_tmp, 58)
   15289      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15290      428417 :          idata = idata + 1
   15291      428417 :          data_tmp = full_data(idata)
   15292      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15293      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15294      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15295      428417 :          idata = idata + 1
   15296      428417 :          data_tmp = full_data(idata)
   15297      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15298      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15299      428417 :          pack_tmp = ISHFT(pack_tmp, -14)
   15300      428417 :          idata = idata + 1
   15301      428417 :          data_tmp = full_data(idata)
   15302      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15303      428417 :          data_tmp = IAND(data_tmp, mask_left(14))
   15304      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15305      428417 :          ipack = ipack + 1
   15306      428417 :          packed_data(ipack) = pack_tmp
   15307      428417 :          data_tmp = full_data(idata)
   15308      428417 :          pack_tmp = ISHFT(data_tmp, 56)
   15309      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15310      428417 :          idata = idata + 1
   15311      428417 :          data_tmp = full_data(idata)
   15312      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15313      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15314      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15315      428417 :          idata = idata + 1
   15316      428417 :          data_tmp = full_data(idata)
   15317      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15318      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15319      428417 :          pack_tmp = ISHFT(pack_tmp, -12)
   15320      428417 :          idata = idata + 1
   15321      428417 :          data_tmp = full_data(idata)
   15322      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15323      428417 :          data_tmp = IAND(data_tmp, mask_left(12))
   15324      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15325      428417 :          ipack = ipack + 1
   15326      428417 :          packed_data(ipack) = pack_tmp
   15327      428417 :          data_tmp = full_data(idata)
   15328      428417 :          pack_tmp = ISHFT(data_tmp, 54)
   15329      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15330      428417 :          idata = idata + 1
   15331      428417 :          data_tmp = full_data(idata)
   15332      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15333      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15334      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15335      428417 :          idata = idata + 1
   15336      428417 :          data_tmp = full_data(idata)
   15337      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15338      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15339      428417 :          pack_tmp = ISHFT(pack_tmp, -10)
   15340      428417 :          idata = idata + 1
   15341      428417 :          data_tmp = full_data(idata)
   15342      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15343      428417 :          data_tmp = IAND(data_tmp, mask_left(10))
   15344      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15345      428417 :          ipack = ipack + 1
   15346      428417 :          packed_data(ipack) = pack_tmp
   15347      428417 :          data_tmp = full_data(idata)
   15348      428417 :          pack_tmp = ISHFT(data_tmp, 52)
   15349      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15350      428417 :          idata = idata + 1
   15351      428417 :          data_tmp = full_data(idata)
   15352      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15353      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15354      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15355      428417 :          idata = idata + 1
   15356      428417 :          data_tmp = full_data(idata)
   15357      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15358      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15359      428417 :          pack_tmp = ISHFT(pack_tmp, -8)
   15360      428417 :          idata = idata + 1
   15361      428417 :          data_tmp = full_data(idata)
   15362      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15363      428417 :          data_tmp = IAND(data_tmp, mask_left(8))
   15364      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15365      428417 :          ipack = ipack + 1
   15366      428417 :          packed_data(ipack) = pack_tmp
   15367      428417 :          data_tmp = full_data(idata)
   15368      428417 :          pack_tmp = ISHFT(data_tmp, 50)
   15369      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15370      428417 :          idata = idata + 1
   15371      428417 :          data_tmp = full_data(idata)
   15372      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15373      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15374      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15375      428417 :          idata = idata + 1
   15376      428417 :          data_tmp = full_data(idata)
   15377      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15378      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15379      428417 :          pack_tmp = ISHFT(pack_tmp, -6)
   15380      428417 :          idata = idata + 1
   15381      428417 :          data_tmp = full_data(idata)
   15382      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15383      428417 :          data_tmp = IAND(data_tmp, mask_left(6))
   15384      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15385      428417 :          ipack = ipack + 1
   15386      428417 :          packed_data(ipack) = pack_tmp
   15387      428417 :          data_tmp = full_data(idata)
   15388      428417 :          pack_tmp = ISHFT(data_tmp, 48)
   15389      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15390      428417 :          idata = idata + 1
   15391      428417 :          data_tmp = full_data(idata)
   15392      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15393      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15394      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15395      428417 :          idata = idata + 1
   15396      428417 :          data_tmp = full_data(idata)
   15397      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15398      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15399      428417 :          pack_tmp = ISHFT(pack_tmp, -4)
   15400      428417 :          idata = idata + 1
   15401      428417 :          data_tmp = full_data(idata)
   15402      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15403      428417 :          data_tmp = IAND(data_tmp, mask_left(4))
   15404      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15405      428417 :          ipack = ipack + 1
   15406      428417 :          packed_data(ipack) = pack_tmp
   15407      428417 :          data_tmp = full_data(idata)
   15408      428417 :          pack_tmp = ISHFT(data_tmp, 46)
   15409      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15410      428417 :          idata = idata + 1
   15411      428417 :          data_tmp = full_data(idata)
   15412      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15413      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15414      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15415      428417 :          idata = idata + 1
   15416      428417 :          data_tmp = full_data(idata)
   15417      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15418      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15419      428417 :          pack_tmp = ISHFT(pack_tmp, -2)
   15420      428417 :          idata = idata + 1
   15421      428417 :          data_tmp = full_data(idata)
   15422      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15423      428417 :          data_tmp = IAND(data_tmp, mask_left(2))
   15424      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15425      428417 :          ipack = ipack + 1
   15426      428417 :          packed_data(ipack) = pack_tmp
   15427      428417 :          data_tmp = full_data(idata)
   15428      428417 :          pack_tmp = ISHFT(data_tmp, 44)
   15429      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15430      428417 :          idata = idata + 1
   15431      428417 :          data_tmp = full_data(idata)
   15432      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15433      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15434      428417 :          pack_tmp = ISHFT(pack_tmp, -22)
   15435      428417 :          idata = idata + 1
   15436      428417 :          data_tmp = full_data(idata)
   15437      428417 :          data_tmp = ISHFT(data_tmp, 42)
   15438      428417 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15439             :          pack_tmp = ISHFT(pack_tmp, 0)
   15440      428417 :          pack_tmp = ISHFT(pack_tmp, 0)
   15441      428417 :          ipack = ipack + 1
   15442      428524 :          packed_data(ipack) = pack_tmp
   15443             :       END DO
   15444       28271 :       IF (Ndata_rep < Ndata) THEN
   15445        2814 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15446             :       END IF
   15447       28271 :    END SUBROUTINE ints2bits_22
   15448             : 
   15449             : ! **************************************************************************************************
   15450             : !> \brief ...
   15451             : !> \param Ndata ...
   15452             : !> \param packed_data ...
   15453             : !> \param full_data ...
   15454             : ! **************************************************************************************************
   15455      146207 :    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      146207 :       ipack = 0
   15466      146207 :       idata = 0
   15467      146207 :       pack_tmp = 0
   15468      146207 :       Ndata_rep = (Ndata/64)*64
   15469      146207 :       DO kdata = 1, Ndata_rep, 64
   15470     2119978 :          idata = idata + 1
   15471     2119978 :          data_tmp = ISHFT(pack_tmp, 22)
   15472     2119978 :          ipack = ipack + 1
   15473     2119978 :          pack_tmp = packed_data(ipack)
   15474     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15475     2119978 :          pack_tmp = ISHFT(pack_tmp, -22)
   15476     2119978 :          idata = idata + 1
   15477     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15478     2119978 :          full_data(idata) = data_tmp
   15479     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15480     2119978 :          idata = idata + 1
   15481     2119978 :          data_tmp = ISHFT(pack_tmp, 2)
   15482     2119978 :          ipack = ipack + 1
   15483     2119978 :          pack_tmp = packed_data(ipack)
   15484     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15485     2119978 :          pack_tmp = ISHFT(pack_tmp, -2)
   15486     2119978 :          idata = idata + 1
   15487     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15488     2119978 :          full_data(idata) = data_tmp
   15489     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15490     2119978 :          idata = idata + 1
   15491     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15492     2119978 :          full_data(idata) = data_tmp
   15493     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15494     2119978 :          idata = idata + 1
   15495     2119978 :          data_tmp = ISHFT(pack_tmp, 4)
   15496     2119978 :          ipack = ipack + 1
   15497     2119978 :          pack_tmp = packed_data(ipack)
   15498     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15499     2119978 :          pack_tmp = ISHFT(pack_tmp, -4)
   15500     2119978 :          idata = idata + 1
   15501     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15502     2119978 :          full_data(idata) = data_tmp
   15503     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15504     2119978 :          idata = idata + 1
   15505     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15506     2119978 :          full_data(idata) = data_tmp
   15507     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15508     2119978 :          idata = idata + 1
   15509     2119978 :          data_tmp = ISHFT(pack_tmp, 6)
   15510     2119978 :          ipack = ipack + 1
   15511     2119978 :          pack_tmp = packed_data(ipack)
   15512     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15513     2119978 :          pack_tmp = ISHFT(pack_tmp, -6)
   15514     2119978 :          idata = idata + 1
   15515     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15516     2119978 :          full_data(idata) = data_tmp
   15517     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15518     2119978 :          idata = idata + 1
   15519     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15520     2119978 :          full_data(idata) = data_tmp
   15521     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15522     2119978 :          idata = idata + 1
   15523     2119978 :          data_tmp = ISHFT(pack_tmp, 8)
   15524     2119978 :          ipack = ipack + 1
   15525     2119978 :          pack_tmp = packed_data(ipack)
   15526     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15527     2119978 :          pack_tmp = ISHFT(pack_tmp, -8)
   15528     2119978 :          idata = idata + 1
   15529     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15530     2119978 :          full_data(idata) = data_tmp
   15531     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15532     2119978 :          idata = idata + 1
   15533     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15534     2119978 :          full_data(idata) = data_tmp
   15535     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15536     2119978 :          idata = idata + 1
   15537     2119978 :          data_tmp = ISHFT(pack_tmp, 10)
   15538     2119978 :          ipack = ipack + 1
   15539     2119978 :          pack_tmp = packed_data(ipack)
   15540     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15541     2119978 :          pack_tmp = ISHFT(pack_tmp, -10)
   15542     2119978 :          idata = idata + 1
   15543     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15544     2119978 :          full_data(idata) = data_tmp
   15545     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15546     2119978 :          idata = idata + 1
   15547     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15548     2119978 :          full_data(idata) = data_tmp
   15549     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15550     2119978 :          idata = idata + 1
   15551     2119978 :          data_tmp = ISHFT(pack_tmp, 12)
   15552     2119978 :          ipack = ipack + 1
   15553     2119978 :          pack_tmp = packed_data(ipack)
   15554     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15555     2119978 :          pack_tmp = ISHFT(pack_tmp, -12)
   15556     2119978 :          idata = idata + 1
   15557     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15558     2119978 :          full_data(idata) = data_tmp
   15559     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15560     2119978 :          idata = idata + 1
   15561     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15562     2119978 :          full_data(idata) = data_tmp
   15563     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15564     2119978 :          idata = idata + 1
   15565     2119978 :          data_tmp = ISHFT(pack_tmp, 14)
   15566     2119978 :          ipack = ipack + 1
   15567     2119978 :          pack_tmp = packed_data(ipack)
   15568     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15569     2119978 :          pack_tmp = ISHFT(pack_tmp, -14)
   15570     2119978 :          idata = idata + 1
   15571     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15572     2119978 :          full_data(idata) = data_tmp
   15573     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15574     2119978 :          idata = idata + 1
   15575     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15576     2119978 :          full_data(idata) = data_tmp
   15577     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15578     2119978 :          idata = idata + 1
   15579     2119978 :          data_tmp = ISHFT(pack_tmp, 16)
   15580     2119978 :          ipack = ipack + 1
   15581     2119978 :          pack_tmp = packed_data(ipack)
   15582     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15583     2119978 :          pack_tmp = ISHFT(pack_tmp, -16)
   15584     2119978 :          idata = idata + 1
   15585     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15586     2119978 :          full_data(idata) = data_tmp
   15587     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15588     2119978 :          idata = idata + 1
   15589     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15590     2119978 :          full_data(idata) = data_tmp
   15591     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15592     2119978 :          idata = idata + 1
   15593     2119978 :          data_tmp = ISHFT(pack_tmp, 18)
   15594     2119978 :          ipack = ipack + 1
   15595     2119978 :          pack_tmp = packed_data(ipack)
   15596     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15597     2119978 :          pack_tmp = ISHFT(pack_tmp, -18)
   15598     2119978 :          idata = idata + 1
   15599     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15600     2119978 :          full_data(idata) = data_tmp
   15601     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15602     2119978 :          idata = idata + 1
   15603     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15604     2119978 :          full_data(idata) = data_tmp
   15605     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15606     2119978 :          idata = idata + 1
   15607     2119978 :          data_tmp = ISHFT(pack_tmp, 20)
   15608     2119978 :          ipack = ipack + 1
   15609     2119978 :          pack_tmp = packed_data(ipack)
   15610     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15611     2119978 :          pack_tmp = ISHFT(pack_tmp, -20)
   15612     2119978 :          idata = idata + 1
   15613     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15614     2119978 :          full_data(idata) = data_tmp
   15615     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15616     2119978 :          idata = idata + 1
   15617     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15618     2119978 :          full_data(idata) = data_tmp
   15619     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15620     2119978 :          idata = idata + 1
   15621     2119978 :          data_tmp = ISHFT(pack_tmp, 22)
   15622     2119978 :          ipack = ipack + 1
   15623     2119978 :          pack_tmp = packed_data(ipack)
   15624     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15625     2119978 :          pack_tmp = ISHFT(pack_tmp, -22)
   15626     2119978 :          idata = idata + 1
   15627     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15628     2119978 :          full_data(idata) = data_tmp
   15629     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15630     2119978 :          idata = idata + 1
   15631     2119978 :          data_tmp = ISHFT(pack_tmp, 2)
   15632     2119978 :          ipack = ipack + 1
   15633     2119978 :          pack_tmp = packed_data(ipack)
   15634     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15635     2119978 :          pack_tmp = ISHFT(pack_tmp, -2)
   15636     2119978 :          idata = idata + 1
   15637     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15638     2119978 :          full_data(idata) = data_tmp
   15639     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15640     2119978 :          idata = idata + 1
   15641     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15642     2119978 :          full_data(idata) = data_tmp
   15643     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15644     2119978 :          idata = idata + 1
   15645     2119978 :          data_tmp = ISHFT(pack_tmp, 4)
   15646     2119978 :          ipack = ipack + 1
   15647     2119978 :          pack_tmp = packed_data(ipack)
   15648     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15649     2119978 :          pack_tmp = ISHFT(pack_tmp, -4)
   15650     2119978 :          idata = idata + 1
   15651     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15652     2119978 :          full_data(idata) = data_tmp
   15653     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15654     2119978 :          idata = idata + 1
   15655     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15656     2119978 :          full_data(idata) = data_tmp
   15657     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15658     2119978 :          idata = idata + 1
   15659     2119978 :          data_tmp = ISHFT(pack_tmp, 6)
   15660     2119978 :          ipack = ipack + 1
   15661     2119978 :          pack_tmp = packed_data(ipack)
   15662     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15663     2119978 :          pack_tmp = ISHFT(pack_tmp, -6)
   15664     2119978 :          idata = idata + 1
   15665     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15666     2119978 :          full_data(idata) = data_tmp
   15667     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15668     2119978 :          idata = idata + 1
   15669     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15670     2119978 :          full_data(idata) = data_tmp
   15671     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15672     2119978 :          idata = idata + 1
   15673     2119978 :          data_tmp = ISHFT(pack_tmp, 8)
   15674     2119978 :          ipack = ipack + 1
   15675     2119978 :          pack_tmp = packed_data(ipack)
   15676     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15677     2119978 :          pack_tmp = ISHFT(pack_tmp, -8)
   15678     2119978 :          idata = idata + 1
   15679     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15680     2119978 :          full_data(idata) = data_tmp
   15681     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15682     2119978 :          idata = idata + 1
   15683     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15684     2119978 :          full_data(idata) = data_tmp
   15685     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15686     2119978 :          idata = idata + 1
   15687     2119978 :          data_tmp = ISHFT(pack_tmp, 10)
   15688     2119978 :          ipack = ipack + 1
   15689     2119978 :          pack_tmp = packed_data(ipack)
   15690     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15691     2119978 :          pack_tmp = ISHFT(pack_tmp, -10)
   15692     2119978 :          idata = idata + 1
   15693     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15694     2119978 :          full_data(idata) = data_tmp
   15695     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15696     2119978 :          idata = idata + 1
   15697     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15698     2119978 :          full_data(idata) = data_tmp
   15699     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15700     2119978 :          idata = idata + 1
   15701     2119978 :          data_tmp = ISHFT(pack_tmp, 12)
   15702     2119978 :          ipack = ipack + 1
   15703     2119978 :          pack_tmp = packed_data(ipack)
   15704     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15705     2119978 :          pack_tmp = ISHFT(pack_tmp, -12)
   15706     2119978 :          idata = idata + 1
   15707     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15708     2119978 :          full_data(idata) = data_tmp
   15709     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15710     2119978 :          idata = idata + 1
   15711     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15712     2119978 :          full_data(idata) = data_tmp
   15713     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15714     2119978 :          idata = idata + 1
   15715     2119978 :          data_tmp = ISHFT(pack_tmp, 14)
   15716     2119978 :          ipack = ipack + 1
   15717     2119978 :          pack_tmp = packed_data(ipack)
   15718     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15719     2119978 :          pack_tmp = ISHFT(pack_tmp, -14)
   15720     2119978 :          idata = idata + 1
   15721     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15722     2119978 :          full_data(idata) = data_tmp
   15723     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15724     2119978 :          idata = idata + 1
   15725     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15726     2119978 :          full_data(idata) = data_tmp
   15727     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15728     2119978 :          idata = idata + 1
   15729     2119978 :          data_tmp = ISHFT(pack_tmp, 16)
   15730     2119978 :          ipack = ipack + 1
   15731     2119978 :          pack_tmp = packed_data(ipack)
   15732     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15733     2119978 :          pack_tmp = ISHFT(pack_tmp, -16)
   15734     2119978 :          idata = idata + 1
   15735     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15736     2119978 :          full_data(idata) = data_tmp
   15737     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15738     2119978 :          idata = idata + 1
   15739     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15740     2119978 :          full_data(idata) = data_tmp
   15741     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15742     2119978 :          idata = idata + 1
   15743     2119978 :          data_tmp = ISHFT(pack_tmp, 18)
   15744     2119978 :          ipack = ipack + 1
   15745     2119978 :          pack_tmp = packed_data(ipack)
   15746     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15747     2119978 :          pack_tmp = ISHFT(pack_tmp, -18)
   15748     2119978 :          idata = idata + 1
   15749     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15750     2119978 :          full_data(idata) = data_tmp
   15751     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15752     2119978 :          idata = idata + 1
   15753     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15754     2119978 :          full_data(idata) = data_tmp
   15755     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15756     2119978 :          idata = idata + 1
   15757     2119978 :          data_tmp = ISHFT(pack_tmp, 20)
   15758     2119978 :          ipack = ipack + 1
   15759     2119978 :          pack_tmp = packed_data(ipack)
   15760     2119978 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15761     2119978 :          pack_tmp = ISHFT(pack_tmp, -20)
   15762     2119978 :          idata = idata + 1
   15763     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15764     2119978 :          full_data(idata) = data_tmp
   15765     2119978 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15766     2119978 :          idata = idata + 1
   15767     2119978 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15768     2119978 :          full_data(idata) = data_tmp
   15769     2120651 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15770             :       END DO
   15771      146207 :       IF (Ndata_rep < Ndata) THEN
   15772       25804 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15773             :       END IF
   15774      146207 :    END SUBROUTINE bits2ints_22
   15775             : 
   15776             : ! **************************************************************************************************
   15777             : !> \brief ...
   15778             : !> \param Ndata ...
   15779             : !> \param packed_data ...
   15780             : !> \param full_data ...
   15781             : ! **************************************************************************************************
   15782       54063 :    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       54063 :       idata = 0
   15793       54063 :       ipack = 0
   15794       54063 :       Ndata_rep = (Ndata/64)*64
   15795       54063 :       DO kdata = 1, Ndata_rep, 64
   15796      729739 :          pack_tmp = 0
   15797      729739 :          idata = idata + 1
   15798      729739 :          data_tmp = full_data(idata)
   15799      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15800      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15801      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15802      729739 :          idata = idata + 1
   15803      729739 :          data_tmp = full_data(idata)
   15804      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15805      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15806      729739 :          pack_tmp = ISHFT(pack_tmp, -18)
   15807      729739 :          idata = idata + 1
   15808      729739 :          data_tmp = full_data(idata)
   15809      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15810      729739 :          data_tmp = IAND(data_tmp, mask_left(18))
   15811      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15812      729739 :          ipack = ipack + 1
   15813      729739 :          packed_data(ipack) = pack_tmp
   15814      729739 :          data_tmp = full_data(idata)
   15815      729739 :          pack_tmp = ISHFT(data_tmp, 59)
   15816      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15817      729739 :          idata = idata + 1
   15818      729739 :          data_tmp = full_data(idata)
   15819      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15820      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15821      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15822      729739 :          idata = idata + 1
   15823      729739 :          data_tmp = full_data(idata)
   15824      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15825      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15826      729739 :          pack_tmp = ISHFT(pack_tmp, -13)
   15827      729739 :          idata = idata + 1
   15828      729739 :          data_tmp = full_data(idata)
   15829      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15830      729739 :          data_tmp = IAND(data_tmp, mask_left(13))
   15831      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15832      729739 :          ipack = ipack + 1
   15833      729739 :          packed_data(ipack) = pack_tmp
   15834      729739 :          data_tmp = full_data(idata)
   15835      729739 :          pack_tmp = ISHFT(data_tmp, 54)
   15836      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15837      729739 :          idata = idata + 1
   15838      729739 :          data_tmp = full_data(idata)
   15839      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15840      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15841      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15842      729739 :          idata = idata + 1
   15843      729739 :          data_tmp = full_data(idata)
   15844      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15845      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15846      729739 :          pack_tmp = ISHFT(pack_tmp, -8)
   15847      729739 :          idata = idata + 1
   15848      729739 :          data_tmp = full_data(idata)
   15849      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15850      729739 :          data_tmp = IAND(data_tmp, mask_left(8))
   15851      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15852      729739 :          ipack = ipack + 1
   15853      729739 :          packed_data(ipack) = pack_tmp
   15854      729739 :          data_tmp = full_data(idata)
   15855      729739 :          pack_tmp = ISHFT(data_tmp, 49)
   15856      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15857      729739 :          idata = idata + 1
   15858      729739 :          data_tmp = full_data(idata)
   15859      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15860      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15861      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15862      729739 :          idata = idata + 1
   15863      729739 :          data_tmp = full_data(idata)
   15864      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15865      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15866      729739 :          pack_tmp = ISHFT(pack_tmp, -3)
   15867      729739 :          idata = idata + 1
   15868      729739 :          data_tmp = full_data(idata)
   15869      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15870      729739 :          data_tmp = IAND(data_tmp, mask_left(3))
   15871      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15872      729739 :          ipack = ipack + 1
   15873      729739 :          packed_data(ipack) = pack_tmp
   15874      729739 :          data_tmp = full_data(idata)
   15875      729739 :          pack_tmp = ISHFT(data_tmp, 44)
   15876      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15877      729739 :          idata = idata + 1
   15878      729739 :          data_tmp = full_data(idata)
   15879      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15880      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15881      729739 :          pack_tmp = ISHFT(pack_tmp, -21)
   15882      729739 :          idata = idata + 1
   15883      729739 :          data_tmp = full_data(idata)
   15884      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15885      729739 :          data_tmp = IAND(data_tmp, mask_left(21))
   15886      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15887      729739 :          ipack = ipack + 1
   15888      729739 :          packed_data(ipack) = pack_tmp
   15889      729739 :          data_tmp = full_data(idata)
   15890      729739 :          pack_tmp = ISHFT(data_tmp, 62)
   15891      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15892      729739 :          idata = idata + 1
   15893      729739 :          data_tmp = full_data(idata)
   15894      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15895      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15896      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15897      729739 :          idata = idata + 1
   15898      729739 :          data_tmp = full_data(idata)
   15899      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15900      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15901      729739 :          pack_tmp = ISHFT(pack_tmp, -16)
   15902      729739 :          idata = idata + 1
   15903      729739 :          data_tmp = full_data(idata)
   15904      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15905      729739 :          data_tmp = IAND(data_tmp, mask_left(16))
   15906      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15907      729739 :          ipack = ipack + 1
   15908      729739 :          packed_data(ipack) = pack_tmp
   15909      729739 :          data_tmp = full_data(idata)
   15910      729739 :          pack_tmp = ISHFT(data_tmp, 57)
   15911      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15912      729739 :          idata = idata + 1
   15913      729739 :          data_tmp = full_data(idata)
   15914      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15915      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15916      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15917      729739 :          idata = idata + 1
   15918      729739 :          data_tmp = full_data(idata)
   15919      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15920      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15921      729739 :          pack_tmp = ISHFT(pack_tmp, -11)
   15922      729739 :          idata = idata + 1
   15923      729739 :          data_tmp = full_data(idata)
   15924      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15925      729739 :          data_tmp = IAND(data_tmp, mask_left(11))
   15926      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15927      729739 :          ipack = ipack + 1
   15928      729739 :          packed_data(ipack) = pack_tmp
   15929      729739 :          data_tmp = full_data(idata)
   15930      729739 :          pack_tmp = ISHFT(data_tmp, 52)
   15931      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15932      729739 :          idata = idata + 1
   15933      729739 :          data_tmp = full_data(idata)
   15934      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15935      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15936      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15937      729739 :          idata = idata + 1
   15938      729739 :          data_tmp = full_data(idata)
   15939      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15940      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15941      729739 :          pack_tmp = ISHFT(pack_tmp, -6)
   15942      729739 :          idata = idata + 1
   15943      729739 :          data_tmp = full_data(idata)
   15944      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15945      729739 :          data_tmp = IAND(data_tmp, mask_left(6))
   15946      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15947      729739 :          ipack = ipack + 1
   15948      729739 :          packed_data(ipack) = pack_tmp
   15949      729739 :          data_tmp = full_data(idata)
   15950      729739 :          pack_tmp = ISHFT(data_tmp, 47)
   15951      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15952      729739 :          idata = idata + 1
   15953      729739 :          data_tmp = full_data(idata)
   15954      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15955      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15956      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15957      729739 :          idata = idata + 1
   15958      729739 :          data_tmp = full_data(idata)
   15959      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15960      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15961      729739 :          pack_tmp = ISHFT(pack_tmp, -1)
   15962      729739 :          idata = idata + 1
   15963      729739 :          data_tmp = full_data(idata)
   15964      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15965      729739 :          data_tmp = IAND(data_tmp, mask_left(1))
   15966      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15967      729739 :          ipack = ipack + 1
   15968      729739 :          packed_data(ipack) = pack_tmp
   15969      729739 :          data_tmp = full_data(idata)
   15970      729739 :          pack_tmp = ISHFT(data_tmp, 42)
   15971      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15972      729739 :          idata = idata + 1
   15973      729739 :          data_tmp = full_data(idata)
   15974      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15975      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15976      729739 :          pack_tmp = ISHFT(pack_tmp, -19)
   15977      729739 :          idata = idata + 1
   15978      729739 :          data_tmp = full_data(idata)
   15979      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15980      729739 :          data_tmp = IAND(data_tmp, mask_left(19))
   15981      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15982      729739 :          ipack = ipack + 1
   15983      729739 :          packed_data(ipack) = pack_tmp
   15984      729739 :          data_tmp = full_data(idata)
   15985      729739 :          pack_tmp = ISHFT(data_tmp, 60)
   15986      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15987      729739 :          idata = idata + 1
   15988      729739 :          data_tmp = full_data(idata)
   15989      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15990      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15991      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   15992      729739 :          idata = idata + 1
   15993      729739 :          data_tmp = full_data(idata)
   15994      729739 :          data_tmp = ISHFT(data_tmp, 41)
   15995      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15996      729739 :          pack_tmp = ISHFT(pack_tmp, -14)
   15997      729739 :          idata = idata + 1
   15998      729739 :          data_tmp = full_data(idata)
   15999      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16000      729739 :          data_tmp = IAND(data_tmp, mask_left(14))
   16001      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16002      729739 :          ipack = ipack + 1
   16003      729739 :          packed_data(ipack) = pack_tmp
   16004      729739 :          data_tmp = full_data(idata)
   16005      729739 :          pack_tmp = ISHFT(data_tmp, 55)
   16006      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16007      729739 :          idata = idata + 1
   16008      729739 :          data_tmp = full_data(idata)
   16009      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16010      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16011      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16012      729739 :          idata = idata + 1
   16013      729739 :          data_tmp = full_data(idata)
   16014      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16015      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16016      729739 :          pack_tmp = ISHFT(pack_tmp, -9)
   16017      729739 :          idata = idata + 1
   16018      729739 :          data_tmp = full_data(idata)
   16019      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16020      729739 :          data_tmp = IAND(data_tmp, mask_left(9))
   16021      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16022      729739 :          ipack = ipack + 1
   16023      729739 :          packed_data(ipack) = pack_tmp
   16024      729739 :          data_tmp = full_data(idata)
   16025      729739 :          pack_tmp = ISHFT(data_tmp, 50)
   16026      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16027      729739 :          idata = idata + 1
   16028      729739 :          data_tmp = full_data(idata)
   16029      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16030      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16031      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16032      729739 :          idata = idata + 1
   16033      729739 :          data_tmp = full_data(idata)
   16034      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16035      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16036      729739 :          pack_tmp = ISHFT(pack_tmp, -4)
   16037      729739 :          idata = idata + 1
   16038      729739 :          data_tmp = full_data(idata)
   16039      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16040      729739 :          data_tmp = IAND(data_tmp, mask_left(4))
   16041      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16042      729739 :          ipack = ipack + 1
   16043      729739 :          packed_data(ipack) = pack_tmp
   16044      729739 :          data_tmp = full_data(idata)
   16045      729739 :          pack_tmp = ISHFT(data_tmp, 45)
   16046      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16047      729739 :          idata = idata + 1
   16048      729739 :          data_tmp = full_data(idata)
   16049      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16050      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16051      729739 :          pack_tmp = ISHFT(pack_tmp, -22)
   16052      729739 :          idata = idata + 1
   16053      729739 :          data_tmp = full_data(idata)
   16054      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16055      729739 :          data_tmp = IAND(data_tmp, mask_left(22))
   16056      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16057      729739 :          ipack = ipack + 1
   16058      729739 :          packed_data(ipack) = pack_tmp
   16059      729739 :          data_tmp = full_data(idata)
   16060      729739 :          pack_tmp = ISHFT(data_tmp, 63)
   16061      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16062      729739 :          idata = idata + 1
   16063      729739 :          data_tmp = full_data(idata)
   16064      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16065      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16066      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16067      729739 :          idata = idata + 1
   16068      729739 :          data_tmp = full_data(idata)
   16069      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16070      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16071      729739 :          pack_tmp = ISHFT(pack_tmp, -17)
   16072      729739 :          idata = idata + 1
   16073      729739 :          data_tmp = full_data(idata)
   16074      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16075      729739 :          data_tmp = IAND(data_tmp, mask_left(17))
   16076      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16077      729739 :          ipack = ipack + 1
   16078      729739 :          packed_data(ipack) = pack_tmp
   16079      729739 :          data_tmp = full_data(idata)
   16080      729739 :          pack_tmp = ISHFT(data_tmp, 58)
   16081      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16082      729739 :          idata = idata + 1
   16083      729739 :          data_tmp = full_data(idata)
   16084      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16085      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16086      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16087      729739 :          idata = idata + 1
   16088      729739 :          data_tmp = full_data(idata)
   16089      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16090      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16091      729739 :          pack_tmp = ISHFT(pack_tmp, -12)
   16092      729739 :          idata = idata + 1
   16093      729739 :          data_tmp = full_data(idata)
   16094      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16095      729739 :          data_tmp = IAND(data_tmp, mask_left(12))
   16096      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16097      729739 :          ipack = ipack + 1
   16098      729739 :          packed_data(ipack) = pack_tmp
   16099      729739 :          data_tmp = full_data(idata)
   16100      729739 :          pack_tmp = ISHFT(data_tmp, 53)
   16101      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16102      729739 :          idata = idata + 1
   16103      729739 :          data_tmp = full_data(idata)
   16104      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16105      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16106      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16107      729739 :          idata = idata + 1
   16108      729739 :          data_tmp = full_data(idata)
   16109      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16110      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16111      729739 :          pack_tmp = ISHFT(pack_tmp, -7)
   16112      729739 :          idata = idata + 1
   16113      729739 :          data_tmp = full_data(idata)
   16114      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16115      729739 :          data_tmp = IAND(data_tmp, mask_left(7))
   16116      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16117      729739 :          ipack = ipack + 1
   16118      729739 :          packed_data(ipack) = pack_tmp
   16119      729739 :          data_tmp = full_data(idata)
   16120      729739 :          pack_tmp = ISHFT(data_tmp, 48)
   16121      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16122      729739 :          idata = idata + 1
   16123      729739 :          data_tmp = full_data(idata)
   16124      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16125      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16126      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16127      729739 :          idata = idata + 1
   16128      729739 :          data_tmp = full_data(idata)
   16129      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16130      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16131      729739 :          pack_tmp = ISHFT(pack_tmp, -2)
   16132      729739 :          idata = idata + 1
   16133      729739 :          data_tmp = full_data(idata)
   16134      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16135      729739 :          data_tmp = IAND(data_tmp, mask_left(2))
   16136      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16137      729739 :          ipack = ipack + 1
   16138      729739 :          packed_data(ipack) = pack_tmp
   16139      729739 :          data_tmp = full_data(idata)
   16140      729739 :          pack_tmp = ISHFT(data_tmp, 43)
   16141      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16142      729739 :          idata = idata + 1
   16143      729739 :          data_tmp = full_data(idata)
   16144      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16145      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16146      729739 :          pack_tmp = ISHFT(pack_tmp, -20)
   16147      729739 :          idata = idata + 1
   16148      729739 :          data_tmp = full_data(idata)
   16149      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16150      729739 :          data_tmp = IAND(data_tmp, mask_left(20))
   16151      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16152      729739 :          ipack = ipack + 1
   16153      729739 :          packed_data(ipack) = pack_tmp
   16154      729739 :          data_tmp = full_data(idata)
   16155      729739 :          pack_tmp = ISHFT(data_tmp, 61)
   16156      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16157      729739 :          idata = idata + 1
   16158      729739 :          data_tmp = full_data(idata)
   16159      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16160      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16161      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16162      729739 :          idata = idata + 1
   16163      729739 :          data_tmp = full_data(idata)
   16164      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16165      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16166      729739 :          pack_tmp = ISHFT(pack_tmp, -15)
   16167      729739 :          idata = idata + 1
   16168      729739 :          data_tmp = full_data(idata)
   16169      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16170      729739 :          data_tmp = IAND(data_tmp, mask_left(15))
   16171      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16172      729739 :          ipack = ipack + 1
   16173      729739 :          packed_data(ipack) = pack_tmp
   16174      729739 :          data_tmp = full_data(idata)
   16175      729739 :          pack_tmp = ISHFT(data_tmp, 56)
   16176      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16177      729739 :          idata = idata + 1
   16178      729739 :          data_tmp = full_data(idata)
   16179      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16180      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16181      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16182      729739 :          idata = idata + 1
   16183      729739 :          data_tmp = full_data(idata)
   16184      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16185      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16186      729739 :          pack_tmp = ISHFT(pack_tmp, -10)
   16187      729739 :          idata = idata + 1
   16188      729739 :          data_tmp = full_data(idata)
   16189      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16190      729739 :          data_tmp = IAND(data_tmp, mask_left(10))
   16191      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16192      729739 :          ipack = ipack + 1
   16193      729739 :          packed_data(ipack) = pack_tmp
   16194      729739 :          data_tmp = full_data(idata)
   16195      729739 :          pack_tmp = ISHFT(data_tmp, 51)
   16196      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16197      729739 :          idata = idata + 1
   16198      729739 :          data_tmp = full_data(idata)
   16199      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16200      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16201      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16202      729739 :          idata = idata + 1
   16203      729739 :          data_tmp = full_data(idata)
   16204      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16205      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16206      729739 :          pack_tmp = ISHFT(pack_tmp, -5)
   16207      729739 :          idata = idata + 1
   16208      729739 :          data_tmp = full_data(idata)
   16209      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16210      729739 :          data_tmp = IAND(data_tmp, mask_left(5))
   16211      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16212      729739 :          ipack = ipack + 1
   16213      729739 :          packed_data(ipack) = pack_tmp
   16214      729739 :          data_tmp = full_data(idata)
   16215      729739 :          pack_tmp = ISHFT(data_tmp, 46)
   16216      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16217      729739 :          idata = idata + 1
   16218      729739 :          data_tmp = full_data(idata)
   16219      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16220      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16221      729739 :          pack_tmp = ISHFT(pack_tmp, -23)
   16222      729739 :          idata = idata + 1
   16223      729739 :          data_tmp = full_data(idata)
   16224      729739 :          data_tmp = ISHFT(data_tmp, 41)
   16225      729739 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16226             :          pack_tmp = ISHFT(pack_tmp, 0)
   16227      729739 :          pack_tmp = ISHFT(pack_tmp, 0)
   16228      729739 :          ipack = ipack + 1
   16229      730145 :          packed_data(ipack) = pack_tmp
   16230             :       END DO
   16231       54063 :       IF (Ndata_rep < Ndata) THEN
   16232        8778 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16233             :       END IF
   16234       54063 :    END SUBROUTINE ints2bits_23
   16235             : 
   16236             : ! **************************************************************************************************
   16237             : !> \brief ...
   16238             : !> \param Ndata ...
   16239             : !> \param packed_data ...
   16240             : !> \param full_data ...
   16241             : ! **************************************************************************************************
   16242      187687 :    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      187687 :       ipack = 0
   16253      187687 :       idata = 0
   16254      187687 :       pack_tmp = 0
   16255      187687 :       Ndata_rep = (Ndata/64)*64
   16256      187687 :       DO kdata = 1, Ndata_rep, 64
   16257     2601743 :          idata = idata + 1
   16258     2601743 :          data_tmp = ISHFT(pack_tmp, 23)
   16259     2601743 :          ipack = ipack + 1
   16260     2601743 :          pack_tmp = packed_data(ipack)
   16261     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   16262     2601743 :          pack_tmp = ISHFT(pack_tmp, -23)
   16263     2601743 :          idata = idata + 1
   16264     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16265     2601743 :          full_data(idata) = data_tmp
   16266     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16267     2601743 :          idata = idata + 1
   16268     2601743 :          data_tmp = ISHFT(pack_tmp, 5)
   16269     2601743 :          ipack = ipack + 1
   16270     2601743 :          pack_tmp = packed_data(ipack)
   16271     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   16272     2601743 :          pack_tmp = ISHFT(pack_tmp, -5)
   16273     2601743 :          idata = idata + 1
   16274     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16275     2601743 :          full_data(idata) = data_tmp
   16276     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16277     2601743 :          idata = idata + 1
   16278     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16279     2601743 :          full_data(idata) = data_tmp
   16280     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16281     2601743 :          idata = idata + 1
   16282     2601743 :          data_tmp = ISHFT(pack_tmp, 10)
   16283     2601743 :          ipack = ipack + 1
   16284     2601743 :          pack_tmp = packed_data(ipack)
   16285     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   16286     2601743 :          pack_tmp = ISHFT(pack_tmp, -10)
   16287     2601743 :          idata = idata + 1
   16288     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16289     2601743 :          full_data(idata) = data_tmp
   16290     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16291     2601743 :          idata = idata + 1
   16292     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16293     2601743 :          full_data(idata) = data_tmp
   16294     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16295     2601743 :          idata = idata + 1
   16296     2601743 :          data_tmp = ISHFT(pack_tmp, 15)
   16297     2601743 :          ipack = ipack + 1
   16298     2601743 :          pack_tmp = packed_data(ipack)
   16299     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   16300     2601743 :          pack_tmp = ISHFT(pack_tmp, -15)
   16301     2601743 :          idata = idata + 1
   16302     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16303     2601743 :          full_data(idata) = data_tmp
   16304     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16305     2601743 :          idata = idata + 1
   16306     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16307     2601743 :          full_data(idata) = data_tmp
   16308     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16309     2601743 :          idata = idata + 1
   16310     2601743 :          data_tmp = ISHFT(pack_tmp, 20)
   16311     2601743 :          ipack = ipack + 1
   16312     2601743 :          pack_tmp = packed_data(ipack)
   16313     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   16314     2601743 :          pack_tmp = ISHFT(pack_tmp, -20)
   16315     2601743 :          idata = idata + 1
   16316     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16317     2601743 :          full_data(idata) = data_tmp
   16318     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16319     2601743 :          idata = idata + 1
   16320     2601743 :          data_tmp = ISHFT(pack_tmp, 2)
   16321     2601743 :          ipack = ipack + 1
   16322     2601743 :          pack_tmp = packed_data(ipack)
   16323     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   16324     2601743 :          pack_tmp = ISHFT(pack_tmp, -2)
   16325     2601743 :          idata = idata + 1
   16326     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16327     2601743 :          full_data(idata) = data_tmp
   16328     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16329     2601743 :          idata = idata + 1
   16330     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16331     2601743 :          full_data(idata) = data_tmp
   16332     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16333     2601743 :          idata = idata + 1
   16334     2601743 :          data_tmp = ISHFT(pack_tmp, 7)
   16335     2601743 :          ipack = ipack + 1
   16336     2601743 :          pack_tmp = packed_data(ipack)
   16337     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   16338     2601743 :          pack_tmp = ISHFT(pack_tmp, -7)
   16339     2601743 :          idata = idata + 1
   16340     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16341     2601743 :          full_data(idata) = data_tmp
   16342     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16343     2601743 :          idata = idata + 1
   16344     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16345     2601743 :          full_data(idata) = data_tmp
   16346     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16347     2601743 :          idata = idata + 1
   16348     2601743 :          data_tmp = ISHFT(pack_tmp, 12)
   16349     2601743 :          ipack = ipack + 1
   16350     2601743 :          pack_tmp = packed_data(ipack)
   16351     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   16352     2601743 :          pack_tmp = ISHFT(pack_tmp, -12)
   16353     2601743 :          idata = idata + 1
   16354     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16355     2601743 :          full_data(idata) = data_tmp
   16356     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16357     2601743 :          idata = idata + 1
   16358     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16359     2601743 :          full_data(idata) = data_tmp
   16360     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16361     2601743 :          idata = idata + 1
   16362     2601743 :          data_tmp = ISHFT(pack_tmp, 17)
   16363     2601743 :          ipack = ipack + 1
   16364     2601743 :          pack_tmp = packed_data(ipack)
   16365     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   16366     2601743 :          pack_tmp = ISHFT(pack_tmp, -17)
   16367     2601743 :          idata = idata + 1
   16368     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16369     2601743 :          full_data(idata) = data_tmp
   16370     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16371     2601743 :          idata = idata + 1
   16372     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16373     2601743 :          full_data(idata) = data_tmp
   16374     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16375     2601743 :          idata = idata + 1
   16376     2601743 :          data_tmp = ISHFT(pack_tmp, 22)
   16377     2601743 :          ipack = ipack + 1
   16378     2601743 :          pack_tmp = packed_data(ipack)
   16379     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   16380     2601743 :          pack_tmp = ISHFT(pack_tmp, -22)
   16381     2601743 :          idata = idata + 1
   16382     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16383     2601743 :          full_data(idata) = data_tmp
   16384     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16385     2601743 :          idata = idata + 1
   16386     2601743 :          data_tmp = ISHFT(pack_tmp, 4)
   16387     2601743 :          ipack = ipack + 1
   16388     2601743 :          pack_tmp = packed_data(ipack)
   16389     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   16390     2601743 :          pack_tmp = ISHFT(pack_tmp, -4)
   16391     2601743 :          idata = idata + 1
   16392     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16393     2601743 :          full_data(idata) = data_tmp
   16394     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16395     2601743 :          idata = idata + 1
   16396     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16397     2601743 :          full_data(idata) = data_tmp
   16398     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16399     2601743 :          idata = idata + 1
   16400     2601743 :          data_tmp = ISHFT(pack_tmp, 9)
   16401     2601743 :          ipack = ipack + 1
   16402     2601743 :          pack_tmp = packed_data(ipack)
   16403     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   16404     2601743 :          pack_tmp = ISHFT(pack_tmp, -9)
   16405     2601743 :          idata = idata + 1
   16406     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16407     2601743 :          full_data(idata) = data_tmp
   16408     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16409     2601743 :          idata = idata + 1
   16410     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16411     2601743 :          full_data(idata) = data_tmp
   16412     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16413     2601743 :          idata = idata + 1
   16414     2601743 :          data_tmp = ISHFT(pack_tmp, 14)
   16415     2601743 :          ipack = ipack + 1
   16416     2601743 :          pack_tmp = packed_data(ipack)
   16417     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   16418     2601743 :          pack_tmp = ISHFT(pack_tmp, -14)
   16419     2601743 :          idata = idata + 1
   16420     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16421     2601743 :          full_data(idata) = data_tmp
   16422     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16423     2601743 :          idata = idata + 1
   16424     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16425     2601743 :          full_data(idata) = data_tmp
   16426     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16427     2601743 :          idata = idata + 1
   16428     2601743 :          data_tmp = ISHFT(pack_tmp, 19)
   16429     2601743 :          ipack = ipack + 1
   16430     2601743 :          pack_tmp = packed_data(ipack)
   16431     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   16432     2601743 :          pack_tmp = ISHFT(pack_tmp, -19)
   16433     2601743 :          idata = idata + 1
   16434     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16435     2601743 :          full_data(idata) = data_tmp
   16436     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16437     2601743 :          idata = idata + 1
   16438     2601743 :          data_tmp = ISHFT(pack_tmp, 1)
   16439     2601743 :          ipack = ipack + 1
   16440     2601743 :          pack_tmp = packed_data(ipack)
   16441     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   16442     2601743 :          pack_tmp = ISHFT(pack_tmp, -1)
   16443     2601743 :          idata = idata + 1
   16444     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16445     2601743 :          full_data(idata) = data_tmp
   16446     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16447     2601743 :          idata = idata + 1
   16448     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16449     2601743 :          full_data(idata) = data_tmp
   16450     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16451     2601743 :          idata = idata + 1
   16452     2601743 :          data_tmp = ISHFT(pack_tmp, 6)
   16453     2601743 :          ipack = ipack + 1
   16454     2601743 :          pack_tmp = packed_data(ipack)
   16455     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   16456     2601743 :          pack_tmp = ISHFT(pack_tmp, -6)
   16457     2601743 :          idata = idata + 1
   16458     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16459     2601743 :          full_data(idata) = data_tmp
   16460     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16461     2601743 :          idata = idata + 1
   16462     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16463     2601743 :          full_data(idata) = data_tmp
   16464     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16465     2601743 :          idata = idata + 1
   16466     2601743 :          data_tmp = ISHFT(pack_tmp, 11)
   16467     2601743 :          ipack = ipack + 1
   16468     2601743 :          pack_tmp = packed_data(ipack)
   16469     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   16470     2601743 :          pack_tmp = ISHFT(pack_tmp, -11)
   16471     2601743 :          idata = idata + 1
   16472     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16473     2601743 :          full_data(idata) = data_tmp
   16474     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16475     2601743 :          idata = idata + 1
   16476     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16477     2601743 :          full_data(idata) = data_tmp
   16478     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16479     2601743 :          idata = idata + 1
   16480     2601743 :          data_tmp = ISHFT(pack_tmp, 16)
   16481     2601743 :          ipack = ipack + 1
   16482     2601743 :          pack_tmp = packed_data(ipack)
   16483     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   16484     2601743 :          pack_tmp = ISHFT(pack_tmp, -16)
   16485     2601743 :          idata = idata + 1
   16486     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16487     2601743 :          full_data(idata) = data_tmp
   16488     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16489     2601743 :          idata = idata + 1
   16490     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16491     2601743 :          full_data(idata) = data_tmp
   16492     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16493     2601743 :          idata = idata + 1
   16494     2601743 :          data_tmp = ISHFT(pack_tmp, 21)
   16495     2601743 :          ipack = ipack + 1
   16496     2601743 :          pack_tmp = packed_data(ipack)
   16497     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   16498     2601743 :          pack_tmp = ISHFT(pack_tmp, -21)
   16499     2601743 :          idata = idata + 1
   16500     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16501     2601743 :          full_data(idata) = data_tmp
   16502     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16503     2601743 :          idata = idata + 1
   16504     2601743 :          data_tmp = ISHFT(pack_tmp, 3)
   16505     2601743 :          ipack = ipack + 1
   16506     2601743 :          pack_tmp = packed_data(ipack)
   16507     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   16508     2601743 :          pack_tmp = ISHFT(pack_tmp, -3)
   16509     2601743 :          idata = idata + 1
   16510     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16511     2601743 :          full_data(idata) = data_tmp
   16512     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16513     2601743 :          idata = idata + 1
   16514     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16515     2601743 :          full_data(idata) = data_tmp
   16516     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16517     2601743 :          idata = idata + 1
   16518     2601743 :          data_tmp = ISHFT(pack_tmp, 8)
   16519     2601743 :          ipack = ipack + 1
   16520     2601743 :          pack_tmp = packed_data(ipack)
   16521     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   16522     2601743 :          pack_tmp = ISHFT(pack_tmp, -8)
   16523     2601743 :          idata = idata + 1
   16524     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16525     2601743 :          full_data(idata) = data_tmp
   16526     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16527     2601743 :          idata = idata + 1
   16528     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16529     2601743 :          full_data(idata) = data_tmp
   16530     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16531     2601743 :          idata = idata + 1
   16532     2601743 :          data_tmp = ISHFT(pack_tmp, 13)
   16533     2601743 :          ipack = ipack + 1
   16534     2601743 :          pack_tmp = packed_data(ipack)
   16535     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   16536     2601743 :          pack_tmp = ISHFT(pack_tmp, -13)
   16537     2601743 :          idata = idata + 1
   16538     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16539     2601743 :          full_data(idata) = data_tmp
   16540     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16541     2601743 :          idata = idata + 1
   16542     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16543     2601743 :          full_data(idata) = data_tmp
   16544     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16545     2601743 :          idata = idata + 1
   16546     2601743 :          data_tmp = ISHFT(pack_tmp, 18)
   16547     2601743 :          ipack = ipack + 1
   16548     2601743 :          pack_tmp = packed_data(ipack)
   16549     2601743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   16550     2601743 :          pack_tmp = ISHFT(pack_tmp, -18)
   16551     2601743 :          idata = idata + 1
   16552     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16553     2601743 :          full_data(idata) = data_tmp
   16554     2601743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16555     2601743 :          idata = idata + 1
   16556     2601743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16557     2601743 :          full_data(idata) = data_tmp
   16558     2602834 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16559             :       END DO
   16560      187687 :       IF (Ndata_rep < Ndata) THEN
   16561       27298 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16562             :       END IF
   16563      187687 :    END SUBROUTINE bits2ints_23
   16564             : 
   16565             : ! **************************************************************************************************
   16566             : !> \brief ...
   16567             : !> \param Ndata ...
   16568             : !> \param packed_data ...
   16569             : !> \param full_data ...
   16570             : ! **************************************************************************************************
   16571       33188 :    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       33188 :       idata = 0
   16582       33188 :       ipack = 0
   16583       33188 :       Ndata_rep = (Ndata/64)*64
   16584       33188 :       DO kdata = 1, Ndata_rep, 64
   16585      483544 :          pack_tmp = 0
   16586      483544 :          idata = idata + 1
   16587      483544 :          data_tmp = full_data(idata)
   16588      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16589      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16590      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16591      483544 :          idata = idata + 1
   16592      483544 :          data_tmp = full_data(idata)
   16593      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16594      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16595      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16596      483544 :          idata = idata + 1
   16597      483544 :          data_tmp = full_data(idata)
   16598      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16599      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16600      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16601      483544 :          ipack = ipack + 1
   16602      483544 :          packed_data(ipack) = pack_tmp
   16603      483544 :          data_tmp = full_data(idata)
   16604      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16605      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16606      483544 :          idata = idata + 1
   16607      483544 :          data_tmp = full_data(idata)
   16608      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16609      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16610      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16611      483544 :          idata = idata + 1
   16612      483544 :          data_tmp = full_data(idata)
   16613      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16614      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16615      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16616      483544 :          idata = idata + 1
   16617      483544 :          data_tmp = full_data(idata)
   16618      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16619      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16620      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16621      483544 :          ipack = ipack + 1
   16622      483544 :          packed_data(ipack) = pack_tmp
   16623      483544 :          data_tmp = full_data(idata)
   16624      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16625      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16626      483544 :          idata = idata + 1
   16627      483544 :          data_tmp = full_data(idata)
   16628      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16629      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16630      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16631      483544 :          idata = idata + 1
   16632      483544 :          data_tmp = full_data(idata)
   16633      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16634      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16635      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16636      483544 :          idata = idata + 1
   16637      483544 :          data_tmp = full_data(idata)
   16638      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16639      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16640      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16641      483544 :          ipack = ipack + 1
   16642      483544 :          packed_data(ipack) = pack_tmp
   16643      483544 :          data_tmp = full_data(idata)
   16644      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16645      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16646      483544 :          idata = idata + 1
   16647      483544 :          data_tmp = full_data(idata)
   16648      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16649      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16650      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16651      483544 :          idata = idata + 1
   16652      483544 :          data_tmp = full_data(idata)
   16653      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16654      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16655      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16656      483544 :          ipack = ipack + 1
   16657      483544 :          packed_data(ipack) = pack_tmp
   16658      483544 :          data_tmp = full_data(idata)
   16659      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16660      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16661      483544 :          idata = idata + 1
   16662      483544 :          data_tmp = full_data(idata)
   16663      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16664      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16665      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16666      483544 :          idata = idata + 1
   16667      483544 :          data_tmp = full_data(idata)
   16668      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16669      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16670      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16671      483544 :          idata = idata + 1
   16672      483544 :          data_tmp = full_data(idata)
   16673      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16674      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16675      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16676      483544 :          ipack = ipack + 1
   16677      483544 :          packed_data(ipack) = pack_tmp
   16678      483544 :          data_tmp = full_data(idata)
   16679      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16680      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16681      483544 :          idata = idata + 1
   16682      483544 :          data_tmp = full_data(idata)
   16683      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16684      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16685      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16686      483544 :          idata = idata + 1
   16687      483544 :          data_tmp = full_data(idata)
   16688      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16689      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16690      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16691      483544 :          idata = idata + 1
   16692      483544 :          data_tmp = full_data(idata)
   16693      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16694      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16695      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16696      483544 :          ipack = ipack + 1
   16697      483544 :          packed_data(ipack) = pack_tmp
   16698      483544 :          data_tmp = full_data(idata)
   16699      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16700      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16701      483544 :          idata = idata + 1
   16702      483544 :          data_tmp = full_data(idata)
   16703      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16704      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16705      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16706      483544 :          idata = idata + 1
   16707      483544 :          data_tmp = full_data(idata)
   16708      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16709      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16710      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16711      483544 :          ipack = ipack + 1
   16712      483544 :          packed_data(ipack) = pack_tmp
   16713      483544 :          data_tmp = full_data(idata)
   16714      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16715      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16716      483544 :          idata = idata + 1
   16717      483544 :          data_tmp = full_data(idata)
   16718      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16719      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16720      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16721      483544 :          idata = idata + 1
   16722      483544 :          data_tmp = full_data(idata)
   16723      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16724      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16725      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16726      483544 :          idata = idata + 1
   16727      483544 :          data_tmp = full_data(idata)
   16728      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16729      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16730      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16731      483544 :          ipack = ipack + 1
   16732      483544 :          packed_data(ipack) = pack_tmp
   16733      483544 :          data_tmp = full_data(idata)
   16734      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16735      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16736      483544 :          idata = idata + 1
   16737      483544 :          data_tmp = full_data(idata)
   16738      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16739      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16740      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16741      483544 :          idata = idata + 1
   16742      483544 :          data_tmp = full_data(idata)
   16743      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16744      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16745      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16746      483544 :          idata = idata + 1
   16747      483544 :          data_tmp = full_data(idata)
   16748      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16749      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16750      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16751      483544 :          ipack = ipack + 1
   16752      483544 :          packed_data(ipack) = pack_tmp
   16753      483544 :          data_tmp = full_data(idata)
   16754      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16755      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16756      483544 :          idata = idata + 1
   16757      483544 :          data_tmp = full_data(idata)
   16758      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16759      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16760      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16761      483544 :          idata = idata + 1
   16762      483544 :          data_tmp = full_data(idata)
   16763      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16764      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16765      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16766      483544 :          ipack = ipack + 1
   16767      483544 :          packed_data(ipack) = pack_tmp
   16768      483544 :          data_tmp = full_data(idata)
   16769      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16770      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16771      483544 :          idata = idata + 1
   16772      483544 :          data_tmp = full_data(idata)
   16773      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16774      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16775      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16776      483544 :          idata = idata + 1
   16777      483544 :          data_tmp = full_data(idata)
   16778      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16779      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16780      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16781      483544 :          idata = idata + 1
   16782      483544 :          data_tmp = full_data(idata)
   16783      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16784      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16785      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16786      483544 :          ipack = ipack + 1
   16787      483544 :          packed_data(ipack) = pack_tmp
   16788      483544 :          data_tmp = full_data(idata)
   16789      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16790      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16791      483544 :          idata = idata + 1
   16792      483544 :          data_tmp = full_data(idata)
   16793      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16794      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16795      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16796      483544 :          idata = idata + 1
   16797      483544 :          data_tmp = full_data(idata)
   16798      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16799      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16800      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16801      483544 :          idata = idata + 1
   16802      483544 :          data_tmp = full_data(idata)
   16803      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16804      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16805      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16806      483544 :          ipack = ipack + 1
   16807      483544 :          packed_data(ipack) = pack_tmp
   16808      483544 :          data_tmp = full_data(idata)
   16809      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16810      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16811      483544 :          idata = idata + 1
   16812      483544 :          data_tmp = full_data(idata)
   16813      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16814      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16815      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16816      483544 :          idata = idata + 1
   16817      483544 :          data_tmp = full_data(idata)
   16818      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16819      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16820      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16821      483544 :          ipack = ipack + 1
   16822      483544 :          packed_data(ipack) = pack_tmp
   16823      483544 :          data_tmp = full_data(idata)
   16824      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16825      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16826      483544 :          idata = idata + 1
   16827      483544 :          data_tmp = full_data(idata)
   16828      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16829      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16830      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16831      483544 :          idata = idata + 1
   16832      483544 :          data_tmp = full_data(idata)
   16833      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16834      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16835      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16836      483544 :          idata = idata + 1
   16837      483544 :          data_tmp = full_data(idata)
   16838      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16839      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16840      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16841      483544 :          ipack = ipack + 1
   16842      483544 :          packed_data(ipack) = pack_tmp
   16843      483544 :          data_tmp = full_data(idata)
   16844      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16845      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16846      483544 :          idata = idata + 1
   16847      483544 :          data_tmp = full_data(idata)
   16848      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16849      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16850      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16851      483544 :          idata = idata + 1
   16852      483544 :          data_tmp = full_data(idata)
   16853      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16854      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16855      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16856      483544 :          idata = idata + 1
   16857      483544 :          data_tmp = full_data(idata)
   16858      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16859      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16860      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16861      483544 :          ipack = ipack + 1
   16862      483544 :          packed_data(ipack) = pack_tmp
   16863      483544 :          data_tmp = full_data(idata)
   16864      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16865      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16866      483544 :          idata = idata + 1
   16867      483544 :          data_tmp = full_data(idata)
   16868      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16869      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16870      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16871      483544 :          idata = idata + 1
   16872      483544 :          data_tmp = full_data(idata)
   16873      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16874      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16875      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16876      483544 :          ipack = ipack + 1
   16877      483544 :          packed_data(ipack) = pack_tmp
   16878      483544 :          data_tmp = full_data(idata)
   16879      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16880      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16881      483544 :          idata = idata + 1
   16882      483544 :          data_tmp = full_data(idata)
   16883      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16884      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16885      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16886      483544 :          idata = idata + 1
   16887      483544 :          data_tmp = full_data(idata)
   16888      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16889      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16890      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16891      483544 :          idata = idata + 1
   16892      483544 :          data_tmp = full_data(idata)
   16893      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16894      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16895      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16896      483544 :          ipack = ipack + 1
   16897      483544 :          packed_data(ipack) = pack_tmp
   16898      483544 :          data_tmp = full_data(idata)
   16899      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16900      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16901      483544 :          idata = idata + 1
   16902      483544 :          data_tmp = full_data(idata)
   16903      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16904      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16905      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16906      483544 :          idata = idata + 1
   16907      483544 :          data_tmp = full_data(idata)
   16908      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16909      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16910      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16911      483544 :          idata = idata + 1
   16912      483544 :          data_tmp = full_data(idata)
   16913      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16914      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16915      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16916      483544 :          ipack = ipack + 1
   16917      483544 :          packed_data(ipack) = pack_tmp
   16918      483544 :          data_tmp = full_data(idata)
   16919      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16920      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16921      483544 :          idata = idata + 1
   16922      483544 :          data_tmp = full_data(idata)
   16923      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16924      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16925      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16926      483544 :          idata = idata + 1
   16927      483544 :          data_tmp = full_data(idata)
   16928      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16929      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16930      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16931      483544 :          ipack = ipack + 1
   16932      483544 :          packed_data(ipack) = pack_tmp
   16933      483544 :          data_tmp = full_data(idata)
   16934      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16935      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16936      483544 :          idata = idata + 1
   16937      483544 :          data_tmp = full_data(idata)
   16938      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16939      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16940      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16941      483544 :          idata = idata + 1
   16942      483544 :          data_tmp = full_data(idata)
   16943      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16944      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16945      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   16946      483544 :          idata = idata + 1
   16947      483544 :          data_tmp = full_data(idata)
   16948      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16949      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   16950      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16951      483544 :          ipack = ipack + 1
   16952      483544 :          packed_data(ipack) = pack_tmp
   16953      483544 :          data_tmp = full_data(idata)
   16954      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   16955      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16956      483544 :          idata = idata + 1
   16957      483544 :          data_tmp = full_data(idata)
   16958      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16959      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16960      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16961      483544 :          idata = idata + 1
   16962      483544 :          data_tmp = full_data(idata)
   16963      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16964      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16965      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   16966      483544 :          idata = idata + 1
   16967      483544 :          data_tmp = full_data(idata)
   16968      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16969      483544 :          data_tmp = IAND(data_tmp, mask_left(0))
   16970      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16971      483544 :          ipack = ipack + 1
   16972      483544 :          packed_data(ipack) = pack_tmp
   16973      483544 :          data_tmp = full_data(idata)
   16974      483544 :          pack_tmp = ISHFT(data_tmp, 40)
   16975      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16976      483544 :          idata = idata + 1
   16977      483544 :          data_tmp = full_data(idata)
   16978      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16979      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16980      483544 :          pack_tmp = ISHFT(pack_tmp, -16)
   16981      483544 :          idata = idata + 1
   16982      483544 :          data_tmp = full_data(idata)
   16983      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16984      483544 :          data_tmp = IAND(data_tmp, mask_left(16))
   16985      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16986      483544 :          ipack = ipack + 1
   16987      483544 :          packed_data(ipack) = pack_tmp
   16988      483544 :          data_tmp = full_data(idata)
   16989      483544 :          pack_tmp = ISHFT(data_tmp, 56)
   16990      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16991      483544 :          idata = idata + 1
   16992      483544 :          data_tmp = full_data(idata)
   16993      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16994      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16995      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   16996      483544 :          idata = idata + 1
   16997      483544 :          data_tmp = full_data(idata)
   16998      483544 :          data_tmp = ISHFT(data_tmp, 40)
   16999      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17000      483544 :          pack_tmp = ISHFT(pack_tmp, -8)
   17001      483544 :          idata = idata + 1
   17002      483544 :          data_tmp = full_data(idata)
   17003      483544 :          data_tmp = ISHFT(data_tmp, 40)
   17004      483544 :          data_tmp = IAND(data_tmp, mask_left(8))
   17005      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17006      483544 :          ipack = ipack + 1
   17007      483544 :          packed_data(ipack) = pack_tmp
   17008      483544 :          data_tmp = full_data(idata)
   17009      483544 :          pack_tmp = ISHFT(data_tmp, 48)
   17010      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   17011      483544 :          idata = idata + 1
   17012      483544 :          data_tmp = full_data(idata)
   17013      483544 :          data_tmp = ISHFT(data_tmp, 40)
   17014      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17015      483544 :          pack_tmp = ISHFT(pack_tmp, -24)
   17016      483544 :          idata = idata + 1
   17017      483544 :          data_tmp = full_data(idata)
   17018      483544 :          data_tmp = ISHFT(data_tmp, 40)
   17019      483544 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17020             :          pack_tmp = ISHFT(pack_tmp, 0)
   17021      483544 :          pack_tmp = ISHFT(pack_tmp, 0)
   17022      483544 :          ipack = ipack + 1
   17023      484128 :          packed_data(ipack) = pack_tmp
   17024             :       END DO
   17025       33188 :       IF (Ndata_rep < Ndata) THEN
   17026        5584 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17027             :       END IF
   17028       33188 :    END SUBROUTINE ints2bits_24
   17029             : 
   17030             : ! **************************************************************************************************
   17031             : !> \brief ...
   17032             : !> \param Ndata ...
   17033             : !> \param packed_data ...
   17034             : !> \param full_data ...
   17035             : ! **************************************************************************************************
   17036      155280 :    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      155280 :       ipack = 0
   17047      155280 :       idata = 0
   17048      155280 :       pack_tmp = 0
   17049      155280 :       Ndata_rep = (Ndata/64)*64
   17050      155280 :       DO kdata = 1, Ndata_rep, 64
   17051     2199016 :          idata = idata + 1
   17052     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17053     2199016 :          ipack = ipack + 1
   17054     2199016 :          pack_tmp = packed_data(ipack)
   17055     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17056     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17057     2199016 :          idata = idata + 1
   17058     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17059     2199016 :          full_data(idata) = data_tmp
   17060     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17061     2199016 :          idata = idata + 1
   17062     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17063     2199016 :          ipack = ipack + 1
   17064     2199016 :          pack_tmp = packed_data(ipack)
   17065     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17066     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17067     2199016 :          idata = idata + 1
   17068     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17069     2199016 :          full_data(idata) = data_tmp
   17070     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17071     2199016 :          idata = idata + 1
   17072     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17073     2199016 :          full_data(idata) = data_tmp
   17074     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17075     2199016 :          idata = idata + 1
   17076     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17077     2199016 :          ipack = ipack + 1
   17078     2199016 :          pack_tmp = packed_data(ipack)
   17079     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17080     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17081     2199016 :          idata = idata + 1
   17082     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17083     2199016 :          full_data(idata) = data_tmp
   17084     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17085     2199016 :          idata = idata + 1
   17086     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17087     2199016 :          full_data(idata) = data_tmp
   17088     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17089     2199016 :          idata = idata + 1
   17090     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17091     2199016 :          ipack = ipack + 1
   17092     2199016 :          pack_tmp = packed_data(ipack)
   17093     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17094     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17095     2199016 :          idata = idata + 1
   17096     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17097     2199016 :          full_data(idata) = data_tmp
   17098     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17099     2199016 :          idata = idata + 1
   17100     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17101     2199016 :          ipack = ipack + 1
   17102     2199016 :          pack_tmp = packed_data(ipack)
   17103     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17104     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17105     2199016 :          idata = idata + 1
   17106     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17107     2199016 :          full_data(idata) = data_tmp
   17108     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17109     2199016 :          idata = idata + 1
   17110     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17111     2199016 :          full_data(idata) = data_tmp
   17112     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17113     2199016 :          idata = idata + 1
   17114     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17115     2199016 :          ipack = ipack + 1
   17116     2199016 :          pack_tmp = packed_data(ipack)
   17117     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17118     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17119     2199016 :          idata = idata + 1
   17120     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17121     2199016 :          full_data(idata) = data_tmp
   17122     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17123     2199016 :          idata = idata + 1
   17124     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17125     2199016 :          full_data(idata) = data_tmp
   17126     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17127     2199016 :          idata = idata + 1
   17128     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17129     2199016 :          ipack = ipack + 1
   17130     2199016 :          pack_tmp = packed_data(ipack)
   17131     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17132     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17133     2199016 :          idata = idata + 1
   17134     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17135     2199016 :          full_data(idata) = data_tmp
   17136     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17137     2199016 :          idata = idata + 1
   17138     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17139     2199016 :          ipack = ipack + 1
   17140     2199016 :          pack_tmp = packed_data(ipack)
   17141     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17142     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17143     2199016 :          idata = idata + 1
   17144     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17145     2199016 :          full_data(idata) = data_tmp
   17146     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17147     2199016 :          idata = idata + 1
   17148     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17149     2199016 :          full_data(idata) = data_tmp
   17150     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17151     2199016 :          idata = idata + 1
   17152     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17153     2199016 :          ipack = ipack + 1
   17154     2199016 :          pack_tmp = packed_data(ipack)
   17155     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17156     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17157     2199016 :          idata = idata + 1
   17158     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17159     2199016 :          full_data(idata) = data_tmp
   17160     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17161     2199016 :          idata = idata + 1
   17162     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17163     2199016 :          full_data(idata) = data_tmp
   17164     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17165     2199016 :          idata = idata + 1
   17166     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17167     2199016 :          ipack = ipack + 1
   17168     2199016 :          pack_tmp = packed_data(ipack)
   17169     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17170     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17171     2199016 :          idata = idata + 1
   17172     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17173     2199016 :          full_data(idata) = data_tmp
   17174     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17175     2199016 :          idata = idata + 1
   17176     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17177     2199016 :          ipack = ipack + 1
   17178     2199016 :          pack_tmp = packed_data(ipack)
   17179     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17180     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17181     2199016 :          idata = idata + 1
   17182     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17183     2199016 :          full_data(idata) = data_tmp
   17184     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17185     2199016 :          idata = idata + 1
   17186     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17187     2199016 :          full_data(idata) = data_tmp
   17188     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17189     2199016 :          idata = idata + 1
   17190     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17191     2199016 :          ipack = ipack + 1
   17192     2199016 :          pack_tmp = packed_data(ipack)
   17193     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17194     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17195     2199016 :          idata = idata + 1
   17196     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17197     2199016 :          full_data(idata) = data_tmp
   17198     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17199     2199016 :          idata = idata + 1
   17200     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17201     2199016 :          full_data(idata) = data_tmp
   17202     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17203     2199016 :          idata = idata + 1
   17204     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17205     2199016 :          ipack = ipack + 1
   17206     2199016 :          pack_tmp = packed_data(ipack)
   17207     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17208     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17209     2199016 :          idata = idata + 1
   17210     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17211     2199016 :          full_data(idata) = data_tmp
   17212     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17213     2199016 :          idata = idata + 1
   17214     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17215     2199016 :          ipack = ipack + 1
   17216     2199016 :          pack_tmp = packed_data(ipack)
   17217     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17218     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17219     2199016 :          idata = idata + 1
   17220     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17221     2199016 :          full_data(idata) = data_tmp
   17222     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17223     2199016 :          idata = idata + 1
   17224     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17225     2199016 :          full_data(idata) = data_tmp
   17226     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17227     2199016 :          idata = idata + 1
   17228     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17229     2199016 :          ipack = ipack + 1
   17230     2199016 :          pack_tmp = packed_data(ipack)
   17231     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17232     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17233     2199016 :          idata = idata + 1
   17234     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17235     2199016 :          full_data(idata) = data_tmp
   17236     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17237     2199016 :          idata = idata + 1
   17238     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17239     2199016 :          full_data(idata) = data_tmp
   17240     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17241     2199016 :          idata = idata + 1
   17242     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17243     2199016 :          ipack = ipack + 1
   17244     2199016 :          pack_tmp = packed_data(ipack)
   17245     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17246     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17247     2199016 :          idata = idata + 1
   17248     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17249     2199016 :          full_data(idata) = data_tmp
   17250     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17251     2199016 :          idata = idata + 1
   17252     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17253     2199016 :          ipack = ipack + 1
   17254     2199016 :          pack_tmp = packed_data(ipack)
   17255     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17256     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17257     2199016 :          idata = idata + 1
   17258     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17259     2199016 :          full_data(idata) = data_tmp
   17260     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17261     2199016 :          idata = idata + 1
   17262     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17263     2199016 :          full_data(idata) = data_tmp
   17264     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17265     2199016 :          idata = idata + 1
   17266     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17267     2199016 :          ipack = ipack + 1
   17268     2199016 :          pack_tmp = packed_data(ipack)
   17269     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17270     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17271     2199016 :          idata = idata + 1
   17272     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17273     2199016 :          full_data(idata) = data_tmp
   17274     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17275     2199016 :          idata = idata + 1
   17276     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17277     2199016 :          full_data(idata) = data_tmp
   17278     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17279     2199016 :          idata = idata + 1
   17280     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17281     2199016 :          ipack = ipack + 1
   17282     2199016 :          pack_tmp = packed_data(ipack)
   17283     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17284     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17285     2199016 :          idata = idata + 1
   17286     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17287     2199016 :          full_data(idata) = data_tmp
   17288     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17289     2199016 :          idata = idata + 1
   17290     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17291     2199016 :          ipack = ipack + 1
   17292     2199016 :          pack_tmp = packed_data(ipack)
   17293     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17294     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17295     2199016 :          idata = idata + 1
   17296     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17297     2199016 :          full_data(idata) = data_tmp
   17298     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17299     2199016 :          idata = idata + 1
   17300     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17301     2199016 :          full_data(idata) = data_tmp
   17302     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17303     2199016 :          idata = idata + 1
   17304     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17305     2199016 :          ipack = ipack + 1
   17306     2199016 :          pack_tmp = packed_data(ipack)
   17307     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17308     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17309     2199016 :          idata = idata + 1
   17310     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17311     2199016 :          full_data(idata) = data_tmp
   17312     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17313     2199016 :          idata = idata + 1
   17314     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17315     2199016 :          full_data(idata) = data_tmp
   17316     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17317     2199016 :          idata = idata + 1
   17318     2199016 :          data_tmp = ISHFT(pack_tmp, 24)
   17319     2199016 :          ipack = ipack + 1
   17320     2199016 :          pack_tmp = packed_data(ipack)
   17321     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17322     2199016 :          pack_tmp = ISHFT(pack_tmp, -24)
   17323     2199016 :          idata = idata + 1
   17324     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17325     2199016 :          full_data(idata) = data_tmp
   17326     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17327     2199016 :          idata = idata + 1
   17328     2199016 :          data_tmp = ISHFT(pack_tmp, 8)
   17329     2199016 :          ipack = ipack + 1
   17330     2199016 :          pack_tmp = packed_data(ipack)
   17331     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17332     2199016 :          pack_tmp = ISHFT(pack_tmp, -8)
   17333     2199016 :          idata = idata + 1
   17334     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17335     2199016 :          full_data(idata) = data_tmp
   17336     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17337     2199016 :          idata = idata + 1
   17338     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17339     2199016 :          full_data(idata) = data_tmp
   17340     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17341     2199016 :          idata = idata + 1
   17342     2199016 :          data_tmp = ISHFT(pack_tmp, 16)
   17343     2199016 :          ipack = ipack + 1
   17344     2199016 :          pack_tmp = packed_data(ipack)
   17345     2199016 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17346     2199016 :          pack_tmp = ISHFT(pack_tmp, -16)
   17347     2199016 :          idata = idata + 1
   17348     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17349     2199016 :          full_data(idata) = data_tmp
   17350     2199016 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17351     2199016 :          idata = idata + 1
   17352     2199016 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17353     2199016 :          full_data(idata) = data_tmp
   17354     2202680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17355             :       END DO
   17356      155280 :       IF (Ndata_rep < Ndata) THEN
   17357       33584 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17358             :       END IF
   17359      155280 :    END SUBROUTINE bits2ints_24
   17360             : 
   17361             : ! **************************************************************************************************
   17362             : !> \brief ...
   17363             : !> \param Ndata ...
   17364             : !> \param packed_data ...
   17365             : !> \param full_data ...
   17366             : ! **************************************************************************************************
   17367       33179 :    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       33179 :       idata = 0
   17378       33179 :       ipack = 0
   17379       33179 :       Ndata_rep = (Ndata/64)*64
   17380       33179 :       DO kdata = 1, Ndata_rep, 64
   17381      481599 :          pack_tmp = 0
   17382      481599 :          idata = idata + 1
   17383      481599 :          data_tmp = full_data(idata)
   17384      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17385      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17386      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17387      481599 :          idata = idata + 1
   17388      481599 :          data_tmp = full_data(idata)
   17389      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17390      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17391      481599 :          pack_tmp = ISHFT(pack_tmp, -14)
   17392      481599 :          idata = idata + 1
   17393      481599 :          data_tmp = full_data(idata)
   17394      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17395      481599 :          data_tmp = IAND(data_tmp, mask_left(14))
   17396      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17397      481599 :          ipack = ipack + 1
   17398      481599 :          packed_data(ipack) = pack_tmp
   17399      481599 :          data_tmp = full_data(idata)
   17400      481599 :          pack_tmp = ISHFT(data_tmp, 53)
   17401      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17402      481599 :          idata = idata + 1
   17403      481599 :          data_tmp = full_data(idata)
   17404      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17405      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17406      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17407      481599 :          idata = idata + 1
   17408      481599 :          data_tmp = full_data(idata)
   17409      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17410      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17411      481599 :          pack_tmp = ISHFT(pack_tmp, -3)
   17412      481599 :          idata = idata + 1
   17413      481599 :          data_tmp = full_data(idata)
   17414      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17415      481599 :          data_tmp = IAND(data_tmp, mask_left(3))
   17416      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17417      481599 :          ipack = ipack + 1
   17418      481599 :          packed_data(ipack) = pack_tmp
   17419      481599 :          data_tmp = full_data(idata)
   17420      481599 :          pack_tmp = ISHFT(data_tmp, 42)
   17421      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17422      481599 :          idata = idata + 1
   17423      481599 :          data_tmp = full_data(idata)
   17424      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17425      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17426      481599 :          pack_tmp = ISHFT(pack_tmp, -17)
   17427      481599 :          idata = idata + 1
   17428      481599 :          data_tmp = full_data(idata)
   17429      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17430      481599 :          data_tmp = IAND(data_tmp, mask_left(17))
   17431      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17432      481599 :          ipack = ipack + 1
   17433      481599 :          packed_data(ipack) = pack_tmp
   17434      481599 :          data_tmp = full_data(idata)
   17435      481599 :          pack_tmp = ISHFT(data_tmp, 56)
   17436      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17437      481599 :          idata = idata + 1
   17438      481599 :          data_tmp = full_data(idata)
   17439      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17440      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17441      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17442      481599 :          idata = idata + 1
   17443      481599 :          data_tmp = full_data(idata)
   17444      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17445      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17446      481599 :          pack_tmp = ISHFT(pack_tmp, -6)
   17447      481599 :          idata = idata + 1
   17448      481599 :          data_tmp = full_data(idata)
   17449      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17450      481599 :          data_tmp = IAND(data_tmp, mask_left(6))
   17451      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17452      481599 :          ipack = ipack + 1
   17453      481599 :          packed_data(ipack) = pack_tmp
   17454      481599 :          data_tmp = full_data(idata)
   17455      481599 :          pack_tmp = ISHFT(data_tmp, 45)
   17456      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17457      481599 :          idata = idata + 1
   17458      481599 :          data_tmp = full_data(idata)
   17459      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17460      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17461      481599 :          pack_tmp = ISHFT(pack_tmp, -20)
   17462      481599 :          idata = idata + 1
   17463      481599 :          data_tmp = full_data(idata)
   17464      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17465      481599 :          data_tmp = IAND(data_tmp, mask_left(20))
   17466      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17467      481599 :          ipack = ipack + 1
   17468      481599 :          packed_data(ipack) = pack_tmp
   17469      481599 :          data_tmp = full_data(idata)
   17470      481599 :          pack_tmp = ISHFT(data_tmp, 59)
   17471      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17472      481599 :          idata = idata + 1
   17473      481599 :          data_tmp = full_data(idata)
   17474      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17475      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17476      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17477      481599 :          idata = idata + 1
   17478      481599 :          data_tmp = full_data(idata)
   17479      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17480      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17481      481599 :          pack_tmp = ISHFT(pack_tmp, -9)
   17482      481599 :          idata = idata + 1
   17483      481599 :          data_tmp = full_data(idata)
   17484      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17485      481599 :          data_tmp = IAND(data_tmp, mask_left(9))
   17486      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17487      481599 :          ipack = ipack + 1
   17488      481599 :          packed_data(ipack) = pack_tmp
   17489      481599 :          data_tmp = full_data(idata)
   17490      481599 :          pack_tmp = ISHFT(data_tmp, 48)
   17491      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17492      481599 :          idata = idata + 1
   17493      481599 :          data_tmp = full_data(idata)
   17494      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17495      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17496      481599 :          pack_tmp = ISHFT(pack_tmp, -23)
   17497      481599 :          idata = idata + 1
   17498      481599 :          data_tmp = full_data(idata)
   17499      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17500      481599 :          data_tmp = IAND(data_tmp, mask_left(23))
   17501      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17502      481599 :          ipack = ipack + 1
   17503      481599 :          packed_data(ipack) = pack_tmp
   17504      481599 :          data_tmp = full_data(idata)
   17505      481599 :          pack_tmp = ISHFT(data_tmp, 62)
   17506      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17507      481599 :          idata = idata + 1
   17508      481599 :          data_tmp = full_data(idata)
   17509      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17510      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17511      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17512      481599 :          idata = idata + 1
   17513      481599 :          data_tmp = full_data(idata)
   17514      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17515      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17516      481599 :          pack_tmp = ISHFT(pack_tmp, -12)
   17517      481599 :          idata = idata + 1
   17518      481599 :          data_tmp = full_data(idata)
   17519      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17520      481599 :          data_tmp = IAND(data_tmp, mask_left(12))
   17521      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17522      481599 :          ipack = ipack + 1
   17523      481599 :          packed_data(ipack) = pack_tmp
   17524      481599 :          data_tmp = full_data(idata)
   17525      481599 :          pack_tmp = ISHFT(data_tmp, 51)
   17526      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17527      481599 :          idata = idata + 1
   17528      481599 :          data_tmp = full_data(idata)
   17529      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17530      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17531      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17532      481599 :          idata = idata + 1
   17533      481599 :          data_tmp = full_data(idata)
   17534      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17535      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17536      481599 :          pack_tmp = ISHFT(pack_tmp, -1)
   17537      481599 :          idata = idata + 1
   17538      481599 :          data_tmp = full_data(idata)
   17539      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17540      481599 :          data_tmp = IAND(data_tmp, mask_left(1))
   17541      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17542      481599 :          ipack = ipack + 1
   17543      481599 :          packed_data(ipack) = pack_tmp
   17544      481599 :          data_tmp = full_data(idata)
   17545      481599 :          pack_tmp = ISHFT(data_tmp, 40)
   17546      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17547      481599 :          idata = idata + 1
   17548      481599 :          data_tmp = full_data(idata)
   17549      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17550      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17551      481599 :          pack_tmp = ISHFT(pack_tmp, -15)
   17552      481599 :          idata = idata + 1
   17553      481599 :          data_tmp = full_data(idata)
   17554      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17555      481599 :          data_tmp = IAND(data_tmp, mask_left(15))
   17556      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17557      481599 :          ipack = ipack + 1
   17558      481599 :          packed_data(ipack) = pack_tmp
   17559      481599 :          data_tmp = full_data(idata)
   17560      481599 :          pack_tmp = ISHFT(data_tmp, 54)
   17561      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17562      481599 :          idata = idata + 1
   17563      481599 :          data_tmp = full_data(idata)
   17564      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17565      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17566      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17567      481599 :          idata = idata + 1
   17568      481599 :          data_tmp = full_data(idata)
   17569      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17570      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17571      481599 :          pack_tmp = ISHFT(pack_tmp, -4)
   17572      481599 :          idata = idata + 1
   17573      481599 :          data_tmp = full_data(idata)
   17574      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17575      481599 :          data_tmp = IAND(data_tmp, mask_left(4))
   17576      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17577      481599 :          ipack = ipack + 1
   17578      481599 :          packed_data(ipack) = pack_tmp
   17579      481599 :          data_tmp = full_data(idata)
   17580      481599 :          pack_tmp = ISHFT(data_tmp, 43)
   17581      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17582      481599 :          idata = idata + 1
   17583      481599 :          data_tmp = full_data(idata)
   17584      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17585      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17586      481599 :          pack_tmp = ISHFT(pack_tmp, -18)
   17587      481599 :          idata = idata + 1
   17588      481599 :          data_tmp = full_data(idata)
   17589      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17590      481599 :          data_tmp = IAND(data_tmp, mask_left(18))
   17591      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17592      481599 :          ipack = ipack + 1
   17593      481599 :          packed_data(ipack) = pack_tmp
   17594      481599 :          data_tmp = full_data(idata)
   17595      481599 :          pack_tmp = ISHFT(data_tmp, 57)
   17596      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17597      481599 :          idata = idata + 1
   17598      481599 :          data_tmp = full_data(idata)
   17599      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17600      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17601      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17602      481599 :          idata = idata + 1
   17603      481599 :          data_tmp = full_data(idata)
   17604      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17605      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17606      481599 :          pack_tmp = ISHFT(pack_tmp, -7)
   17607      481599 :          idata = idata + 1
   17608      481599 :          data_tmp = full_data(idata)
   17609      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17610      481599 :          data_tmp = IAND(data_tmp, mask_left(7))
   17611      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17612      481599 :          ipack = ipack + 1
   17613      481599 :          packed_data(ipack) = pack_tmp
   17614      481599 :          data_tmp = full_data(idata)
   17615      481599 :          pack_tmp = ISHFT(data_tmp, 46)
   17616      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17617      481599 :          idata = idata + 1
   17618      481599 :          data_tmp = full_data(idata)
   17619      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17620      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17621      481599 :          pack_tmp = ISHFT(pack_tmp, -21)
   17622      481599 :          idata = idata + 1
   17623      481599 :          data_tmp = full_data(idata)
   17624      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17625      481599 :          data_tmp = IAND(data_tmp, mask_left(21))
   17626      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17627      481599 :          ipack = ipack + 1
   17628      481599 :          packed_data(ipack) = pack_tmp
   17629      481599 :          data_tmp = full_data(idata)
   17630      481599 :          pack_tmp = ISHFT(data_tmp, 60)
   17631      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17632      481599 :          idata = idata + 1
   17633      481599 :          data_tmp = full_data(idata)
   17634      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17635      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17636      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17637      481599 :          idata = idata + 1
   17638      481599 :          data_tmp = full_data(idata)
   17639      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17640      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17641      481599 :          pack_tmp = ISHFT(pack_tmp, -10)
   17642      481599 :          idata = idata + 1
   17643      481599 :          data_tmp = full_data(idata)
   17644      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17645      481599 :          data_tmp = IAND(data_tmp, mask_left(10))
   17646      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17647      481599 :          ipack = ipack + 1
   17648      481599 :          packed_data(ipack) = pack_tmp
   17649      481599 :          data_tmp = full_data(idata)
   17650      481599 :          pack_tmp = ISHFT(data_tmp, 49)
   17651      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17652      481599 :          idata = idata + 1
   17653      481599 :          data_tmp = full_data(idata)
   17654      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17655      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17656      481599 :          pack_tmp = ISHFT(pack_tmp, -24)
   17657      481599 :          idata = idata + 1
   17658      481599 :          data_tmp = full_data(idata)
   17659      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17660      481599 :          data_tmp = IAND(data_tmp, mask_left(24))
   17661      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17662      481599 :          ipack = ipack + 1
   17663      481599 :          packed_data(ipack) = pack_tmp
   17664      481599 :          data_tmp = full_data(idata)
   17665      481599 :          pack_tmp = ISHFT(data_tmp, 63)
   17666      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17667      481599 :          idata = idata + 1
   17668      481599 :          data_tmp = full_data(idata)
   17669      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17670      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17671      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17672      481599 :          idata = idata + 1
   17673      481599 :          data_tmp = full_data(idata)
   17674      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17675      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17676      481599 :          pack_tmp = ISHFT(pack_tmp, -13)
   17677      481599 :          idata = idata + 1
   17678      481599 :          data_tmp = full_data(idata)
   17679      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17680      481599 :          data_tmp = IAND(data_tmp, mask_left(13))
   17681      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17682      481599 :          ipack = ipack + 1
   17683      481599 :          packed_data(ipack) = pack_tmp
   17684      481599 :          data_tmp = full_data(idata)
   17685      481599 :          pack_tmp = ISHFT(data_tmp, 52)
   17686      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17687      481599 :          idata = idata + 1
   17688      481599 :          data_tmp = full_data(idata)
   17689      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17690      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17691      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17692      481599 :          idata = idata + 1
   17693      481599 :          data_tmp = full_data(idata)
   17694      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17695      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17696      481599 :          pack_tmp = ISHFT(pack_tmp, -2)
   17697      481599 :          idata = idata + 1
   17698      481599 :          data_tmp = full_data(idata)
   17699      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17700      481599 :          data_tmp = IAND(data_tmp, mask_left(2))
   17701      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17702      481599 :          ipack = ipack + 1
   17703      481599 :          packed_data(ipack) = pack_tmp
   17704      481599 :          data_tmp = full_data(idata)
   17705      481599 :          pack_tmp = ISHFT(data_tmp, 41)
   17706      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17707      481599 :          idata = idata + 1
   17708      481599 :          data_tmp = full_data(idata)
   17709      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17710      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17711      481599 :          pack_tmp = ISHFT(pack_tmp, -16)
   17712      481599 :          idata = idata + 1
   17713      481599 :          data_tmp = full_data(idata)
   17714      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17715      481599 :          data_tmp = IAND(data_tmp, mask_left(16))
   17716      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17717      481599 :          ipack = ipack + 1
   17718      481599 :          packed_data(ipack) = pack_tmp
   17719      481599 :          data_tmp = full_data(idata)
   17720      481599 :          pack_tmp = ISHFT(data_tmp, 55)
   17721      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17722      481599 :          idata = idata + 1
   17723      481599 :          data_tmp = full_data(idata)
   17724      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17725      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17726      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17727      481599 :          idata = idata + 1
   17728      481599 :          data_tmp = full_data(idata)
   17729      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17730      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17731      481599 :          pack_tmp = ISHFT(pack_tmp, -5)
   17732      481599 :          idata = idata + 1
   17733      481599 :          data_tmp = full_data(idata)
   17734      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17735      481599 :          data_tmp = IAND(data_tmp, mask_left(5))
   17736      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17737      481599 :          ipack = ipack + 1
   17738      481599 :          packed_data(ipack) = pack_tmp
   17739      481599 :          data_tmp = full_data(idata)
   17740      481599 :          pack_tmp = ISHFT(data_tmp, 44)
   17741      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17742      481599 :          idata = idata + 1
   17743      481599 :          data_tmp = full_data(idata)
   17744      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17745      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17746      481599 :          pack_tmp = ISHFT(pack_tmp, -19)
   17747      481599 :          idata = idata + 1
   17748      481599 :          data_tmp = full_data(idata)
   17749      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17750      481599 :          data_tmp = IAND(data_tmp, mask_left(19))
   17751      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17752      481599 :          ipack = ipack + 1
   17753      481599 :          packed_data(ipack) = pack_tmp
   17754      481599 :          data_tmp = full_data(idata)
   17755      481599 :          pack_tmp = ISHFT(data_tmp, 58)
   17756      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17757      481599 :          idata = idata + 1
   17758      481599 :          data_tmp = full_data(idata)
   17759      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17760      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17761      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17762      481599 :          idata = idata + 1
   17763      481599 :          data_tmp = full_data(idata)
   17764      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17765      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17766      481599 :          pack_tmp = ISHFT(pack_tmp, -8)
   17767      481599 :          idata = idata + 1
   17768      481599 :          data_tmp = full_data(idata)
   17769      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17770      481599 :          data_tmp = IAND(data_tmp, mask_left(8))
   17771      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17772      481599 :          ipack = ipack + 1
   17773      481599 :          packed_data(ipack) = pack_tmp
   17774      481599 :          data_tmp = full_data(idata)
   17775      481599 :          pack_tmp = ISHFT(data_tmp, 47)
   17776      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17777      481599 :          idata = idata + 1
   17778      481599 :          data_tmp = full_data(idata)
   17779      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17780      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17781      481599 :          pack_tmp = ISHFT(pack_tmp, -22)
   17782      481599 :          idata = idata + 1
   17783      481599 :          data_tmp = full_data(idata)
   17784      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17785      481599 :          data_tmp = IAND(data_tmp, mask_left(22))
   17786      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17787      481599 :          ipack = ipack + 1
   17788      481599 :          packed_data(ipack) = pack_tmp
   17789      481599 :          data_tmp = full_data(idata)
   17790      481599 :          pack_tmp = ISHFT(data_tmp, 61)
   17791      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17792      481599 :          idata = idata + 1
   17793      481599 :          data_tmp = full_data(idata)
   17794      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17795      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17796      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17797      481599 :          idata = idata + 1
   17798      481599 :          data_tmp = full_data(idata)
   17799      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17800      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17801      481599 :          pack_tmp = ISHFT(pack_tmp, -11)
   17802      481599 :          idata = idata + 1
   17803      481599 :          data_tmp = full_data(idata)
   17804      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17805      481599 :          data_tmp = IAND(data_tmp, mask_left(11))
   17806      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17807      481599 :          ipack = ipack + 1
   17808      481599 :          packed_data(ipack) = pack_tmp
   17809      481599 :          data_tmp = full_data(idata)
   17810      481599 :          pack_tmp = ISHFT(data_tmp, 50)
   17811      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17812      481599 :          idata = idata + 1
   17813      481599 :          data_tmp = full_data(idata)
   17814      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17815      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17816      481599 :          pack_tmp = ISHFT(pack_tmp, -25)
   17817      481599 :          idata = idata + 1
   17818      481599 :          data_tmp = full_data(idata)
   17819      481599 :          data_tmp = ISHFT(data_tmp, 39)
   17820      481599 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17821             :          pack_tmp = ISHFT(pack_tmp, 0)
   17822      481599 :          pack_tmp = ISHFT(pack_tmp, 0)
   17823      481599 :          ipack = ipack + 1
   17824      481727 :          packed_data(ipack) = pack_tmp
   17825             :       END DO
   17826       33179 :       IF (Ndata_rep < Ndata) THEN
   17827        5666 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17828             :       END IF
   17829       33179 :    END SUBROUTINE ints2bits_25
   17830             : 
   17831             : ! **************************************************************************************************
   17832             : !> \brief ...
   17833             : !> \param Ndata ...
   17834             : !> \param packed_data ...
   17835             : !> \param full_data ...
   17836             : ! **************************************************************************************************
   17837      152928 :    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      152928 :       ipack = 0
   17848      152928 :       idata = 0
   17849      152928 :       pack_tmp = 0
   17850      152928 :       Ndata_rep = (Ndata/64)*64
   17851      152928 :       DO kdata = 1, Ndata_rep, 64
   17852     2168345 :          idata = idata + 1
   17853     2168345 :          data_tmp = ISHFT(pack_tmp, 25)
   17854     2168345 :          ipack = ipack + 1
   17855     2168345 :          pack_tmp = packed_data(ipack)
   17856     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   17857     2168345 :          pack_tmp = ISHFT(pack_tmp, -25)
   17858     2168345 :          idata = idata + 1
   17859     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17860     2168345 :          full_data(idata) = data_tmp
   17861     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17862     2168345 :          idata = idata + 1
   17863     2168345 :          data_tmp = ISHFT(pack_tmp, 11)
   17864     2168345 :          ipack = ipack + 1
   17865     2168345 :          pack_tmp = packed_data(ipack)
   17866     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   17867     2168345 :          pack_tmp = ISHFT(pack_tmp, -11)
   17868     2168345 :          idata = idata + 1
   17869     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17870     2168345 :          full_data(idata) = data_tmp
   17871     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17872     2168345 :          idata = idata + 1
   17873     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17874     2168345 :          full_data(idata) = data_tmp
   17875     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17876     2168345 :          idata = idata + 1
   17877     2168345 :          data_tmp = ISHFT(pack_tmp, 22)
   17878     2168345 :          ipack = ipack + 1
   17879     2168345 :          pack_tmp = packed_data(ipack)
   17880     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   17881     2168345 :          pack_tmp = ISHFT(pack_tmp, -22)
   17882     2168345 :          idata = idata + 1
   17883     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17884     2168345 :          full_data(idata) = data_tmp
   17885     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17886     2168345 :          idata = idata + 1
   17887     2168345 :          data_tmp = ISHFT(pack_tmp, 8)
   17888     2168345 :          ipack = ipack + 1
   17889     2168345 :          pack_tmp = packed_data(ipack)
   17890     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17891     2168345 :          pack_tmp = ISHFT(pack_tmp, -8)
   17892     2168345 :          idata = idata + 1
   17893     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17894     2168345 :          full_data(idata) = data_tmp
   17895     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17896     2168345 :          idata = idata + 1
   17897     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17898     2168345 :          full_data(idata) = data_tmp
   17899     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17900     2168345 :          idata = idata + 1
   17901     2168345 :          data_tmp = ISHFT(pack_tmp, 19)
   17902     2168345 :          ipack = ipack + 1
   17903     2168345 :          pack_tmp = packed_data(ipack)
   17904     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   17905     2168345 :          pack_tmp = ISHFT(pack_tmp, -19)
   17906     2168345 :          idata = idata + 1
   17907     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17908     2168345 :          full_data(idata) = data_tmp
   17909     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17910     2168345 :          idata = idata + 1
   17911     2168345 :          data_tmp = ISHFT(pack_tmp, 5)
   17912     2168345 :          ipack = ipack + 1
   17913     2168345 :          pack_tmp = packed_data(ipack)
   17914     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   17915     2168345 :          pack_tmp = ISHFT(pack_tmp, -5)
   17916     2168345 :          idata = idata + 1
   17917     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17918     2168345 :          full_data(idata) = data_tmp
   17919     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17920     2168345 :          idata = idata + 1
   17921     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17922     2168345 :          full_data(idata) = data_tmp
   17923     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17924     2168345 :          idata = idata + 1
   17925     2168345 :          data_tmp = ISHFT(pack_tmp, 16)
   17926     2168345 :          ipack = ipack + 1
   17927     2168345 :          pack_tmp = packed_data(ipack)
   17928     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17929     2168345 :          pack_tmp = ISHFT(pack_tmp, -16)
   17930     2168345 :          idata = idata + 1
   17931     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17932     2168345 :          full_data(idata) = data_tmp
   17933     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17934     2168345 :          idata = idata + 1
   17935     2168345 :          data_tmp = ISHFT(pack_tmp, 2)
   17936     2168345 :          ipack = ipack + 1
   17937     2168345 :          pack_tmp = packed_data(ipack)
   17938     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   17939     2168345 :          pack_tmp = ISHFT(pack_tmp, -2)
   17940     2168345 :          idata = idata + 1
   17941     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17942     2168345 :          full_data(idata) = data_tmp
   17943     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17944     2168345 :          idata = idata + 1
   17945     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17946     2168345 :          full_data(idata) = data_tmp
   17947     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17948     2168345 :          idata = idata + 1
   17949     2168345 :          data_tmp = ISHFT(pack_tmp, 13)
   17950     2168345 :          ipack = ipack + 1
   17951     2168345 :          pack_tmp = packed_data(ipack)
   17952     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   17953     2168345 :          pack_tmp = ISHFT(pack_tmp, -13)
   17954     2168345 :          idata = idata + 1
   17955     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17956     2168345 :          full_data(idata) = data_tmp
   17957     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17958     2168345 :          idata = idata + 1
   17959     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17960     2168345 :          full_data(idata) = data_tmp
   17961     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17962     2168345 :          idata = idata + 1
   17963     2168345 :          data_tmp = ISHFT(pack_tmp, 24)
   17964     2168345 :          ipack = ipack + 1
   17965     2168345 :          pack_tmp = packed_data(ipack)
   17966     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17967     2168345 :          pack_tmp = ISHFT(pack_tmp, -24)
   17968     2168345 :          idata = idata + 1
   17969     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17970     2168345 :          full_data(idata) = data_tmp
   17971     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17972     2168345 :          idata = idata + 1
   17973     2168345 :          data_tmp = ISHFT(pack_tmp, 10)
   17974     2168345 :          ipack = ipack + 1
   17975     2168345 :          pack_tmp = packed_data(ipack)
   17976     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   17977     2168345 :          pack_tmp = ISHFT(pack_tmp, -10)
   17978     2168345 :          idata = idata + 1
   17979     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17980     2168345 :          full_data(idata) = data_tmp
   17981     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17982     2168345 :          idata = idata + 1
   17983     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17984     2168345 :          full_data(idata) = data_tmp
   17985     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17986     2168345 :          idata = idata + 1
   17987     2168345 :          data_tmp = ISHFT(pack_tmp, 21)
   17988     2168345 :          ipack = ipack + 1
   17989     2168345 :          pack_tmp = packed_data(ipack)
   17990     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   17991     2168345 :          pack_tmp = ISHFT(pack_tmp, -21)
   17992     2168345 :          idata = idata + 1
   17993     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17994     2168345 :          full_data(idata) = data_tmp
   17995     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17996     2168345 :          idata = idata + 1
   17997     2168345 :          data_tmp = ISHFT(pack_tmp, 7)
   17998     2168345 :          ipack = ipack + 1
   17999     2168345 :          pack_tmp = packed_data(ipack)
   18000     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   18001     2168345 :          pack_tmp = ISHFT(pack_tmp, -7)
   18002     2168345 :          idata = idata + 1
   18003     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18004     2168345 :          full_data(idata) = data_tmp
   18005     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18006     2168345 :          idata = idata + 1
   18007     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18008     2168345 :          full_data(idata) = data_tmp
   18009     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18010     2168345 :          idata = idata + 1
   18011     2168345 :          data_tmp = ISHFT(pack_tmp, 18)
   18012     2168345 :          ipack = ipack + 1
   18013     2168345 :          pack_tmp = packed_data(ipack)
   18014     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18015     2168345 :          pack_tmp = ISHFT(pack_tmp, -18)
   18016     2168345 :          idata = idata + 1
   18017     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18018     2168345 :          full_data(idata) = data_tmp
   18019     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18020     2168345 :          idata = idata + 1
   18021     2168345 :          data_tmp = ISHFT(pack_tmp, 4)
   18022     2168345 :          ipack = ipack + 1
   18023     2168345 :          pack_tmp = packed_data(ipack)
   18024     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18025     2168345 :          pack_tmp = ISHFT(pack_tmp, -4)
   18026     2168345 :          idata = idata + 1
   18027     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18028     2168345 :          full_data(idata) = data_tmp
   18029     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18030     2168345 :          idata = idata + 1
   18031     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18032     2168345 :          full_data(idata) = data_tmp
   18033     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18034     2168345 :          idata = idata + 1
   18035     2168345 :          data_tmp = ISHFT(pack_tmp, 15)
   18036     2168345 :          ipack = ipack + 1
   18037     2168345 :          pack_tmp = packed_data(ipack)
   18038     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   18039     2168345 :          pack_tmp = ISHFT(pack_tmp, -15)
   18040     2168345 :          idata = idata + 1
   18041     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18042     2168345 :          full_data(idata) = data_tmp
   18043     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18044     2168345 :          idata = idata + 1
   18045     2168345 :          data_tmp = ISHFT(pack_tmp, 1)
   18046     2168345 :          ipack = ipack + 1
   18047     2168345 :          pack_tmp = packed_data(ipack)
   18048     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   18049     2168345 :          pack_tmp = ISHFT(pack_tmp, -1)
   18050     2168345 :          idata = idata + 1
   18051     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18052     2168345 :          full_data(idata) = data_tmp
   18053     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18054     2168345 :          idata = idata + 1
   18055     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18056     2168345 :          full_data(idata) = data_tmp
   18057     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18058     2168345 :          idata = idata + 1
   18059     2168345 :          data_tmp = ISHFT(pack_tmp, 12)
   18060     2168345 :          ipack = ipack + 1
   18061     2168345 :          pack_tmp = packed_data(ipack)
   18062     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18063     2168345 :          pack_tmp = ISHFT(pack_tmp, -12)
   18064     2168345 :          idata = idata + 1
   18065     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18066     2168345 :          full_data(idata) = data_tmp
   18067     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18068     2168345 :          idata = idata + 1
   18069     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18070     2168345 :          full_data(idata) = data_tmp
   18071     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18072     2168345 :          idata = idata + 1
   18073     2168345 :          data_tmp = ISHFT(pack_tmp, 23)
   18074     2168345 :          ipack = ipack + 1
   18075     2168345 :          pack_tmp = packed_data(ipack)
   18076     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   18077     2168345 :          pack_tmp = ISHFT(pack_tmp, -23)
   18078     2168345 :          idata = idata + 1
   18079     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18080     2168345 :          full_data(idata) = data_tmp
   18081     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18082     2168345 :          idata = idata + 1
   18083     2168345 :          data_tmp = ISHFT(pack_tmp, 9)
   18084     2168345 :          ipack = ipack + 1
   18085     2168345 :          pack_tmp = packed_data(ipack)
   18086     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   18087     2168345 :          pack_tmp = ISHFT(pack_tmp, -9)
   18088     2168345 :          idata = idata + 1
   18089     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18090     2168345 :          full_data(idata) = data_tmp
   18091     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18092     2168345 :          idata = idata + 1
   18093     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18094     2168345 :          full_data(idata) = data_tmp
   18095     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18096     2168345 :          idata = idata + 1
   18097     2168345 :          data_tmp = ISHFT(pack_tmp, 20)
   18098     2168345 :          ipack = ipack + 1
   18099     2168345 :          pack_tmp = packed_data(ipack)
   18100     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18101     2168345 :          pack_tmp = ISHFT(pack_tmp, -20)
   18102     2168345 :          idata = idata + 1
   18103     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18104     2168345 :          full_data(idata) = data_tmp
   18105     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18106     2168345 :          idata = idata + 1
   18107     2168345 :          data_tmp = ISHFT(pack_tmp, 6)
   18108     2168345 :          ipack = ipack + 1
   18109     2168345 :          pack_tmp = packed_data(ipack)
   18110     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18111     2168345 :          pack_tmp = ISHFT(pack_tmp, -6)
   18112     2168345 :          idata = idata + 1
   18113     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18114     2168345 :          full_data(idata) = data_tmp
   18115     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18116     2168345 :          idata = idata + 1
   18117     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18118     2168345 :          full_data(idata) = data_tmp
   18119     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18120     2168345 :          idata = idata + 1
   18121     2168345 :          data_tmp = ISHFT(pack_tmp, 17)
   18122     2168345 :          ipack = ipack + 1
   18123     2168345 :          pack_tmp = packed_data(ipack)
   18124     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   18125     2168345 :          pack_tmp = ISHFT(pack_tmp, -17)
   18126     2168345 :          idata = idata + 1
   18127     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18128     2168345 :          full_data(idata) = data_tmp
   18129     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18130     2168345 :          idata = idata + 1
   18131     2168345 :          data_tmp = ISHFT(pack_tmp, 3)
   18132     2168345 :          ipack = ipack + 1
   18133     2168345 :          pack_tmp = packed_data(ipack)
   18134     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   18135     2168345 :          pack_tmp = ISHFT(pack_tmp, -3)
   18136     2168345 :          idata = idata + 1
   18137     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18138     2168345 :          full_data(idata) = data_tmp
   18139     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18140     2168345 :          idata = idata + 1
   18141     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18142     2168345 :          full_data(idata) = data_tmp
   18143     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18144     2168345 :          idata = idata + 1
   18145     2168345 :          data_tmp = ISHFT(pack_tmp, 14)
   18146     2168345 :          ipack = ipack + 1
   18147     2168345 :          pack_tmp = packed_data(ipack)
   18148     2168345 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18149     2168345 :          pack_tmp = ISHFT(pack_tmp, -14)
   18150     2168345 :          idata = idata + 1
   18151     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18152     2168345 :          full_data(idata) = data_tmp
   18153     2168345 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18154     2168345 :          idata = idata + 1
   18155     2168345 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18156     2168345 :          full_data(idata) = data_tmp
   18157     2168959 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18158             :       END DO
   18159      152928 :       IF (Ndata_rep < Ndata) THEN
   18160       32206 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18161             :       END IF
   18162      152928 :    END SUBROUTINE bits2ints_25
   18163             : 
   18164             : ! **************************************************************************************************
   18165             : !> \brief ...
   18166             : !> \param Ndata ...
   18167             : !> \param packed_data ...
   18168             : !> \param full_data ...
   18169             : ! **************************************************************************************************
   18170       27591 :    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       27591 :       idata = 0
   18181       27591 :       ipack = 0
   18182       27591 :       Ndata_rep = (Ndata/64)*64
   18183       27591 :       DO kdata = 1, Ndata_rep, 64
   18184      418480 :          pack_tmp = 0
   18185      418480 :          idata = idata + 1
   18186      418480 :          data_tmp = full_data(idata)
   18187      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18188      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18189      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18190      418480 :          idata = idata + 1
   18191      418480 :          data_tmp = full_data(idata)
   18192      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18193      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18194      418480 :          pack_tmp = ISHFT(pack_tmp, -12)
   18195      418480 :          idata = idata + 1
   18196      418480 :          data_tmp = full_data(idata)
   18197      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18198      418480 :          data_tmp = IAND(data_tmp, mask_left(12))
   18199      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18200      418480 :          ipack = ipack + 1
   18201      418480 :          packed_data(ipack) = pack_tmp
   18202      418480 :          data_tmp = full_data(idata)
   18203      418480 :          pack_tmp = ISHFT(data_tmp, 50)
   18204      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18205      418480 :          idata = idata + 1
   18206      418480 :          data_tmp = full_data(idata)
   18207      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18208      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18209      418480 :          pack_tmp = ISHFT(pack_tmp, -24)
   18210      418480 :          idata = idata + 1
   18211      418480 :          data_tmp = full_data(idata)
   18212      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18213      418480 :          data_tmp = IAND(data_tmp, mask_left(24))
   18214      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18215      418480 :          ipack = ipack + 1
   18216      418480 :          packed_data(ipack) = pack_tmp
   18217      418480 :          data_tmp = full_data(idata)
   18218      418480 :          pack_tmp = ISHFT(data_tmp, 62)
   18219      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18220      418480 :          idata = idata + 1
   18221      418480 :          data_tmp = full_data(idata)
   18222      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18223      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18224      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18225      418480 :          idata = idata + 1
   18226      418480 :          data_tmp = full_data(idata)
   18227      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18228      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18229      418480 :          pack_tmp = ISHFT(pack_tmp, -10)
   18230      418480 :          idata = idata + 1
   18231      418480 :          data_tmp = full_data(idata)
   18232      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18233      418480 :          data_tmp = IAND(data_tmp, mask_left(10))
   18234      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18235      418480 :          ipack = ipack + 1
   18236      418480 :          packed_data(ipack) = pack_tmp
   18237      418480 :          data_tmp = full_data(idata)
   18238      418480 :          pack_tmp = ISHFT(data_tmp, 48)
   18239      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18240      418480 :          idata = idata + 1
   18241      418480 :          data_tmp = full_data(idata)
   18242      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18243      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18244      418480 :          pack_tmp = ISHFT(pack_tmp, -22)
   18245      418480 :          idata = idata + 1
   18246      418480 :          data_tmp = full_data(idata)
   18247      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18248      418480 :          data_tmp = IAND(data_tmp, mask_left(22))
   18249      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18250      418480 :          ipack = ipack + 1
   18251      418480 :          packed_data(ipack) = pack_tmp
   18252      418480 :          data_tmp = full_data(idata)
   18253      418480 :          pack_tmp = ISHFT(data_tmp, 60)
   18254      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18255      418480 :          idata = idata + 1
   18256      418480 :          data_tmp = full_data(idata)
   18257      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18258      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18259      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18260      418480 :          idata = idata + 1
   18261      418480 :          data_tmp = full_data(idata)
   18262      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18263      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18264      418480 :          pack_tmp = ISHFT(pack_tmp, -8)
   18265      418480 :          idata = idata + 1
   18266      418480 :          data_tmp = full_data(idata)
   18267      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18268      418480 :          data_tmp = IAND(data_tmp, mask_left(8))
   18269      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18270      418480 :          ipack = ipack + 1
   18271      418480 :          packed_data(ipack) = pack_tmp
   18272      418480 :          data_tmp = full_data(idata)
   18273      418480 :          pack_tmp = ISHFT(data_tmp, 46)
   18274      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18275      418480 :          idata = idata + 1
   18276      418480 :          data_tmp = full_data(idata)
   18277      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18278      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18279      418480 :          pack_tmp = ISHFT(pack_tmp, -20)
   18280      418480 :          idata = idata + 1
   18281      418480 :          data_tmp = full_data(idata)
   18282      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18283      418480 :          data_tmp = IAND(data_tmp, mask_left(20))
   18284      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18285      418480 :          ipack = ipack + 1
   18286      418480 :          packed_data(ipack) = pack_tmp
   18287      418480 :          data_tmp = full_data(idata)
   18288      418480 :          pack_tmp = ISHFT(data_tmp, 58)
   18289      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18290      418480 :          idata = idata + 1
   18291      418480 :          data_tmp = full_data(idata)
   18292      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18293      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18294      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18295      418480 :          idata = idata + 1
   18296      418480 :          data_tmp = full_data(idata)
   18297      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18298      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18299      418480 :          pack_tmp = ISHFT(pack_tmp, -6)
   18300      418480 :          idata = idata + 1
   18301      418480 :          data_tmp = full_data(idata)
   18302      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18303      418480 :          data_tmp = IAND(data_tmp, mask_left(6))
   18304      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18305      418480 :          ipack = ipack + 1
   18306      418480 :          packed_data(ipack) = pack_tmp
   18307      418480 :          data_tmp = full_data(idata)
   18308      418480 :          pack_tmp = ISHFT(data_tmp, 44)
   18309      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18310      418480 :          idata = idata + 1
   18311      418480 :          data_tmp = full_data(idata)
   18312      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18313      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18314      418480 :          pack_tmp = ISHFT(pack_tmp, -18)
   18315      418480 :          idata = idata + 1
   18316      418480 :          data_tmp = full_data(idata)
   18317      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18318      418480 :          data_tmp = IAND(data_tmp, mask_left(18))
   18319      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18320      418480 :          ipack = ipack + 1
   18321      418480 :          packed_data(ipack) = pack_tmp
   18322      418480 :          data_tmp = full_data(idata)
   18323      418480 :          pack_tmp = ISHFT(data_tmp, 56)
   18324      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18325      418480 :          idata = idata + 1
   18326      418480 :          data_tmp = full_data(idata)
   18327      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18328      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18329      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18330      418480 :          idata = idata + 1
   18331      418480 :          data_tmp = full_data(idata)
   18332      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18333      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18334      418480 :          pack_tmp = ISHFT(pack_tmp, -4)
   18335      418480 :          idata = idata + 1
   18336      418480 :          data_tmp = full_data(idata)
   18337      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18338      418480 :          data_tmp = IAND(data_tmp, mask_left(4))
   18339      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18340      418480 :          ipack = ipack + 1
   18341      418480 :          packed_data(ipack) = pack_tmp
   18342      418480 :          data_tmp = full_data(idata)
   18343      418480 :          pack_tmp = ISHFT(data_tmp, 42)
   18344      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18345      418480 :          idata = idata + 1
   18346      418480 :          data_tmp = full_data(idata)
   18347      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18348      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18349      418480 :          pack_tmp = ISHFT(pack_tmp, -16)
   18350      418480 :          idata = idata + 1
   18351      418480 :          data_tmp = full_data(idata)
   18352      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18353      418480 :          data_tmp = IAND(data_tmp, mask_left(16))
   18354      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18355      418480 :          ipack = ipack + 1
   18356      418480 :          packed_data(ipack) = pack_tmp
   18357      418480 :          data_tmp = full_data(idata)
   18358      418480 :          pack_tmp = ISHFT(data_tmp, 54)
   18359      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18360      418480 :          idata = idata + 1
   18361      418480 :          data_tmp = full_data(idata)
   18362      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18363      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18364      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18365      418480 :          idata = idata + 1
   18366      418480 :          data_tmp = full_data(idata)
   18367      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18368      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18369      418480 :          pack_tmp = ISHFT(pack_tmp, -2)
   18370      418480 :          idata = idata + 1
   18371      418480 :          data_tmp = full_data(idata)
   18372      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18373      418480 :          data_tmp = IAND(data_tmp, mask_left(2))
   18374      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18375      418480 :          ipack = ipack + 1
   18376      418480 :          packed_data(ipack) = pack_tmp
   18377      418480 :          data_tmp = full_data(idata)
   18378      418480 :          pack_tmp = ISHFT(data_tmp, 40)
   18379      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18380      418480 :          idata = idata + 1
   18381      418480 :          data_tmp = full_data(idata)
   18382      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18383      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18384      418480 :          pack_tmp = ISHFT(pack_tmp, -14)
   18385      418480 :          idata = idata + 1
   18386      418480 :          data_tmp = full_data(idata)
   18387      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18388      418480 :          data_tmp = IAND(data_tmp, mask_left(14))
   18389      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18390      418480 :          ipack = ipack + 1
   18391      418480 :          packed_data(ipack) = pack_tmp
   18392      418480 :          data_tmp = full_data(idata)
   18393      418480 :          pack_tmp = ISHFT(data_tmp, 52)
   18394      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18395      418480 :          idata = idata + 1
   18396      418480 :          data_tmp = full_data(idata)
   18397      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18398      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18399      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18400      418480 :          idata = idata + 1
   18401      418480 :          data_tmp = full_data(idata)
   18402      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18403      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18404      418480 :          pack_tmp = ISHFT(pack_tmp, 0)
   18405      418480 :          idata = idata + 1
   18406      418480 :          data_tmp = full_data(idata)
   18407      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18408      418480 :          data_tmp = IAND(data_tmp, mask_left(0))
   18409      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18410      418480 :          ipack = ipack + 1
   18411      418480 :          packed_data(ipack) = pack_tmp
   18412      418480 :          data_tmp = full_data(idata)
   18413      418480 :          pack_tmp = ISHFT(data_tmp, 38)
   18414      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18415      418480 :          idata = idata + 1
   18416      418480 :          data_tmp = full_data(idata)
   18417      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18418      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18419      418480 :          pack_tmp = ISHFT(pack_tmp, -12)
   18420      418480 :          idata = idata + 1
   18421      418480 :          data_tmp = full_data(idata)
   18422      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18423      418480 :          data_tmp = IAND(data_tmp, mask_left(12))
   18424      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18425      418480 :          ipack = ipack + 1
   18426      418480 :          packed_data(ipack) = pack_tmp
   18427      418480 :          data_tmp = full_data(idata)
   18428      418480 :          pack_tmp = ISHFT(data_tmp, 50)
   18429      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18430      418480 :          idata = idata + 1
   18431      418480 :          data_tmp = full_data(idata)
   18432      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18433      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18434      418480 :          pack_tmp = ISHFT(pack_tmp, -24)
   18435      418480 :          idata = idata + 1
   18436      418480 :          data_tmp = full_data(idata)
   18437      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18438      418480 :          data_tmp = IAND(data_tmp, mask_left(24))
   18439      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18440      418480 :          ipack = ipack + 1
   18441      418480 :          packed_data(ipack) = pack_tmp
   18442      418480 :          data_tmp = full_data(idata)
   18443      418480 :          pack_tmp = ISHFT(data_tmp, 62)
   18444      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18445      418480 :          idata = idata + 1
   18446      418480 :          data_tmp = full_data(idata)
   18447      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18448      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18449      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18450      418480 :          idata = idata + 1
   18451      418480 :          data_tmp = full_data(idata)
   18452      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18453      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18454      418480 :          pack_tmp = ISHFT(pack_tmp, -10)
   18455      418480 :          idata = idata + 1
   18456      418480 :          data_tmp = full_data(idata)
   18457      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18458      418480 :          data_tmp = IAND(data_tmp, mask_left(10))
   18459      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18460      418480 :          ipack = ipack + 1
   18461      418480 :          packed_data(ipack) = pack_tmp
   18462      418480 :          data_tmp = full_data(idata)
   18463      418480 :          pack_tmp = ISHFT(data_tmp, 48)
   18464      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18465      418480 :          idata = idata + 1
   18466      418480 :          data_tmp = full_data(idata)
   18467      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18468      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18469      418480 :          pack_tmp = ISHFT(pack_tmp, -22)
   18470      418480 :          idata = idata + 1
   18471      418480 :          data_tmp = full_data(idata)
   18472      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18473      418480 :          data_tmp = IAND(data_tmp, mask_left(22))
   18474      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18475      418480 :          ipack = ipack + 1
   18476      418480 :          packed_data(ipack) = pack_tmp
   18477      418480 :          data_tmp = full_data(idata)
   18478      418480 :          pack_tmp = ISHFT(data_tmp, 60)
   18479      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18480      418480 :          idata = idata + 1
   18481      418480 :          data_tmp = full_data(idata)
   18482      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18483      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18484      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18485      418480 :          idata = idata + 1
   18486      418480 :          data_tmp = full_data(idata)
   18487      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18488      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18489      418480 :          pack_tmp = ISHFT(pack_tmp, -8)
   18490      418480 :          idata = idata + 1
   18491      418480 :          data_tmp = full_data(idata)
   18492      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18493      418480 :          data_tmp = IAND(data_tmp, mask_left(8))
   18494      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18495      418480 :          ipack = ipack + 1
   18496      418480 :          packed_data(ipack) = pack_tmp
   18497      418480 :          data_tmp = full_data(idata)
   18498      418480 :          pack_tmp = ISHFT(data_tmp, 46)
   18499      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18500      418480 :          idata = idata + 1
   18501      418480 :          data_tmp = full_data(idata)
   18502      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18503      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18504      418480 :          pack_tmp = ISHFT(pack_tmp, -20)
   18505      418480 :          idata = idata + 1
   18506      418480 :          data_tmp = full_data(idata)
   18507      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18508      418480 :          data_tmp = IAND(data_tmp, mask_left(20))
   18509      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18510      418480 :          ipack = ipack + 1
   18511      418480 :          packed_data(ipack) = pack_tmp
   18512      418480 :          data_tmp = full_data(idata)
   18513      418480 :          pack_tmp = ISHFT(data_tmp, 58)
   18514      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18515      418480 :          idata = idata + 1
   18516      418480 :          data_tmp = full_data(idata)
   18517      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18518      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18519      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18520      418480 :          idata = idata + 1
   18521      418480 :          data_tmp = full_data(idata)
   18522      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18523      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18524      418480 :          pack_tmp = ISHFT(pack_tmp, -6)
   18525      418480 :          idata = idata + 1
   18526      418480 :          data_tmp = full_data(idata)
   18527      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18528      418480 :          data_tmp = IAND(data_tmp, mask_left(6))
   18529      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18530      418480 :          ipack = ipack + 1
   18531      418480 :          packed_data(ipack) = pack_tmp
   18532      418480 :          data_tmp = full_data(idata)
   18533      418480 :          pack_tmp = ISHFT(data_tmp, 44)
   18534      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18535      418480 :          idata = idata + 1
   18536      418480 :          data_tmp = full_data(idata)
   18537      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18538      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18539      418480 :          pack_tmp = ISHFT(pack_tmp, -18)
   18540      418480 :          idata = idata + 1
   18541      418480 :          data_tmp = full_data(idata)
   18542      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18543      418480 :          data_tmp = IAND(data_tmp, mask_left(18))
   18544      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18545      418480 :          ipack = ipack + 1
   18546      418480 :          packed_data(ipack) = pack_tmp
   18547      418480 :          data_tmp = full_data(idata)
   18548      418480 :          pack_tmp = ISHFT(data_tmp, 56)
   18549      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18550      418480 :          idata = idata + 1
   18551      418480 :          data_tmp = full_data(idata)
   18552      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18553      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18554      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18555      418480 :          idata = idata + 1
   18556      418480 :          data_tmp = full_data(idata)
   18557      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18558      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18559      418480 :          pack_tmp = ISHFT(pack_tmp, -4)
   18560      418480 :          idata = idata + 1
   18561      418480 :          data_tmp = full_data(idata)
   18562      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18563      418480 :          data_tmp = IAND(data_tmp, mask_left(4))
   18564      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18565      418480 :          ipack = ipack + 1
   18566      418480 :          packed_data(ipack) = pack_tmp
   18567      418480 :          data_tmp = full_data(idata)
   18568      418480 :          pack_tmp = ISHFT(data_tmp, 42)
   18569      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18570      418480 :          idata = idata + 1
   18571      418480 :          data_tmp = full_data(idata)
   18572      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18573      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18574      418480 :          pack_tmp = ISHFT(pack_tmp, -16)
   18575      418480 :          idata = idata + 1
   18576      418480 :          data_tmp = full_data(idata)
   18577      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18578      418480 :          data_tmp = IAND(data_tmp, mask_left(16))
   18579      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18580      418480 :          ipack = ipack + 1
   18581      418480 :          packed_data(ipack) = pack_tmp
   18582      418480 :          data_tmp = full_data(idata)
   18583      418480 :          pack_tmp = ISHFT(data_tmp, 54)
   18584      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18585      418480 :          idata = idata + 1
   18586      418480 :          data_tmp = full_data(idata)
   18587      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18588      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18589      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18590      418480 :          idata = idata + 1
   18591      418480 :          data_tmp = full_data(idata)
   18592      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18593      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18594      418480 :          pack_tmp = ISHFT(pack_tmp, -2)
   18595      418480 :          idata = idata + 1
   18596      418480 :          data_tmp = full_data(idata)
   18597      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18598      418480 :          data_tmp = IAND(data_tmp, mask_left(2))
   18599      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18600      418480 :          ipack = ipack + 1
   18601      418480 :          packed_data(ipack) = pack_tmp
   18602      418480 :          data_tmp = full_data(idata)
   18603      418480 :          pack_tmp = ISHFT(data_tmp, 40)
   18604      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18605      418480 :          idata = idata + 1
   18606      418480 :          data_tmp = full_data(idata)
   18607      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18608      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18609      418480 :          pack_tmp = ISHFT(pack_tmp, -14)
   18610      418480 :          idata = idata + 1
   18611      418480 :          data_tmp = full_data(idata)
   18612      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18613      418480 :          data_tmp = IAND(data_tmp, mask_left(14))
   18614      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18615      418480 :          ipack = ipack + 1
   18616      418480 :          packed_data(ipack) = pack_tmp
   18617      418480 :          data_tmp = full_data(idata)
   18618      418480 :          pack_tmp = ISHFT(data_tmp, 52)
   18619      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18620      418480 :          idata = idata + 1
   18621      418480 :          data_tmp = full_data(idata)
   18622      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18623      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18624      418480 :          pack_tmp = ISHFT(pack_tmp, -26)
   18625      418480 :          idata = idata + 1
   18626      418480 :          data_tmp = full_data(idata)
   18627      418480 :          data_tmp = ISHFT(data_tmp, 38)
   18628      418480 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18629             :          pack_tmp = ISHFT(pack_tmp, 0)
   18630      418480 :          pack_tmp = ISHFT(pack_tmp, 0)
   18631      418480 :          ipack = ipack + 1
   18632      418575 :          packed_data(ipack) = pack_tmp
   18633             :       END DO
   18634       27591 :       IF (Ndata_rep < Ndata) THEN
   18635        2656 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18636             :       END IF
   18637       27591 :    END SUBROUTINE ints2bits_26
   18638             : 
   18639             : ! **************************************************************************************************
   18640             : !> \brief ...
   18641             : !> \param Ndata ...
   18642             : !> \param packed_data ...
   18643             : !> \param full_data ...
   18644             : ! **************************************************************************************************
   18645      128637 :    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      128637 :       ipack = 0
   18656      128637 :       idata = 0
   18657      128637 :       pack_tmp = 0
   18658      128637 :       Ndata_rep = (Ndata/64)*64
   18659      128637 :       DO kdata = 1, Ndata_rep, 64
   18660     1890929 :          idata = idata + 1
   18661     1890929 :          data_tmp = ISHFT(pack_tmp, 26)
   18662     1890929 :          ipack = ipack + 1
   18663     1890929 :          pack_tmp = packed_data(ipack)
   18664     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18665     1890929 :          pack_tmp = ISHFT(pack_tmp, -26)
   18666     1890929 :          idata = idata + 1
   18667     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18668     1890929 :          full_data(idata) = data_tmp
   18669     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18670     1890929 :          idata = idata + 1
   18671     1890929 :          data_tmp = ISHFT(pack_tmp, 14)
   18672     1890929 :          ipack = ipack + 1
   18673     1890929 :          pack_tmp = packed_data(ipack)
   18674     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18675     1890929 :          pack_tmp = ISHFT(pack_tmp, -14)
   18676     1890929 :          idata = idata + 1
   18677     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18678     1890929 :          full_data(idata) = data_tmp
   18679     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18680     1890929 :          idata = idata + 1
   18681     1890929 :          data_tmp = ISHFT(pack_tmp, 2)
   18682     1890929 :          ipack = ipack + 1
   18683     1890929 :          pack_tmp = packed_data(ipack)
   18684     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18685     1890929 :          pack_tmp = ISHFT(pack_tmp, -2)
   18686     1890929 :          idata = idata + 1
   18687     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18688     1890929 :          full_data(idata) = data_tmp
   18689     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18690     1890929 :          idata = idata + 1
   18691     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18692     1890929 :          full_data(idata) = data_tmp
   18693     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18694     1890929 :          idata = idata + 1
   18695     1890929 :          data_tmp = ISHFT(pack_tmp, 16)
   18696     1890929 :          ipack = ipack + 1
   18697     1890929 :          pack_tmp = packed_data(ipack)
   18698     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18699     1890929 :          pack_tmp = ISHFT(pack_tmp, -16)
   18700     1890929 :          idata = idata + 1
   18701     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18702     1890929 :          full_data(idata) = data_tmp
   18703     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18704     1890929 :          idata = idata + 1
   18705     1890929 :          data_tmp = ISHFT(pack_tmp, 4)
   18706     1890929 :          ipack = ipack + 1
   18707     1890929 :          pack_tmp = packed_data(ipack)
   18708     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18709     1890929 :          pack_tmp = ISHFT(pack_tmp, -4)
   18710     1890929 :          idata = idata + 1
   18711     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18712     1890929 :          full_data(idata) = data_tmp
   18713     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18714     1890929 :          idata = idata + 1
   18715     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18716     1890929 :          full_data(idata) = data_tmp
   18717     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18718     1890929 :          idata = idata + 1
   18719     1890929 :          data_tmp = ISHFT(pack_tmp, 18)
   18720     1890929 :          ipack = ipack + 1
   18721     1890929 :          pack_tmp = packed_data(ipack)
   18722     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18723     1890929 :          pack_tmp = ISHFT(pack_tmp, -18)
   18724     1890929 :          idata = idata + 1
   18725     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18726     1890929 :          full_data(idata) = data_tmp
   18727     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18728     1890929 :          idata = idata + 1
   18729     1890929 :          data_tmp = ISHFT(pack_tmp, 6)
   18730     1890929 :          ipack = ipack + 1
   18731     1890929 :          pack_tmp = packed_data(ipack)
   18732     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18733     1890929 :          pack_tmp = ISHFT(pack_tmp, -6)
   18734     1890929 :          idata = idata + 1
   18735     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18736     1890929 :          full_data(idata) = data_tmp
   18737     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18738     1890929 :          idata = idata + 1
   18739     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18740     1890929 :          full_data(idata) = data_tmp
   18741     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18742     1890929 :          idata = idata + 1
   18743     1890929 :          data_tmp = ISHFT(pack_tmp, 20)
   18744     1890929 :          ipack = ipack + 1
   18745     1890929 :          pack_tmp = packed_data(ipack)
   18746     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18747     1890929 :          pack_tmp = ISHFT(pack_tmp, -20)
   18748     1890929 :          idata = idata + 1
   18749     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18750     1890929 :          full_data(idata) = data_tmp
   18751     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18752     1890929 :          idata = idata + 1
   18753     1890929 :          data_tmp = ISHFT(pack_tmp, 8)
   18754     1890929 :          ipack = ipack + 1
   18755     1890929 :          pack_tmp = packed_data(ipack)
   18756     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18757     1890929 :          pack_tmp = ISHFT(pack_tmp, -8)
   18758     1890929 :          idata = idata + 1
   18759     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18760     1890929 :          full_data(idata) = data_tmp
   18761     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18762     1890929 :          idata = idata + 1
   18763     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18764     1890929 :          full_data(idata) = data_tmp
   18765     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18766     1890929 :          idata = idata + 1
   18767     1890929 :          data_tmp = ISHFT(pack_tmp, 22)
   18768     1890929 :          ipack = ipack + 1
   18769     1890929 :          pack_tmp = packed_data(ipack)
   18770     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18771     1890929 :          pack_tmp = ISHFT(pack_tmp, -22)
   18772     1890929 :          idata = idata + 1
   18773     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18774     1890929 :          full_data(idata) = data_tmp
   18775     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18776     1890929 :          idata = idata + 1
   18777     1890929 :          data_tmp = ISHFT(pack_tmp, 10)
   18778     1890929 :          ipack = ipack + 1
   18779     1890929 :          pack_tmp = packed_data(ipack)
   18780     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18781     1890929 :          pack_tmp = ISHFT(pack_tmp, -10)
   18782     1890929 :          idata = idata + 1
   18783     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18784     1890929 :          full_data(idata) = data_tmp
   18785     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18786     1890929 :          idata = idata + 1
   18787     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18788     1890929 :          full_data(idata) = data_tmp
   18789     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18790     1890929 :          idata = idata + 1
   18791     1890929 :          data_tmp = ISHFT(pack_tmp, 24)
   18792     1890929 :          ipack = ipack + 1
   18793     1890929 :          pack_tmp = packed_data(ipack)
   18794     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18795     1890929 :          pack_tmp = ISHFT(pack_tmp, -24)
   18796     1890929 :          idata = idata + 1
   18797     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18798     1890929 :          full_data(idata) = data_tmp
   18799     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18800     1890929 :          idata = idata + 1
   18801     1890929 :          data_tmp = ISHFT(pack_tmp, 12)
   18802     1890929 :          ipack = ipack + 1
   18803     1890929 :          pack_tmp = packed_data(ipack)
   18804     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18805     1890929 :          pack_tmp = ISHFT(pack_tmp, -12)
   18806     1890929 :          idata = idata + 1
   18807     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18808     1890929 :          full_data(idata) = data_tmp
   18809     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18810     1890929 :          idata = idata + 1
   18811     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18812     1890929 :          full_data(idata) = data_tmp
   18813     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18814     1890929 :          idata = idata + 1
   18815     1890929 :          data_tmp = ISHFT(pack_tmp, 26)
   18816     1890929 :          ipack = ipack + 1
   18817     1890929 :          pack_tmp = packed_data(ipack)
   18818     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18819     1890929 :          pack_tmp = ISHFT(pack_tmp, -26)
   18820     1890929 :          idata = idata + 1
   18821     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18822     1890929 :          full_data(idata) = data_tmp
   18823     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18824     1890929 :          idata = idata + 1
   18825     1890929 :          data_tmp = ISHFT(pack_tmp, 14)
   18826     1890929 :          ipack = ipack + 1
   18827     1890929 :          pack_tmp = packed_data(ipack)
   18828     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18829     1890929 :          pack_tmp = ISHFT(pack_tmp, -14)
   18830     1890929 :          idata = idata + 1
   18831     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18832     1890929 :          full_data(idata) = data_tmp
   18833     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18834     1890929 :          idata = idata + 1
   18835     1890929 :          data_tmp = ISHFT(pack_tmp, 2)
   18836     1890929 :          ipack = ipack + 1
   18837     1890929 :          pack_tmp = packed_data(ipack)
   18838     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18839     1890929 :          pack_tmp = ISHFT(pack_tmp, -2)
   18840     1890929 :          idata = idata + 1
   18841     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18842     1890929 :          full_data(idata) = data_tmp
   18843     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18844     1890929 :          idata = idata + 1
   18845     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18846     1890929 :          full_data(idata) = data_tmp
   18847     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18848     1890929 :          idata = idata + 1
   18849     1890929 :          data_tmp = ISHFT(pack_tmp, 16)
   18850     1890929 :          ipack = ipack + 1
   18851     1890929 :          pack_tmp = packed_data(ipack)
   18852     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18853     1890929 :          pack_tmp = ISHFT(pack_tmp, -16)
   18854     1890929 :          idata = idata + 1
   18855     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18856     1890929 :          full_data(idata) = data_tmp
   18857     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18858     1890929 :          idata = idata + 1
   18859     1890929 :          data_tmp = ISHFT(pack_tmp, 4)
   18860     1890929 :          ipack = ipack + 1
   18861     1890929 :          pack_tmp = packed_data(ipack)
   18862     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18863     1890929 :          pack_tmp = ISHFT(pack_tmp, -4)
   18864     1890929 :          idata = idata + 1
   18865     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18866     1890929 :          full_data(idata) = data_tmp
   18867     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18868     1890929 :          idata = idata + 1
   18869     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18870     1890929 :          full_data(idata) = data_tmp
   18871     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18872     1890929 :          idata = idata + 1
   18873     1890929 :          data_tmp = ISHFT(pack_tmp, 18)
   18874     1890929 :          ipack = ipack + 1
   18875     1890929 :          pack_tmp = packed_data(ipack)
   18876     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18877     1890929 :          pack_tmp = ISHFT(pack_tmp, -18)
   18878     1890929 :          idata = idata + 1
   18879     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18880     1890929 :          full_data(idata) = data_tmp
   18881     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18882     1890929 :          idata = idata + 1
   18883     1890929 :          data_tmp = ISHFT(pack_tmp, 6)
   18884     1890929 :          ipack = ipack + 1
   18885     1890929 :          pack_tmp = packed_data(ipack)
   18886     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18887     1890929 :          pack_tmp = ISHFT(pack_tmp, -6)
   18888     1890929 :          idata = idata + 1
   18889     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18890     1890929 :          full_data(idata) = data_tmp
   18891     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18892     1890929 :          idata = idata + 1
   18893     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18894     1890929 :          full_data(idata) = data_tmp
   18895     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18896     1890929 :          idata = idata + 1
   18897     1890929 :          data_tmp = ISHFT(pack_tmp, 20)
   18898     1890929 :          ipack = ipack + 1
   18899     1890929 :          pack_tmp = packed_data(ipack)
   18900     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18901     1890929 :          pack_tmp = ISHFT(pack_tmp, -20)
   18902     1890929 :          idata = idata + 1
   18903     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18904     1890929 :          full_data(idata) = data_tmp
   18905     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18906     1890929 :          idata = idata + 1
   18907     1890929 :          data_tmp = ISHFT(pack_tmp, 8)
   18908     1890929 :          ipack = ipack + 1
   18909     1890929 :          pack_tmp = packed_data(ipack)
   18910     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18911     1890929 :          pack_tmp = ISHFT(pack_tmp, -8)
   18912     1890929 :          idata = idata + 1
   18913     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18914     1890929 :          full_data(idata) = data_tmp
   18915     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18916     1890929 :          idata = idata + 1
   18917     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18918     1890929 :          full_data(idata) = data_tmp
   18919     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18920     1890929 :          idata = idata + 1
   18921     1890929 :          data_tmp = ISHFT(pack_tmp, 22)
   18922     1890929 :          ipack = ipack + 1
   18923     1890929 :          pack_tmp = packed_data(ipack)
   18924     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18925     1890929 :          pack_tmp = ISHFT(pack_tmp, -22)
   18926     1890929 :          idata = idata + 1
   18927     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18928     1890929 :          full_data(idata) = data_tmp
   18929     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18930     1890929 :          idata = idata + 1
   18931     1890929 :          data_tmp = ISHFT(pack_tmp, 10)
   18932     1890929 :          ipack = ipack + 1
   18933     1890929 :          pack_tmp = packed_data(ipack)
   18934     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18935     1890929 :          pack_tmp = ISHFT(pack_tmp, -10)
   18936     1890929 :          idata = idata + 1
   18937     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18938     1890929 :          full_data(idata) = data_tmp
   18939     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18940     1890929 :          idata = idata + 1
   18941     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18942     1890929 :          full_data(idata) = data_tmp
   18943     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18944     1890929 :          idata = idata + 1
   18945     1890929 :          data_tmp = ISHFT(pack_tmp, 24)
   18946     1890929 :          ipack = ipack + 1
   18947     1890929 :          pack_tmp = packed_data(ipack)
   18948     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18949     1890929 :          pack_tmp = ISHFT(pack_tmp, -24)
   18950     1890929 :          idata = idata + 1
   18951     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18952     1890929 :          full_data(idata) = data_tmp
   18953     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18954     1890929 :          idata = idata + 1
   18955     1890929 :          data_tmp = ISHFT(pack_tmp, 12)
   18956     1890929 :          ipack = ipack + 1
   18957     1890929 :          pack_tmp = packed_data(ipack)
   18958     1890929 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18959     1890929 :          pack_tmp = ISHFT(pack_tmp, -12)
   18960     1890929 :          idata = idata + 1
   18961     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18962     1890929 :          full_data(idata) = data_tmp
   18963     1890929 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18964     1890929 :          idata = idata + 1
   18965     1890929 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18966     1890929 :          full_data(idata) = data_tmp
   18967     1891417 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18968             :       END DO
   18969      128637 :       IF (Ndata_rep < Ndata) THEN
   18970       19454 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18971             :       END IF
   18972      128637 :    END SUBROUTINE bits2ints_26
   18973             : 
   18974             : ! **************************************************************************************************
   18975             : !> \brief ...
   18976             : !> \param Ndata ...
   18977             : !> \param packed_data ...
   18978             : !> \param full_data ...
   18979             : ! **************************************************************************************************
   18980       27310 :    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       27310 :       idata = 0
   18991       27310 :       ipack = 0
   18992       27310 :       Ndata_rep = (Ndata/64)*64
   18993       27310 :       DO kdata = 1, Ndata_rep, 64
   18994      415591 :          pack_tmp = 0
   18995      415591 :          idata = idata + 1
   18996      415591 :          data_tmp = full_data(idata)
   18997      415591 :          data_tmp = ISHFT(data_tmp, 37)
   18998      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18999      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19000      415591 :          idata = idata + 1
   19001      415591 :          data_tmp = full_data(idata)
   19002      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19003      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19004      415591 :          pack_tmp = ISHFT(pack_tmp, -10)
   19005      415591 :          idata = idata + 1
   19006      415591 :          data_tmp = full_data(idata)
   19007      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19008      415591 :          data_tmp = IAND(data_tmp, mask_left(10))
   19009      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19010      415591 :          ipack = ipack + 1
   19011      415591 :          packed_data(ipack) = pack_tmp
   19012      415591 :          data_tmp = full_data(idata)
   19013      415591 :          pack_tmp = ISHFT(data_tmp, 47)
   19014      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19015      415591 :          idata = idata + 1
   19016      415591 :          data_tmp = full_data(idata)
   19017      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19018      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19019      415591 :          pack_tmp = ISHFT(pack_tmp, -20)
   19020      415591 :          idata = idata + 1
   19021      415591 :          data_tmp = full_data(idata)
   19022      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19023      415591 :          data_tmp = IAND(data_tmp, mask_left(20))
   19024      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19025      415591 :          ipack = ipack + 1
   19026      415591 :          packed_data(ipack) = pack_tmp
   19027      415591 :          data_tmp = full_data(idata)
   19028      415591 :          pack_tmp = ISHFT(data_tmp, 57)
   19029      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19030      415591 :          idata = idata + 1
   19031      415591 :          data_tmp = full_data(idata)
   19032      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19033      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19034      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19035      415591 :          idata = idata + 1
   19036      415591 :          data_tmp = full_data(idata)
   19037      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19038      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19039      415591 :          pack_tmp = ISHFT(pack_tmp, -3)
   19040      415591 :          idata = idata + 1
   19041      415591 :          data_tmp = full_data(idata)
   19042      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19043      415591 :          data_tmp = IAND(data_tmp, mask_left(3))
   19044      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19045      415591 :          ipack = ipack + 1
   19046      415591 :          packed_data(ipack) = pack_tmp
   19047      415591 :          data_tmp = full_data(idata)
   19048      415591 :          pack_tmp = ISHFT(data_tmp, 40)
   19049      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19050      415591 :          idata = idata + 1
   19051      415591 :          data_tmp = full_data(idata)
   19052      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19053      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19054      415591 :          pack_tmp = ISHFT(pack_tmp, -13)
   19055      415591 :          idata = idata + 1
   19056      415591 :          data_tmp = full_data(idata)
   19057      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19058      415591 :          data_tmp = IAND(data_tmp, mask_left(13))
   19059      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19060      415591 :          ipack = ipack + 1
   19061      415591 :          packed_data(ipack) = pack_tmp
   19062      415591 :          data_tmp = full_data(idata)
   19063      415591 :          pack_tmp = ISHFT(data_tmp, 50)
   19064      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19065      415591 :          idata = idata + 1
   19066      415591 :          data_tmp = full_data(idata)
   19067      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19068      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19069      415591 :          pack_tmp = ISHFT(pack_tmp, -23)
   19070      415591 :          idata = idata + 1
   19071      415591 :          data_tmp = full_data(idata)
   19072      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19073      415591 :          data_tmp = IAND(data_tmp, mask_left(23))
   19074      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19075      415591 :          ipack = ipack + 1
   19076      415591 :          packed_data(ipack) = pack_tmp
   19077      415591 :          data_tmp = full_data(idata)
   19078      415591 :          pack_tmp = ISHFT(data_tmp, 60)
   19079      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19080      415591 :          idata = idata + 1
   19081      415591 :          data_tmp = full_data(idata)
   19082      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19083      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19084      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19085      415591 :          idata = idata + 1
   19086      415591 :          data_tmp = full_data(idata)
   19087      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19088      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19089      415591 :          pack_tmp = ISHFT(pack_tmp, -6)
   19090      415591 :          idata = idata + 1
   19091      415591 :          data_tmp = full_data(idata)
   19092      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19093      415591 :          data_tmp = IAND(data_tmp, mask_left(6))
   19094      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19095      415591 :          ipack = ipack + 1
   19096      415591 :          packed_data(ipack) = pack_tmp
   19097      415591 :          data_tmp = full_data(idata)
   19098      415591 :          pack_tmp = ISHFT(data_tmp, 43)
   19099      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19100      415591 :          idata = idata + 1
   19101      415591 :          data_tmp = full_data(idata)
   19102      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19103      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19104      415591 :          pack_tmp = ISHFT(pack_tmp, -16)
   19105      415591 :          idata = idata + 1
   19106      415591 :          data_tmp = full_data(idata)
   19107      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19108      415591 :          data_tmp = IAND(data_tmp, mask_left(16))
   19109      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19110      415591 :          ipack = ipack + 1
   19111      415591 :          packed_data(ipack) = pack_tmp
   19112      415591 :          data_tmp = full_data(idata)
   19113      415591 :          pack_tmp = ISHFT(data_tmp, 53)
   19114      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19115      415591 :          idata = idata + 1
   19116      415591 :          data_tmp = full_data(idata)
   19117      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19118      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19119      415591 :          pack_tmp = ISHFT(pack_tmp, -26)
   19120      415591 :          idata = idata + 1
   19121      415591 :          data_tmp = full_data(idata)
   19122      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19123      415591 :          data_tmp = IAND(data_tmp, mask_left(26))
   19124      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19125      415591 :          ipack = ipack + 1
   19126      415591 :          packed_data(ipack) = pack_tmp
   19127      415591 :          data_tmp = full_data(idata)
   19128      415591 :          pack_tmp = ISHFT(data_tmp, 63)
   19129      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19130      415591 :          idata = idata + 1
   19131      415591 :          data_tmp = full_data(idata)
   19132      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19133      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19134      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19135      415591 :          idata = idata + 1
   19136      415591 :          data_tmp = full_data(idata)
   19137      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19138      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19139      415591 :          pack_tmp = ISHFT(pack_tmp, -9)
   19140      415591 :          idata = idata + 1
   19141      415591 :          data_tmp = full_data(idata)
   19142      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19143      415591 :          data_tmp = IAND(data_tmp, mask_left(9))
   19144      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19145      415591 :          ipack = ipack + 1
   19146      415591 :          packed_data(ipack) = pack_tmp
   19147      415591 :          data_tmp = full_data(idata)
   19148      415591 :          pack_tmp = ISHFT(data_tmp, 46)
   19149      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19150      415591 :          idata = idata + 1
   19151      415591 :          data_tmp = full_data(idata)
   19152      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19153      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19154      415591 :          pack_tmp = ISHFT(pack_tmp, -19)
   19155      415591 :          idata = idata + 1
   19156      415591 :          data_tmp = full_data(idata)
   19157      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19158      415591 :          data_tmp = IAND(data_tmp, mask_left(19))
   19159      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19160      415591 :          ipack = ipack + 1
   19161      415591 :          packed_data(ipack) = pack_tmp
   19162      415591 :          data_tmp = full_data(idata)
   19163      415591 :          pack_tmp = ISHFT(data_tmp, 56)
   19164      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19165      415591 :          idata = idata + 1
   19166      415591 :          data_tmp = full_data(idata)
   19167      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19168      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19169      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19170      415591 :          idata = idata + 1
   19171      415591 :          data_tmp = full_data(idata)
   19172      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19173      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19174      415591 :          pack_tmp = ISHFT(pack_tmp, -2)
   19175      415591 :          idata = idata + 1
   19176      415591 :          data_tmp = full_data(idata)
   19177      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19178      415591 :          data_tmp = IAND(data_tmp, mask_left(2))
   19179      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19180      415591 :          ipack = ipack + 1
   19181      415591 :          packed_data(ipack) = pack_tmp
   19182      415591 :          data_tmp = full_data(idata)
   19183      415591 :          pack_tmp = ISHFT(data_tmp, 39)
   19184      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19185      415591 :          idata = idata + 1
   19186      415591 :          data_tmp = full_data(idata)
   19187      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19188      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19189      415591 :          pack_tmp = ISHFT(pack_tmp, -12)
   19190      415591 :          idata = idata + 1
   19191      415591 :          data_tmp = full_data(idata)
   19192      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19193      415591 :          data_tmp = IAND(data_tmp, mask_left(12))
   19194      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19195      415591 :          ipack = ipack + 1
   19196      415591 :          packed_data(ipack) = pack_tmp
   19197      415591 :          data_tmp = full_data(idata)
   19198      415591 :          pack_tmp = ISHFT(data_tmp, 49)
   19199      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19200      415591 :          idata = idata + 1
   19201      415591 :          data_tmp = full_data(idata)
   19202      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19203      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19204      415591 :          pack_tmp = ISHFT(pack_tmp, -22)
   19205      415591 :          idata = idata + 1
   19206      415591 :          data_tmp = full_data(idata)
   19207      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19208      415591 :          data_tmp = IAND(data_tmp, mask_left(22))
   19209      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19210      415591 :          ipack = ipack + 1
   19211      415591 :          packed_data(ipack) = pack_tmp
   19212      415591 :          data_tmp = full_data(idata)
   19213      415591 :          pack_tmp = ISHFT(data_tmp, 59)
   19214      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19215      415591 :          idata = idata + 1
   19216      415591 :          data_tmp = full_data(idata)
   19217      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19218      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19219      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19220      415591 :          idata = idata + 1
   19221      415591 :          data_tmp = full_data(idata)
   19222      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19223      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19224      415591 :          pack_tmp = ISHFT(pack_tmp, -5)
   19225      415591 :          idata = idata + 1
   19226      415591 :          data_tmp = full_data(idata)
   19227      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19228      415591 :          data_tmp = IAND(data_tmp, mask_left(5))
   19229      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19230      415591 :          ipack = ipack + 1
   19231      415591 :          packed_data(ipack) = pack_tmp
   19232      415591 :          data_tmp = full_data(idata)
   19233      415591 :          pack_tmp = ISHFT(data_tmp, 42)
   19234      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19235      415591 :          idata = idata + 1
   19236      415591 :          data_tmp = full_data(idata)
   19237      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19238      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19239      415591 :          pack_tmp = ISHFT(pack_tmp, -15)
   19240      415591 :          idata = idata + 1
   19241      415591 :          data_tmp = full_data(idata)
   19242      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19243      415591 :          data_tmp = IAND(data_tmp, mask_left(15))
   19244      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19245      415591 :          ipack = ipack + 1
   19246      415591 :          packed_data(ipack) = pack_tmp
   19247      415591 :          data_tmp = full_data(idata)
   19248      415591 :          pack_tmp = ISHFT(data_tmp, 52)
   19249      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19250      415591 :          idata = idata + 1
   19251      415591 :          data_tmp = full_data(idata)
   19252      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19253      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19254      415591 :          pack_tmp = ISHFT(pack_tmp, -25)
   19255      415591 :          idata = idata + 1
   19256      415591 :          data_tmp = full_data(idata)
   19257      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19258      415591 :          data_tmp = IAND(data_tmp, mask_left(25))
   19259      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19260      415591 :          ipack = ipack + 1
   19261      415591 :          packed_data(ipack) = pack_tmp
   19262      415591 :          data_tmp = full_data(idata)
   19263      415591 :          pack_tmp = ISHFT(data_tmp, 62)
   19264      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19265      415591 :          idata = idata + 1
   19266      415591 :          data_tmp = full_data(idata)
   19267      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19268      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19269      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19270      415591 :          idata = idata + 1
   19271      415591 :          data_tmp = full_data(idata)
   19272      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19273      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19274      415591 :          pack_tmp = ISHFT(pack_tmp, -8)
   19275      415591 :          idata = idata + 1
   19276      415591 :          data_tmp = full_data(idata)
   19277      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19278      415591 :          data_tmp = IAND(data_tmp, mask_left(8))
   19279      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19280      415591 :          ipack = ipack + 1
   19281      415591 :          packed_data(ipack) = pack_tmp
   19282      415591 :          data_tmp = full_data(idata)
   19283      415591 :          pack_tmp = ISHFT(data_tmp, 45)
   19284      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19285      415591 :          idata = idata + 1
   19286      415591 :          data_tmp = full_data(idata)
   19287      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19288      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19289      415591 :          pack_tmp = ISHFT(pack_tmp, -18)
   19290      415591 :          idata = idata + 1
   19291      415591 :          data_tmp = full_data(idata)
   19292      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19293      415591 :          data_tmp = IAND(data_tmp, mask_left(18))
   19294      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19295      415591 :          ipack = ipack + 1
   19296      415591 :          packed_data(ipack) = pack_tmp
   19297      415591 :          data_tmp = full_data(idata)
   19298      415591 :          pack_tmp = ISHFT(data_tmp, 55)
   19299      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19300      415591 :          idata = idata + 1
   19301      415591 :          data_tmp = full_data(idata)
   19302      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19303      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19304      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19305      415591 :          idata = idata + 1
   19306      415591 :          data_tmp = full_data(idata)
   19307      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19308      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19309      415591 :          pack_tmp = ISHFT(pack_tmp, -1)
   19310      415591 :          idata = idata + 1
   19311      415591 :          data_tmp = full_data(idata)
   19312      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19313      415591 :          data_tmp = IAND(data_tmp, mask_left(1))
   19314      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19315      415591 :          ipack = ipack + 1
   19316      415591 :          packed_data(ipack) = pack_tmp
   19317      415591 :          data_tmp = full_data(idata)
   19318      415591 :          pack_tmp = ISHFT(data_tmp, 38)
   19319      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19320      415591 :          idata = idata + 1
   19321      415591 :          data_tmp = full_data(idata)
   19322      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19323      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19324      415591 :          pack_tmp = ISHFT(pack_tmp, -11)
   19325      415591 :          idata = idata + 1
   19326      415591 :          data_tmp = full_data(idata)
   19327      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19328      415591 :          data_tmp = IAND(data_tmp, mask_left(11))
   19329      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19330      415591 :          ipack = ipack + 1
   19331      415591 :          packed_data(ipack) = pack_tmp
   19332      415591 :          data_tmp = full_data(idata)
   19333      415591 :          pack_tmp = ISHFT(data_tmp, 48)
   19334      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19335      415591 :          idata = idata + 1
   19336      415591 :          data_tmp = full_data(idata)
   19337      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19338      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19339      415591 :          pack_tmp = ISHFT(pack_tmp, -21)
   19340      415591 :          idata = idata + 1
   19341      415591 :          data_tmp = full_data(idata)
   19342      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19343      415591 :          data_tmp = IAND(data_tmp, mask_left(21))
   19344      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19345      415591 :          ipack = ipack + 1
   19346      415591 :          packed_data(ipack) = pack_tmp
   19347      415591 :          data_tmp = full_data(idata)
   19348      415591 :          pack_tmp = ISHFT(data_tmp, 58)
   19349      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19350      415591 :          idata = idata + 1
   19351      415591 :          data_tmp = full_data(idata)
   19352      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19353      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19354      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19355      415591 :          idata = idata + 1
   19356      415591 :          data_tmp = full_data(idata)
   19357      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19358      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19359      415591 :          pack_tmp = ISHFT(pack_tmp, -4)
   19360      415591 :          idata = idata + 1
   19361      415591 :          data_tmp = full_data(idata)
   19362      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19363      415591 :          data_tmp = IAND(data_tmp, mask_left(4))
   19364      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19365      415591 :          ipack = ipack + 1
   19366      415591 :          packed_data(ipack) = pack_tmp
   19367      415591 :          data_tmp = full_data(idata)
   19368      415591 :          pack_tmp = ISHFT(data_tmp, 41)
   19369      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19370      415591 :          idata = idata + 1
   19371      415591 :          data_tmp = full_data(idata)
   19372      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19373      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19374      415591 :          pack_tmp = ISHFT(pack_tmp, -14)
   19375      415591 :          idata = idata + 1
   19376      415591 :          data_tmp = full_data(idata)
   19377      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19378      415591 :          data_tmp = IAND(data_tmp, mask_left(14))
   19379      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19380      415591 :          ipack = ipack + 1
   19381      415591 :          packed_data(ipack) = pack_tmp
   19382      415591 :          data_tmp = full_data(idata)
   19383      415591 :          pack_tmp = ISHFT(data_tmp, 51)
   19384      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19385      415591 :          idata = idata + 1
   19386      415591 :          data_tmp = full_data(idata)
   19387      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19388      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19389      415591 :          pack_tmp = ISHFT(pack_tmp, -24)
   19390      415591 :          idata = idata + 1
   19391      415591 :          data_tmp = full_data(idata)
   19392      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19393      415591 :          data_tmp = IAND(data_tmp, mask_left(24))
   19394      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19395      415591 :          ipack = ipack + 1
   19396      415591 :          packed_data(ipack) = pack_tmp
   19397      415591 :          data_tmp = full_data(idata)
   19398      415591 :          pack_tmp = ISHFT(data_tmp, 61)
   19399      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19400      415591 :          idata = idata + 1
   19401      415591 :          data_tmp = full_data(idata)
   19402      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19403      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19404      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19405      415591 :          idata = idata + 1
   19406      415591 :          data_tmp = full_data(idata)
   19407      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19408      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19409      415591 :          pack_tmp = ISHFT(pack_tmp, -7)
   19410      415591 :          idata = idata + 1
   19411      415591 :          data_tmp = full_data(idata)
   19412      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19413      415591 :          data_tmp = IAND(data_tmp, mask_left(7))
   19414      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19415      415591 :          ipack = ipack + 1
   19416      415591 :          packed_data(ipack) = pack_tmp
   19417      415591 :          data_tmp = full_data(idata)
   19418      415591 :          pack_tmp = ISHFT(data_tmp, 44)
   19419      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19420      415591 :          idata = idata + 1
   19421      415591 :          data_tmp = full_data(idata)
   19422      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19423      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19424      415591 :          pack_tmp = ISHFT(pack_tmp, -17)
   19425      415591 :          idata = idata + 1
   19426      415591 :          data_tmp = full_data(idata)
   19427      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19428      415591 :          data_tmp = IAND(data_tmp, mask_left(17))
   19429      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19430      415591 :          ipack = ipack + 1
   19431      415591 :          packed_data(ipack) = pack_tmp
   19432      415591 :          data_tmp = full_data(idata)
   19433      415591 :          pack_tmp = ISHFT(data_tmp, 54)
   19434      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19435      415591 :          idata = idata + 1
   19436      415591 :          data_tmp = full_data(idata)
   19437      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19438      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19439      415591 :          pack_tmp = ISHFT(pack_tmp, -27)
   19440      415591 :          idata = idata + 1
   19441      415591 :          data_tmp = full_data(idata)
   19442      415591 :          data_tmp = ISHFT(data_tmp, 37)
   19443      415591 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19444             :          pack_tmp = ISHFT(pack_tmp, 0)
   19445      415591 :          pack_tmp = ISHFT(pack_tmp, 0)
   19446      415591 :          ipack = ipack + 1
   19447      415665 :          packed_data(ipack) = pack_tmp
   19448             :       END DO
   19449       27310 :       IF (Ndata_rep < Ndata) THEN
   19450        2514 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19451             :       END IF
   19452       27310 :    END SUBROUTINE ints2bits_27
   19453             : 
   19454             : ! **************************************************************************************************
   19455             : !> \brief ...
   19456             : !> \param Ndata ...
   19457             : !> \param packed_data ...
   19458             : !> \param full_data ...
   19459             : ! **************************************************************************************************
   19460      128907 :    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      128907 :       ipack = 0
   19471      128907 :       idata = 0
   19472      128907 :       pack_tmp = 0
   19473      128907 :       Ndata_rep = (Ndata/64)*64
   19474      128907 :       DO kdata = 1, Ndata_rep, 64
   19475     1893702 :          idata = idata + 1
   19476     1893702 :          data_tmp = ISHFT(pack_tmp, 27)
   19477     1893702 :          ipack = ipack + 1
   19478     1893702 :          pack_tmp = packed_data(ipack)
   19479     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   19480     1893702 :          pack_tmp = ISHFT(pack_tmp, -27)
   19481     1893702 :          idata = idata + 1
   19482     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19483     1893702 :          full_data(idata) = data_tmp
   19484     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19485     1893702 :          idata = idata + 1
   19486     1893702 :          data_tmp = ISHFT(pack_tmp, 17)
   19487     1893702 :          ipack = ipack + 1
   19488     1893702 :          pack_tmp = packed_data(ipack)
   19489     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   19490     1893702 :          pack_tmp = ISHFT(pack_tmp, -17)
   19491     1893702 :          idata = idata + 1
   19492     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19493     1893702 :          full_data(idata) = data_tmp
   19494     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19495     1893702 :          idata = idata + 1
   19496     1893702 :          data_tmp = ISHFT(pack_tmp, 7)
   19497     1893702 :          ipack = ipack + 1
   19498     1893702 :          pack_tmp = packed_data(ipack)
   19499     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   19500     1893702 :          pack_tmp = ISHFT(pack_tmp, -7)
   19501     1893702 :          idata = idata + 1
   19502     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19503     1893702 :          full_data(idata) = data_tmp
   19504     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19505     1893702 :          idata = idata + 1
   19506     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19507     1893702 :          full_data(idata) = data_tmp
   19508     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19509     1893702 :          idata = idata + 1
   19510     1893702 :          data_tmp = ISHFT(pack_tmp, 24)
   19511     1893702 :          ipack = ipack + 1
   19512     1893702 :          pack_tmp = packed_data(ipack)
   19513     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   19514     1893702 :          pack_tmp = ISHFT(pack_tmp, -24)
   19515     1893702 :          idata = idata + 1
   19516     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19517     1893702 :          full_data(idata) = data_tmp
   19518     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19519     1893702 :          idata = idata + 1
   19520     1893702 :          data_tmp = ISHFT(pack_tmp, 14)
   19521     1893702 :          ipack = ipack + 1
   19522     1893702 :          pack_tmp = packed_data(ipack)
   19523     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   19524     1893702 :          pack_tmp = ISHFT(pack_tmp, -14)
   19525     1893702 :          idata = idata + 1
   19526     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19527     1893702 :          full_data(idata) = data_tmp
   19528     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19529     1893702 :          idata = idata + 1
   19530     1893702 :          data_tmp = ISHFT(pack_tmp, 4)
   19531     1893702 :          ipack = ipack + 1
   19532     1893702 :          pack_tmp = packed_data(ipack)
   19533     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   19534     1893702 :          pack_tmp = ISHFT(pack_tmp, -4)
   19535     1893702 :          idata = idata + 1
   19536     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19537     1893702 :          full_data(idata) = data_tmp
   19538     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19539     1893702 :          idata = idata + 1
   19540     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19541     1893702 :          full_data(idata) = data_tmp
   19542     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19543     1893702 :          idata = idata + 1
   19544     1893702 :          data_tmp = ISHFT(pack_tmp, 21)
   19545     1893702 :          ipack = ipack + 1
   19546     1893702 :          pack_tmp = packed_data(ipack)
   19547     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   19548     1893702 :          pack_tmp = ISHFT(pack_tmp, -21)
   19549     1893702 :          idata = idata + 1
   19550     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19551     1893702 :          full_data(idata) = data_tmp
   19552     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19553     1893702 :          idata = idata + 1
   19554     1893702 :          data_tmp = ISHFT(pack_tmp, 11)
   19555     1893702 :          ipack = ipack + 1
   19556     1893702 :          pack_tmp = packed_data(ipack)
   19557     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   19558     1893702 :          pack_tmp = ISHFT(pack_tmp, -11)
   19559     1893702 :          idata = idata + 1
   19560     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19561     1893702 :          full_data(idata) = data_tmp
   19562     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19563     1893702 :          idata = idata + 1
   19564     1893702 :          data_tmp = ISHFT(pack_tmp, 1)
   19565     1893702 :          ipack = ipack + 1
   19566     1893702 :          pack_tmp = packed_data(ipack)
   19567     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   19568     1893702 :          pack_tmp = ISHFT(pack_tmp, -1)
   19569     1893702 :          idata = idata + 1
   19570     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19571     1893702 :          full_data(idata) = data_tmp
   19572     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19573     1893702 :          idata = idata + 1
   19574     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19575     1893702 :          full_data(idata) = data_tmp
   19576     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19577     1893702 :          idata = idata + 1
   19578     1893702 :          data_tmp = ISHFT(pack_tmp, 18)
   19579     1893702 :          ipack = ipack + 1
   19580     1893702 :          pack_tmp = packed_data(ipack)
   19581     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   19582     1893702 :          pack_tmp = ISHFT(pack_tmp, -18)
   19583     1893702 :          idata = idata + 1
   19584     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19585     1893702 :          full_data(idata) = data_tmp
   19586     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19587     1893702 :          idata = idata + 1
   19588     1893702 :          data_tmp = ISHFT(pack_tmp, 8)
   19589     1893702 :          ipack = ipack + 1
   19590     1893702 :          pack_tmp = packed_data(ipack)
   19591     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   19592     1893702 :          pack_tmp = ISHFT(pack_tmp, -8)
   19593     1893702 :          idata = idata + 1
   19594     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19595     1893702 :          full_data(idata) = data_tmp
   19596     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19597     1893702 :          idata = idata + 1
   19598     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19599     1893702 :          full_data(idata) = data_tmp
   19600     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19601     1893702 :          idata = idata + 1
   19602     1893702 :          data_tmp = ISHFT(pack_tmp, 25)
   19603     1893702 :          ipack = ipack + 1
   19604     1893702 :          pack_tmp = packed_data(ipack)
   19605     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   19606     1893702 :          pack_tmp = ISHFT(pack_tmp, -25)
   19607     1893702 :          idata = idata + 1
   19608     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19609     1893702 :          full_data(idata) = data_tmp
   19610     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19611     1893702 :          idata = idata + 1
   19612     1893702 :          data_tmp = ISHFT(pack_tmp, 15)
   19613     1893702 :          ipack = ipack + 1
   19614     1893702 :          pack_tmp = packed_data(ipack)
   19615     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   19616     1893702 :          pack_tmp = ISHFT(pack_tmp, -15)
   19617     1893702 :          idata = idata + 1
   19618     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19619     1893702 :          full_data(idata) = data_tmp
   19620     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19621     1893702 :          idata = idata + 1
   19622     1893702 :          data_tmp = ISHFT(pack_tmp, 5)
   19623     1893702 :          ipack = ipack + 1
   19624     1893702 :          pack_tmp = packed_data(ipack)
   19625     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   19626     1893702 :          pack_tmp = ISHFT(pack_tmp, -5)
   19627     1893702 :          idata = idata + 1
   19628     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19629     1893702 :          full_data(idata) = data_tmp
   19630     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19631     1893702 :          idata = idata + 1
   19632     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19633     1893702 :          full_data(idata) = data_tmp
   19634     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19635     1893702 :          idata = idata + 1
   19636     1893702 :          data_tmp = ISHFT(pack_tmp, 22)
   19637     1893702 :          ipack = ipack + 1
   19638     1893702 :          pack_tmp = packed_data(ipack)
   19639     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   19640     1893702 :          pack_tmp = ISHFT(pack_tmp, -22)
   19641     1893702 :          idata = idata + 1
   19642     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19643     1893702 :          full_data(idata) = data_tmp
   19644     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19645     1893702 :          idata = idata + 1
   19646     1893702 :          data_tmp = ISHFT(pack_tmp, 12)
   19647     1893702 :          ipack = ipack + 1
   19648     1893702 :          pack_tmp = packed_data(ipack)
   19649     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   19650     1893702 :          pack_tmp = ISHFT(pack_tmp, -12)
   19651     1893702 :          idata = idata + 1
   19652     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19653     1893702 :          full_data(idata) = data_tmp
   19654     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19655     1893702 :          idata = idata + 1
   19656     1893702 :          data_tmp = ISHFT(pack_tmp, 2)
   19657     1893702 :          ipack = ipack + 1
   19658     1893702 :          pack_tmp = packed_data(ipack)
   19659     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   19660     1893702 :          pack_tmp = ISHFT(pack_tmp, -2)
   19661     1893702 :          idata = idata + 1
   19662     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19663     1893702 :          full_data(idata) = data_tmp
   19664     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19665     1893702 :          idata = idata + 1
   19666     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19667     1893702 :          full_data(idata) = data_tmp
   19668     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19669     1893702 :          idata = idata + 1
   19670     1893702 :          data_tmp = ISHFT(pack_tmp, 19)
   19671     1893702 :          ipack = ipack + 1
   19672     1893702 :          pack_tmp = packed_data(ipack)
   19673     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   19674     1893702 :          pack_tmp = ISHFT(pack_tmp, -19)
   19675     1893702 :          idata = idata + 1
   19676     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19677     1893702 :          full_data(idata) = data_tmp
   19678     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19679     1893702 :          idata = idata + 1
   19680     1893702 :          data_tmp = ISHFT(pack_tmp, 9)
   19681     1893702 :          ipack = ipack + 1
   19682     1893702 :          pack_tmp = packed_data(ipack)
   19683     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   19684     1893702 :          pack_tmp = ISHFT(pack_tmp, -9)
   19685     1893702 :          idata = idata + 1
   19686     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19687     1893702 :          full_data(idata) = data_tmp
   19688     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19689     1893702 :          idata = idata + 1
   19690     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19691     1893702 :          full_data(idata) = data_tmp
   19692     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19693     1893702 :          idata = idata + 1
   19694     1893702 :          data_tmp = ISHFT(pack_tmp, 26)
   19695     1893702 :          ipack = ipack + 1
   19696     1893702 :          pack_tmp = packed_data(ipack)
   19697     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   19698     1893702 :          pack_tmp = ISHFT(pack_tmp, -26)
   19699     1893702 :          idata = idata + 1
   19700     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19701     1893702 :          full_data(idata) = data_tmp
   19702     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19703     1893702 :          idata = idata + 1
   19704     1893702 :          data_tmp = ISHFT(pack_tmp, 16)
   19705     1893702 :          ipack = ipack + 1
   19706     1893702 :          pack_tmp = packed_data(ipack)
   19707     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   19708     1893702 :          pack_tmp = ISHFT(pack_tmp, -16)
   19709     1893702 :          idata = idata + 1
   19710     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19711     1893702 :          full_data(idata) = data_tmp
   19712     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19713     1893702 :          idata = idata + 1
   19714     1893702 :          data_tmp = ISHFT(pack_tmp, 6)
   19715     1893702 :          ipack = ipack + 1
   19716     1893702 :          pack_tmp = packed_data(ipack)
   19717     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   19718     1893702 :          pack_tmp = ISHFT(pack_tmp, -6)
   19719     1893702 :          idata = idata + 1
   19720     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19721     1893702 :          full_data(idata) = data_tmp
   19722     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19723     1893702 :          idata = idata + 1
   19724     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19725     1893702 :          full_data(idata) = data_tmp
   19726     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19727     1893702 :          idata = idata + 1
   19728     1893702 :          data_tmp = ISHFT(pack_tmp, 23)
   19729     1893702 :          ipack = ipack + 1
   19730     1893702 :          pack_tmp = packed_data(ipack)
   19731     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   19732     1893702 :          pack_tmp = ISHFT(pack_tmp, -23)
   19733     1893702 :          idata = idata + 1
   19734     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19735     1893702 :          full_data(idata) = data_tmp
   19736     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19737     1893702 :          idata = idata + 1
   19738     1893702 :          data_tmp = ISHFT(pack_tmp, 13)
   19739     1893702 :          ipack = ipack + 1
   19740     1893702 :          pack_tmp = packed_data(ipack)
   19741     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   19742     1893702 :          pack_tmp = ISHFT(pack_tmp, -13)
   19743     1893702 :          idata = idata + 1
   19744     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19745     1893702 :          full_data(idata) = data_tmp
   19746     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19747     1893702 :          idata = idata + 1
   19748     1893702 :          data_tmp = ISHFT(pack_tmp, 3)
   19749     1893702 :          ipack = ipack + 1
   19750     1893702 :          pack_tmp = packed_data(ipack)
   19751     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   19752     1893702 :          pack_tmp = ISHFT(pack_tmp, -3)
   19753     1893702 :          idata = idata + 1
   19754     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19755     1893702 :          full_data(idata) = data_tmp
   19756     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19757     1893702 :          idata = idata + 1
   19758     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19759     1893702 :          full_data(idata) = data_tmp
   19760     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19761     1893702 :          idata = idata + 1
   19762     1893702 :          data_tmp = ISHFT(pack_tmp, 20)
   19763     1893702 :          ipack = ipack + 1
   19764     1893702 :          pack_tmp = packed_data(ipack)
   19765     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   19766     1893702 :          pack_tmp = ISHFT(pack_tmp, -20)
   19767     1893702 :          idata = idata + 1
   19768     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19769     1893702 :          full_data(idata) = data_tmp
   19770     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19771     1893702 :          idata = idata + 1
   19772     1893702 :          data_tmp = ISHFT(pack_tmp, 10)
   19773     1893702 :          ipack = ipack + 1
   19774     1893702 :          pack_tmp = packed_data(ipack)
   19775     1893702 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   19776     1893702 :          pack_tmp = ISHFT(pack_tmp, -10)
   19777     1893702 :          idata = idata + 1
   19778     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19779     1893702 :          full_data(idata) = data_tmp
   19780     1893702 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19781     1893702 :          idata = idata + 1
   19782     1893702 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19783     1893702 :          full_data(idata) = data_tmp
   19784     1894269 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19785             :       END DO
   19786      128907 :       IF (Ndata_rep < Ndata) THEN
   19787       19860 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19788             :       END IF
   19789      128907 :    END SUBROUTINE bits2ints_27
   19790             : 
   19791             : ! **************************************************************************************************
   19792             : !> \brief ...
   19793             : !> \param Ndata ...
   19794             : !> \param packed_data ...
   19795             : !> \param full_data ...
   19796             : ! **************************************************************************************************
   19797       30334 :    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       30334 :       idata = 0
   19808       30334 :       ipack = 0
   19809       30334 :       Ndata_rep = (Ndata/64)*64
   19810       30334 :       DO kdata = 1, Ndata_rep, 64
   19811      446177 :          pack_tmp = 0
   19812      446177 :          idata = idata + 1
   19813      446177 :          data_tmp = full_data(idata)
   19814      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19815      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19816      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19817      446177 :          idata = idata + 1
   19818      446177 :          data_tmp = full_data(idata)
   19819      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19820      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19821      446177 :          pack_tmp = ISHFT(pack_tmp, -8)
   19822      446177 :          idata = idata + 1
   19823      446177 :          data_tmp = full_data(idata)
   19824      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19825      446177 :          data_tmp = IAND(data_tmp, mask_left(8))
   19826      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19827      446177 :          ipack = ipack + 1
   19828      446177 :          packed_data(ipack) = pack_tmp
   19829      446177 :          data_tmp = full_data(idata)
   19830      446177 :          pack_tmp = ISHFT(data_tmp, 44)
   19831      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19832      446177 :          idata = idata + 1
   19833      446177 :          data_tmp = full_data(idata)
   19834      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19835      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19836      446177 :          pack_tmp = ISHFT(pack_tmp, -16)
   19837      446177 :          idata = idata + 1
   19838      446177 :          data_tmp = full_data(idata)
   19839      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19840      446177 :          data_tmp = IAND(data_tmp, mask_left(16))
   19841      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19842      446177 :          ipack = ipack + 1
   19843      446177 :          packed_data(ipack) = pack_tmp
   19844      446177 :          data_tmp = full_data(idata)
   19845      446177 :          pack_tmp = ISHFT(data_tmp, 52)
   19846      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19847      446177 :          idata = idata + 1
   19848      446177 :          data_tmp = full_data(idata)
   19849      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19850      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19851      446177 :          pack_tmp = ISHFT(pack_tmp, -24)
   19852      446177 :          idata = idata + 1
   19853      446177 :          data_tmp = full_data(idata)
   19854      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19855      446177 :          data_tmp = IAND(data_tmp, mask_left(24))
   19856      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19857      446177 :          ipack = ipack + 1
   19858      446177 :          packed_data(ipack) = pack_tmp
   19859      446177 :          data_tmp = full_data(idata)
   19860      446177 :          pack_tmp = ISHFT(data_tmp, 60)
   19861      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19862      446177 :          idata = idata + 1
   19863      446177 :          data_tmp = full_data(idata)
   19864      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19865      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19866      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19867      446177 :          idata = idata + 1
   19868      446177 :          data_tmp = full_data(idata)
   19869      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19870      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19871      446177 :          pack_tmp = ISHFT(pack_tmp, -4)
   19872      446177 :          idata = idata + 1
   19873      446177 :          data_tmp = full_data(idata)
   19874      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19875      446177 :          data_tmp = IAND(data_tmp, mask_left(4))
   19876      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19877      446177 :          ipack = ipack + 1
   19878      446177 :          packed_data(ipack) = pack_tmp
   19879      446177 :          data_tmp = full_data(idata)
   19880      446177 :          pack_tmp = ISHFT(data_tmp, 40)
   19881      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19882      446177 :          idata = idata + 1
   19883      446177 :          data_tmp = full_data(idata)
   19884      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19885      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19886      446177 :          pack_tmp = ISHFT(pack_tmp, -12)
   19887      446177 :          idata = idata + 1
   19888      446177 :          data_tmp = full_data(idata)
   19889      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19890      446177 :          data_tmp = IAND(data_tmp, mask_left(12))
   19891      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19892      446177 :          ipack = ipack + 1
   19893      446177 :          packed_data(ipack) = pack_tmp
   19894      446177 :          data_tmp = full_data(idata)
   19895      446177 :          pack_tmp = ISHFT(data_tmp, 48)
   19896      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19897      446177 :          idata = idata + 1
   19898      446177 :          data_tmp = full_data(idata)
   19899      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19900      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19901      446177 :          pack_tmp = ISHFT(pack_tmp, -20)
   19902      446177 :          idata = idata + 1
   19903      446177 :          data_tmp = full_data(idata)
   19904      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19905      446177 :          data_tmp = IAND(data_tmp, mask_left(20))
   19906      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19907      446177 :          ipack = ipack + 1
   19908      446177 :          packed_data(ipack) = pack_tmp
   19909      446177 :          data_tmp = full_data(idata)
   19910      446177 :          pack_tmp = ISHFT(data_tmp, 56)
   19911      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19912      446177 :          idata = idata + 1
   19913      446177 :          data_tmp = full_data(idata)
   19914      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19915      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19916      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19917      446177 :          idata = idata + 1
   19918      446177 :          data_tmp = full_data(idata)
   19919      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19920      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19921      446177 :          pack_tmp = ISHFT(pack_tmp, 0)
   19922      446177 :          idata = idata + 1
   19923      446177 :          data_tmp = full_data(idata)
   19924      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19925      446177 :          data_tmp = IAND(data_tmp, mask_left(0))
   19926      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19927      446177 :          ipack = ipack + 1
   19928      446177 :          packed_data(ipack) = pack_tmp
   19929      446177 :          data_tmp = full_data(idata)
   19930      446177 :          pack_tmp = ISHFT(data_tmp, 36)
   19931      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19932      446177 :          idata = idata + 1
   19933      446177 :          data_tmp = full_data(idata)
   19934      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19935      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19936      446177 :          pack_tmp = ISHFT(pack_tmp, -8)
   19937      446177 :          idata = idata + 1
   19938      446177 :          data_tmp = full_data(idata)
   19939      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19940      446177 :          data_tmp = IAND(data_tmp, mask_left(8))
   19941      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19942      446177 :          ipack = ipack + 1
   19943      446177 :          packed_data(ipack) = pack_tmp
   19944      446177 :          data_tmp = full_data(idata)
   19945      446177 :          pack_tmp = ISHFT(data_tmp, 44)
   19946      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19947      446177 :          idata = idata + 1
   19948      446177 :          data_tmp = full_data(idata)
   19949      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19950      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19951      446177 :          pack_tmp = ISHFT(pack_tmp, -16)
   19952      446177 :          idata = idata + 1
   19953      446177 :          data_tmp = full_data(idata)
   19954      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19955      446177 :          data_tmp = IAND(data_tmp, mask_left(16))
   19956      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19957      446177 :          ipack = ipack + 1
   19958      446177 :          packed_data(ipack) = pack_tmp
   19959      446177 :          data_tmp = full_data(idata)
   19960      446177 :          pack_tmp = ISHFT(data_tmp, 52)
   19961      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19962      446177 :          idata = idata + 1
   19963      446177 :          data_tmp = full_data(idata)
   19964      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19965      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19966      446177 :          pack_tmp = ISHFT(pack_tmp, -24)
   19967      446177 :          idata = idata + 1
   19968      446177 :          data_tmp = full_data(idata)
   19969      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19970      446177 :          data_tmp = IAND(data_tmp, mask_left(24))
   19971      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19972      446177 :          ipack = ipack + 1
   19973      446177 :          packed_data(ipack) = pack_tmp
   19974      446177 :          data_tmp = full_data(idata)
   19975      446177 :          pack_tmp = ISHFT(data_tmp, 60)
   19976      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19977      446177 :          idata = idata + 1
   19978      446177 :          data_tmp = full_data(idata)
   19979      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19980      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19981      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19982      446177 :          idata = idata + 1
   19983      446177 :          data_tmp = full_data(idata)
   19984      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19985      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19986      446177 :          pack_tmp = ISHFT(pack_tmp, -4)
   19987      446177 :          idata = idata + 1
   19988      446177 :          data_tmp = full_data(idata)
   19989      446177 :          data_tmp = ISHFT(data_tmp, 36)
   19990      446177 :          data_tmp = IAND(data_tmp, mask_left(4))
   19991      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19992      446177 :          ipack = ipack + 1
   19993      446177 :          packed_data(ipack) = pack_tmp
   19994      446177 :          data_tmp = full_data(idata)
   19995      446177 :          pack_tmp = ISHFT(data_tmp, 40)
   19996      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   19997      446177 :          idata = idata + 1
   19998      446177 :          data_tmp = full_data(idata)
   19999      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20000      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20001      446177 :          pack_tmp = ISHFT(pack_tmp, -12)
   20002      446177 :          idata = idata + 1
   20003      446177 :          data_tmp = full_data(idata)
   20004      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20005      446177 :          data_tmp = IAND(data_tmp, mask_left(12))
   20006      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20007      446177 :          ipack = ipack + 1
   20008      446177 :          packed_data(ipack) = pack_tmp
   20009      446177 :          data_tmp = full_data(idata)
   20010      446177 :          pack_tmp = ISHFT(data_tmp, 48)
   20011      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20012      446177 :          idata = idata + 1
   20013      446177 :          data_tmp = full_data(idata)
   20014      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20015      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20016      446177 :          pack_tmp = ISHFT(pack_tmp, -20)
   20017      446177 :          idata = idata + 1
   20018      446177 :          data_tmp = full_data(idata)
   20019      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20020      446177 :          data_tmp = IAND(data_tmp, mask_left(20))
   20021      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20022      446177 :          ipack = ipack + 1
   20023      446177 :          packed_data(ipack) = pack_tmp
   20024      446177 :          data_tmp = full_data(idata)
   20025      446177 :          pack_tmp = ISHFT(data_tmp, 56)
   20026      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20027      446177 :          idata = idata + 1
   20028      446177 :          data_tmp = full_data(idata)
   20029      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20030      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20031      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20032      446177 :          idata = idata + 1
   20033      446177 :          data_tmp = full_data(idata)
   20034      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20035      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20036      446177 :          pack_tmp = ISHFT(pack_tmp, 0)
   20037      446177 :          idata = idata + 1
   20038      446177 :          data_tmp = full_data(idata)
   20039      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20040      446177 :          data_tmp = IAND(data_tmp, mask_left(0))
   20041      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20042      446177 :          ipack = ipack + 1
   20043      446177 :          packed_data(ipack) = pack_tmp
   20044      446177 :          data_tmp = full_data(idata)
   20045      446177 :          pack_tmp = ISHFT(data_tmp, 36)
   20046      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20047      446177 :          idata = idata + 1
   20048      446177 :          data_tmp = full_data(idata)
   20049      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20050      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20051      446177 :          pack_tmp = ISHFT(pack_tmp, -8)
   20052      446177 :          idata = idata + 1
   20053      446177 :          data_tmp = full_data(idata)
   20054      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20055      446177 :          data_tmp = IAND(data_tmp, mask_left(8))
   20056      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20057      446177 :          ipack = ipack + 1
   20058      446177 :          packed_data(ipack) = pack_tmp
   20059      446177 :          data_tmp = full_data(idata)
   20060      446177 :          pack_tmp = ISHFT(data_tmp, 44)
   20061      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20062      446177 :          idata = idata + 1
   20063      446177 :          data_tmp = full_data(idata)
   20064      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20065      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20066      446177 :          pack_tmp = ISHFT(pack_tmp, -16)
   20067      446177 :          idata = idata + 1
   20068      446177 :          data_tmp = full_data(idata)
   20069      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20070      446177 :          data_tmp = IAND(data_tmp, mask_left(16))
   20071      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20072      446177 :          ipack = ipack + 1
   20073      446177 :          packed_data(ipack) = pack_tmp
   20074      446177 :          data_tmp = full_data(idata)
   20075      446177 :          pack_tmp = ISHFT(data_tmp, 52)
   20076      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20077      446177 :          idata = idata + 1
   20078      446177 :          data_tmp = full_data(idata)
   20079      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20080      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20081      446177 :          pack_tmp = ISHFT(pack_tmp, -24)
   20082      446177 :          idata = idata + 1
   20083      446177 :          data_tmp = full_data(idata)
   20084      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20085      446177 :          data_tmp = IAND(data_tmp, mask_left(24))
   20086      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20087      446177 :          ipack = ipack + 1
   20088      446177 :          packed_data(ipack) = pack_tmp
   20089      446177 :          data_tmp = full_data(idata)
   20090      446177 :          pack_tmp = ISHFT(data_tmp, 60)
   20091      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20092      446177 :          idata = idata + 1
   20093      446177 :          data_tmp = full_data(idata)
   20094      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20095      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20096      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20097      446177 :          idata = idata + 1
   20098      446177 :          data_tmp = full_data(idata)
   20099      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20100      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20101      446177 :          pack_tmp = ISHFT(pack_tmp, -4)
   20102      446177 :          idata = idata + 1
   20103      446177 :          data_tmp = full_data(idata)
   20104      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20105      446177 :          data_tmp = IAND(data_tmp, mask_left(4))
   20106      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20107      446177 :          ipack = ipack + 1
   20108      446177 :          packed_data(ipack) = pack_tmp
   20109      446177 :          data_tmp = full_data(idata)
   20110      446177 :          pack_tmp = ISHFT(data_tmp, 40)
   20111      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20112      446177 :          idata = idata + 1
   20113      446177 :          data_tmp = full_data(idata)
   20114      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20115      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20116      446177 :          pack_tmp = ISHFT(pack_tmp, -12)
   20117      446177 :          idata = idata + 1
   20118      446177 :          data_tmp = full_data(idata)
   20119      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20120      446177 :          data_tmp = IAND(data_tmp, mask_left(12))
   20121      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20122      446177 :          ipack = ipack + 1
   20123      446177 :          packed_data(ipack) = pack_tmp
   20124      446177 :          data_tmp = full_data(idata)
   20125      446177 :          pack_tmp = ISHFT(data_tmp, 48)
   20126      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20127      446177 :          idata = idata + 1
   20128      446177 :          data_tmp = full_data(idata)
   20129      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20130      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20131      446177 :          pack_tmp = ISHFT(pack_tmp, -20)
   20132      446177 :          idata = idata + 1
   20133      446177 :          data_tmp = full_data(idata)
   20134      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20135      446177 :          data_tmp = IAND(data_tmp, mask_left(20))
   20136      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20137      446177 :          ipack = ipack + 1
   20138      446177 :          packed_data(ipack) = pack_tmp
   20139      446177 :          data_tmp = full_data(idata)
   20140      446177 :          pack_tmp = ISHFT(data_tmp, 56)
   20141      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20142      446177 :          idata = idata + 1
   20143      446177 :          data_tmp = full_data(idata)
   20144      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20145      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20146      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20147      446177 :          idata = idata + 1
   20148      446177 :          data_tmp = full_data(idata)
   20149      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20150      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20151      446177 :          pack_tmp = ISHFT(pack_tmp, 0)
   20152      446177 :          idata = idata + 1
   20153      446177 :          data_tmp = full_data(idata)
   20154      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20155      446177 :          data_tmp = IAND(data_tmp, mask_left(0))
   20156      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20157      446177 :          ipack = ipack + 1
   20158      446177 :          packed_data(ipack) = pack_tmp
   20159      446177 :          data_tmp = full_data(idata)
   20160      446177 :          pack_tmp = ISHFT(data_tmp, 36)
   20161      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20162      446177 :          idata = idata + 1
   20163      446177 :          data_tmp = full_data(idata)
   20164      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20165      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20166      446177 :          pack_tmp = ISHFT(pack_tmp, -8)
   20167      446177 :          idata = idata + 1
   20168      446177 :          data_tmp = full_data(idata)
   20169      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20170      446177 :          data_tmp = IAND(data_tmp, mask_left(8))
   20171      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20172      446177 :          ipack = ipack + 1
   20173      446177 :          packed_data(ipack) = pack_tmp
   20174      446177 :          data_tmp = full_data(idata)
   20175      446177 :          pack_tmp = ISHFT(data_tmp, 44)
   20176      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20177      446177 :          idata = idata + 1
   20178      446177 :          data_tmp = full_data(idata)
   20179      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20180      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20181      446177 :          pack_tmp = ISHFT(pack_tmp, -16)
   20182      446177 :          idata = idata + 1
   20183      446177 :          data_tmp = full_data(idata)
   20184      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20185      446177 :          data_tmp = IAND(data_tmp, mask_left(16))
   20186      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20187      446177 :          ipack = ipack + 1
   20188      446177 :          packed_data(ipack) = pack_tmp
   20189      446177 :          data_tmp = full_data(idata)
   20190      446177 :          pack_tmp = ISHFT(data_tmp, 52)
   20191      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20192      446177 :          idata = idata + 1
   20193      446177 :          data_tmp = full_data(idata)
   20194      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20195      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20196      446177 :          pack_tmp = ISHFT(pack_tmp, -24)
   20197      446177 :          idata = idata + 1
   20198      446177 :          data_tmp = full_data(idata)
   20199      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20200      446177 :          data_tmp = IAND(data_tmp, mask_left(24))
   20201      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20202      446177 :          ipack = ipack + 1
   20203      446177 :          packed_data(ipack) = pack_tmp
   20204      446177 :          data_tmp = full_data(idata)
   20205      446177 :          pack_tmp = ISHFT(data_tmp, 60)
   20206      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20207      446177 :          idata = idata + 1
   20208      446177 :          data_tmp = full_data(idata)
   20209      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20210      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20211      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20212      446177 :          idata = idata + 1
   20213      446177 :          data_tmp = full_data(idata)
   20214      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20215      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20216      446177 :          pack_tmp = ISHFT(pack_tmp, -4)
   20217      446177 :          idata = idata + 1
   20218      446177 :          data_tmp = full_data(idata)
   20219      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20220      446177 :          data_tmp = IAND(data_tmp, mask_left(4))
   20221      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20222      446177 :          ipack = ipack + 1
   20223      446177 :          packed_data(ipack) = pack_tmp
   20224      446177 :          data_tmp = full_data(idata)
   20225      446177 :          pack_tmp = ISHFT(data_tmp, 40)
   20226      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20227      446177 :          idata = idata + 1
   20228      446177 :          data_tmp = full_data(idata)
   20229      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20230      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20231      446177 :          pack_tmp = ISHFT(pack_tmp, -12)
   20232      446177 :          idata = idata + 1
   20233      446177 :          data_tmp = full_data(idata)
   20234      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20235      446177 :          data_tmp = IAND(data_tmp, mask_left(12))
   20236      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20237      446177 :          ipack = ipack + 1
   20238      446177 :          packed_data(ipack) = pack_tmp
   20239      446177 :          data_tmp = full_data(idata)
   20240      446177 :          pack_tmp = ISHFT(data_tmp, 48)
   20241      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20242      446177 :          idata = idata + 1
   20243      446177 :          data_tmp = full_data(idata)
   20244      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20245      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20246      446177 :          pack_tmp = ISHFT(pack_tmp, -20)
   20247      446177 :          idata = idata + 1
   20248      446177 :          data_tmp = full_data(idata)
   20249      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20250      446177 :          data_tmp = IAND(data_tmp, mask_left(20))
   20251      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20252      446177 :          ipack = ipack + 1
   20253      446177 :          packed_data(ipack) = pack_tmp
   20254      446177 :          data_tmp = full_data(idata)
   20255      446177 :          pack_tmp = ISHFT(data_tmp, 56)
   20256      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20257      446177 :          idata = idata + 1
   20258      446177 :          data_tmp = full_data(idata)
   20259      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20260      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20261      446177 :          pack_tmp = ISHFT(pack_tmp, -28)
   20262      446177 :          idata = idata + 1
   20263      446177 :          data_tmp = full_data(idata)
   20264      446177 :          data_tmp = ISHFT(data_tmp, 36)
   20265      446177 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20266             :          pack_tmp = ISHFT(pack_tmp, 0)
   20267      446177 :          pack_tmp = ISHFT(pack_tmp, 0)
   20268      446177 :          ipack = ipack + 1
   20269      446285 :          packed_data(ipack) = pack_tmp
   20270             :       END DO
   20271       30334 :       IF (Ndata_rep < Ndata) THEN
   20272        4574 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20273             :       END IF
   20274       30334 :    END SUBROUTINE ints2bits_28
   20275             : 
   20276             : ! **************************************************************************************************
   20277             : !> \brief ...
   20278             : !> \param Ndata ...
   20279             : !> \param packed_data ...
   20280             : !> \param full_data ...
   20281             : ! **************************************************************************************************
   20282      148884 :    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      148884 :       ipack = 0
   20293      148884 :       idata = 0
   20294      148884 :       pack_tmp = 0
   20295      148884 :       Ndata_rep = (Ndata/64)*64
   20296      148884 :       DO kdata = 1, Ndata_rep, 64
   20297     2105314 :          idata = idata + 1
   20298     2105314 :          data_tmp = ISHFT(pack_tmp, 28)
   20299     2105314 :          ipack = ipack + 1
   20300     2105314 :          pack_tmp = packed_data(ipack)
   20301     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20302     2105314 :          pack_tmp = ISHFT(pack_tmp, -28)
   20303     2105314 :          idata = idata + 1
   20304     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20305     2105314 :          full_data(idata) = data_tmp
   20306     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20307     2105314 :          idata = idata + 1
   20308     2105314 :          data_tmp = ISHFT(pack_tmp, 20)
   20309     2105314 :          ipack = ipack + 1
   20310     2105314 :          pack_tmp = packed_data(ipack)
   20311     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20312     2105314 :          pack_tmp = ISHFT(pack_tmp, -20)
   20313     2105314 :          idata = idata + 1
   20314     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20315     2105314 :          full_data(idata) = data_tmp
   20316     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20317     2105314 :          idata = idata + 1
   20318     2105314 :          data_tmp = ISHFT(pack_tmp, 12)
   20319     2105314 :          ipack = ipack + 1
   20320     2105314 :          pack_tmp = packed_data(ipack)
   20321     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20322     2105314 :          pack_tmp = ISHFT(pack_tmp, -12)
   20323     2105314 :          idata = idata + 1
   20324     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20325     2105314 :          full_data(idata) = data_tmp
   20326     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20327     2105314 :          idata = idata + 1
   20328     2105314 :          data_tmp = ISHFT(pack_tmp, 4)
   20329     2105314 :          ipack = ipack + 1
   20330     2105314 :          pack_tmp = packed_data(ipack)
   20331     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20332     2105314 :          pack_tmp = ISHFT(pack_tmp, -4)
   20333     2105314 :          idata = idata + 1
   20334     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20335     2105314 :          full_data(idata) = data_tmp
   20336     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20337     2105314 :          idata = idata + 1
   20338     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20339     2105314 :          full_data(idata) = data_tmp
   20340     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20341     2105314 :          idata = idata + 1
   20342     2105314 :          data_tmp = ISHFT(pack_tmp, 24)
   20343     2105314 :          ipack = ipack + 1
   20344     2105314 :          pack_tmp = packed_data(ipack)
   20345     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20346     2105314 :          pack_tmp = ISHFT(pack_tmp, -24)
   20347     2105314 :          idata = idata + 1
   20348     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20349     2105314 :          full_data(idata) = data_tmp
   20350     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20351     2105314 :          idata = idata + 1
   20352     2105314 :          data_tmp = ISHFT(pack_tmp, 16)
   20353     2105314 :          ipack = ipack + 1
   20354     2105314 :          pack_tmp = packed_data(ipack)
   20355     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20356     2105314 :          pack_tmp = ISHFT(pack_tmp, -16)
   20357     2105314 :          idata = idata + 1
   20358     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20359     2105314 :          full_data(idata) = data_tmp
   20360     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20361     2105314 :          idata = idata + 1
   20362     2105314 :          data_tmp = ISHFT(pack_tmp, 8)
   20363     2105314 :          ipack = ipack + 1
   20364     2105314 :          pack_tmp = packed_data(ipack)
   20365     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20366     2105314 :          pack_tmp = ISHFT(pack_tmp, -8)
   20367     2105314 :          idata = idata + 1
   20368     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20369     2105314 :          full_data(idata) = data_tmp
   20370     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20371     2105314 :          idata = idata + 1
   20372     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20373     2105314 :          full_data(idata) = data_tmp
   20374     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20375     2105314 :          idata = idata + 1
   20376     2105314 :          data_tmp = ISHFT(pack_tmp, 28)
   20377     2105314 :          ipack = ipack + 1
   20378     2105314 :          pack_tmp = packed_data(ipack)
   20379     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20380     2105314 :          pack_tmp = ISHFT(pack_tmp, -28)
   20381     2105314 :          idata = idata + 1
   20382     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20383     2105314 :          full_data(idata) = data_tmp
   20384     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20385     2105314 :          idata = idata + 1
   20386     2105314 :          data_tmp = ISHFT(pack_tmp, 20)
   20387     2105314 :          ipack = ipack + 1
   20388     2105314 :          pack_tmp = packed_data(ipack)
   20389     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20390     2105314 :          pack_tmp = ISHFT(pack_tmp, -20)
   20391     2105314 :          idata = idata + 1
   20392     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20393     2105314 :          full_data(idata) = data_tmp
   20394     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20395     2105314 :          idata = idata + 1
   20396     2105314 :          data_tmp = ISHFT(pack_tmp, 12)
   20397     2105314 :          ipack = ipack + 1
   20398     2105314 :          pack_tmp = packed_data(ipack)
   20399     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20400     2105314 :          pack_tmp = ISHFT(pack_tmp, -12)
   20401     2105314 :          idata = idata + 1
   20402     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20403     2105314 :          full_data(idata) = data_tmp
   20404     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20405     2105314 :          idata = idata + 1
   20406     2105314 :          data_tmp = ISHFT(pack_tmp, 4)
   20407     2105314 :          ipack = ipack + 1
   20408     2105314 :          pack_tmp = packed_data(ipack)
   20409     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20410     2105314 :          pack_tmp = ISHFT(pack_tmp, -4)
   20411     2105314 :          idata = idata + 1
   20412     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20413     2105314 :          full_data(idata) = data_tmp
   20414     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20415     2105314 :          idata = idata + 1
   20416     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20417     2105314 :          full_data(idata) = data_tmp
   20418     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20419     2105314 :          idata = idata + 1
   20420     2105314 :          data_tmp = ISHFT(pack_tmp, 24)
   20421     2105314 :          ipack = ipack + 1
   20422     2105314 :          pack_tmp = packed_data(ipack)
   20423     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20424     2105314 :          pack_tmp = ISHFT(pack_tmp, -24)
   20425     2105314 :          idata = idata + 1
   20426     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20427     2105314 :          full_data(idata) = data_tmp
   20428     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20429     2105314 :          idata = idata + 1
   20430     2105314 :          data_tmp = ISHFT(pack_tmp, 16)
   20431     2105314 :          ipack = ipack + 1
   20432     2105314 :          pack_tmp = packed_data(ipack)
   20433     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20434     2105314 :          pack_tmp = ISHFT(pack_tmp, -16)
   20435     2105314 :          idata = idata + 1
   20436     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20437     2105314 :          full_data(idata) = data_tmp
   20438     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20439     2105314 :          idata = idata + 1
   20440     2105314 :          data_tmp = ISHFT(pack_tmp, 8)
   20441     2105314 :          ipack = ipack + 1
   20442     2105314 :          pack_tmp = packed_data(ipack)
   20443     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20444     2105314 :          pack_tmp = ISHFT(pack_tmp, -8)
   20445     2105314 :          idata = idata + 1
   20446     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20447     2105314 :          full_data(idata) = data_tmp
   20448     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20449     2105314 :          idata = idata + 1
   20450     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20451     2105314 :          full_data(idata) = data_tmp
   20452     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20453     2105314 :          idata = idata + 1
   20454     2105314 :          data_tmp = ISHFT(pack_tmp, 28)
   20455     2105314 :          ipack = ipack + 1
   20456     2105314 :          pack_tmp = packed_data(ipack)
   20457     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20458     2105314 :          pack_tmp = ISHFT(pack_tmp, -28)
   20459     2105314 :          idata = idata + 1
   20460     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20461     2105314 :          full_data(idata) = data_tmp
   20462     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20463     2105314 :          idata = idata + 1
   20464     2105314 :          data_tmp = ISHFT(pack_tmp, 20)
   20465     2105314 :          ipack = ipack + 1
   20466     2105314 :          pack_tmp = packed_data(ipack)
   20467     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20468     2105314 :          pack_tmp = ISHFT(pack_tmp, -20)
   20469     2105314 :          idata = idata + 1
   20470     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20471     2105314 :          full_data(idata) = data_tmp
   20472     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20473     2105314 :          idata = idata + 1
   20474     2105314 :          data_tmp = ISHFT(pack_tmp, 12)
   20475     2105314 :          ipack = ipack + 1
   20476     2105314 :          pack_tmp = packed_data(ipack)
   20477     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20478     2105314 :          pack_tmp = ISHFT(pack_tmp, -12)
   20479     2105314 :          idata = idata + 1
   20480     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20481     2105314 :          full_data(idata) = data_tmp
   20482     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20483     2105314 :          idata = idata + 1
   20484     2105314 :          data_tmp = ISHFT(pack_tmp, 4)
   20485     2105314 :          ipack = ipack + 1
   20486     2105314 :          pack_tmp = packed_data(ipack)
   20487     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20488     2105314 :          pack_tmp = ISHFT(pack_tmp, -4)
   20489     2105314 :          idata = idata + 1
   20490     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20491     2105314 :          full_data(idata) = data_tmp
   20492     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20493     2105314 :          idata = idata + 1
   20494     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20495     2105314 :          full_data(idata) = data_tmp
   20496     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20497     2105314 :          idata = idata + 1
   20498     2105314 :          data_tmp = ISHFT(pack_tmp, 24)
   20499     2105314 :          ipack = ipack + 1
   20500     2105314 :          pack_tmp = packed_data(ipack)
   20501     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20502     2105314 :          pack_tmp = ISHFT(pack_tmp, -24)
   20503     2105314 :          idata = idata + 1
   20504     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20505     2105314 :          full_data(idata) = data_tmp
   20506     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20507     2105314 :          idata = idata + 1
   20508     2105314 :          data_tmp = ISHFT(pack_tmp, 16)
   20509     2105314 :          ipack = ipack + 1
   20510     2105314 :          pack_tmp = packed_data(ipack)
   20511     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20512     2105314 :          pack_tmp = ISHFT(pack_tmp, -16)
   20513     2105314 :          idata = idata + 1
   20514     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20515     2105314 :          full_data(idata) = data_tmp
   20516     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20517     2105314 :          idata = idata + 1
   20518     2105314 :          data_tmp = ISHFT(pack_tmp, 8)
   20519     2105314 :          ipack = ipack + 1
   20520     2105314 :          pack_tmp = packed_data(ipack)
   20521     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20522     2105314 :          pack_tmp = ISHFT(pack_tmp, -8)
   20523     2105314 :          idata = idata + 1
   20524     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20525     2105314 :          full_data(idata) = data_tmp
   20526     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20527     2105314 :          idata = idata + 1
   20528     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20529     2105314 :          full_data(idata) = data_tmp
   20530     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20531     2105314 :          idata = idata + 1
   20532     2105314 :          data_tmp = ISHFT(pack_tmp, 28)
   20533     2105314 :          ipack = ipack + 1
   20534     2105314 :          pack_tmp = packed_data(ipack)
   20535     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20536     2105314 :          pack_tmp = ISHFT(pack_tmp, -28)
   20537     2105314 :          idata = idata + 1
   20538     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20539     2105314 :          full_data(idata) = data_tmp
   20540     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20541     2105314 :          idata = idata + 1
   20542     2105314 :          data_tmp = ISHFT(pack_tmp, 20)
   20543     2105314 :          ipack = ipack + 1
   20544     2105314 :          pack_tmp = packed_data(ipack)
   20545     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20546     2105314 :          pack_tmp = ISHFT(pack_tmp, -20)
   20547     2105314 :          idata = idata + 1
   20548     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20549     2105314 :          full_data(idata) = data_tmp
   20550     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20551     2105314 :          idata = idata + 1
   20552     2105314 :          data_tmp = ISHFT(pack_tmp, 12)
   20553     2105314 :          ipack = ipack + 1
   20554     2105314 :          pack_tmp = packed_data(ipack)
   20555     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20556     2105314 :          pack_tmp = ISHFT(pack_tmp, -12)
   20557     2105314 :          idata = idata + 1
   20558     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20559     2105314 :          full_data(idata) = data_tmp
   20560     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20561     2105314 :          idata = idata + 1
   20562     2105314 :          data_tmp = ISHFT(pack_tmp, 4)
   20563     2105314 :          ipack = ipack + 1
   20564     2105314 :          pack_tmp = packed_data(ipack)
   20565     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20566     2105314 :          pack_tmp = ISHFT(pack_tmp, -4)
   20567     2105314 :          idata = idata + 1
   20568     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20569     2105314 :          full_data(idata) = data_tmp
   20570     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20571     2105314 :          idata = idata + 1
   20572     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20573     2105314 :          full_data(idata) = data_tmp
   20574     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20575     2105314 :          idata = idata + 1
   20576     2105314 :          data_tmp = ISHFT(pack_tmp, 24)
   20577     2105314 :          ipack = ipack + 1
   20578     2105314 :          pack_tmp = packed_data(ipack)
   20579     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20580     2105314 :          pack_tmp = ISHFT(pack_tmp, -24)
   20581     2105314 :          idata = idata + 1
   20582     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20583     2105314 :          full_data(idata) = data_tmp
   20584     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20585     2105314 :          idata = idata + 1
   20586     2105314 :          data_tmp = ISHFT(pack_tmp, 16)
   20587     2105314 :          ipack = ipack + 1
   20588     2105314 :          pack_tmp = packed_data(ipack)
   20589     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20590     2105314 :          pack_tmp = ISHFT(pack_tmp, -16)
   20591     2105314 :          idata = idata + 1
   20592     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20593     2105314 :          full_data(idata) = data_tmp
   20594     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20595     2105314 :          idata = idata + 1
   20596     2105314 :          data_tmp = ISHFT(pack_tmp, 8)
   20597     2105314 :          ipack = ipack + 1
   20598     2105314 :          pack_tmp = packed_data(ipack)
   20599     2105314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20600     2105314 :          pack_tmp = ISHFT(pack_tmp, -8)
   20601     2105314 :          idata = idata + 1
   20602     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20603     2105314 :          full_data(idata) = data_tmp
   20604     2105314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20605     2105314 :          idata = idata + 1
   20606     2105314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20607     2105314 :          full_data(idata) = data_tmp
   20608     2106250 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20609             :       END DO
   20610      148884 :       IF (Ndata_rep < Ndata) THEN
   20611       32252 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20612             :       END IF
   20613      148884 :    END SUBROUTINE bits2ints_28
   20614             : 
   20615             : ! **************************************************************************************************
   20616             : !> \brief ...
   20617             : !> \param Ndata ...
   20618             : !> \param packed_data ...
   20619             : !> \param full_data ...
   20620             : ! **************************************************************************************************
   20621       32695 :    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       32695 :       idata = 0
   20632       32695 :       ipack = 0
   20633       32695 :       Ndata_rep = (Ndata/64)*64
   20634       32695 :       DO kdata = 1, Ndata_rep, 64
   20635      471799 :          pack_tmp = 0
   20636      471799 :          idata = idata + 1
   20637      471799 :          data_tmp = full_data(idata)
   20638      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20639      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20640      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20641      471799 :          idata = idata + 1
   20642      471799 :          data_tmp = full_data(idata)
   20643      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20644      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20645      471799 :          pack_tmp = ISHFT(pack_tmp, -6)
   20646      471799 :          idata = idata + 1
   20647      471799 :          data_tmp = full_data(idata)
   20648      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20649      471799 :          data_tmp = IAND(data_tmp, mask_left(6))
   20650      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20651      471799 :          ipack = ipack + 1
   20652      471799 :          packed_data(ipack) = pack_tmp
   20653      471799 :          data_tmp = full_data(idata)
   20654      471799 :          pack_tmp = ISHFT(data_tmp, 41)
   20655      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20656      471799 :          idata = idata + 1
   20657      471799 :          data_tmp = full_data(idata)
   20658      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20659      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20660      471799 :          pack_tmp = ISHFT(pack_tmp, -12)
   20661      471799 :          idata = idata + 1
   20662      471799 :          data_tmp = full_data(idata)
   20663      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20664      471799 :          data_tmp = IAND(data_tmp, mask_left(12))
   20665      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20666      471799 :          ipack = ipack + 1
   20667      471799 :          packed_data(ipack) = pack_tmp
   20668      471799 :          data_tmp = full_data(idata)
   20669      471799 :          pack_tmp = ISHFT(data_tmp, 47)
   20670      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20671      471799 :          idata = idata + 1
   20672      471799 :          data_tmp = full_data(idata)
   20673      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20674      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20675      471799 :          pack_tmp = ISHFT(pack_tmp, -18)
   20676      471799 :          idata = idata + 1
   20677      471799 :          data_tmp = full_data(idata)
   20678      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20679      471799 :          data_tmp = IAND(data_tmp, mask_left(18))
   20680      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20681      471799 :          ipack = ipack + 1
   20682      471799 :          packed_data(ipack) = pack_tmp
   20683      471799 :          data_tmp = full_data(idata)
   20684      471799 :          pack_tmp = ISHFT(data_tmp, 53)
   20685      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20686      471799 :          idata = idata + 1
   20687      471799 :          data_tmp = full_data(idata)
   20688      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20689      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20690      471799 :          pack_tmp = ISHFT(pack_tmp, -24)
   20691      471799 :          idata = idata + 1
   20692      471799 :          data_tmp = full_data(idata)
   20693      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20694      471799 :          data_tmp = IAND(data_tmp, mask_left(24))
   20695      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20696      471799 :          ipack = ipack + 1
   20697      471799 :          packed_data(ipack) = pack_tmp
   20698      471799 :          data_tmp = full_data(idata)
   20699      471799 :          pack_tmp = ISHFT(data_tmp, 59)
   20700      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20701      471799 :          idata = idata + 1
   20702      471799 :          data_tmp = full_data(idata)
   20703      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20704      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20705      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20706      471799 :          idata = idata + 1
   20707      471799 :          data_tmp = full_data(idata)
   20708      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20709      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20710      471799 :          pack_tmp = ISHFT(pack_tmp, -1)
   20711      471799 :          idata = idata + 1
   20712      471799 :          data_tmp = full_data(idata)
   20713      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20714      471799 :          data_tmp = IAND(data_tmp, mask_left(1))
   20715      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20716      471799 :          ipack = ipack + 1
   20717      471799 :          packed_data(ipack) = pack_tmp
   20718      471799 :          data_tmp = full_data(idata)
   20719      471799 :          pack_tmp = ISHFT(data_tmp, 36)
   20720      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20721      471799 :          idata = idata + 1
   20722      471799 :          data_tmp = full_data(idata)
   20723      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20724      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20725      471799 :          pack_tmp = ISHFT(pack_tmp, -7)
   20726      471799 :          idata = idata + 1
   20727      471799 :          data_tmp = full_data(idata)
   20728      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20729      471799 :          data_tmp = IAND(data_tmp, mask_left(7))
   20730      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20731      471799 :          ipack = ipack + 1
   20732      471799 :          packed_data(ipack) = pack_tmp
   20733      471799 :          data_tmp = full_data(idata)
   20734      471799 :          pack_tmp = ISHFT(data_tmp, 42)
   20735      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20736      471799 :          idata = idata + 1
   20737      471799 :          data_tmp = full_data(idata)
   20738      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20739      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20740      471799 :          pack_tmp = ISHFT(pack_tmp, -13)
   20741      471799 :          idata = idata + 1
   20742      471799 :          data_tmp = full_data(idata)
   20743      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20744      471799 :          data_tmp = IAND(data_tmp, mask_left(13))
   20745      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20746      471799 :          ipack = ipack + 1
   20747      471799 :          packed_data(ipack) = pack_tmp
   20748      471799 :          data_tmp = full_data(idata)
   20749      471799 :          pack_tmp = ISHFT(data_tmp, 48)
   20750      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20751      471799 :          idata = idata + 1
   20752      471799 :          data_tmp = full_data(idata)
   20753      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20754      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20755      471799 :          pack_tmp = ISHFT(pack_tmp, -19)
   20756      471799 :          idata = idata + 1
   20757      471799 :          data_tmp = full_data(idata)
   20758      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20759      471799 :          data_tmp = IAND(data_tmp, mask_left(19))
   20760      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20761      471799 :          ipack = ipack + 1
   20762      471799 :          packed_data(ipack) = pack_tmp
   20763      471799 :          data_tmp = full_data(idata)
   20764      471799 :          pack_tmp = ISHFT(data_tmp, 54)
   20765      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20766      471799 :          idata = idata + 1
   20767      471799 :          data_tmp = full_data(idata)
   20768      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20769      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20770      471799 :          pack_tmp = ISHFT(pack_tmp, -25)
   20771      471799 :          idata = idata + 1
   20772      471799 :          data_tmp = full_data(idata)
   20773      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20774      471799 :          data_tmp = IAND(data_tmp, mask_left(25))
   20775      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20776      471799 :          ipack = ipack + 1
   20777      471799 :          packed_data(ipack) = pack_tmp
   20778      471799 :          data_tmp = full_data(idata)
   20779      471799 :          pack_tmp = ISHFT(data_tmp, 60)
   20780      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20781      471799 :          idata = idata + 1
   20782      471799 :          data_tmp = full_data(idata)
   20783      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20784      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20785      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20786      471799 :          idata = idata + 1
   20787      471799 :          data_tmp = full_data(idata)
   20788      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20789      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20790      471799 :          pack_tmp = ISHFT(pack_tmp, -2)
   20791      471799 :          idata = idata + 1
   20792      471799 :          data_tmp = full_data(idata)
   20793      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20794      471799 :          data_tmp = IAND(data_tmp, mask_left(2))
   20795      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20796      471799 :          ipack = ipack + 1
   20797      471799 :          packed_data(ipack) = pack_tmp
   20798      471799 :          data_tmp = full_data(idata)
   20799      471799 :          pack_tmp = ISHFT(data_tmp, 37)
   20800      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20801      471799 :          idata = idata + 1
   20802      471799 :          data_tmp = full_data(idata)
   20803      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20804      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20805      471799 :          pack_tmp = ISHFT(pack_tmp, -8)
   20806      471799 :          idata = idata + 1
   20807      471799 :          data_tmp = full_data(idata)
   20808      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20809      471799 :          data_tmp = IAND(data_tmp, mask_left(8))
   20810      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20811      471799 :          ipack = ipack + 1
   20812      471799 :          packed_data(ipack) = pack_tmp
   20813      471799 :          data_tmp = full_data(idata)
   20814      471799 :          pack_tmp = ISHFT(data_tmp, 43)
   20815      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20816      471799 :          idata = idata + 1
   20817      471799 :          data_tmp = full_data(idata)
   20818      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20819      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20820      471799 :          pack_tmp = ISHFT(pack_tmp, -14)
   20821      471799 :          idata = idata + 1
   20822      471799 :          data_tmp = full_data(idata)
   20823      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20824      471799 :          data_tmp = IAND(data_tmp, mask_left(14))
   20825      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20826      471799 :          ipack = ipack + 1
   20827      471799 :          packed_data(ipack) = pack_tmp
   20828      471799 :          data_tmp = full_data(idata)
   20829      471799 :          pack_tmp = ISHFT(data_tmp, 49)
   20830      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20831      471799 :          idata = idata + 1
   20832      471799 :          data_tmp = full_data(idata)
   20833      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20834      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20835      471799 :          pack_tmp = ISHFT(pack_tmp, -20)
   20836      471799 :          idata = idata + 1
   20837      471799 :          data_tmp = full_data(idata)
   20838      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20839      471799 :          data_tmp = IAND(data_tmp, mask_left(20))
   20840      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20841      471799 :          ipack = ipack + 1
   20842      471799 :          packed_data(ipack) = pack_tmp
   20843      471799 :          data_tmp = full_data(idata)
   20844      471799 :          pack_tmp = ISHFT(data_tmp, 55)
   20845      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20846      471799 :          idata = idata + 1
   20847      471799 :          data_tmp = full_data(idata)
   20848      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20849      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20850      471799 :          pack_tmp = ISHFT(pack_tmp, -26)
   20851      471799 :          idata = idata + 1
   20852      471799 :          data_tmp = full_data(idata)
   20853      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20854      471799 :          data_tmp = IAND(data_tmp, mask_left(26))
   20855      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20856      471799 :          ipack = ipack + 1
   20857      471799 :          packed_data(ipack) = pack_tmp
   20858      471799 :          data_tmp = full_data(idata)
   20859      471799 :          pack_tmp = ISHFT(data_tmp, 61)
   20860      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20861      471799 :          idata = idata + 1
   20862      471799 :          data_tmp = full_data(idata)
   20863      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20864      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20865      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20866      471799 :          idata = idata + 1
   20867      471799 :          data_tmp = full_data(idata)
   20868      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20869      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20870      471799 :          pack_tmp = ISHFT(pack_tmp, -3)
   20871      471799 :          idata = idata + 1
   20872      471799 :          data_tmp = full_data(idata)
   20873      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20874      471799 :          data_tmp = IAND(data_tmp, mask_left(3))
   20875      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20876      471799 :          ipack = ipack + 1
   20877      471799 :          packed_data(ipack) = pack_tmp
   20878      471799 :          data_tmp = full_data(idata)
   20879      471799 :          pack_tmp = ISHFT(data_tmp, 38)
   20880      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20881      471799 :          idata = idata + 1
   20882      471799 :          data_tmp = full_data(idata)
   20883      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20884      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20885      471799 :          pack_tmp = ISHFT(pack_tmp, -9)
   20886      471799 :          idata = idata + 1
   20887      471799 :          data_tmp = full_data(idata)
   20888      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20889      471799 :          data_tmp = IAND(data_tmp, mask_left(9))
   20890      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20891      471799 :          ipack = ipack + 1
   20892      471799 :          packed_data(ipack) = pack_tmp
   20893      471799 :          data_tmp = full_data(idata)
   20894      471799 :          pack_tmp = ISHFT(data_tmp, 44)
   20895      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20896      471799 :          idata = idata + 1
   20897      471799 :          data_tmp = full_data(idata)
   20898      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20899      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20900      471799 :          pack_tmp = ISHFT(pack_tmp, -15)
   20901      471799 :          idata = idata + 1
   20902      471799 :          data_tmp = full_data(idata)
   20903      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20904      471799 :          data_tmp = IAND(data_tmp, mask_left(15))
   20905      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20906      471799 :          ipack = ipack + 1
   20907      471799 :          packed_data(ipack) = pack_tmp
   20908      471799 :          data_tmp = full_data(idata)
   20909      471799 :          pack_tmp = ISHFT(data_tmp, 50)
   20910      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20911      471799 :          idata = idata + 1
   20912      471799 :          data_tmp = full_data(idata)
   20913      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20914      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20915      471799 :          pack_tmp = ISHFT(pack_tmp, -21)
   20916      471799 :          idata = idata + 1
   20917      471799 :          data_tmp = full_data(idata)
   20918      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20919      471799 :          data_tmp = IAND(data_tmp, mask_left(21))
   20920      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20921      471799 :          ipack = ipack + 1
   20922      471799 :          packed_data(ipack) = pack_tmp
   20923      471799 :          data_tmp = full_data(idata)
   20924      471799 :          pack_tmp = ISHFT(data_tmp, 56)
   20925      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20926      471799 :          idata = idata + 1
   20927      471799 :          data_tmp = full_data(idata)
   20928      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20929      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20930      471799 :          pack_tmp = ISHFT(pack_tmp, -27)
   20931      471799 :          idata = idata + 1
   20932      471799 :          data_tmp = full_data(idata)
   20933      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20934      471799 :          data_tmp = IAND(data_tmp, mask_left(27))
   20935      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20936      471799 :          ipack = ipack + 1
   20937      471799 :          packed_data(ipack) = pack_tmp
   20938      471799 :          data_tmp = full_data(idata)
   20939      471799 :          pack_tmp = ISHFT(data_tmp, 62)
   20940      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20941      471799 :          idata = idata + 1
   20942      471799 :          data_tmp = full_data(idata)
   20943      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20944      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20945      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20946      471799 :          idata = idata + 1
   20947      471799 :          data_tmp = full_data(idata)
   20948      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20949      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20950      471799 :          pack_tmp = ISHFT(pack_tmp, -4)
   20951      471799 :          idata = idata + 1
   20952      471799 :          data_tmp = full_data(idata)
   20953      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20954      471799 :          data_tmp = IAND(data_tmp, mask_left(4))
   20955      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20956      471799 :          ipack = ipack + 1
   20957      471799 :          packed_data(ipack) = pack_tmp
   20958      471799 :          data_tmp = full_data(idata)
   20959      471799 :          pack_tmp = ISHFT(data_tmp, 39)
   20960      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20961      471799 :          idata = idata + 1
   20962      471799 :          data_tmp = full_data(idata)
   20963      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20964      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20965      471799 :          pack_tmp = ISHFT(pack_tmp, -10)
   20966      471799 :          idata = idata + 1
   20967      471799 :          data_tmp = full_data(idata)
   20968      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20969      471799 :          data_tmp = IAND(data_tmp, mask_left(10))
   20970      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20971      471799 :          ipack = ipack + 1
   20972      471799 :          packed_data(ipack) = pack_tmp
   20973      471799 :          data_tmp = full_data(idata)
   20974      471799 :          pack_tmp = ISHFT(data_tmp, 45)
   20975      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20976      471799 :          idata = idata + 1
   20977      471799 :          data_tmp = full_data(idata)
   20978      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20979      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20980      471799 :          pack_tmp = ISHFT(pack_tmp, -16)
   20981      471799 :          idata = idata + 1
   20982      471799 :          data_tmp = full_data(idata)
   20983      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20984      471799 :          data_tmp = IAND(data_tmp, mask_left(16))
   20985      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20986      471799 :          ipack = ipack + 1
   20987      471799 :          packed_data(ipack) = pack_tmp
   20988      471799 :          data_tmp = full_data(idata)
   20989      471799 :          pack_tmp = ISHFT(data_tmp, 51)
   20990      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   20991      471799 :          idata = idata + 1
   20992      471799 :          data_tmp = full_data(idata)
   20993      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20994      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20995      471799 :          pack_tmp = ISHFT(pack_tmp, -22)
   20996      471799 :          idata = idata + 1
   20997      471799 :          data_tmp = full_data(idata)
   20998      471799 :          data_tmp = ISHFT(data_tmp, 35)
   20999      471799 :          data_tmp = IAND(data_tmp, mask_left(22))
   21000      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21001      471799 :          ipack = ipack + 1
   21002      471799 :          packed_data(ipack) = pack_tmp
   21003      471799 :          data_tmp = full_data(idata)
   21004      471799 :          pack_tmp = ISHFT(data_tmp, 57)
   21005      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21006      471799 :          idata = idata + 1
   21007      471799 :          data_tmp = full_data(idata)
   21008      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21009      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21010      471799 :          pack_tmp = ISHFT(pack_tmp, -28)
   21011      471799 :          idata = idata + 1
   21012      471799 :          data_tmp = full_data(idata)
   21013      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21014      471799 :          data_tmp = IAND(data_tmp, mask_left(28))
   21015      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21016      471799 :          ipack = ipack + 1
   21017      471799 :          packed_data(ipack) = pack_tmp
   21018      471799 :          data_tmp = full_data(idata)
   21019      471799 :          pack_tmp = ISHFT(data_tmp, 63)
   21020      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21021      471799 :          idata = idata + 1
   21022      471799 :          data_tmp = full_data(idata)
   21023      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21024      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21025      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21026      471799 :          idata = idata + 1
   21027      471799 :          data_tmp = full_data(idata)
   21028      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21029      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21030      471799 :          pack_tmp = ISHFT(pack_tmp, -5)
   21031      471799 :          idata = idata + 1
   21032      471799 :          data_tmp = full_data(idata)
   21033      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21034      471799 :          data_tmp = IAND(data_tmp, mask_left(5))
   21035      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21036      471799 :          ipack = ipack + 1
   21037      471799 :          packed_data(ipack) = pack_tmp
   21038      471799 :          data_tmp = full_data(idata)
   21039      471799 :          pack_tmp = ISHFT(data_tmp, 40)
   21040      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21041      471799 :          idata = idata + 1
   21042      471799 :          data_tmp = full_data(idata)
   21043      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21044      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21045      471799 :          pack_tmp = ISHFT(pack_tmp, -11)
   21046      471799 :          idata = idata + 1
   21047      471799 :          data_tmp = full_data(idata)
   21048      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21049      471799 :          data_tmp = IAND(data_tmp, mask_left(11))
   21050      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21051      471799 :          ipack = ipack + 1
   21052      471799 :          packed_data(ipack) = pack_tmp
   21053      471799 :          data_tmp = full_data(idata)
   21054      471799 :          pack_tmp = ISHFT(data_tmp, 46)
   21055      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21056      471799 :          idata = idata + 1
   21057      471799 :          data_tmp = full_data(idata)
   21058      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21059      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21060      471799 :          pack_tmp = ISHFT(pack_tmp, -17)
   21061      471799 :          idata = idata + 1
   21062      471799 :          data_tmp = full_data(idata)
   21063      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21064      471799 :          data_tmp = IAND(data_tmp, mask_left(17))
   21065      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21066      471799 :          ipack = ipack + 1
   21067      471799 :          packed_data(ipack) = pack_tmp
   21068      471799 :          data_tmp = full_data(idata)
   21069      471799 :          pack_tmp = ISHFT(data_tmp, 52)
   21070      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21071      471799 :          idata = idata + 1
   21072      471799 :          data_tmp = full_data(idata)
   21073      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21074      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21075      471799 :          pack_tmp = ISHFT(pack_tmp, -23)
   21076      471799 :          idata = idata + 1
   21077      471799 :          data_tmp = full_data(idata)
   21078      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21079      471799 :          data_tmp = IAND(data_tmp, mask_left(23))
   21080      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21081      471799 :          ipack = ipack + 1
   21082      471799 :          packed_data(ipack) = pack_tmp
   21083      471799 :          data_tmp = full_data(idata)
   21084      471799 :          pack_tmp = ISHFT(data_tmp, 58)
   21085      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21086      471799 :          idata = idata + 1
   21087      471799 :          data_tmp = full_data(idata)
   21088      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21089      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21090      471799 :          pack_tmp = ISHFT(pack_tmp, -29)
   21091      471799 :          idata = idata + 1
   21092      471799 :          data_tmp = full_data(idata)
   21093      471799 :          data_tmp = ISHFT(data_tmp, 35)
   21094      471799 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21095             :          pack_tmp = ISHFT(pack_tmp, 0)
   21096      471799 :          pack_tmp = ISHFT(pack_tmp, 0)
   21097      471799 :          ipack = ipack + 1
   21098      472099 :          packed_data(ipack) = pack_tmp
   21099             :       END DO
   21100       32695 :       IF (Ndata_rep < Ndata) THEN
   21101        5938 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21102             :       END IF
   21103       32695 :    END SUBROUTINE ints2bits_29
   21104             : 
   21105             : ! **************************************************************************************************
   21106             : !> \brief ...
   21107             : !> \param Ndata ...
   21108             : !> \param packed_data ...
   21109             : !> \param full_data ...
   21110             : ! **************************************************************************************************
   21111      172142 :    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      172142 :       ipack = 0
   21122      172142 :       idata = 0
   21123      172142 :       pack_tmp = 0
   21124      172142 :       Ndata_rep = (Ndata/64)*64
   21125      172142 :       DO kdata = 1, Ndata_rep, 64
   21126     2356696 :          idata = idata + 1
   21127     2356696 :          data_tmp = ISHFT(pack_tmp, 29)
   21128     2356696 :          ipack = ipack + 1
   21129     2356696 :          pack_tmp = packed_data(ipack)
   21130     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   21131     2356696 :          pack_tmp = ISHFT(pack_tmp, -29)
   21132     2356696 :          idata = idata + 1
   21133     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21134     2356696 :          full_data(idata) = data_tmp
   21135     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21136     2356696 :          idata = idata + 1
   21137     2356696 :          data_tmp = ISHFT(pack_tmp, 23)
   21138     2356696 :          ipack = ipack + 1
   21139     2356696 :          pack_tmp = packed_data(ipack)
   21140     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   21141     2356696 :          pack_tmp = ISHFT(pack_tmp, -23)
   21142     2356696 :          idata = idata + 1
   21143     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21144     2356696 :          full_data(idata) = data_tmp
   21145     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21146     2356696 :          idata = idata + 1
   21147     2356696 :          data_tmp = ISHFT(pack_tmp, 17)
   21148     2356696 :          ipack = ipack + 1
   21149     2356696 :          pack_tmp = packed_data(ipack)
   21150     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   21151     2356696 :          pack_tmp = ISHFT(pack_tmp, -17)
   21152     2356696 :          idata = idata + 1
   21153     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21154     2356696 :          full_data(idata) = data_tmp
   21155     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21156     2356696 :          idata = idata + 1
   21157     2356696 :          data_tmp = ISHFT(pack_tmp, 11)
   21158     2356696 :          ipack = ipack + 1
   21159     2356696 :          pack_tmp = packed_data(ipack)
   21160     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   21161     2356696 :          pack_tmp = ISHFT(pack_tmp, -11)
   21162     2356696 :          idata = idata + 1
   21163     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21164     2356696 :          full_data(idata) = data_tmp
   21165     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21166     2356696 :          idata = idata + 1
   21167     2356696 :          data_tmp = ISHFT(pack_tmp, 5)
   21168     2356696 :          ipack = ipack + 1
   21169     2356696 :          pack_tmp = packed_data(ipack)
   21170     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   21171     2356696 :          pack_tmp = ISHFT(pack_tmp, -5)
   21172     2356696 :          idata = idata + 1
   21173     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21174     2356696 :          full_data(idata) = data_tmp
   21175     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21176     2356696 :          idata = idata + 1
   21177     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21178     2356696 :          full_data(idata) = data_tmp
   21179     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21180     2356696 :          idata = idata + 1
   21181     2356696 :          data_tmp = ISHFT(pack_tmp, 28)
   21182     2356696 :          ipack = ipack + 1
   21183     2356696 :          pack_tmp = packed_data(ipack)
   21184     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   21185     2356696 :          pack_tmp = ISHFT(pack_tmp, -28)
   21186     2356696 :          idata = idata + 1
   21187     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21188     2356696 :          full_data(idata) = data_tmp
   21189     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21190     2356696 :          idata = idata + 1
   21191     2356696 :          data_tmp = ISHFT(pack_tmp, 22)
   21192     2356696 :          ipack = ipack + 1
   21193     2356696 :          pack_tmp = packed_data(ipack)
   21194     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21195     2356696 :          pack_tmp = ISHFT(pack_tmp, -22)
   21196     2356696 :          idata = idata + 1
   21197     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21198     2356696 :          full_data(idata) = data_tmp
   21199     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21200     2356696 :          idata = idata + 1
   21201     2356696 :          data_tmp = ISHFT(pack_tmp, 16)
   21202     2356696 :          ipack = ipack + 1
   21203     2356696 :          pack_tmp = packed_data(ipack)
   21204     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   21205     2356696 :          pack_tmp = ISHFT(pack_tmp, -16)
   21206     2356696 :          idata = idata + 1
   21207     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21208     2356696 :          full_data(idata) = data_tmp
   21209     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21210     2356696 :          idata = idata + 1
   21211     2356696 :          data_tmp = ISHFT(pack_tmp, 10)
   21212     2356696 :          ipack = ipack + 1
   21213     2356696 :          pack_tmp = packed_data(ipack)
   21214     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   21215     2356696 :          pack_tmp = ISHFT(pack_tmp, -10)
   21216     2356696 :          idata = idata + 1
   21217     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21218     2356696 :          full_data(idata) = data_tmp
   21219     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21220     2356696 :          idata = idata + 1
   21221     2356696 :          data_tmp = ISHFT(pack_tmp, 4)
   21222     2356696 :          ipack = ipack + 1
   21223     2356696 :          pack_tmp = packed_data(ipack)
   21224     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   21225     2356696 :          pack_tmp = ISHFT(pack_tmp, -4)
   21226     2356696 :          idata = idata + 1
   21227     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21228     2356696 :          full_data(idata) = data_tmp
   21229     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21230     2356696 :          idata = idata + 1
   21231     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21232     2356696 :          full_data(idata) = data_tmp
   21233     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21234     2356696 :          idata = idata + 1
   21235     2356696 :          data_tmp = ISHFT(pack_tmp, 27)
   21236     2356696 :          ipack = ipack + 1
   21237     2356696 :          pack_tmp = packed_data(ipack)
   21238     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   21239     2356696 :          pack_tmp = ISHFT(pack_tmp, -27)
   21240     2356696 :          idata = idata + 1
   21241     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21242     2356696 :          full_data(idata) = data_tmp
   21243     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21244     2356696 :          idata = idata + 1
   21245     2356696 :          data_tmp = ISHFT(pack_tmp, 21)
   21246     2356696 :          ipack = ipack + 1
   21247     2356696 :          pack_tmp = packed_data(ipack)
   21248     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   21249     2356696 :          pack_tmp = ISHFT(pack_tmp, -21)
   21250     2356696 :          idata = idata + 1
   21251     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21252     2356696 :          full_data(idata) = data_tmp
   21253     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21254     2356696 :          idata = idata + 1
   21255     2356696 :          data_tmp = ISHFT(pack_tmp, 15)
   21256     2356696 :          ipack = ipack + 1
   21257     2356696 :          pack_tmp = packed_data(ipack)
   21258     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   21259     2356696 :          pack_tmp = ISHFT(pack_tmp, -15)
   21260     2356696 :          idata = idata + 1
   21261     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21262     2356696 :          full_data(idata) = data_tmp
   21263     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21264     2356696 :          idata = idata + 1
   21265     2356696 :          data_tmp = ISHFT(pack_tmp, 9)
   21266     2356696 :          ipack = ipack + 1
   21267     2356696 :          pack_tmp = packed_data(ipack)
   21268     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   21269     2356696 :          pack_tmp = ISHFT(pack_tmp, -9)
   21270     2356696 :          idata = idata + 1
   21271     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21272     2356696 :          full_data(idata) = data_tmp
   21273     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21274     2356696 :          idata = idata + 1
   21275     2356696 :          data_tmp = ISHFT(pack_tmp, 3)
   21276     2356696 :          ipack = ipack + 1
   21277     2356696 :          pack_tmp = packed_data(ipack)
   21278     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   21279     2356696 :          pack_tmp = ISHFT(pack_tmp, -3)
   21280     2356696 :          idata = idata + 1
   21281     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21282     2356696 :          full_data(idata) = data_tmp
   21283     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21284     2356696 :          idata = idata + 1
   21285     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21286     2356696 :          full_data(idata) = data_tmp
   21287     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21288     2356696 :          idata = idata + 1
   21289     2356696 :          data_tmp = ISHFT(pack_tmp, 26)
   21290     2356696 :          ipack = ipack + 1
   21291     2356696 :          pack_tmp = packed_data(ipack)
   21292     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21293     2356696 :          pack_tmp = ISHFT(pack_tmp, -26)
   21294     2356696 :          idata = idata + 1
   21295     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21296     2356696 :          full_data(idata) = data_tmp
   21297     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21298     2356696 :          idata = idata + 1
   21299     2356696 :          data_tmp = ISHFT(pack_tmp, 20)
   21300     2356696 :          ipack = ipack + 1
   21301     2356696 :          pack_tmp = packed_data(ipack)
   21302     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   21303     2356696 :          pack_tmp = ISHFT(pack_tmp, -20)
   21304     2356696 :          idata = idata + 1
   21305     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21306     2356696 :          full_data(idata) = data_tmp
   21307     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21308     2356696 :          idata = idata + 1
   21309     2356696 :          data_tmp = ISHFT(pack_tmp, 14)
   21310     2356696 :          ipack = ipack + 1
   21311     2356696 :          pack_tmp = packed_data(ipack)
   21312     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   21313     2356696 :          pack_tmp = ISHFT(pack_tmp, -14)
   21314     2356696 :          idata = idata + 1
   21315     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21316     2356696 :          full_data(idata) = data_tmp
   21317     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21318     2356696 :          idata = idata + 1
   21319     2356696 :          data_tmp = ISHFT(pack_tmp, 8)
   21320     2356696 :          ipack = ipack + 1
   21321     2356696 :          pack_tmp = packed_data(ipack)
   21322     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   21323     2356696 :          pack_tmp = ISHFT(pack_tmp, -8)
   21324     2356696 :          idata = idata + 1
   21325     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21326     2356696 :          full_data(idata) = data_tmp
   21327     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21328     2356696 :          idata = idata + 1
   21329     2356696 :          data_tmp = ISHFT(pack_tmp, 2)
   21330     2356696 :          ipack = ipack + 1
   21331     2356696 :          pack_tmp = packed_data(ipack)
   21332     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   21333     2356696 :          pack_tmp = ISHFT(pack_tmp, -2)
   21334     2356696 :          idata = idata + 1
   21335     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21336     2356696 :          full_data(idata) = data_tmp
   21337     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21338     2356696 :          idata = idata + 1
   21339     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21340     2356696 :          full_data(idata) = data_tmp
   21341     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21342     2356696 :          idata = idata + 1
   21343     2356696 :          data_tmp = ISHFT(pack_tmp, 25)
   21344     2356696 :          ipack = ipack + 1
   21345     2356696 :          pack_tmp = packed_data(ipack)
   21346     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   21347     2356696 :          pack_tmp = ISHFT(pack_tmp, -25)
   21348     2356696 :          idata = idata + 1
   21349     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21350     2356696 :          full_data(idata) = data_tmp
   21351     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21352     2356696 :          idata = idata + 1
   21353     2356696 :          data_tmp = ISHFT(pack_tmp, 19)
   21354     2356696 :          ipack = ipack + 1
   21355     2356696 :          pack_tmp = packed_data(ipack)
   21356     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   21357     2356696 :          pack_tmp = ISHFT(pack_tmp, -19)
   21358     2356696 :          idata = idata + 1
   21359     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21360     2356696 :          full_data(idata) = data_tmp
   21361     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21362     2356696 :          idata = idata + 1
   21363     2356696 :          data_tmp = ISHFT(pack_tmp, 13)
   21364     2356696 :          ipack = ipack + 1
   21365     2356696 :          pack_tmp = packed_data(ipack)
   21366     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   21367     2356696 :          pack_tmp = ISHFT(pack_tmp, -13)
   21368     2356696 :          idata = idata + 1
   21369     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21370     2356696 :          full_data(idata) = data_tmp
   21371     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21372     2356696 :          idata = idata + 1
   21373     2356696 :          data_tmp = ISHFT(pack_tmp, 7)
   21374     2356696 :          ipack = ipack + 1
   21375     2356696 :          pack_tmp = packed_data(ipack)
   21376     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   21377     2356696 :          pack_tmp = ISHFT(pack_tmp, -7)
   21378     2356696 :          idata = idata + 1
   21379     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21380     2356696 :          full_data(idata) = data_tmp
   21381     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21382     2356696 :          idata = idata + 1
   21383     2356696 :          data_tmp = ISHFT(pack_tmp, 1)
   21384     2356696 :          ipack = ipack + 1
   21385     2356696 :          pack_tmp = packed_data(ipack)
   21386     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   21387     2356696 :          pack_tmp = ISHFT(pack_tmp, -1)
   21388     2356696 :          idata = idata + 1
   21389     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21390     2356696 :          full_data(idata) = data_tmp
   21391     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21392     2356696 :          idata = idata + 1
   21393     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21394     2356696 :          full_data(idata) = data_tmp
   21395     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21396     2356696 :          idata = idata + 1
   21397     2356696 :          data_tmp = ISHFT(pack_tmp, 24)
   21398     2356696 :          ipack = ipack + 1
   21399     2356696 :          pack_tmp = packed_data(ipack)
   21400     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   21401     2356696 :          pack_tmp = ISHFT(pack_tmp, -24)
   21402     2356696 :          idata = idata + 1
   21403     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21404     2356696 :          full_data(idata) = data_tmp
   21405     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21406     2356696 :          idata = idata + 1
   21407     2356696 :          data_tmp = ISHFT(pack_tmp, 18)
   21408     2356696 :          ipack = ipack + 1
   21409     2356696 :          pack_tmp = packed_data(ipack)
   21410     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21411     2356696 :          pack_tmp = ISHFT(pack_tmp, -18)
   21412     2356696 :          idata = idata + 1
   21413     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21414     2356696 :          full_data(idata) = data_tmp
   21415     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21416     2356696 :          idata = idata + 1
   21417     2356696 :          data_tmp = ISHFT(pack_tmp, 12)
   21418     2356696 :          ipack = ipack + 1
   21419     2356696 :          pack_tmp = packed_data(ipack)
   21420     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   21421     2356696 :          pack_tmp = ISHFT(pack_tmp, -12)
   21422     2356696 :          idata = idata + 1
   21423     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21424     2356696 :          full_data(idata) = data_tmp
   21425     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21426     2356696 :          idata = idata + 1
   21427     2356696 :          data_tmp = ISHFT(pack_tmp, 6)
   21428     2356696 :          ipack = ipack + 1
   21429     2356696 :          pack_tmp = packed_data(ipack)
   21430     2356696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   21431     2356696 :          pack_tmp = ISHFT(pack_tmp, -6)
   21432     2356696 :          idata = idata + 1
   21433     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21434     2356696 :          full_data(idata) = data_tmp
   21435     2356696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21436     2356696 :          idata = idata + 1
   21437     2356696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21438     2356696 :          full_data(idata) = data_tmp
   21439     2358968 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21440             :       END DO
   21441      172142 :       IF (Ndata_rep < Ndata) THEN
   21442       45872 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21443             :       END IF
   21444      172142 :    END SUBROUTINE bits2ints_29
   21445             : 
   21446             : ! **************************************************************************************************
   21447             : !> \brief ...
   21448             : !> \param Ndata ...
   21449             : !> \param packed_data ...
   21450             : !> \param full_data ...
   21451             : ! **************************************************************************************************
   21452       36850 :    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       36850 :       idata = 0
   21463       36850 :       ipack = 0
   21464       36850 :       Ndata_rep = (Ndata/64)*64
   21465       36850 :       DO kdata = 1, Ndata_rep, 64
   21466      514188 :          pack_tmp = 0
   21467      514188 :          idata = idata + 1
   21468      514188 :          data_tmp = full_data(idata)
   21469      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21470      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21471      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21472      514188 :          idata = idata + 1
   21473      514188 :          data_tmp = full_data(idata)
   21474      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21475      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21476      514188 :          pack_tmp = ISHFT(pack_tmp, -4)
   21477      514188 :          idata = idata + 1
   21478      514188 :          data_tmp = full_data(idata)
   21479      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21480      514188 :          data_tmp = IAND(data_tmp, mask_left(4))
   21481      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21482      514188 :          ipack = ipack + 1
   21483      514188 :          packed_data(ipack) = pack_tmp
   21484      514188 :          data_tmp = full_data(idata)
   21485      514188 :          pack_tmp = ISHFT(data_tmp, 38)
   21486      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21487      514188 :          idata = idata + 1
   21488      514188 :          data_tmp = full_data(idata)
   21489      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21490      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21491      514188 :          pack_tmp = ISHFT(pack_tmp, -8)
   21492      514188 :          idata = idata + 1
   21493      514188 :          data_tmp = full_data(idata)
   21494      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21495      514188 :          data_tmp = IAND(data_tmp, mask_left(8))
   21496      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21497      514188 :          ipack = ipack + 1
   21498      514188 :          packed_data(ipack) = pack_tmp
   21499      514188 :          data_tmp = full_data(idata)
   21500      514188 :          pack_tmp = ISHFT(data_tmp, 42)
   21501      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21502      514188 :          idata = idata + 1
   21503      514188 :          data_tmp = full_data(idata)
   21504      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21505      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21506      514188 :          pack_tmp = ISHFT(pack_tmp, -12)
   21507      514188 :          idata = idata + 1
   21508      514188 :          data_tmp = full_data(idata)
   21509      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21510      514188 :          data_tmp = IAND(data_tmp, mask_left(12))
   21511      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21512      514188 :          ipack = ipack + 1
   21513      514188 :          packed_data(ipack) = pack_tmp
   21514      514188 :          data_tmp = full_data(idata)
   21515      514188 :          pack_tmp = ISHFT(data_tmp, 46)
   21516      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21517      514188 :          idata = idata + 1
   21518      514188 :          data_tmp = full_data(idata)
   21519      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21520      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21521      514188 :          pack_tmp = ISHFT(pack_tmp, -16)
   21522      514188 :          idata = idata + 1
   21523      514188 :          data_tmp = full_data(idata)
   21524      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21525      514188 :          data_tmp = IAND(data_tmp, mask_left(16))
   21526      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21527      514188 :          ipack = ipack + 1
   21528      514188 :          packed_data(ipack) = pack_tmp
   21529      514188 :          data_tmp = full_data(idata)
   21530      514188 :          pack_tmp = ISHFT(data_tmp, 50)
   21531      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21532      514188 :          idata = idata + 1
   21533      514188 :          data_tmp = full_data(idata)
   21534      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21535      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21536      514188 :          pack_tmp = ISHFT(pack_tmp, -20)
   21537      514188 :          idata = idata + 1
   21538      514188 :          data_tmp = full_data(idata)
   21539      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21540      514188 :          data_tmp = IAND(data_tmp, mask_left(20))
   21541      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21542      514188 :          ipack = ipack + 1
   21543      514188 :          packed_data(ipack) = pack_tmp
   21544      514188 :          data_tmp = full_data(idata)
   21545      514188 :          pack_tmp = ISHFT(data_tmp, 54)
   21546      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21547      514188 :          idata = idata + 1
   21548      514188 :          data_tmp = full_data(idata)
   21549      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21550      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21551      514188 :          pack_tmp = ISHFT(pack_tmp, -24)
   21552      514188 :          idata = idata + 1
   21553      514188 :          data_tmp = full_data(idata)
   21554      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21555      514188 :          data_tmp = IAND(data_tmp, mask_left(24))
   21556      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21557      514188 :          ipack = ipack + 1
   21558      514188 :          packed_data(ipack) = pack_tmp
   21559      514188 :          data_tmp = full_data(idata)
   21560      514188 :          pack_tmp = ISHFT(data_tmp, 58)
   21561      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21562      514188 :          idata = idata + 1
   21563      514188 :          data_tmp = full_data(idata)
   21564      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21565      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21566      514188 :          pack_tmp = ISHFT(pack_tmp, -28)
   21567      514188 :          idata = idata + 1
   21568      514188 :          data_tmp = full_data(idata)
   21569      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21570      514188 :          data_tmp = IAND(data_tmp, mask_left(28))
   21571      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21572      514188 :          ipack = ipack + 1
   21573      514188 :          packed_data(ipack) = pack_tmp
   21574      514188 :          data_tmp = full_data(idata)
   21575      514188 :          pack_tmp = ISHFT(data_tmp, 62)
   21576      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21577      514188 :          idata = idata + 1
   21578      514188 :          data_tmp = full_data(idata)
   21579      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21580      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21581      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21582      514188 :          idata = idata + 1
   21583      514188 :          data_tmp = full_data(idata)
   21584      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21585      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21586      514188 :          pack_tmp = ISHFT(pack_tmp, -2)
   21587      514188 :          idata = idata + 1
   21588      514188 :          data_tmp = full_data(idata)
   21589      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21590      514188 :          data_tmp = IAND(data_tmp, mask_left(2))
   21591      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21592      514188 :          ipack = ipack + 1
   21593      514188 :          packed_data(ipack) = pack_tmp
   21594      514188 :          data_tmp = full_data(idata)
   21595      514188 :          pack_tmp = ISHFT(data_tmp, 36)
   21596      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21597      514188 :          idata = idata + 1
   21598      514188 :          data_tmp = full_data(idata)
   21599      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21600      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21601      514188 :          pack_tmp = ISHFT(pack_tmp, -6)
   21602      514188 :          idata = idata + 1
   21603      514188 :          data_tmp = full_data(idata)
   21604      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21605      514188 :          data_tmp = IAND(data_tmp, mask_left(6))
   21606      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21607      514188 :          ipack = ipack + 1
   21608      514188 :          packed_data(ipack) = pack_tmp
   21609      514188 :          data_tmp = full_data(idata)
   21610      514188 :          pack_tmp = ISHFT(data_tmp, 40)
   21611      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21612      514188 :          idata = idata + 1
   21613      514188 :          data_tmp = full_data(idata)
   21614      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21615      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21616      514188 :          pack_tmp = ISHFT(pack_tmp, -10)
   21617      514188 :          idata = idata + 1
   21618      514188 :          data_tmp = full_data(idata)
   21619      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21620      514188 :          data_tmp = IAND(data_tmp, mask_left(10))
   21621      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21622      514188 :          ipack = ipack + 1
   21623      514188 :          packed_data(ipack) = pack_tmp
   21624      514188 :          data_tmp = full_data(idata)
   21625      514188 :          pack_tmp = ISHFT(data_tmp, 44)
   21626      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21627      514188 :          idata = idata + 1
   21628      514188 :          data_tmp = full_data(idata)
   21629      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21630      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21631      514188 :          pack_tmp = ISHFT(pack_tmp, -14)
   21632      514188 :          idata = idata + 1
   21633      514188 :          data_tmp = full_data(idata)
   21634      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21635      514188 :          data_tmp = IAND(data_tmp, mask_left(14))
   21636      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21637      514188 :          ipack = ipack + 1
   21638      514188 :          packed_data(ipack) = pack_tmp
   21639      514188 :          data_tmp = full_data(idata)
   21640      514188 :          pack_tmp = ISHFT(data_tmp, 48)
   21641      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21642      514188 :          idata = idata + 1
   21643      514188 :          data_tmp = full_data(idata)
   21644      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21645      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21646      514188 :          pack_tmp = ISHFT(pack_tmp, -18)
   21647      514188 :          idata = idata + 1
   21648      514188 :          data_tmp = full_data(idata)
   21649      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21650      514188 :          data_tmp = IAND(data_tmp, mask_left(18))
   21651      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21652      514188 :          ipack = ipack + 1
   21653      514188 :          packed_data(ipack) = pack_tmp
   21654      514188 :          data_tmp = full_data(idata)
   21655      514188 :          pack_tmp = ISHFT(data_tmp, 52)
   21656      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21657      514188 :          idata = idata + 1
   21658      514188 :          data_tmp = full_data(idata)
   21659      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21660      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21661      514188 :          pack_tmp = ISHFT(pack_tmp, -22)
   21662      514188 :          idata = idata + 1
   21663      514188 :          data_tmp = full_data(idata)
   21664      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21665      514188 :          data_tmp = IAND(data_tmp, mask_left(22))
   21666      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21667      514188 :          ipack = ipack + 1
   21668      514188 :          packed_data(ipack) = pack_tmp
   21669      514188 :          data_tmp = full_data(idata)
   21670      514188 :          pack_tmp = ISHFT(data_tmp, 56)
   21671      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21672      514188 :          idata = idata + 1
   21673      514188 :          data_tmp = full_data(idata)
   21674      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21675      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21676      514188 :          pack_tmp = ISHFT(pack_tmp, -26)
   21677      514188 :          idata = idata + 1
   21678      514188 :          data_tmp = full_data(idata)
   21679      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21680      514188 :          data_tmp = IAND(data_tmp, mask_left(26))
   21681      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21682      514188 :          ipack = ipack + 1
   21683      514188 :          packed_data(ipack) = pack_tmp
   21684      514188 :          data_tmp = full_data(idata)
   21685      514188 :          pack_tmp = ISHFT(data_tmp, 60)
   21686      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21687      514188 :          idata = idata + 1
   21688      514188 :          data_tmp = full_data(idata)
   21689      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21690      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21691      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21692      514188 :          idata = idata + 1
   21693      514188 :          data_tmp = full_data(idata)
   21694      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21695      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21696      514188 :          pack_tmp = ISHFT(pack_tmp, 0)
   21697      514188 :          idata = idata + 1
   21698      514188 :          data_tmp = full_data(idata)
   21699      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21700      514188 :          data_tmp = IAND(data_tmp, mask_left(0))
   21701      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21702      514188 :          ipack = ipack + 1
   21703      514188 :          packed_data(ipack) = pack_tmp
   21704      514188 :          data_tmp = full_data(idata)
   21705      514188 :          pack_tmp = ISHFT(data_tmp, 34)
   21706      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21707      514188 :          idata = idata + 1
   21708      514188 :          data_tmp = full_data(idata)
   21709      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21710      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21711      514188 :          pack_tmp = ISHFT(pack_tmp, -4)
   21712      514188 :          idata = idata + 1
   21713      514188 :          data_tmp = full_data(idata)
   21714      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21715      514188 :          data_tmp = IAND(data_tmp, mask_left(4))
   21716      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21717      514188 :          ipack = ipack + 1
   21718      514188 :          packed_data(ipack) = pack_tmp
   21719      514188 :          data_tmp = full_data(idata)
   21720      514188 :          pack_tmp = ISHFT(data_tmp, 38)
   21721      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21722      514188 :          idata = idata + 1
   21723      514188 :          data_tmp = full_data(idata)
   21724      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21725      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21726      514188 :          pack_tmp = ISHFT(pack_tmp, -8)
   21727      514188 :          idata = idata + 1
   21728      514188 :          data_tmp = full_data(idata)
   21729      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21730      514188 :          data_tmp = IAND(data_tmp, mask_left(8))
   21731      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21732      514188 :          ipack = ipack + 1
   21733      514188 :          packed_data(ipack) = pack_tmp
   21734      514188 :          data_tmp = full_data(idata)
   21735      514188 :          pack_tmp = ISHFT(data_tmp, 42)
   21736      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21737      514188 :          idata = idata + 1
   21738      514188 :          data_tmp = full_data(idata)
   21739      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21740      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21741      514188 :          pack_tmp = ISHFT(pack_tmp, -12)
   21742      514188 :          idata = idata + 1
   21743      514188 :          data_tmp = full_data(idata)
   21744      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21745      514188 :          data_tmp = IAND(data_tmp, mask_left(12))
   21746      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21747      514188 :          ipack = ipack + 1
   21748      514188 :          packed_data(ipack) = pack_tmp
   21749      514188 :          data_tmp = full_data(idata)
   21750      514188 :          pack_tmp = ISHFT(data_tmp, 46)
   21751      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21752      514188 :          idata = idata + 1
   21753      514188 :          data_tmp = full_data(idata)
   21754      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21755      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21756      514188 :          pack_tmp = ISHFT(pack_tmp, -16)
   21757      514188 :          idata = idata + 1
   21758      514188 :          data_tmp = full_data(idata)
   21759      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21760      514188 :          data_tmp = IAND(data_tmp, mask_left(16))
   21761      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21762      514188 :          ipack = ipack + 1
   21763      514188 :          packed_data(ipack) = pack_tmp
   21764      514188 :          data_tmp = full_data(idata)
   21765      514188 :          pack_tmp = ISHFT(data_tmp, 50)
   21766      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21767      514188 :          idata = idata + 1
   21768      514188 :          data_tmp = full_data(idata)
   21769      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21770      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21771      514188 :          pack_tmp = ISHFT(pack_tmp, -20)
   21772      514188 :          idata = idata + 1
   21773      514188 :          data_tmp = full_data(idata)
   21774      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21775      514188 :          data_tmp = IAND(data_tmp, mask_left(20))
   21776      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21777      514188 :          ipack = ipack + 1
   21778      514188 :          packed_data(ipack) = pack_tmp
   21779      514188 :          data_tmp = full_data(idata)
   21780      514188 :          pack_tmp = ISHFT(data_tmp, 54)
   21781      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21782      514188 :          idata = idata + 1
   21783      514188 :          data_tmp = full_data(idata)
   21784      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21785      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21786      514188 :          pack_tmp = ISHFT(pack_tmp, -24)
   21787      514188 :          idata = idata + 1
   21788      514188 :          data_tmp = full_data(idata)
   21789      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21790      514188 :          data_tmp = IAND(data_tmp, mask_left(24))
   21791      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21792      514188 :          ipack = ipack + 1
   21793      514188 :          packed_data(ipack) = pack_tmp
   21794      514188 :          data_tmp = full_data(idata)
   21795      514188 :          pack_tmp = ISHFT(data_tmp, 58)
   21796      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21797      514188 :          idata = idata + 1
   21798      514188 :          data_tmp = full_data(idata)
   21799      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21800      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21801      514188 :          pack_tmp = ISHFT(pack_tmp, -28)
   21802      514188 :          idata = idata + 1
   21803      514188 :          data_tmp = full_data(idata)
   21804      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21805      514188 :          data_tmp = IAND(data_tmp, mask_left(28))
   21806      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21807      514188 :          ipack = ipack + 1
   21808      514188 :          packed_data(ipack) = pack_tmp
   21809      514188 :          data_tmp = full_data(idata)
   21810      514188 :          pack_tmp = ISHFT(data_tmp, 62)
   21811      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21812      514188 :          idata = idata + 1
   21813      514188 :          data_tmp = full_data(idata)
   21814      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21815      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21816      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21817      514188 :          idata = idata + 1
   21818      514188 :          data_tmp = full_data(idata)
   21819      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21820      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21821      514188 :          pack_tmp = ISHFT(pack_tmp, -2)
   21822      514188 :          idata = idata + 1
   21823      514188 :          data_tmp = full_data(idata)
   21824      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21825      514188 :          data_tmp = IAND(data_tmp, mask_left(2))
   21826      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21827      514188 :          ipack = ipack + 1
   21828      514188 :          packed_data(ipack) = pack_tmp
   21829      514188 :          data_tmp = full_data(idata)
   21830      514188 :          pack_tmp = ISHFT(data_tmp, 36)
   21831      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21832      514188 :          idata = idata + 1
   21833      514188 :          data_tmp = full_data(idata)
   21834      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21835      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21836      514188 :          pack_tmp = ISHFT(pack_tmp, -6)
   21837      514188 :          idata = idata + 1
   21838      514188 :          data_tmp = full_data(idata)
   21839      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21840      514188 :          data_tmp = IAND(data_tmp, mask_left(6))
   21841      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21842      514188 :          ipack = ipack + 1
   21843      514188 :          packed_data(ipack) = pack_tmp
   21844      514188 :          data_tmp = full_data(idata)
   21845      514188 :          pack_tmp = ISHFT(data_tmp, 40)
   21846      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21847      514188 :          idata = idata + 1
   21848      514188 :          data_tmp = full_data(idata)
   21849      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21850      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21851      514188 :          pack_tmp = ISHFT(pack_tmp, -10)
   21852      514188 :          idata = idata + 1
   21853      514188 :          data_tmp = full_data(idata)
   21854      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21855      514188 :          data_tmp = IAND(data_tmp, mask_left(10))
   21856      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21857      514188 :          ipack = ipack + 1
   21858      514188 :          packed_data(ipack) = pack_tmp
   21859      514188 :          data_tmp = full_data(idata)
   21860      514188 :          pack_tmp = ISHFT(data_tmp, 44)
   21861      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21862      514188 :          idata = idata + 1
   21863      514188 :          data_tmp = full_data(idata)
   21864      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21865      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21866      514188 :          pack_tmp = ISHFT(pack_tmp, -14)
   21867      514188 :          idata = idata + 1
   21868      514188 :          data_tmp = full_data(idata)
   21869      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21870      514188 :          data_tmp = IAND(data_tmp, mask_left(14))
   21871      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21872      514188 :          ipack = ipack + 1
   21873      514188 :          packed_data(ipack) = pack_tmp
   21874      514188 :          data_tmp = full_data(idata)
   21875      514188 :          pack_tmp = ISHFT(data_tmp, 48)
   21876      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21877      514188 :          idata = idata + 1
   21878      514188 :          data_tmp = full_data(idata)
   21879      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21880      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21881      514188 :          pack_tmp = ISHFT(pack_tmp, -18)
   21882      514188 :          idata = idata + 1
   21883      514188 :          data_tmp = full_data(idata)
   21884      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21885      514188 :          data_tmp = IAND(data_tmp, mask_left(18))
   21886      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21887      514188 :          ipack = ipack + 1
   21888      514188 :          packed_data(ipack) = pack_tmp
   21889      514188 :          data_tmp = full_data(idata)
   21890      514188 :          pack_tmp = ISHFT(data_tmp, 52)
   21891      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21892      514188 :          idata = idata + 1
   21893      514188 :          data_tmp = full_data(idata)
   21894      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21895      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21896      514188 :          pack_tmp = ISHFT(pack_tmp, -22)
   21897      514188 :          idata = idata + 1
   21898      514188 :          data_tmp = full_data(idata)
   21899      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21900      514188 :          data_tmp = IAND(data_tmp, mask_left(22))
   21901      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21902      514188 :          ipack = ipack + 1
   21903      514188 :          packed_data(ipack) = pack_tmp
   21904      514188 :          data_tmp = full_data(idata)
   21905      514188 :          pack_tmp = ISHFT(data_tmp, 56)
   21906      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21907      514188 :          idata = idata + 1
   21908      514188 :          data_tmp = full_data(idata)
   21909      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21910      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21911      514188 :          pack_tmp = ISHFT(pack_tmp, -26)
   21912      514188 :          idata = idata + 1
   21913      514188 :          data_tmp = full_data(idata)
   21914      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21915      514188 :          data_tmp = IAND(data_tmp, mask_left(26))
   21916      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21917      514188 :          ipack = ipack + 1
   21918      514188 :          packed_data(ipack) = pack_tmp
   21919      514188 :          data_tmp = full_data(idata)
   21920      514188 :          pack_tmp = ISHFT(data_tmp, 60)
   21921      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21922      514188 :          idata = idata + 1
   21923      514188 :          data_tmp = full_data(idata)
   21924      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21925      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21926      514188 :          pack_tmp = ISHFT(pack_tmp, -30)
   21927      514188 :          idata = idata + 1
   21928      514188 :          data_tmp = full_data(idata)
   21929      514188 :          data_tmp = ISHFT(data_tmp, 34)
   21930      514188 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21931             :          pack_tmp = ISHFT(pack_tmp, 0)
   21932      514188 :          pack_tmp = ISHFT(pack_tmp, 0)
   21933      514188 :          ipack = ipack + 1
   21934      514407 :          packed_data(ipack) = pack_tmp
   21935             :       END DO
   21936       36850 :       IF (Ndata_rep < Ndata) THEN
   21937        8872 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21938             :       END IF
   21939       36850 :    END SUBROUTINE ints2bits_30
   21940             : 
   21941             : ! **************************************************************************************************
   21942             : !> \brief ...
   21943             : !> \param Ndata ...
   21944             : !> \param packed_data ...
   21945             : !> \param full_data ...
   21946             : ! **************************************************************************************************
   21947      214241 :    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      214241 :       ipack = 0
   21958      214241 :       idata = 0
   21959      214241 :       pack_tmp = 0
   21960      214241 :       Ndata_rep = (Ndata/64)*64
   21961      214241 :       DO kdata = 1, Ndata_rep, 64
   21962     2787806 :          idata = idata + 1
   21963     2787806 :          data_tmp = ISHFT(pack_tmp, 30)
   21964     2787806 :          ipack = ipack + 1
   21965     2787806 :          pack_tmp = packed_data(ipack)
   21966     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   21967     2787806 :          pack_tmp = ISHFT(pack_tmp, -30)
   21968     2787806 :          idata = idata + 1
   21969     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21970     2787806 :          full_data(idata) = data_tmp
   21971     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21972     2787806 :          idata = idata + 1
   21973     2787806 :          data_tmp = ISHFT(pack_tmp, 26)
   21974     2787806 :          ipack = ipack + 1
   21975     2787806 :          pack_tmp = packed_data(ipack)
   21976     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21977     2787806 :          pack_tmp = ISHFT(pack_tmp, -26)
   21978     2787806 :          idata = idata + 1
   21979     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21980     2787806 :          full_data(idata) = data_tmp
   21981     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21982     2787806 :          idata = idata + 1
   21983     2787806 :          data_tmp = ISHFT(pack_tmp, 22)
   21984     2787806 :          ipack = ipack + 1
   21985     2787806 :          pack_tmp = packed_data(ipack)
   21986     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21987     2787806 :          pack_tmp = ISHFT(pack_tmp, -22)
   21988     2787806 :          idata = idata + 1
   21989     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21990     2787806 :          full_data(idata) = data_tmp
   21991     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21992     2787806 :          idata = idata + 1
   21993     2787806 :          data_tmp = ISHFT(pack_tmp, 18)
   21994     2787806 :          ipack = ipack + 1
   21995     2787806 :          pack_tmp = packed_data(ipack)
   21996     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21997     2787806 :          pack_tmp = ISHFT(pack_tmp, -18)
   21998     2787806 :          idata = idata + 1
   21999     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22000     2787806 :          full_data(idata) = data_tmp
   22001     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22002     2787806 :          idata = idata + 1
   22003     2787806 :          data_tmp = ISHFT(pack_tmp, 14)
   22004     2787806 :          ipack = ipack + 1
   22005     2787806 :          pack_tmp = packed_data(ipack)
   22006     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22007     2787806 :          pack_tmp = ISHFT(pack_tmp, -14)
   22008     2787806 :          idata = idata + 1
   22009     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22010     2787806 :          full_data(idata) = data_tmp
   22011     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22012     2787806 :          idata = idata + 1
   22013     2787806 :          data_tmp = ISHFT(pack_tmp, 10)
   22014     2787806 :          ipack = ipack + 1
   22015     2787806 :          pack_tmp = packed_data(ipack)
   22016     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22017     2787806 :          pack_tmp = ISHFT(pack_tmp, -10)
   22018     2787806 :          idata = idata + 1
   22019     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22020     2787806 :          full_data(idata) = data_tmp
   22021     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22022     2787806 :          idata = idata + 1
   22023     2787806 :          data_tmp = ISHFT(pack_tmp, 6)
   22024     2787806 :          ipack = ipack + 1
   22025     2787806 :          pack_tmp = packed_data(ipack)
   22026     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22027     2787806 :          pack_tmp = ISHFT(pack_tmp, -6)
   22028     2787806 :          idata = idata + 1
   22029     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22030     2787806 :          full_data(idata) = data_tmp
   22031     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22032     2787806 :          idata = idata + 1
   22033     2787806 :          data_tmp = ISHFT(pack_tmp, 2)
   22034     2787806 :          ipack = ipack + 1
   22035     2787806 :          pack_tmp = packed_data(ipack)
   22036     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22037     2787806 :          pack_tmp = ISHFT(pack_tmp, -2)
   22038     2787806 :          idata = idata + 1
   22039     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22040     2787806 :          full_data(idata) = data_tmp
   22041     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22042     2787806 :          idata = idata + 1
   22043     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22044     2787806 :          full_data(idata) = data_tmp
   22045     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22046     2787806 :          idata = idata + 1
   22047     2787806 :          data_tmp = ISHFT(pack_tmp, 28)
   22048     2787806 :          ipack = ipack + 1
   22049     2787806 :          pack_tmp = packed_data(ipack)
   22050     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22051     2787806 :          pack_tmp = ISHFT(pack_tmp, -28)
   22052     2787806 :          idata = idata + 1
   22053     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22054     2787806 :          full_data(idata) = data_tmp
   22055     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22056     2787806 :          idata = idata + 1
   22057     2787806 :          data_tmp = ISHFT(pack_tmp, 24)
   22058     2787806 :          ipack = ipack + 1
   22059     2787806 :          pack_tmp = packed_data(ipack)
   22060     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22061     2787806 :          pack_tmp = ISHFT(pack_tmp, -24)
   22062     2787806 :          idata = idata + 1
   22063     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22064     2787806 :          full_data(idata) = data_tmp
   22065     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22066     2787806 :          idata = idata + 1
   22067     2787806 :          data_tmp = ISHFT(pack_tmp, 20)
   22068     2787806 :          ipack = ipack + 1
   22069     2787806 :          pack_tmp = packed_data(ipack)
   22070     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22071     2787806 :          pack_tmp = ISHFT(pack_tmp, -20)
   22072     2787806 :          idata = idata + 1
   22073     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22074     2787806 :          full_data(idata) = data_tmp
   22075     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22076     2787806 :          idata = idata + 1
   22077     2787806 :          data_tmp = ISHFT(pack_tmp, 16)
   22078     2787806 :          ipack = ipack + 1
   22079     2787806 :          pack_tmp = packed_data(ipack)
   22080     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22081     2787806 :          pack_tmp = ISHFT(pack_tmp, -16)
   22082     2787806 :          idata = idata + 1
   22083     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22084     2787806 :          full_data(idata) = data_tmp
   22085     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22086     2787806 :          idata = idata + 1
   22087     2787806 :          data_tmp = ISHFT(pack_tmp, 12)
   22088     2787806 :          ipack = ipack + 1
   22089     2787806 :          pack_tmp = packed_data(ipack)
   22090     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22091     2787806 :          pack_tmp = ISHFT(pack_tmp, -12)
   22092     2787806 :          idata = idata + 1
   22093     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22094     2787806 :          full_data(idata) = data_tmp
   22095     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22096     2787806 :          idata = idata + 1
   22097     2787806 :          data_tmp = ISHFT(pack_tmp, 8)
   22098     2787806 :          ipack = ipack + 1
   22099     2787806 :          pack_tmp = packed_data(ipack)
   22100     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22101     2787806 :          pack_tmp = ISHFT(pack_tmp, -8)
   22102     2787806 :          idata = idata + 1
   22103     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22104     2787806 :          full_data(idata) = data_tmp
   22105     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22106     2787806 :          idata = idata + 1
   22107     2787806 :          data_tmp = ISHFT(pack_tmp, 4)
   22108     2787806 :          ipack = ipack + 1
   22109     2787806 :          pack_tmp = packed_data(ipack)
   22110     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22111     2787806 :          pack_tmp = ISHFT(pack_tmp, -4)
   22112     2787806 :          idata = idata + 1
   22113     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22114     2787806 :          full_data(idata) = data_tmp
   22115     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22116     2787806 :          idata = idata + 1
   22117     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22118     2787806 :          full_data(idata) = data_tmp
   22119     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22120     2787806 :          idata = idata + 1
   22121     2787806 :          data_tmp = ISHFT(pack_tmp, 30)
   22122     2787806 :          ipack = ipack + 1
   22123     2787806 :          pack_tmp = packed_data(ipack)
   22124     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22125     2787806 :          pack_tmp = ISHFT(pack_tmp, -30)
   22126     2787806 :          idata = idata + 1
   22127     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22128     2787806 :          full_data(idata) = data_tmp
   22129     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22130     2787806 :          idata = idata + 1
   22131     2787806 :          data_tmp = ISHFT(pack_tmp, 26)
   22132     2787806 :          ipack = ipack + 1
   22133     2787806 :          pack_tmp = packed_data(ipack)
   22134     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22135     2787806 :          pack_tmp = ISHFT(pack_tmp, -26)
   22136     2787806 :          idata = idata + 1
   22137     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22138     2787806 :          full_data(idata) = data_tmp
   22139     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22140     2787806 :          idata = idata + 1
   22141     2787806 :          data_tmp = ISHFT(pack_tmp, 22)
   22142     2787806 :          ipack = ipack + 1
   22143     2787806 :          pack_tmp = packed_data(ipack)
   22144     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   22145     2787806 :          pack_tmp = ISHFT(pack_tmp, -22)
   22146     2787806 :          idata = idata + 1
   22147     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22148     2787806 :          full_data(idata) = data_tmp
   22149     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22150     2787806 :          idata = idata + 1
   22151     2787806 :          data_tmp = ISHFT(pack_tmp, 18)
   22152     2787806 :          ipack = ipack + 1
   22153     2787806 :          pack_tmp = packed_data(ipack)
   22154     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   22155     2787806 :          pack_tmp = ISHFT(pack_tmp, -18)
   22156     2787806 :          idata = idata + 1
   22157     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22158     2787806 :          full_data(idata) = data_tmp
   22159     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22160     2787806 :          idata = idata + 1
   22161     2787806 :          data_tmp = ISHFT(pack_tmp, 14)
   22162     2787806 :          ipack = ipack + 1
   22163     2787806 :          pack_tmp = packed_data(ipack)
   22164     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22165     2787806 :          pack_tmp = ISHFT(pack_tmp, -14)
   22166     2787806 :          idata = idata + 1
   22167     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22168     2787806 :          full_data(idata) = data_tmp
   22169     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22170     2787806 :          idata = idata + 1
   22171     2787806 :          data_tmp = ISHFT(pack_tmp, 10)
   22172     2787806 :          ipack = ipack + 1
   22173     2787806 :          pack_tmp = packed_data(ipack)
   22174     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22175     2787806 :          pack_tmp = ISHFT(pack_tmp, -10)
   22176     2787806 :          idata = idata + 1
   22177     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22178     2787806 :          full_data(idata) = data_tmp
   22179     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22180     2787806 :          idata = idata + 1
   22181     2787806 :          data_tmp = ISHFT(pack_tmp, 6)
   22182     2787806 :          ipack = ipack + 1
   22183     2787806 :          pack_tmp = packed_data(ipack)
   22184     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22185     2787806 :          pack_tmp = ISHFT(pack_tmp, -6)
   22186     2787806 :          idata = idata + 1
   22187     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22188     2787806 :          full_data(idata) = data_tmp
   22189     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22190     2787806 :          idata = idata + 1
   22191     2787806 :          data_tmp = ISHFT(pack_tmp, 2)
   22192     2787806 :          ipack = ipack + 1
   22193     2787806 :          pack_tmp = packed_data(ipack)
   22194     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22195     2787806 :          pack_tmp = ISHFT(pack_tmp, -2)
   22196     2787806 :          idata = idata + 1
   22197     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22198     2787806 :          full_data(idata) = data_tmp
   22199     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22200     2787806 :          idata = idata + 1
   22201     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22202     2787806 :          full_data(idata) = data_tmp
   22203     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22204     2787806 :          idata = idata + 1
   22205     2787806 :          data_tmp = ISHFT(pack_tmp, 28)
   22206     2787806 :          ipack = ipack + 1
   22207     2787806 :          pack_tmp = packed_data(ipack)
   22208     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22209     2787806 :          pack_tmp = ISHFT(pack_tmp, -28)
   22210     2787806 :          idata = idata + 1
   22211     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22212     2787806 :          full_data(idata) = data_tmp
   22213     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22214     2787806 :          idata = idata + 1
   22215     2787806 :          data_tmp = ISHFT(pack_tmp, 24)
   22216     2787806 :          ipack = ipack + 1
   22217     2787806 :          pack_tmp = packed_data(ipack)
   22218     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22219     2787806 :          pack_tmp = ISHFT(pack_tmp, -24)
   22220     2787806 :          idata = idata + 1
   22221     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22222     2787806 :          full_data(idata) = data_tmp
   22223     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22224     2787806 :          idata = idata + 1
   22225     2787806 :          data_tmp = ISHFT(pack_tmp, 20)
   22226     2787806 :          ipack = ipack + 1
   22227     2787806 :          pack_tmp = packed_data(ipack)
   22228     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22229     2787806 :          pack_tmp = ISHFT(pack_tmp, -20)
   22230     2787806 :          idata = idata + 1
   22231     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22232     2787806 :          full_data(idata) = data_tmp
   22233     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22234     2787806 :          idata = idata + 1
   22235     2787806 :          data_tmp = ISHFT(pack_tmp, 16)
   22236     2787806 :          ipack = ipack + 1
   22237     2787806 :          pack_tmp = packed_data(ipack)
   22238     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22239     2787806 :          pack_tmp = ISHFT(pack_tmp, -16)
   22240     2787806 :          idata = idata + 1
   22241     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22242     2787806 :          full_data(idata) = data_tmp
   22243     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22244     2787806 :          idata = idata + 1
   22245     2787806 :          data_tmp = ISHFT(pack_tmp, 12)
   22246     2787806 :          ipack = ipack + 1
   22247     2787806 :          pack_tmp = packed_data(ipack)
   22248     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22249     2787806 :          pack_tmp = ISHFT(pack_tmp, -12)
   22250     2787806 :          idata = idata + 1
   22251     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22252     2787806 :          full_data(idata) = data_tmp
   22253     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22254     2787806 :          idata = idata + 1
   22255     2787806 :          data_tmp = ISHFT(pack_tmp, 8)
   22256     2787806 :          ipack = ipack + 1
   22257     2787806 :          pack_tmp = packed_data(ipack)
   22258     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22259     2787806 :          pack_tmp = ISHFT(pack_tmp, -8)
   22260     2787806 :          idata = idata + 1
   22261     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22262     2787806 :          full_data(idata) = data_tmp
   22263     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22264     2787806 :          idata = idata + 1
   22265     2787806 :          data_tmp = ISHFT(pack_tmp, 4)
   22266     2787806 :          ipack = ipack + 1
   22267     2787806 :          pack_tmp = packed_data(ipack)
   22268     2787806 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22269     2787806 :          pack_tmp = ISHFT(pack_tmp, -4)
   22270     2787806 :          idata = idata + 1
   22271     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22272     2787806 :          full_data(idata) = data_tmp
   22273     2787806 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22274     2787806 :          idata = idata + 1
   22275     2787806 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22276     2787806 :          full_data(idata) = data_tmp
   22277     2790064 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22278             :       END DO
   22279      214241 :       IF (Ndata_rep < Ndata) THEN
   22280       75300 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22281             :       END IF
   22282      214241 :    END SUBROUTINE bits2ints_30
   22283             : 
   22284             : ! **************************************************************************************************
   22285             : !> \brief ...
   22286             : !> \param Ndata ...
   22287             : !> \param packed_data ...
   22288             : !> \param full_data ...
   22289             : ! **************************************************************************************************
   22290       38425 :    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       38425 :       idata = 0
   22301       38425 :       ipack = 0
   22302       38425 :       Ndata_rep = (Ndata/64)*64
   22303       38425 :       DO kdata = 1, Ndata_rep, 64
   22304      530531 :          pack_tmp = 0
   22305      530531 :          idata = idata + 1
   22306      530531 :          data_tmp = full_data(idata)
   22307      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22308      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22309      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22310      530531 :          idata = idata + 1
   22311      530531 :          data_tmp = full_data(idata)
   22312      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22313      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22314      530531 :          pack_tmp = ISHFT(pack_tmp, -2)
   22315      530531 :          idata = idata + 1
   22316      530531 :          data_tmp = full_data(idata)
   22317      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22318      530531 :          data_tmp = IAND(data_tmp, mask_left(2))
   22319      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22320      530531 :          ipack = ipack + 1
   22321      530531 :          packed_data(ipack) = pack_tmp
   22322      530531 :          data_tmp = full_data(idata)
   22323      530531 :          pack_tmp = ISHFT(data_tmp, 35)
   22324      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22325      530531 :          idata = idata + 1
   22326      530531 :          data_tmp = full_data(idata)
   22327      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22328      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22329      530531 :          pack_tmp = ISHFT(pack_tmp, -4)
   22330      530531 :          idata = idata + 1
   22331      530531 :          data_tmp = full_data(idata)
   22332      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22333      530531 :          data_tmp = IAND(data_tmp, mask_left(4))
   22334      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22335      530531 :          ipack = ipack + 1
   22336      530531 :          packed_data(ipack) = pack_tmp
   22337      530531 :          data_tmp = full_data(idata)
   22338      530531 :          pack_tmp = ISHFT(data_tmp, 37)
   22339      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22340      530531 :          idata = idata + 1
   22341      530531 :          data_tmp = full_data(idata)
   22342      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22343      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22344      530531 :          pack_tmp = ISHFT(pack_tmp, -6)
   22345      530531 :          idata = idata + 1
   22346      530531 :          data_tmp = full_data(idata)
   22347      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22348      530531 :          data_tmp = IAND(data_tmp, mask_left(6))
   22349      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22350      530531 :          ipack = ipack + 1
   22351      530531 :          packed_data(ipack) = pack_tmp
   22352      530531 :          data_tmp = full_data(idata)
   22353      530531 :          pack_tmp = ISHFT(data_tmp, 39)
   22354      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22355      530531 :          idata = idata + 1
   22356      530531 :          data_tmp = full_data(idata)
   22357      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22358      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22359      530531 :          pack_tmp = ISHFT(pack_tmp, -8)
   22360      530531 :          idata = idata + 1
   22361      530531 :          data_tmp = full_data(idata)
   22362      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22363      530531 :          data_tmp = IAND(data_tmp, mask_left(8))
   22364      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22365      530531 :          ipack = ipack + 1
   22366      530531 :          packed_data(ipack) = pack_tmp
   22367      530531 :          data_tmp = full_data(idata)
   22368      530531 :          pack_tmp = ISHFT(data_tmp, 41)
   22369      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22370      530531 :          idata = idata + 1
   22371      530531 :          data_tmp = full_data(idata)
   22372      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22373      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22374      530531 :          pack_tmp = ISHFT(pack_tmp, -10)
   22375      530531 :          idata = idata + 1
   22376      530531 :          data_tmp = full_data(idata)
   22377      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22378      530531 :          data_tmp = IAND(data_tmp, mask_left(10))
   22379      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22380      530531 :          ipack = ipack + 1
   22381      530531 :          packed_data(ipack) = pack_tmp
   22382      530531 :          data_tmp = full_data(idata)
   22383      530531 :          pack_tmp = ISHFT(data_tmp, 43)
   22384      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22385      530531 :          idata = idata + 1
   22386      530531 :          data_tmp = full_data(idata)
   22387      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22388      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22389      530531 :          pack_tmp = ISHFT(pack_tmp, -12)
   22390      530531 :          idata = idata + 1
   22391      530531 :          data_tmp = full_data(idata)
   22392      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22393      530531 :          data_tmp = IAND(data_tmp, mask_left(12))
   22394      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22395      530531 :          ipack = ipack + 1
   22396      530531 :          packed_data(ipack) = pack_tmp
   22397      530531 :          data_tmp = full_data(idata)
   22398      530531 :          pack_tmp = ISHFT(data_tmp, 45)
   22399      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22400      530531 :          idata = idata + 1
   22401      530531 :          data_tmp = full_data(idata)
   22402      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22403      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22404      530531 :          pack_tmp = ISHFT(pack_tmp, -14)
   22405      530531 :          idata = idata + 1
   22406      530531 :          data_tmp = full_data(idata)
   22407      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22408      530531 :          data_tmp = IAND(data_tmp, mask_left(14))
   22409      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22410      530531 :          ipack = ipack + 1
   22411      530531 :          packed_data(ipack) = pack_tmp
   22412      530531 :          data_tmp = full_data(idata)
   22413      530531 :          pack_tmp = ISHFT(data_tmp, 47)
   22414      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22415      530531 :          idata = idata + 1
   22416      530531 :          data_tmp = full_data(idata)
   22417      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22418      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22419      530531 :          pack_tmp = ISHFT(pack_tmp, -16)
   22420      530531 :          idata = idata + 1
   22421      530531 :          data_tmp = full_data(idata)
   22422      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22423      530531 :          data_tmp = IAND(data_tmp, mask_left(16))
   22424      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22425      530531 :          ipack = ipack + 1
   22426      530531 :          packed_data(ipack) = pack_tmp
   22427      530531 :          data_tmp = full_data(idata)
   22428      530531 :          pack_tmp = ISHFT(data_tmp, 49)
   22429      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22430      530531 :          idata = idata + 1
   22431      530531 :          data_tmp = full_data(idata)
   22432      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22433      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22434      530531 :          pack_tmp = ISHFT(pack_tmp, -18)
   22435      530531 :          idata = idata + 1
   22436      530531 :          data_tmp = full_data(idata)
   22437      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22438      530531 :          data_tmp = IAND(data_tmp, mask_left(18))
   22439      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22440      530531 :          ipack = ipack + 1
   22441      530531 :          packed_data(ipack) = pack_tmp
   22442      530531 :          data_tmp = full_data(idata)
   22443      530531 :          pack_tmp = ISHFT(data_tmp, 51)
   22444      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22445      530531 :          idata = idata + 1
   22446      530531 :          data_tmp = full_data(idata)
   22447      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22448      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22449      530531 :          pack_tmp = ISHFT(pack_tmp, -20)
   22450      530531 :          idata = idata + 1
   22451      530531 :          data_tmp = full_data(idata)
   22452      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22453      530531 :          data_tmp = IAND(data_tmp, mask_left(20))
   22454      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22455      530531 :          ipack = ipack + 1
   22456      530531 :          packed_data(ipack) = pack_tmp
   22457      530531 :          data_tmp = full_data(idata)
   22458      530531 :          pack_tmp = ISHFT(data_tmp, 53)
   22459      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22460      530531 :          idata = idata + 1
   22461      530531 :          data_tmp = full_data(idata)
   22462      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22463      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22464      530531 :          pack_tmp = ISHFT(pack_tmp, -22)
   22465      530531 :          idata = idata + 1
   22466      530531 :          data_tmp = full_data(idata)
   22467      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22468      530531 :          data_tmp = IAND(data_tmp, mask_left(22))
   22469      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22470      530531 :          ipack = ipack + 1
   22471      530531 :          packed_data(ipack) = pack_tmp
   22472      530531 :          data_tmp = full_data(idata)
   22473      530531 :          pack_tmp = ISHFT(data_tmp, 55)
   22474      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22475      530531 :          idata = idata + 1
   22476      530531 :          data_tmp = full_data(idata)
   22477      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22478      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22479      530531 :          pack_tmp = ISHFT(pack_tmp, -24)
   22480      530531 :          idata = idata + 1
   22481      530531 :          data_tmp = full_data(idata)
   22482      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22483      530531 :          data_tmp = IAND(data_tmp, mask_left(24))
   22484      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22485      530531 :          ipack = ipack + 1
   22486      530531 :          packed_data(ipack) = pack_tmp
   22487      530531 :          data_tmp = full_data(idata)
   22488      530531 :          pack_tmp = ISHFT(data_tmp, 57)
   22489      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22490      530531 :          idata = idata + 1
   22491      530531 :          data_tmp = full_data(idata)
   22492      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22493      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22494      530531 :          pack_tmp = ISHFT(pack_tmp, -26)
   22495      530531 :          idata = idata + 1
   22496      530531 :          data_tmp = full_data(idata)
   22497      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22498      530531 :          data_tmp = IAND(data_tmp, mask_left(26))
   22499      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22500      530531 :          ipack = ipack + 1
   22501      530531 :          packed_data(ipack) = pack_tmp
   22502      530531 :          data_tmp = full_data(idata)
   22503      530531 :          pack_tmp = ISHFT(data_tmp, 59)
   22504      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22505      530531 :          idata = idata + 1
   22506      530531 :          data_tmp = full_data(idata)
   22507      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22508      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22509      530531 :          pack_tmp = ISHFT(pack_tmp, -28)
   22510      530531 :          idata = idata + 1
   22511      530531 :          data_tmp = full_data(idata)
   22512      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22513      530531 :          data_tmp = IAND(data_tmp, mask_left(28))
   22514      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22515      530531 :          ipack = ipack + 1
   22516      530531 :          packed_data(ipack) = pack_tmp
   22517      530531 :          data_tmp = full_data(idata)
   22518      530531 :          pack_tmp = ISHFT(data_tmp, 61)
   22519      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22520      530531 :          idata = idata + 1
   22521      530531 :          data_tmp = full_data(idata)
   22522      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22523      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22524      530531 :          pack_tmp = ISHFT(pack_tmp, -30)
   22525      530531 :          idata = idata + 1
   22526      530531 :          data_tmp = full_data(idata)
   22527      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22528      530531 :          data_tmp = IAND(data_tmp, mask_left(30))
   22529      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22530      530531 :          ipack = ipack + 1
   22531      530531 :          packed_data(ipack) = pack_tmp
   22532      530531 :          data_tmp = full_data(idata)
   22533      530531 :          pack_tmp = ISHFT(data_tmp, 63)
   22534      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22535      530531 :          idata = idata + 1
   22536      530531 :          data_tmp = full_data(idata)
   22537      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22538      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22539      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22540      530531 :          idata = idata + 1
   22541      530531 :          data_tmp = full_data(idata)
   22542      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22543      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22544      530531 :          pack_tmp = ISHFT(pack_tmp, -1)
   22545      530531 :          idata = idata + 1
   22546      530531 :          data_tmp = full_data(idata)
   22547      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22548      530531 :          data_tmp = IAND(data_tmp, mask_left(1))
   22549      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22550      530531 :          ipack = ipack + 1
   22551      530531 :          packed_data(ipack) = pack_tmp
   22552      530531 :          data_tmp = full_data(idata)
   22553      530531 :          pack_tmp = ISHFT(data_tmp, 34)
   22554      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22555      530531 :          idata = idata + 1
   22556      530531 :          data_tmp = full_data(idata)
   22557      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22558      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22559      530531 :          pack_tmp = ISHFT(pack_tmp, -3)
   22560      530531 :          idata = idata + 1
   22561      530531 :          data_tmp = full_data(idata)
   22562      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22563      530531 :          data_tmp = IAND(data_tmp, mask_left(3))
   22564      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22565      530531 :          ipack = ipack + 1
   22566      530531 :          packed_data(ipack) = pack_tmp
   22567      530531 :          data_tmp = full_data(idata)
   22568      530531 :          pack_tmp = ISHFT(data_tmp, 36)
   22569      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22570      530531 :          idata = idata + 1
   22571      530531 :          data_tmp = full_data(idata)
   22572      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22573      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22574      530531 :          pack_tmp = ISHFT(pack_tmp, -5)
   22575      530531 :          idata = idata + 1
   22576      530531 :          data_tmp = full_data(idata)
   22577      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22578      530531 :          data_tmp = IAND(data_tmp, mask_left(5))
   22579      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22580      530531 :          ipack = ipack + 1
   22581      530531 :          packed_data(ipack) = pack_tmp
   22582      530531 :          data_tmp = full_data(idata)
   22583      530531 :          pack_tmp = ISHFT(data_tmp, 38)
   22584      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22585      530531 :          idata = idata + 1
   22586      530531 :          data_tmp = full_data(idata)
   22587      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22588      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22589      530531 :          pack_tmp = ISHFT(pack_tmp, -7)
   22590      530531 :          idata = idata + 1
   22591      530531 :          data_tmp = full_data(idata)
   22592      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22593      530531 :          data_tmp = IAND(data_tmp, mask_left(7))
   22594      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22595      530531 :          ipack = ipack + 1
   22596      530531 :          packed_data(ipack) = pack_tmp
   22597      530531 :          data_tmp = full_data(idata)
   22598      530531 :          pack_tmp = ISHFT(data_tmp, 40)
   22599      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22600      530531 :          idata = idata + 1
   22601      530531 :          data_tmp = full_data(idata)
   22602      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22603      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22604      530531 :          pack_tmp = ISHFT(pack_tmp, -9)
   22605      530531 :          idata = idata + 1
   22606      530531 :          data_tmp = full_data(idata)
   22607      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22608      530531 :          data_tmp = IAND(data_tmp, mask_left(9))
   22609      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22610      530531 :          ipack = ipack + 1
   22611      530531 :          packed_data(ipack) = pack_tmp
   22612      530531 :          data_tmp = full_data(idata)
   22613      530531 :          pack_tmp = ISHFT(data_tmp, 42)
   22614      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22615      530531 :          idata = idata + 1
   22616      530531 :          data_tmp = full_data(idata)
   22617      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22618      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22619      530531 :          pack_tmp = ISHFT(pack_tmp, -11)
   22620      530531 :          idata = idata + 1
   22621      530531 :          data_tmp = full_data(idata)
   22622      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22623      530531 :          data_tmp = IAND(data_tmp, mask_left(11))
   22624      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22625      530531 :          ipack = ipack + 1
   22626      530531 :          packed_data(ipack) = pack_tmp
   22627      530531 :          data_tmp = full_data(idata)
   22628      530531 :          pack_tmp = ISHFT(data_tmp, 44)
   22629      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22630      530531 :          idata = idata + 1
   22631      530531 :          data_tmp = full_data(idata)
   22632      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22633      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22634      530531 :          pack_tmp = ISHFT(pack_tmp, -13)
   22635      530531 :          idata = idata + 1
   22636      530531 :          data_tmp = full_data(idata)
   22637      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22638      530531 :          data_tmp = IAND(data_tmp, mask_left(13))
   22639      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22640      530531 :          ipack = ipack + 1
   22641      530531 :          packed_data(ipack) = pack_tmp
   22642      530531 :          data_tmp = full_data(idata)
   22643      530531 :          pack_tmp = ISHFT(data_tmp, 46)
   22644      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22645      530531 :          idata = idata + 1
   22646      530531 :          data_tmp = full_data(idata)
   22647      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22648      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22649      530531 :          pack_tmp = ISHFT(pack_tmp, -15)
   22650      530531 :          idata = idata + 1
   22651      530531 :          data_tmp = full_data(idata)
   22652      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22653      530531 :          data_tmp = IAND(data_tmp, mask_left(15))
   22654      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22655      530531 :          ipack = ipack + 1
   22656      530531 :          packed_data(ipack) = pack_tmp
   22657      530531 :          data_tmp = full_data(idata)
   22658      530531 :          pack_tmp = ISHFT(data_tmp, 48)
   22659      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22660      530531 :          idata = idata + 1
   22661      530531 :          data_tmp = full_data(idata)
   22662      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22663      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22664      530531 :          pack_tmp = ISHFT(pack_tmp, -17)
   22665      530531 :          idata = idata + 1
   22666      530531 :          data_tmp = full_data(idata)
   22667      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22668      530531 :          data_tmp = IAND(data_tmp, mask_left(17))
   22669      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22670      530531 :          ipack = ipack + 1
   22671      530531 :          packed_data(ipack) = pack_tmp
   22672      530531 :          data_tmp = full_data(idata)
   22673      530531 :          pack_tmp = ISHFT(data_tmp, 50)
   22674      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22675      530531 :          idata = idata + 1
   22676      530531 :          data_tmp = full_data(idata)
   22677      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22678      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22679      530531 :          pack_tmp = ISHFT(pack_tmp, -19)
   22680      530531 :          idata = idata + 1
   22681      530531 :          data_tmp = full_data(idata)
   22682      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22683      530531 :          data_tmp = IAND(data_tmp, mask_left(19))
   22684      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22685      530531 :          ipack = ipack + 1
   22686      530531 :          packed_data(ipack) = pack_tmp
   22687      530531 :          data_tmp = full_data(idata)
   22688      530531 :          pack_tmp = ISHFT(data_tmp, 52)
   22689      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22690      530531 :          idata = idata + 1
   22691      530531 :          data_tmp = full_data(idata)
   22692      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22693      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22694      530531 :          pack_tmp = ISHFT(pack_tmp, -21)
   22695      530531 :          idata = idata + 1
   22696      530531 :          data_tmp = full_data(idata)
   22697      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22698      530531 :          data_tmp = IAND(data_tmp, mask_left(21))
   22699      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22700      530531 :          ipack = ipack + 1
   22701      530531 :          packed_data(ipack) = pack_tmp
   22702      530531 :          data_tmp = full_data(idata)
   22703      530531 :          pack_tmp = ISHFT(data_tmp, 54)
   22704      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22705      530531 :          idata = idata + 1
   22706      530531 :          data_tmp = full_data(idata)
   22707      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22708      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22709      530531 :          pack_tmp = ISHFT(pack_tmp, -23)
   22710      530531 :          idata = idata + 1
   22711      530531 :          data_tmp = full_data(idata)
   22712      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22713      530531 :          data_tmp = IAND(data_tmp, mask_left(23))
   22714      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22715      530531 :          ipack = ipack + 1
   22716      530531 :          packed_data(ipack) = pack_tmp
   22717      530531 :          data_tmp = full_data(idata)
   22718      530531 :          pack_tmp = ISHFT(data_tmp, 56)
   22719      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22720      530531 :          idata = idata + 1
   22721      530531 :          data_tmp = full_data(idata)
   22722      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22723      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22724      530531 :          pack_tmp = ISHFT(pack_tmp, -25)
   22725      530531 :          idata = idata + 1
   22726      530531 :          data_tmp = full_data(idata)
   22727      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22728      530531 :          data_tmp = IAND(data_tmp, mask_left(25))
   22729      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22730      530531 :          ipack = ipack + 1
   22731      530531 :          packed_data(ipack) = pack_tmp
   22732      530531 :          data_tmp = full_data(idata)
   22733      530531 :          pack_tmp = ISHFT(data_tmp, 58)
   22734      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22735      530531 :          idata = idata + 1
   22736      530531 :          data_tmp = full_data(idata)
   22737      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22738      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22739      530531 :          pack_tmp = ISHFT(pack_tmp, -27)
   22740      530531 :          idata = idata + 1
   22741      530531 :          data_tmp = full_data(idata)
   22742      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22743      530531 :          data_tmp = IAND(data_tmp, mask_left(27))
   22744      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22745      530531 :          ipack = ipack + 1
   22746      530531 :          packed_data(ipack) = pack_tmp
   22747      530531 :          data_tmp = full_data(idata)
   22748      530531 :          pack_tmp = ISHFT(data_tmp, 60)
   22749      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22750      530531 :          idata = idata + 1
   22751      530531 :          data_tmp = full_data(idata)
   22752      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22753      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22754      530531 :          pack_tmp = ISHFT(pack_tmp, -29)
   22755      530531 :          idata = idata + 1
   22756      530531 :          data_tmp = full_data(idata)
   22757      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22758      530531 :          data_tmp = IAND(data_tmp, mask_left(29))
   22759      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22760      530531 :          ipack = ipack + 1
   22761      530531 :          packed_data(ipack) = pack_tmp
   22762      530531 :          data_tmp = full_data(idata)
   22763      530531 :          pack_tmp = ISHFT(data_tmp, 62)
   22764      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22765      530531 :          idata = idata + 1
   22766      530531 :          data_tmp = full_data(idata)
   22767      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22768      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22769      530531 :          pack_tmp = ISHFT(pack_tmp, -31)
   22770      530531 :          idata = idata + 1
   22771      530531 :          data_tmp = full_data(idata)
   22772      530531 :          data_tmp = ISHFT(data_tmp, 33)
   22773      530531 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22774             :          pack_tmp = ISHFT(pack_tmp, 0)
   22775      530531 :          pack_tmp = ISHFT(pack_tmp, 0)
   22776      530531 :          ipack = ipack + 1
   22777      530687 :          packed_data(ipack) = pack_tmp
   22778             :       END DO
   22779       38425 :       IF (Ndata_rep < Ndata) THEN
   22780        9914 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22781             :       END IF
   22782       38425 :    END SUBROUTINE ints2bits_31
   22783             : 
   22784             : ! **************************************************************************************************
   22785             : !> \brief ...
   22786             : !> \param Ndata ...
   22787             : !> \param packed_data ...
   22788             : !> \param full_data ...
   22789             : ! **************************************************************************************************
   22790      265757 :    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      265757 :       ipack = 0
   22801      265757 :       idata = 0
   22802      265757 :       pack_tmp = 0
   22803      265757 :       Ndata_rep = (Ndata/64)*64
   22804      265757 :       DO kdata = 1, Ndata_rep, 64
   22805     3324422 :          idata = idata + 1
   22806     3324422 :          data_tmp = ISHFT(pack_tmp, 31)
   22807     3324422 :          ipack = ipack + 1
   22808     3324422 :          pack_tmp = packed_data(ipack)
   22809     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   22810     3324422 :          pack_tmp = ISHFT(pack_tmp, -31)
   22811     3324422 :          idata = idata + 1
   22812     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22813     3324422 :          full_data(idata) = data_tmp
   22814     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22815     3324422 :          idata = idata + 1
   22816     3324422 :          data_tmp = ISHFT(pack_tmp, 29)
   22817     3324422 :          ipack = ipack + 1
   22818     3324422 :          pack_tmp = packed_data(ipack)
   22819     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   22820     3324422 :          pack_tmp = ISHFT(pack_tmp, -29)
   22821     3324422 :          idata = idata + 1
   22822     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22823     3324422 :          full_data(idata) = data_tmp
   22824     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22825     3324422 :          idata = idata + 1
   22826     3324422 :          data_tmp = ISHFT(pack_tmp, 27)
   22827     3324422 :          ipack = ipack + 1
   22828     3324422 :          pack_tmp = packed_data(ipack)
   22829     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   22830     3324422 :          pack_tmp = ISHFT(pack_tmp, -27)
   22831     3324422 :          idata = idata + 1
   22832     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22833     3324422 :          full_data(idata) = data_tmp
   22834     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22835     3324422 :          idata = idata + 1
   22836     3324422 :          data_tmp = ISHFT(pack_tmp, 25)
   22837     3324422 :          ipack = ipack + 1
   22838     3324422 :          pack_tmp = packed_data(ipack)
   22839     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   22840     3324422 :          pack_tmp = ISHFT(pack_tmp, -25)
   22841     3324422 :          idata = idata + 1
   22842     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22843     3324422 :          full_data(idata) = data_tmp
   22844     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22845     3324422 :          idata = idata + 1
   22846     3324422 :          data_tmp = ISHFT(pack_tmp, 23)
   22847     3324422 :          ipack = ipack + 1
   22848     3324422 :          pack_tmp = packed_data(ipack)
   22849     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   22850     3324422 :          pack_tmp = ISHFT(pack_tmp, -23)
   22851     3324422 :          idata = idata + 1
   22852     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22853     3324422 :          full_data(idata) = data_tmp
   22854     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22855     3324422 :          idata = idata + 1
   22856     3324422 :          data_tmp = ISHFT(pack_tmp, 21)
   22857     3324422 :          ipack = ipack + 1
   22858     3324422 :          pack_tmp = packed_data(ipack)
   22859     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   22860     3324422 :          pack_tmp = ISHFT(pack_tmp, -21)
   22861     3324422 :          idata = idata + 1
   22862     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22863     3324422 :          full_data(idata) = data_tmp
   22864     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22865     3324422 :          idata = idata + 1
   22866     3324422 :          data_tmp = ISHFT(pack_tmp, 19)
   22867     3324422 :          ipack = ipack + 1
   22868     3324422 :          pack_tmp = packed_data(ipack)
   22869     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   22870     3324422 :          pack_tmp = ISHFT(pack_tmp, -19)
   22871     3324422 :          idata = idata + 1
   22872     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22873     3324422 :          full_data(idata) = data_tmp
   22874     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22875     3324422 :          idata = idata + 1
   22876     3324422 :          data_tmp = ISHFT(pack_tmp, 17)
   22877     3324422 :          ipack = ipack + 1
   22878     3324422 :          pack_tmp = packed_data(ipack)
   22879     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   22880     3324422 :          pack_tmp = ISHFT(pack_tmp, -17)
   22881     3324422 :          idata = idata + 1
   22882     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22883     3324422 :          full_data(idata) = data_tmp
   22884     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22885     3324422 :          idata = idata + 1
   22886     3324422 :          data_tmp = ISHFT(pack_tmp, 15)
   22887     3324422 :          ipack = ipack + 1
   22888     3324422 :          pack_tmp = packed_data(ipack)
   22889     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   22890     3324422 :          pack_tmp = ISHFT(pack_tmp, -15)
   22891     3324422 :          idata = idata + 1
   22892     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22893     3324422 :          full_data(idata) = data_tmp
   22894     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22895     3324422 :          idata = idata + 1
   22896     3324422 :          data_tmp = ISHFT(pack_tmp, 13)
   22897     3324422 :          ipack = ipack + 1
   22898     3324422 :          pack_tmp = packed_data(ipack)
   22899     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   22900     3324422 :          pack_tmp = ISHFT(pack_tmp, -13)
   22901     3324422 :          idata = idata + 1
   22902     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22903     3324422 :          full_data(idata) = data_tmp
   22904     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22905     3324422 :          idata = idata + 1
   22906     3324422 :          data_tmp = ISHFT(pack_tmp, 11)
   22907     3324422 :          ipack = ipack + 1
   22908     3324422 :          pack_tmp = packed_data(ipack)
   22909     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   22910     3324422 :          pack_tmp = ISHFT(pack_tmp, -11)
   22911     3324422 :          idata = idata + 1
   22912     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22913     3324422 :          full_data(idata) = data_tmp
   22914     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22915     3324422 :          idata = idata + 1
   22916     3324422 :          data_tmp = ISHFT(pack_tmp, 9)
   22917     3324422 :          ipack = ipack + 1
   22918     3324422 :          pack_tmp = packed_data(ipack)
   22919     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   22920     3324422 :          pack_tmp = ISHFT(pack_tmp, -9)
   22921     3324422 :          idata = idata + 1
   22922     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22923     3324422 :          full_data(idata) = data_tmp
   22924     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22925     3324422 :          idata = idata + 1
   22926     3324422 :          data_tmp = ISHFT(pack_tmp, 7)
   22927     3324422 :          ipack = ipack + 1
   22928     3324422 :          pack_tmp = packed_data(ipack)
   22929     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   22930     3324422 :          pack_tmp = ISHFT(pack_tmp, -7)
   22931     3324422 :          idata = idata + 1
   22932     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22933     3324422 :          full_data(idata) = data_tmp
   22934     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22935     3324422 :          idata = idata + 1
   22936     3324422 :          data_tmp = ISHFT(pack_tmp, 5)
   22937     3324422 :          ipack = ipack + 1
   22938     3324422 :          pack_tmp = packed_data(ipack)
   22939     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   22940     3324422 :          pack_tmp = ISHFT(pack_tmp, -5)
   22941     3324422 :          idata = idata + 1
   22942     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22943     3324422 :          full_data(idata) = data_tmp
   22944     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22945     3324422 :          idata = idata + 1
   22946     3324422 :          data_tmp = ISHFT(pack_tmp, 3)
   22947     3324422 :          ipack = ipack + 1
   22948     3324422 :          pack_tmp = packed_data(ipack)
   22949     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   22950     3324422 :          pack_tmp = ISHFT(pack_tmp, -3)
   22951     3324422 :          idata = idata + 1
   22952     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22953     3324422 :          full_data(idata) = data_tmp
   22954     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22955     3324422 :          idata = idata + 1
   22956     3324422 :          data_tmp = ISHFT(pack_tmp, 1)
   22957     3324422 :          ipack = ipack + 1
   22958     3324422 :          pack_tmp = packed_data(ipack)
   22959     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   22960     3324422 :          pack_tmp = ISHFT(pack_tmp, -1)
   22961     3324422 :          idata = idata + 1
   22962     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22963     3324422 :          full_data(idata) = data_tmp
   22964     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22965     3324422 :          idata = idata + 1
   22966     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22967     3324422 :          full_data(idata) = data_tmp
   22968     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22969     3324422 :          idata = idata + 1
   22970     3324422 :          data_tmp = ISHFT(pack_tmp, 30)
   22971     3324422 :          ipack = ipack + 1
   22972     3324422 :          pack_tmp = packed_data(ipack)
   22973     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22974     3324422 :          pack_tmp = ISHFT(pack_tmp, -30)
   22975     3324422 :          idata = idata + 1
   22976     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22977     3324422 :          full_data(idata) = data_tmp
   22978     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22979     3324422 :          idata = idata + 1
   22980     3324422 :          data_tmp = ISHFT(pack_tmp, 28)
   22981     3324422 :          ipack = ipack + 1
   22982     3324422 :          pack_tmp = packed_data(ipack)
   22983     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22984     3324422 :          pack_tmp = ISHFT(pack_tmp, -28)
   22985     3324422 :          idata = idata + 1
   22986     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22987     3324422 :          full_data(idata) = data_tmp
   22988     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22989     3324422 :          idata = idata + 1
   22990     3324422 :          data_tmp = ISHFT(pack_tmp, 26)
   22991     3324422 :          ipack = ipack + 1
   22992     3324422 :          pack_tmp = packed_data(ipack)
   22993     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22994     3324422 :          pack_tmp = ISHFT(pack_tmp, -26)
   22995     3324422 :          idata = idata + 1
   22996     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22997     3324422 :          full_data(idata) = data_tmp
   22998     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22999     3324422 :          idata = idata + 1
   23000     3324422 :          data_tmp = ISHFT(pack_tmp, 24)
   23001     3324422 :          ipack = ipack + 1
   23002     3324422 :          pack_tmp = packed_data(ipack)
   23003     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   23004     3324422 :          pack_tmp = ISHFT(pack_tmp, -24)
   23005     3324422 :          idata = idata + 1
   23006     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23007     3324422 :          full_data(idata) = data_tmp
   23008     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23009     3324422 :          idata = idata + 1
   23010     3324422 :          data_tmp = ISHFT(pack_tmp, 22)
   23011     3324422 :          ipack = ipack + 1
   23012     3324422 :          pack_tmp = packed_data(ipack)
   23013     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   23014     3324422 :          pack_tmp = ISHFT(pack_tmp, -22)
   23015     3324422 :          idata = idata + 1
   23016     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23017     3324422 :          full_data(idata) = data_tmp
   23018     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23019     3324422 :          idata = idata + 1
   23020     3324422 :          data_tmp = ISHFT(pack_tmp, 20)
   23021     3324422 :          ipack = ipack + 1
   23022     3324422 :          pack_tmp = packed_data(ipack)
   23023     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   23024     3324422 :          pack_tmp = ISHFT(pack_tmp, -20)
   23025     3324422 :          idata = idata + 1
   23026     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23027     3324422 :          full_data(idata) = data_tmp
   23028     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23029     3324422 :          idata = idata + 1
   23030     3324422 :          data_tmp = ISHFT(pack_tmp, 18)
   23031     3324422 :          ipack = ipack + 1
   23032     3324422 :          pack_tmp = packed_data(ipack)
   23033     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   23034     3324422 :          pack_tmp = ISHFT(pack_tmp, -18)
   23035     3324422 :          idata = idata + 1
   23036     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23037     3324422 :          full_data(idata) = data_tmp
   23038     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23039     3324422 :          idata = idata + 1
   23040     3324422 :          data_tmp = ISHFT(pack_tmp, 16)
   23041     3324422 :          ipack = ipack + 1
   23042     3324422 :          pack_tmp = packed_data(ipack)
   23043     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   23044     3324422 :          pack_tmp = ISHFT(pack_tmp, -16)
   23045     3324422 :          idata = idata + 1
   23046     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23047     3324422 :          full_data(idata) = data_tmp
   23048     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23049     3324422 :          idata = idata + 1
   23050     3324422 :          data_tmp = ISHFT(pack_tmp, 14)
   23051     3324422 :          ipack = ipack + 1
   23052     3324422 :          pack_tmp = packed_data(ipack)
   23053     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   23054     3324422 :          pack_tmp = ISHFT(pack_tmp, -14)
   23055     3324422 :          idata = idata + 1
   23056     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23057     3324422 :          full_data(idata) = data_tmp
   23058     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23059     3324422 :          idata = idata + 1
   23060     3324422 :          data_tmp = ISHFT(pack_tmp, 12)
   23061     3324422 :          ipack = ipack + 1
   23062     3324422 :          pack_tmp = packed_data(ipack)
   23063     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   23064     3324422 :          pack_tmp = ISHFT(pack_tmp, -12)
   23065     3324422 :          idata = idata + 1
   23066     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23067     3324422 :          full_data(idata) = data_tmp
   23068     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23069     3324422 :          idata = idata + 1
   23070     3324422 :          data_tmp = ISHFT(pack_tmp, 10)
   23071     3324422 :          ipack = ipack + 1
   23072     3324422 :          pack_tmp = packed_data(ipack)
   23073     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   23074     3324422 :          pack_tmp = ISHFT(pack_tmp, -10)
   23075     3324422 :          idata = idata + 1
   23076     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23077     3324422 :          full_data(idata) = data_tmp
   23078     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23079     3324422 :          idata = idata + 1
   23080     3324422 :          data_tmp = ISHFT(pack_tmp, 8)
   23081     3324422 :          ipack = ipack + 1
   23082     3324422 :          pack_tmp = packed_data(ipack)
   23083     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   23084     3324422 :          pack_tmp = ISHFT(pack_tmp, -8)
   23085     3324422 :          idata = idata + 1
   23086     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23087     3324422 :          full_data(idata) = data_tmp
   23088     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23089     3324422 :          idata = idata + 1
   23090     3324422 :          data_tmp = ISHFT(pack_tmp, 6)
   23091     3324422 :          ipack = ipack + 1
   23092     3324422 :          pack_tmp = packed_data(ipack)
   23093     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   23094     3324422 :          pack_tmp = ISHFT(pack_tmp, -6)
   23095     3324422 :          idata = idata + 1
   23096     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23097     3324422 :          full_data(idata) = data_tmp
   23098     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23099     3324422 :          idata = idata + 1
   23100     3324422 :          data_tmp = ISHFT(pack_tmp, 4)
   23101     3324422 :          ipack = ipack + 1
   23102     3324422 :          pack_tmp = packed_data(ipack)
   23103     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   23104     3324422 :          pack_tmp = ISHFT(pack_tmp, -4)
   23105     3324422 :          idata = idata + 1
   23106     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23107     3324422 :          full_data(idata) = data_tmp
   23108     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23109     3324422 :          idata = idata + 1
   23110     3324422 :          data_tmp = ISHFT(pack_tmp, 2)
   23111     3324422 :          ipack = ipack + 1
   23112     3324422 :          pack_tmp = packed_data(ipack)
   23113     3324422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   23114     3324422 :          pack_tmp = ISHFT(pack_tmp, -2)
   23115     3324422 :          idata = idata + 1
   23116     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23117     3324422 :          full_data(idata) = data_tmp
   23118     3324422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23119     3324422 :          idata = idata + 1
   23120     3324422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23121     3324422 :          full_data(idata) = data_tmp
   23122     3326602 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23123             :       END DO
   23124      265757 :       IF (Ndata_rep < Ndata) THEN
   23125      109140 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23126             :       END IF
   23127      265757 :    END SUBROUTINE bits2ints_31
   23128             : 
   23129             : ! **************************************************************************************************
   23130             : !> \brief ...
   23131             : !> \param Ndata ...
   23132             : !> \param packed_data ...
   23133             : !> \param full_data ...
   23134             : ! **************************************************************************************************
   23135       44912 :    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       44912 :       idata = 0
   23146       44912 :       ipack = 0
   23147       44912 :       Ndata_rep = (Ndata/64)*64
   23148       44912 :       DO kdata = 1, Ndata_rep, 64
   23149      595136 :          pack_tmp = 0
   23150      595136 :          idata = idata + 1
   23151      595136 :          data_tmp = full_data(idata)
   23152      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23153      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23154      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23155      595136 :          idata = idata + 1
   23156      595136 :          data_tmp = full_data(idata)
   23157      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23158      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23159      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23160      595136 :          idata = idata + 1
   23161      595136 :          data_tmp = full_data(idata)
   23162      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23163      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23164      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23165      595136 :          ipack = ipack + 1
   23166      595136 :          packed_data(ipack) = pack_tmp
   23167      595136 :          data_tmp = full_data(idata)
   23168      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23169      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23170      595136 :          idata = idata + 1
   23171      595136 :          data_tmp = full_data(idata)
   23172      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23173      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23174      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23175      595136 :          idata = idata + 1
   23176      595136 :          data_tmp = full_data(idata)
   23177      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23178      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23179      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23180      595136 :          ipack = ipack + 1
   23181      595136 :          packed_data(ipack) = pack_tmp
   23182      595136 :          data_tmp = full_data(idata)
   23183      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23184      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23185      595136 :          idata = idata + 1
   23186      595136 :          data_tmp = full_data(idata)
   23187      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23188      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23189      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23190      595136 :          idata = idata + 1
   23191      595136 :          data_tmp = full_data(idata)
   23192      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23193      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23194      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23195      595136 :          ipack = ipack + 1
   23196      595136 :          packed_data(ipack) = pack_tmp
   23197      595136 :          data_tmp = full_data(idata)
   23198      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23199      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23200      595136 :          idata = idata + 1
   23201      595136 :          data_tmp = full_data(idata)
   23202      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23203      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23204      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23205      595136 :          idata = idata + 1
   23206      595136 :          data_tmp = full_data(idata)
   23207      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23208      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23209      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23210      595136 :          ipack = ipack + 1
   23211      595136 :          packed_data(ipack) = pack_tmp
   23212      595136 :          data_tmp = full_data(idata)
   23213      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23214      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23215      595136 :          idata = idata + 1
   23216      595136 :          data_tmp = full_data(idata)
   23217      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23218      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23219      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23220      595136 :          idata = idata + 1
   23221      595136 :          data_tmp = full_data(idata)
   23222      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23223      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23224      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23225      595136 :          ipack = ipack + 1
   23226      595136 :          packed_data(ipack) = pack_tmp
   23227      595136 :          data_tmp = full_data(idata)
   23228      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23229      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23230      595136 :          idata = idata + 1
   23231      595136 :          data_tmp = full_data(idata)
   23232      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23233      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23234      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23235      595136 :          idata = idata + 1
   23236      595136 :          data_tmp = full_data(idata)
   23237      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23238      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23239      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23240      595136 :          ipack = ipack + 1
   23241      595136 :          packed_data(ipack) = pack_tmp
   23242      595136 :          data_tmp = full_data(idata)
   23243      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23244      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23245      595136 :          idata = idata + 1
   23246      595136 :          data_tmp = full_data(idata)
   23247      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23248      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23249      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23250      595136 :          idata = idata + 1
   23251      595136 :          data_tmp = full_data(idata)
   23252      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23253      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23254      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23255      595136 :          ipack = ipack + 1
   23256      595136 :          packed_data(ipack) = pack_tmp
   23257      595136 :          data_tmp = full_data(idata)
   23258      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23259      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23260      595136 :          idata = idata + 1
   23261      595136 :          data_tmp = full_data(idata)
   23262      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23263      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23264      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23265      595136 :          idata = idata + 1
   23266      595136 :          data_tmp = full_data(idata)
   23267      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23268      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23269      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23270      595136 :          ipack = ipack + 1
   23271      595136 :          packed_data(ipack) = pack_tmp
   23272      595136 :          data_tmp = full_data(idata)
   23273      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23274      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23275      595136 :          idata = idata + 1
   23276      595136 :          data_tmp = full_data(idata)
   23277      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23278      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23279      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23280      595136 :          idata = idata + 1
   23281      595136 :          data_tmp = full_data(idata)
   23282      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23283      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23284      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23285      595136 :          ipack = ipack + 1
   23286      595136 :          packed_data(ipack) = pack_tmp
   23287      595136 :          data_tmp = full_data(idata)
   23288      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23289      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23290      595136 :          idata = idata + 1
   23291      595136 :          data_tmp = full_data(idata)
   23292      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23293      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23294      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23295      595136 :          idata = idata + 1
   23296      595136 :          data_tmp = full_data(idata)
   23297      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23298      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23299      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23300      595136 :          ipack = ipack + 1
   23301      595136 :          packed_data(ipack) = pack_tmp
   23302      595136 :          data_tmp = full_data(idata)
   23303      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23304      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23305      595136 :          idata = idata + 1
   23306      595136 :          data_tmp = full_data(idata)
   23307      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23308      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23309      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23310      595136 :          idata = idata + 1
   23311      595136 :          data_tmp = full_data(idata)
   23312      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23313      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23314      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23315      595136 :          ipack = ipack + 1
   23316      595136 :          packed_data(ipack) = pack_tmp
   23317      595136 :          data_tmp = full_data(idata)
   23318      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23319      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23320      595136 :          idata = idata + 1
   23321      595136 :          data_tmp = full_data(idata)
   23322      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23323      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23324      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23325      595136 :          idata = idata + 1
   23326      595136 :          data_tmp = full_data(idata)
   23327      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23328      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23329      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23330      595136 :          ipack = ipack + 1
   23331      595136 :          packed_data(ipack) = pack_tmp
   23332      595136 :          data_tmp = full_data(idata)
   23333      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23334      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23335      595136 :          idata = idata + 1
   23336      595136 :          data_tmp = full_data(idata)
   23337      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23338      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23339      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23340      595136 :          idata = idata + 1
   23341      595136 :          data_tmp = full_data(idata)
   23342      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23343      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23344      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23345      595136 :          ipack = ipack + 1
   23346      595136 :          packed_data(ipack) = pack_tmp
   23347      595136 :          data_tmp = full_data(idata)
   23348      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23349      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23350      595136 :          idata = idata + 1
   23351      595136 :          data_tmp = full_data(idata)
   23352      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23353      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23354      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23355      595136 :          idata = idata + 1
   23356      595136 :          data_tmp = full_data(idata)
   23357      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23358      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23359      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23360      595136 :          ipack = ipack + 1
   23361      595136 :          packed_data(ipack) = pack_tmp
   23362      595136 :          data_tmp = full_data(idata)
   23363      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23364      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23365      595136 :          idata = idata + 1
   23366      595136 :          data_tmp = full_data(idata)
   23367      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23368      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23369      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23370      595136 :          idata = idata + 1
   23371      595136 :          data_tmp = full_data(idata)
   23372      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23373      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23374      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23375      595136 :          ipack = ipack + 1
   23376      595136 :          packed_data(ipack) = pack_tmp
   23377      595136 :          data_tmp = full_data(idata)
   23378      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23379      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23380      595136 :          idata = idata + 1
   23381      595136 :          data_tmp = full_data(idata)
   23382      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23383      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23384      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23385      595136 :          idata = idata + 1
   23386      595136 :          data_tmp = full_data(idata)
   23387      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23388      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23389      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23390      595136 :          ipack = ipack + 1
   23391      595136 :          packed_data(ipack) = pack_tmp
   23392      595136 :          data_tmp = full_data(idata)
   23393      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23394      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23395      595136 :          idata = idata + 1
   23396      595136 :          data_tmp = full_data(idata)
   23397      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23398      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23399      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23400      595136 :          idata = idata + 1
   23401      595136 :          data_tmp = full_data(idata)
   23402      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23403      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23404      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23405      595136 :          ipack = ipack + 1
   23406      595136 :          packed_data(ipack) = pack_tmp
   23407      595136 :          data_tmp = full_data(idata)
   23408      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23409      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23410      595136 :          idata = idata + 1
   23411      595136 :          data_tmp = full_data(idata)
   23412      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23413      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23414      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23415      595136 :          idata = idata + 1
   23416      595136 :          data_tmp = full_data(idata)
   23417      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23418      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23419      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23420      595136 :          ipack = ipack + 1
   23421      595136 :          packed_data(ipack) = pack_tmp
   23422      595136 :          data_tmp = full_data(idata)
   23423      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23424      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23425      595136 :          idata = idata + 1
   23426      595136 :          data_tmp = full_data(idata)
   23427      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23428      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23429      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23430      595136 :          idata = idata + 1
   23431      595136 :          data_tmp = full_data(idata)
   23432      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23433      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23434      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23435      595136 :          ipack = ipack + 1
   23436      595136 :          packed_data(ipack) = pack_tmp
   23437      595136 :          data_tmp = full_data(idata)
   23438      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23439      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23440      595136 :          idata = idata + 1
   23441      595136 :          data_tmp = full_data(idata)
   23442      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23443      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23444      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23445      595136 :          idata = idata + 1
   23446      595136 :          data_tmp = full_data(idata)
   23447      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23448      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23449      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23450      595136 :          ipack = ipack + 1
   23451      595136 :          packed_data(ipack) = pack_tmp
   23452      595136 :          data_tmp = full_data(idata)
   23453      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23454      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23455      595136 :          idata = idata + 1
   23456      595136 :          data_tmp = full_data(idata)
   23457      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23458      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23459      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23460      595136 :          idata = idata + 1
   23461      595136 :          data_tmp = full_data(idata)
   23462      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23463      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23464      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23465      595136 :          ipack = ipack + 1
   23466      595136 :          packed_data(ipack) = pack_tmp
   23467      595136 :          data_tmp = full_data(idata)
   23468      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23469      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23470      595136 :          idata = idata + 1
   23471      595136 :          data_tmp = full_data(idata)
   23472      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23473      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23474      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23475      595136 :          idata = idata + 1
   23476      595136 :          data_tmp = full_data(idata)
   23477      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23478      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23479      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23480      595136 :          ipack = ipack + 1
   23481      595136 :          packed_data(ipack) = pack_tmp
   23482      595136 :          data_tmp = full_data(idata)
   23483      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23484      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23485      595136 :          idata = idata + 1
   23486      595136 :          data_tmp = full_data(idata)
   23487      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23488      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23489      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23490      595136 :          idata = idata + 1
   23491      595136 :          data_tmp = full_data(idata)
   23492      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23493      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23494      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23495      595136 :          ipack = ipack + 1
   23496      595136 :          packed_data(ipack) = pack_tmp
   23497      595136 :          data_tmp = full_data(idata)
   23498      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23499      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23500      595136 :          idata = idata + 1
   23501      595136 :          data_tmp = full_data(idata)
   23502      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23503      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23504      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23505      595136 :          idata = idata + 1
   23506      595136 :          data_tmp = full_data(idata)
   23507      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23508      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23509      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23510      595136 :          ipack = ipack + 1
   23511      595136 :          packed_data(ipack) = pack_tmp
   23512      595136 :          data_tmp = full_data(idata)
   23513      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23514      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23515      595136 :          idata = idata + 1
   23516      595136 :          data_tmp = full_data(idata)
   23517      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23518      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23519      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23520      595136 :          idata = idata + 1
   23521      595136 :          data_tmp = full_data(idata)
   23522      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23523      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23524      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23525      595136 :          ipack = ipack + 1
   23526      595136 :          packed_data(ipack) = pack_tmp
   23527      595136 :          data_tmp = full_data(idata)
   23528      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23529      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23530      595136 :          idata = idata + 1
   23531      595136 :          data_tmp = full_data(idata)
   23532      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23533      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23534      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23535      595136 :          idata = idata + 1
   23536      595136 :          data_tmp = full_data(idata)
   23537      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23538      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23539      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23540      595136 :          ipack = ipack + 1
   23541      595136 :          packed_data(ipack) = pack_tmp
   23542      595136 :          data_tmp = full_data(idata)
   23543      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23544      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23545      595136 :          idata = idata + 1
   23546      595136 :          data_tmp = full_data(idata)
   23547      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23548      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23549      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23550      595136 :          idata = idata + 1
   23551      595136 :          data_tmp = full_data(idata)
   23552      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23553      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23554      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23555      595136 :          ipack = ipack + 1
   23556      595136 :          packed_data(ipack) = pack_tmp
   23557      595136 :          data_tmp = full_data(idata)
   23558      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23559      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23560      595136 :          idata = idata + 1
   23561      595136 :          data_tmp = full_data(idata)
   23562      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23563      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23564      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23565      595136 :          idata = idata + 1
   23566      595136 :          data_tmp = full_data(idata)
   23567      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23568      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23569      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23570      595136 :          ipack = ipack + 1
   23571      595136 :          packed_data(ipack) = pack_tmp
   23572      595136 :          data_tmp = full_data(idata)
   23573      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23574      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23575      595136 :          idata = idata + 1
   23576      595136 :          data_tmp = full_data(idata)
   23577      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23578      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23579      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23580      595136 :          idata = idata + 1
   23581      595136 :          data_tmp = full_data(idata)
   23582      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23583      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23584      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23585      595136 :          ipack = ipack + 1
   23586      595136 :          packed_data(ipack) = pack_tmp
   23587      595136 :          data_tmp = full_data(idata)
   23588      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23589      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23590      595136 :          idata = idata + 1
   23591      595136 :          data_tmp = full_data(idata)
   23592      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23593      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23594      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23595      595136 :          idata = idata + 1
   23596      595136 :          data_tmp = full_data(idata)
   23597      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23598      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23599      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23600      595136 :          ipack = ipack + 1
   23601      595136 :          packed_data(ipack) = pack_tmp
   23602      595136 :          data_tmp = full_data(idata)
   23603      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23604      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23605      595136 :          idata = idata + 1
   23606      595136 :          data_tmp = full_data(idata)
   23607      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23608      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23609      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23610      595136 :          idata = idata + 1
   23611      595136 :          data_tmp = full_data(idata)
   23612      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23613      595136 :          data_tmp = IAND(data_tmp, mask_left(0))
   23614      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23615      595136 :          ipack = ipack + 1
   23616      595136 :          packed_data(ipack) = pack_tmp
   23617      595136 :          data_tmp = full_data(idata)
   23618      595136 :          pack_tmp = ISHFT(data_tmp, 32)
   23619      595136 :          pack_tmp = ISHFT(pack_tmp, -32)
   23620      595136 :          idata = idata + 1
   23621      595136 :          data_tmp = full_data(idata)
   23622      595136 :          data_tmp = ISHFT(data_tmp, 32)
   23623      595136 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23624             :          pack_tmp = ISHFT(pack_tmp, 0)
   23625      595136 :          pack_tmp = ISHFT(pack_tmp, 0)
   23626      595136 :          ipack = ipack + 1
   23627      602852 :          packed_data(ipack) = pack_tmp
   23628             :       END DO
   23629       44912 :       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       44912 :    END SUBROUTINE ints2bits_32
   23633             : 
   23634             : ! **************************************************************************************************
   23635             : !> \brief ...
   23636             : !> \param Ndata ...
   23637             : !> \param packed_data ...
   23638             : !> \param full_data ...
   23639             : ! **************************************************************************************************
   23640      341209 :    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      341209 :       ipack = 0
   23651      341209 :       idata = 0
   23652      341209 :       pack_tmp = 0
   23653      341209 :       Ndata_rep = (Ndata/64)*64
   23654      341209 :       DO kdata = 1, Ndata_rep, 64
   23655     4085424 :          idata = idata + 1
   23656     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23657     4085424 :          ipack = ipack + 1
   23658     4085424 :          pack_tmp = packed_data(ipack)
   23659     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23660     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23661     4085424 :          idata = idata + 1
   23662     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23663     4085424 :          full_data(idata) = data_tmp
   23664     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23665     4085424 :          idata = idata + 1
   23666     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23667     4085424 :          ipack = ipack + 1
   23668     4085424 :          pack_tmp = packed_data(ipack)
   23669     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23670     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23671     4085424 :          idata = idata + 1
   23672     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23673     4085424 :          full_data(idata) = data_tmp
   23674     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23675     4085424 :          idata = idata + 1
   23676     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23677     4085424 :          ipack = ipack + 1
   23678     4085424 :          pack_tmp = packed_data(ipack)
   23679     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23680     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23681     4085424 :          idata = idata + 1
   23682     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23683     4085424 :          full_data(idata) = data_tmp
   23684     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23685     4085424 :          idata = idata + 1
   23686     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23687     4085424 :          ipack = ipack + 1
   23688     4085424 :          pack_tmp = packed_data(ipack)
   23689     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23690     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23691     4085424 :          idata = idata + 1
   23692     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23693     4085424 :          full_data(idata) = data_tmp
   23694     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23695     4085424 :          idata = idata + 1
   23696     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23697     4085424 :          ipack = ipack + 1
   23698     4085424 :          pack_tmp = packed_data(ipack)
   23699     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23700     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23701     4085424 :          idata = idata + 1
   23702     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23703     4085424 :          full_data(idata) = data_tmp
   23704     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23705     4085424 :          idata = idata + 1
   23706     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23707     4085424 :          ipack = ipack + 1
   23708     4085424 :          pack_tmp = packed_data(ipack)
   23709     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23710     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23711     4085424 :          idata = idata + 1
   23712     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23713     4085424 :          full_data(idata) = data_tmp
   23714     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23715     4085424 :          idata = idata + 1
   23716     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23717     4085424 :          ipack = ipack + 1
   23718     4085424 :          pack_tmp = packed_data(ipack)
   23719     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23720     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23721     4085424 :          idata = idata + 1
   23722     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23723     4085424 :          full_data(idata) = data_tmp
   23724     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23725     4085424 :          idata = idata + 1
   23726     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23727     4085424 :          ipack = ipack + 1
   23728     4085424 :          pack_tmp = packed_data(ipack)
   23729     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23730     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23731     4085424 :          idata = idata + 1
   23732     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23733     4085424 :          full_data(idata) = data_tmp
   23734     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23735     4085424 :          idata = idata + 1
   23736     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23737     4085424 :          ipack = ipack + 1
   23738     4085424 :          pack_tmp = packed_data(ipack)
   23739     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23740     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23741     4085424 :          idata = idata + 1
   23742     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23743     4085424 :          full_data(idata) = data_tmp
   23744     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23745     4085424 :          idata = idata + 1
   23746     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23747     4085424 :          ipack = ipack + 1
   23748     4085424 :          pack_tmp = packed_data(ipack)
   23749     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23750     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23751     4085424 :          idata = idata + 1
   23752     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23753     4085424 :          full_data(idata) = data_tmp
   23754     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23755     4085424 :          idata = idata + 1
   23756     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23757     4085424 :          ipack = ipack + 1
   23758     4085424 :          pack_tmp = packed_data(ipack)
   23759     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23760     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23761     4085424 :          idata = idata + 1
   23762     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23763     4085424 :          full_data(idata) = data_tmp
   23764     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23765     4085424 :          idata = idata + 1
   23766     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23767     4085424 :          ipack = ipack + 1
   23768     4085424 :          pack_tmp = packed_data(ipack)
   23769     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23770     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23771     4085424 :          idata = idata + 1
   23772     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23773     4085424 :          full_data(idata) = data_tmp
   23774     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23775     4085424 :          idata = idata + 1
   23776     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23777     4085424 :          ipack = ipack + 1
   23778     4085424 :          pack_tmp = packed_data(ipack)
   23779     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23780     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23781     4085424 :          idata = idata + 1
   23782     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23783     4085424 :          full_data(idata) = data_tmp
   23784     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23785     4085424 :          idata = idata + 1
   23786     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23787     4085424 :          ipack = ipack + 1
   23788     4085424 :          pack_tmp = packed_data(ipack)
   23789     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23790     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23791     4085424 :          idata = idata + 1
   23792     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23793     4085424 :          full_data(idata) = data_tmp
   23794     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23795     4085424 :          idata = idata + 1
   23796     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23797     4085424 :          ipack = ipack + 1
   23798     4085424 :          pack_tmp = packed_data(ipack)
   23799     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23800     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23801     4085424 :          idata = idata + 1
   23802     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23803     4085424 :          full_data(idata) = data_tmp
   23804     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23805     4085424 :          idata = idata + 1
   23806     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23807     4085424 :          ipack = ipack + 1
   23808     4085424 :          pack_tmp = packed_data(ipack)
   23809     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23810     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23811     4085424 :          idata = idata + 1
   23812     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23813     4085424 :          full_data(idata) = data_tmp
   23814     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23815     4085424 :          idata = idata + 1
   23816     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23817     4085424 :          ipack = ipack + 1
   23818     4085424 :          pack_tmp = packed_data(ipack)
   23819     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23820     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23821     4085424 :          idata = idata + 1
   23822     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23823     4085424 :          full_data(idata) = data_tmp
   23824     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23825     4085424 :          idata = idata + 1
   23826     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23827     4085424 :          ipack = ipack + 1
   23828     4085424 :          pack_tmp = packed_data(ipack)
   23829     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23830     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23831     4085424 :          idata = idata + 1
   23832     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23833     4085424 :          full_data(idata) = data_tmp
   23834     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23835     4085424 :          idata = idata + 1
   23836     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23837     4085424 :          ipack = ipack + 1
   23838     4085424 :          pack_tmp = packed_data(ipack)
   23839     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23840     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23841     4085424 :          idata = idata + 1
   23842     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23843     4085424 :          full_data(idata) = data_tmp
   23844     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23845     4085424 :          idata = idata + 1
   23846     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23847     4085424 :          ipack = ipack + 1
   23848     4085424 :          pack_tmp = packed_data(ipack)
   23849     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23850     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23851     4085424 :          idata = idata + 1
   23852     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23853     4085424 :          full_data(idata) = data_tmp
   23854     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23855     4085424 :          idata = idata + 1
   23856     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23857     4085424 :          ipack = ipack + 1
   23858     4085424 :          pack_tmp = packed_data(ipack)
   23859     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23860     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23861     4085424 :          idata = idata + 1
   23862     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23863     4085424 :          full_data(idata) = data_tmp
   23864     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23865     4085424 :          idata = idata + 1
   23866     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23867     4085424 :          ipack = ipack + 1
   23868     4085424 :          pack_tmp = packed_data(ipack)
   23869     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23870     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23871     4085424 :          idata = idata + 1
   23872     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23873     4085424 :          full_data(idata) = data_tmp
   23874     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23875     4085424 :          idata = idata + 1
   23876     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23877     4085424 :          ipack = ipack + 1
   23878     4085424 :          pack_tmp = packed_data(ipack)
   23879     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23880     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23881     4085424 :          idata = idata + 1
   23882     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23883     4085424 :          full_data(idata) = data_tmp
   23884     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23885     4085424 :          idata = idata + 1
   23886     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23887     4085424 :          ipack = ipack + 1
   23888     4085424 :          pack_tmp = packed_data(ipack)
   23889     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23890     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23891     4085424 :          idata = idata + 1
   23892     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23893     4085424 :          full_data(idata) = data_tmp
   23894     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23895     4085424 :          idata = idata + 1
   23896     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23897     4085424 :          ipack = ipack + 1
   23898     4085424 :          pack_tmp = packed_data(ipack)
   23899     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23900     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23901     4085424 :          idata = idata + 1
   23902     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23903     4085424 :          full_data(idata) = data_tmp
   23904     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23905     4085424 :          idata = idata + 1
   23906     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23907     4085424 :          ipack = ipack + 1
   23908     4085424 :          pack_tmp = packed_data(ipack)
   23909     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23910     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23911     4085424 :          idata = idata + 1
   23912     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23913     4085424 :          full_data(idata) = data_tmp
   23914     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23915     4085424 :          idata = idata + 1
   23916     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23917     4085424 :          ipack = ipack + 1
   23918     4085424 :          pack_tmp = packed_data(ipack)
   23919     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23920     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23921     4085424 :          idata = idata + 1
   23922     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23923     4085424 :          full_data(idata) = data_tmp
   23924     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23925     4085424 :          idata = idata + 1
   23926     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23927     4085424 :          ipack = ipack + 1
   23928     4085424 :          pack_tmp = packed_data(ipack)
   23929     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23930     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23931     4085424 :          idata = idata + 1
   23932     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23933     4085424 :          full_data(idata) = data_tmp
   23934     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23935     4085424 :          idata = idata + 1
   23936     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23937     4085424 :          ipack = ipack + 1
   23938     4085424 :          pack_tmp = packed_data(ipack)
   23939     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23940     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23941     4085424 :          idata = idata + 1
   23942     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23943     4085424 :          full_data(idata) = data_tmp
   23944     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23945     4085424 :          idata = idata + 1
   23946     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23947     4085424 :          ipack = ipack + 1
   23948     4085424 :          pack_tmp = packed_data(ipack)
   23949     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23950     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23951     4085424 :          idata = idata + 1
   23952     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23953     4085424 :          full_data(idata) = data_tmp
   23954     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23955     4085424 :          idata = idata + 1
   23956     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23957     4085424 :          ipack = ipack + 1
   23958     4085424 :          pack_tmp = packed_data(ipack)
   23959     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23960     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23961     4085424 :          idata = idata + 1
   23962     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23963     4085424 :          full_data(idata) = data_tmp
   23964     4085424 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23965     4085424 :          idata = idata + 1
   23966     4085424 :          data_tmp = ISHFT(pack_tmp, 32)
   23967     4085424 :          ipack = ipack + 1
   23968     4085424 :          pack_tmp = packed_data(ipack)
   23969     4085424 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23970     4085424 :          pack_tmp = ISHFT(pack_tmp, -32)
   23971     4085424 :          idata = idata + 1
   23972     4085424 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23973     4085424 :          full_data(idata) = data_tmp
   23974     4171294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23975             :       END DO
   23976      341209 :       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      341209 :    END SUBROUTINE bits2ints_32
   23980             : 
   23981             : ! **************************************************************************************************
   23982             : !> \brief ...
   23983             : !> \param Ndata ...
   23984             : !> \param packed_data ...
   23985             : !> \param full_data ...
   23986             : ! **************************************************************************************************
   23987       45690 :    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       45690 :       idata = 0
   23998       45690 :       ipack = 0
   23999       45690 :       Ndata_rep = (Ndata/64)*64
   24000       45690 :       DO kdata = 1, Ndata_rep, 64
   24001      593153 :          pack_tmp = 0
   24002      593153 :          idata = idata + 1
   24003      593153 :          data_tmp = full_data(idata)
   24004      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24005      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24006      593153 :          pack_tmp = ISHFT(pack_tmp, -31)
   24007      593153 :          idata = idata + 1
   24008      593153 :          data_tmp = full_data(idata)
   24009      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24010      593153 :          data_tmp = IAND(data_tmp, mask_left(31))
   24011      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24012      593153 :          ipack = ipack + 1
   24013      593153 :          packed_data(ipack) = pack_tmp
   24014      593153 :          data_tmp = full_data(idata)
   24015      593153 :          pack_tmp = ISHFT(data_tmp, 62)
   24016      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24017      593153 :          idata = idata + 1
   24018      593153 :          data_tmp = full_data(idata)
   24019      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24020      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24021      593153 :          pack_tmp = ISHFT(pack_tmp, -29)
   24022      593153 :          idata = idata + 1
   24023      593153 :          data_tmp = full_data(idata)
   24024      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24025      593153 :          data_tmp = IAND(data_tmp, mask_left(29))
   24026      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24027      593153 :          ipack = ipack + 1
   24028      593153 :          packed_data(ipack) = pack_tmp
   24029      593153 :          data_tmp = full_data(idata)
   24030      593153 :          pack_tmp = ISHFT(data_tmp, 60)
   24031      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24032      593153 :          idata = idata + 1
   24033      593153 :          data_tmp = full_data(idata)
   24034      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24035      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24036      593153 :          pack_tmp = ISHFT(pack_tmp, -27)
   24037      593153 :          idata = idata + 1
   24038      593153 :          data_tmp = full_data(idata)
   24039      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24040      593153 :          data_tmp = IAND(data_tmp, mask_left(27))
   24041      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24042      593153 :          ipack = ipack + 1
   24043      593153 :          packed_data(ipack) = pack_tmp
   24044      593153 :          data_tmp = full_data(idata)
   24045      593153 :          pack_tmp = ISHFT(data_tmp, 58)
   24046      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24047      593153 :          idata = idata + 1
   24048      593153 :          data_tmp = full_data(idata)
   24049      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24050      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24051      593153 :          pack_tmp = ISHFT(pack_tmp, -25)
   24052      593153 :          idata = idata + 1
   24053      593153 :          data_tmp = full_data(idata)
   24054      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24055      593153 :          data_tmp = IAND(data_tmp, mask_left(25))
   24056      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24057      593153 :          ipack = ipack + 1
   24058      593153 :          packed_data(ipack) = pack_tmp
   24059      593153 :          data_tmp = full_data(idata)
   24060      593153 :          pack_tmp = ISHFT(data_tmp, 56)
   24061      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24062      593153 :          idata = idata + 1
   24063      593153 :          data_tmp = full_data(idata)
   24064      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24065      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24066      593153 :          pack_tmp = ISHFT(pack_tmp, -23)
   24067      593153 :          idata = idata + 1
   24068      593153 :          data_tmp = full_data(idata)
   24069      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24070      593153 :          data_tmp = IAND(data_tmp, mask_left(23))
   24071      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24072      593153 :          ipack = ipack + 1
   24073      593153 :          packed_data(ipack) = pack_tmp
   24074      593153 :          data_tmp = full_data(idata)
   24075      593153 :          pack_tmp = ISHFT(data_tmp, 54)
   24076      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24077      593153 :          idata = idata + 1
   24078      593153 :          data_tmp = full_data(idata)
   24079      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24080      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24081      593153 :          pack_tmp = ISHFT(pack_tmp, -21)
   24082      593153 :          idata = idata + 1
   24083      593153 :          data_tmp = full_data(idata)
   24084      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24085      593153 :          data_tmp = IAND(data_tmp, mask_left(21))
   24086      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24087      593153 :          ipack = ipack + 1
   24088      593153 :          packed_data(ipack) = pack_tmp
   24089      593153 :          data_tmp = full_data(idata)
   24090      593153 :          pack_tmp = ISHFT(data_tmp, 52)
   24091      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24092      593153 :          idata = idata + 1
   24093      593153 :          data_tmp = full_data(idata)
   24094      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24095      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24096      593153 :          pack_tmp = ISHFT(pack_tmp, -19)
   24097      593153 :          idata = idata + 1
   24098      593153 :          data_tmp = full_data(idata)
   24099      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24100      593153 :          data_tmp = IAND(data_tmp, mask_left(19))
   24101      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24102      593153 :          ipack = ipack + 1
   24103      593153 :          packed_data(ipack) = pack_tmp
   24104      593153 :          data_tmp = full_data(idata)
   24105      593153 :          pack_tmp = ISHFT(data_tmp, 50)
   24106      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24107      593153 :          idata = idata + 1
   24108      593153 :          data_tmp = full_data(idata)
   24109      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24110      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24111      593153 :          pack_tmp = ISHFT(pack_tmp, -17)
   24112      593153 :          idata = idata + 1
   24113      593153 :          data_tmp = full_data(idata)
   24114      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24115      593153 :          data_tmp = IAND(data_tmp, mask_left(17))
   24116      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24117      593153 :          ipack = ipack + 1
   24118      593153 :          packed_data(ipack) = pack_tmp
   24119      593153 :          data_tmp = full_data(idata)
   24120      593153 :          pack_tmp = ISHFT(data_tmp, 48)
   24121      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24122      593153 :          idata = idata + 1
   24123      593153 :          data_tmp = full_data(idata)
   24124      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24125      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24126      593153 :          pack_tmp = ISHFT(pack_tmp, -15)
   24127      593153 :          idata = idata + 1
   24128      593153 :          data_tmp = full_data(idata)
   24129      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24130      593153 :          data_tmp = IAND(data_tmp, mask_left(15))
   24131      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24132      593153 :          ipack = ipack + 1
   24133      593153 :          packed_data(ipack) = pack_tmp
   24134      593153 :          data_tmp = full_data(idata)
   24135      593153 :          pack_tmp = ISHFT(data_tmp, 46)
   24136      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24137      593153 :          idata = idata + 1
   24138      593153 :          data_tmp = full_data(idata)
   24139      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24140      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24141      593153 :          pack_tmp = ISHFT(pack_tmp, -13)
   24142      593153 :          idata = idata + 1
   24143      593153 :          data_tmp = full_data(idata)
   24144      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24145      593153 :          data_tmp = IAND(data_tmp, mask_left(13))
   24146      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24147      593153 :          ipack = ipack + 1
   24148      593153 :          packed_data(ipack) = pack_tmp
   24149      593153 :          data_tmp = full_data(idata)
   24150      593153 :          pack_tmp = ISHFT(data_tmp, 44)
   24151      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24152      593153 :          idata = idata + 1
   24153      593153 :          data_tmp = full_data(idata)
   24154      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24155      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24156      593153 :          pack_tmp = ISHFT(pack_tmp, -11)
   24157      593153 :          idata = idata + 1
   24158      593153 :          data_tmp = full_data(idata)
   24159      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24160      593153 :          data_tmp = IAND(data_tmp, mask_left(11))
   24161      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24162      593153 :          ipack = ipack + 1
   24163      593153 :          packed_data(ipack) = pack_tmp
   24164      593153 :          data_tmp = full_data(idata)
   24165      593153 :          pack_tmp = ISHFT(data_tmp, 42)
   24166      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24167      593153 :          idata = idata + 1
   24168      593153 :          data_tmp = full_data(idata)
   24169      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24170      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24171      593153 :          pack_tmp = ISHFT(pack_tmp, -9)
   24172      593153 :          idata = idata + 1
   24173      593153 :          data_tmp = full_data(idata)
   24174      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24175      593153 :          data_tmp = IAND(data_tmp, mask_left(9))
   24176      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24177      593153 :          ipack = ipack + 1
   24178      593153 :          packed_data(ipack) = pack_tmp
   24179      593153 :          data_tmp = full_data(idata)
   24180      593153 :          pack_tmp = ISHFT(data_tmp, 40)
   24181      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24182      593153 :          idata = idata + 1
   24183      593153 :          data_tmp = full_data(idata)
   24184      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24185      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24186      593153 :          pack_tmp = ISHFT(pack_tmp, -7)
   24187      593153 :          idata = idata + 1
   24188      593153 :          data_tmp = full_data(idata)
   24189      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24190      593153 :          data_tmp = IAND(data_tmp, mask_left(7))
   24191      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24192      593153 :          ipack = ipack + 1
   24193      593153 :          packed_data(ipack) = pack_tmp
   24194      593153 :          data_tmp = full_data(idata)
   24195      593153 :          pack_tmp = ISHFT(data_tmp, 38)
   24196      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24197      593153 :          idata = idata + 1
   24198      593153 :          data_tmp = full_data(idata)
   24199      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24200      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24201      593153 :          pack_tmp = ISHFT(pack_tmp, -5)
   24202      593153 :          idata = idata + 1
   24203      593153 :          data_tmp = full_data(idata)
   24204      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24205      593153 :          data_tmp = IAND(data_tmp, mask_left(5))
   24206      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24207      593153 :          ipack = ipack + 1
   24208      593153 :          packed_data(ipack) = pack_tmp
   24209      593153 :          data_tmp = full_data(idata)
   24210      593153 :          pack_tmp = ISHFT(data_tmp, 36)
   24211      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24212      593153 :          idata = idata + 1
   24213      593153 :          data_tmp = full_data(idata)
   24214      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24215      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24216      593153 :          pack_tmp = ISHFT(pack_tmp, -3)
   24217      593153 :          idata = idata + 1
   24218      593153 :          data_tmp = full_data(idata)
   24219      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24220      593153 :          data_tmp = IAND(data_tmp, mask_left(3))
   24221      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24222      593153 :          ipack = ipack + 1
   24223      593153 :          packed_data(ipack) = pack_tmp
   24224      593153 :          data_tmp = full_data(idata)
   24225      593153 :          pack_tmp = ISHFT(data_tmp, 34)
   24226      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24227      593153 :          idata = idata + 1
   24228      593153 :          data_tmp = full_data(idata)
   24229      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24230      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24231      593153 :          pack_tmp = ISHFT(pack_tmp, -1)
   24232      593153 :          idata = idata + 1
   24233      593153 :          data_tmp = full_data(idata)
   24234      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24235      593153 :          data_tmp = IAND(data_tmp, mask_left(1))
   24236      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24237      593153 :          ipack = ipack + 1
   24238      593153 :          packed_data(ipack) = pack_tmp
   24239      593153 :          data_tmp = full_data(idata)
   24240      593153 :          pack_tmp = ISHFT(data_tmp, 32)
   24241      593153 :          pack_tmp = ISHFT(pack_tmp, -32)
   24242      593153 :          idata = idata + 1
   24243      593153 :          data_tmp = full_data(idata)
   24244      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24245      593153 :          data_tmp = IAND(data_tmp, mask_left(32))
   24246      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24247      593153 :          ipack = ipack + 1
   24248      593153 :          packed_data(ipack) = pack_tmp
   24249      593153 :          data_tmp = full_data(idata)
   24250      593153 :          pack_tmp = ISHFT(data_tmp, 63)
   24251      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24252      593153 :          idata = idata + 1
   24253      593153 :          data_tmp = full_data(idata)
   24254      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24255      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24256      593153 :          pack_tmp = ISHFT(pack_tmp, -30)
   24257      593153 :          idata = idata + 1
   24258      593153 :          data_tmp = full_data(idata)
   24259      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24260      593153 :          data_tmp = IAND(data_tmp, mask_left(30))
   24261      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24262      593153 :          ipack = ipack + 1
   24263      593153 :          packed_data(ipack) = pack_tmp
   24264      593153 :          data_tmp = full_data(idata)
   24265      593153 :          pack_tmp = ISHFT(data_tmp, 61)
   24266      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24267      593153 :          idata = idata + 1
   24268      593153 :          data_tmp = full_data(idata)
   24269      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24270      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24271      593153 :          pack_tmp = ISHFT(pack_tmp, -28)
   24272      593153 :          idata = idata + 1
   24273      593153 :          data_tmp = full_data(idata)
   24274      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24275      593153 :          data_tmp = IAND(data_tmp, mask_left(28))
   24276      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24277      593153 :          ipack = ipack + 1
   24278      593153 :          packed_data(ipack) = pack_tmp
   24279      593153 :          data_tmp = full_data(idata)
   24280      593153 :          pack_tmp = ISHFT(data_tmp, 59)
   24281      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24282      593153 :          idata = idata + 1
   24283      593153 :          data_tmp = full_data(idata)
   24284      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24285      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24286      593153 :          pack_tmp = ISHFT(pack_tmp, -26)
   24287      593153 :          idata = idata + 1
   24288      593153 :          data_tmp = full_data(idata)
   24289      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24290      593153 :          data_tmp = IAND(data_tmp, mask_left(26))
   24291      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24292      593153 :          ipack = ipack + 1
   24293      593153 :          packed_data(ipack) = pack_tmp
   24294      593153 :          data_tmp = full_data(idata)
   24295      593153 :          pack_tmp = ISHFT(data_tmp, 57)
   24296      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24297      593153 :          idata = idata + 1
   24298      593153 :          data_tmp = full_data(idata)
   24299      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24300      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24301      593153 :          pack_tmp = ISHFT(pack_tmp, -24)
   24302      593153 :          idata = idata + 1
   24303      593153 :          data_tmp = full_data(idata)
   24304      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24305      593153 :          data_tmp = IAND(data_tmp, mask_left(24))
   24306      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24307      593153 :          ipack = ipack + 1
   24308      593153 :          packed_data(ipack) = pack_tmp
   24309      593153 :          data_tmp = full_data(idata)
   24310      593153 :          pack_tmp = ISHFT(data_tmp, 55)
   24311      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24312      593153 :          idata = idata + 1
   24313      593153 :          data_tmp = full_data(idata)
   24314      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24315      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24316      593153 :          pack_tmp = ISHFT(pack_tmp, -22)
   24317      593153 :          idata = idata + 1
   24318      593153 :          data_tmp = full_data(idata)
   24319      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24320      593153 :          data_tmp = IAND(data_tmp, mask_left(22))
   24321      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24322      593153 :          ipack = ipack + 1
   24323      593153 :          packed_data(ipack) = pack_tmp
   24324      593153 :          data_tmp = full_data(idata)
   24325      593153 :          pack_tmp = ISHFT(data_tmp, 53)
   24326      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24327      593153 :          idata = idata + 1
   24328      593153 :          data_tmp = full_data(idata)
   24329      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24330      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24331      593153 :          pack_tmp = ISHFT(pack_tmp, -20)
   24332      593153 :          idata = idata + 1
   24333      593153 :          data_tmp = full_data(idata)
   24334      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24335      593153 :          data_tmp = IAND(data_tmp, mask_left(20))
   24336      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24337      593153 :          ipack = ipack + 1
   24338      593153 :          packed_data(ipack) = pack_tmp
   24339      593153 :          data_tmp = full_data(idata)
   24340      593153 :          pack_tmp = ISHFT(data_tmp, 51)
   24341      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24342      593153 :          idata = idata + 1
   24343      593153 :          data_tmp = full_data(idata)
   24344      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24345      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24346      593153 :          pack_tmp = ISHFT(pack_tmp, -18)
   24347      593153 :          idata = idata + 1
   24348      593153 :          data_tmp = full_data(idata)
   24349      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24350      593153 :          data_tmp = IAND(data_tmp, mask_left(18))
   24351      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24352      593153 :          ipack = ipack + 1
   24353      593153 :          packed_data(ipack) = pack_tmp
   24354      593153 :          data_tmp = full_data(idata)
   24355      593153 :          pack_tmp = ISHFT(data_tmp, 49)
   24356      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24357      593153 :          idata = idata + 1
   24358      593153 :          data_tmp = full_data(idata)
   24359      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24360      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24361      593153 :          pack_tmp = ISHFT(pack_tmp, -16)
   24362      593153 :          idata = idata + 1
   24363      593153 :          data_tmp = full_data(idata)
   24364      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24365      593153 :          data_tmp = IAND(data_tmp, mask_left(16))
   24366      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24367      593153 :          ipack = ipack + 1
   24368      593153 :          packed_data(ipack) = pack_tmp
   24369      593153 :          data_tmp = full_data(idata)
   24370      593153 :          pack_tmp = ISHFT(data_tmp, 47)
   24371      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24372      593153 :          idata = idata + 1
   24373      593153 :          data_tmp = full_data(idata)
   24374      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24375      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24376      593153 :          pack_tmp = ISHFT(pack_tmp, -14)
   24377      593153 :          idata = idata + 1
   24378      593153 :          data_tmp = full_data(idata)
   24379      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24380      593153 :          data_tmp = IAND(data_tmp, mask_left(14))
   24381      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24382      593153 :          ipack = ipack + 1
   24383      593153 :          packed_data(ipack) = pack_tmp
   24384      593153 :          data_tmp = full_data(idata)
   24385      593153 :          pack_tmp = ISHFT(data_tmp, 45)
   24386      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24387      593153 :          idata = idata + 1
   24388      593153 :          data_tmp = full_data(idata)
   24389      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24390      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24391      593153 :          pack_tmp = ISHFT(pack_tmp, -12)
   24392      593153 :          idata = idata + 1
   24393      593153 :          data_tmp = full_data(idata)
   24394      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24395      593153 :          data_tmp = IAND(data_tmp, mask_left(12))
   24396      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24397      593153 :          ipack = ipack + 1
   24398      593153 :          packed_data(ipack) = pack_tmp
   24399      593153 :          data_tmp = full_data(idata)
   24400      593153 :          pack_tmp = ISHFT(data_tmp, 43)
   24401      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24402      593153 :          idata = idata + 1
   24403      593153 :          data_tmp = full_data(idata)
   24404      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24405      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24406      593153 :          pack_tmp = ISHFT(pack_tmp, -10)
   24407      593153 :          idata = idata + 1
   24408      593153 :          data_tmp = full_data(idata)
   24409      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24410      593153 :          data_tmp = IAND(data_tmp, mask_left(10))
   24411      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24412      593153 :          ipack = ipack + 1
   24413      593153 :          packed_data(ipack) = pack_tmp
   24414      593153 :          data_tmp = full_data(idata)
   24415      593153 :          pack_tmp = ISHFT(data_tmp, 41)
   24416      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24417      593153 :          idata = idata + 1
   24418      593153 :          data_tmp = full_data(idata)
   24419      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24420      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24421      593153 :          pack_tmp = ISHFT(pack_tmp, -8)
   24422      593153 :          idata = idata + 1
   24423      593153 :          data_tmp = full_data(idata)
   24424      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24425      593153 :          data_tmp = IAND(data_tmp, mask_left(8))
   24426      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24427      593153 :          ipack = ipack + 1
   24428      593153 :          packed_data(ipack) = pack_tmp
   24429      593153 :          data_tmp = full_data(idata)
   24430      593153 :          pack_tmp = ISHFT(data_tmp, 39)
   24431      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24432      593153 :          idata = idata + 1
   24433      593153 :          data_tmp = full_data(idata)
   24434      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24435      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24436      593153 :          pack_tmp = ISHFT(pack_tmp, -6)
   24437      593153 :          idata = idata + 1
   24438      593153 :          data_tmp = full_data(idata)
   24439      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24440      593153 :          data_tmp = IAND(data_tmp, mask_left(6))
   24441      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24442      593153 :          ipack = ipack + 1
   24443      593153 :          packed_data(ipack) = pack_tmp
   24444      593153 :          data_tmp = full_data(idata)
   24445      593153 :          pack_tmp = ISHFT(data_tmp, 37)
   24446      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24447      593153 :          idata = idata + 1
   24448      593153 :          data_tmp = full_data(idata)
   24449      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24450      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24451      593153 :          pack_tmp = ISHFT(pack_tmp, -4)
   24452      593153 :          idata = idata + 1
   24453      593153 :          data_tmp = full_data(idata)
   24454      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24455      593153 :          data_tmp = IAND(data_tmp, mask_left(4))
   24456      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24457      593153 :          ipack = ipack + 1
   24458      593153 :          packed_data(ipack) = pack_tmp
   24459      593153 :          data_tmp = full_data(idata)
   24460      593153 :          pack_tmp = ISHFT(data_tmp, 35)
   24461      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24462      593153 :          idata = idata + 1
   24463      593153 :          data_tmp = full_data(idata)
   24464      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24465      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24466      593153 :          pack_tmp = ISHFT(pack_tmp, -2)
   24467      593153 :          idata = idata + 1
   24468      593153 :          data_tmp = full_data(idata)
   24469      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24470      593153 :          data_tmp = IAND(data_tmp, mask_left(2))
   24471      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24472      593153 :          ipack = ipack + 1
   24473      593153 :          packed_data(ipack) = pack_tmp
   24474      593153 :          data_tmp = full_data(idata)
   24475      593153 :          pack_tmp = ISHFT(data_tmp, 33)
   24476      593153 :          pack_tmp = ISHFT(pack_tmp, -33)
   24477      593153 :          idata = idata + 1
   24478      593153 :          data_tmp = full_data(idata)
   24479      593153 :          data_tmp = ISHFT(data_tmp, 31)
   24480      593153 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24481             :          pack_tmp = ISHFT(pack_tmp, 0)
   24482      593153 :          pack_tmp = ISHFT(pack_tmp, 0)
   24483      593153 :          ipack = ipack + 1
   24484      595573 :          packed_data(ipack) = pack_tmp
   24485             :       END DO
   24486       45690 :       IF (Ndata_rep < Ndata) THEN
   24487       16222 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24488             :       END IF
   24489       45690 :    END SUBROUTINE ints2bits_33
   24490             : 
   24491             : ! **************************************************************************************************
   24492             : !> \brief ...
   24493             : !> \param Ndata ...
   24494             : !> \param packed_data ...
   24495             : !> \param full_data ...
   24496             : ! **************************************************************************************************
   24497      248459 :    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      248459 :       ipack = 0
   24508      248459 :       idata = 0
   24509      248459 :       pack_tmp = 0
   24510      248459 :       Ndata_rep = (Ndata/64)*64
   24511      248459 :       DO kdata = 1, Ndata_rep, 64
   24512     3035465 :          idata = idata + 1
   24513     3035465 :          data_tmp = ISHFT(pack_tmp, 33)
   24514     3035465 :          ipack = ipack + 1
   24515     3035465 :          pack_tmp = packed_data(ipack)
   24516     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   24517     3035465 :          pack_tmp = ISHFT(pack_tmp, -33)
   24518     3035465 :          idata = idata + 1
   24519     3035465 :          data_tmp = ISHFT(pack_tmp, 2)
   24520     3035465 :          ipack = ipack + 1
   24521     3035465 :          pack_tmp = packed_data(ipack)
   24522     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   24523     3035465 :          pack_tmp = ISHFT(pack_tmp, -2)
   24524     3035465 :          idata = idata + 1
   24525     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24526     3035465 :          full_data(idata) = data_tmp
   24527     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24528     3035465 :          idata = idata + 1
   24529     3035465 :          data_tmp = ISHFT(pack_tmp, 4)
   24530     3035465 :          ipack = ipack + 1
   24531     3035465 :          pack_tmp = packed_data(ipack)
   24532     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   24533     3035465 :          pack_tmp = ISHFT(pack_tmp, -4)
   24534     3035465 :          idata = idata + 1
   24535     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24536     3035465 :          full_data(idata) = data_tmp
   24537     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24538     3035465 :          idata = idata + 1
   24539     3035465 :          data_tmp = ISHFT(pack_tmp, 6)
   24540     3035465 :          ipack = ipack + 1
   24541     3035465 :          pack_tmp = packed_data(ipack)
   24542     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   24543     3035465 :          pack_tmp = ISHFT(pack_tmp, -6)
   24544     3035465 :          idata = idata + 1
   24545     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24546     3035465 :          full_data(idata) = data_tmp
   24547     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24548     3035465 :          idata = idata + 1
   24549     3035465 :          data_tmp = ISHFT(pack_tmp, 8)
   24550     3035465 :          ipack = ipack + 1
   24551     3035465 :          pack_tmp = packed_data(ipack)
   24552     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   24553     3035465 :          pack_tmp = ISHFT(pack_tmp, -8)
   24554     3035465 :          idata = idata + 1
   24555     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24556     3035465 :          full_data(idata) = data_tmp
   24557     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24558     3035465 :          idata = idata + 1
   24559     3035465 :          data_tmp = ISHFT(pack_tmp, 10)
   24560     3035465 :          ipack = ipack + 1
   24561     3035465 :          pack_tmp = packed_data(ipack)
   24562     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   24563     3035465 :          pack_tmp = ISHFT(pack_tmp, -10)
   24564     3035465 :          idata = idata + 1
   24565     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24566     3035465 :          full_data(idata) = data_tmp
   24567     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24568     3035465 :          idata = idata + 1
   24569     3035465 :          data_tmp = ISHFT(pack_tmp, 12)
   24570     3035465 :          ipack = ipack + 1
   24571     3035465 :          pack_tmp = packed_data(ipack)
   24572     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   24573     3035465 :          pack_tmp = ISHFT(pack_tmp, -12)
   24574     3035465 :          idata = idata + 1
   24575     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24576     3035465 :          full_data(idata) = data_tmp
   24577     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24578     3035465 :          idata = idata + 1
   24579     3035465 :          data_tmp = ISHFT(pack_tmp, 14)
   24580     3035465 :          ipack = ipack + 1
   24581     3035465 :          pack_tmp = packed_data(ipack)
   24582     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   24583     3035465 :          pack_tmp = ISHFT(pack_tmp, -14)
   24584     3035465 :          idata = idata + 1
   24585     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24586     3035465 :          full_data(idata) = data_tmp
   24587     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24588     3035465 :          idata = idata + 1
   24589     3035465 :          data_tmp = ISHFT(pack_tmp, 16)
   24590     3035465 :          ipack = ipack + 1
   24591     3035465 :          pack_tmp = packed_data(ipack)
   24592     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   24593     3035465 :          pack_tmp = ISHFT(pack_tmp, -16)
   24594     3035465 :          idata = idata + 1
   24595     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24596     3035465 :          full_data(idata) = data_tmp
   24597     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24598     3035465 :          idata = idata + 1
   24599     3035465 :          data_tmp = ISHFT(pack_tmp, 18)
   24600     3035465 :          ipack = ipack + 1
   24601     3035465 :          pack_tmp = packed_data(ipack)
   24602     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   24603     3035465 :          pack_tmp = ISHFT(pack_tmp, -18)
   24604     3035465 :          idata = idata + 1
   24605     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24606     3035465 :          full_data(idata) = data_tmp
   24607     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24608     3035465 :          idata = idata + 1
   24609     3035465 :          data_tmp = ISHFT(pack_tmp, 20)
   24610     3035465 :          ipack = ipack + 1
   24611     3035465 :          pack_tmp = packed_data(ipack)
   24612     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   24613     3035465 :          pack_tmp = ISHFT(pack_tmp, -20)
   24614     3035465 :          idata = idata + 1
   24615     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24616     3035465 :          full_data(idata) = data_tmp
   24617     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24618     3035465 :          idata = idata + 1
   24619     3035465 :          data_tmp = ISHFT(pack_tmp, 22)
   24620     3035465 :          ipack = ipack + 1
   24621     3035465 :          pack_tmp = packed_data(ipack)
   24622     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   24623     3035465 :          pack_tmp = ISHFT(pack_tmp, -22)
   24624     3035465 :          idata = idata + 1
   24625     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24626     3035465 :          full_data(idata) = data_tmp
   24627     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24628     3035465 :          idata = idata + 1
   24629     3035465 :          data_tmp = ISHFT(pack_tmp, 24)
   24630     3035465 :          ipack = ipack + 1
   24631     3035465 :          pack_tmp = packed_data(ipack)
   24632     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   24633     3035465 :          pack_tmp = ISHFT(pack_tmp, -24)
   24634     3035465 :          idata = idata + 1
   24635     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24636     3035465 :          full_data(idata) = data_tmp
   24637     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24638     3035465 :          idata = idata + 1
   24639     3035465 :          data_tmp = ISHFT(pack_tmp, 26)
   24640     3035465 :          ipack = ipack + 1
   24641     3035465 :          pack_tmp = packed_data(ipack)
   24642     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   24643     3035465 :          pack_tmp = ISHFT(pack_tmp, -26)
   24644     3035465 :          idata = idata + 1
   24645     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24646     3035465 :          full_data(idata) = data_tmp
   24647     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24648     3035465 :          idata = idata + 1
   24649     3035465 :          data_tmp = ISHFT(pack_tmp, 28)
   24650     3035465 :          ipack = ipack + 1
   24651     3035465 :          pack_tmp = packed_data(ipack)
   24652     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   24653     3035465 :          pack_tmp = ISHFT(pack_tmp, -28)
   24654     3035465 :          idata = idata + 1
   24655     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24656     3035465 :          full_data(idata) = data_tmp
   24657     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24658     3035465 :          idata = idata + 1
   24659     3035465 :          data_tmp = ISHFT(pack_tmp, 30)
   24660     3035465 :          ipack = ipack + 1
   24661     3035465 :          pack_tmp = packed_data(ipack)
   24662     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   24663     3035465 :          pack_tmp = ISHFT(pack_tmp, -30)
   24664     3035465 :          idata = idata + 1
   24665     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24666     3035465 :          full_data(idata) = data_tmp
   24667     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24668     3035465 :          idata = idata + 1
   24669     3035465 :          data_tmp = ISHFT(pack_tmp, 32)
   24670     3035465 :          ipack = ipack + 1
   24671     3035465 :          pack_tmp = packed_data(ipack)
   24672     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   24673     3035465 :          pack_tmp = ISHFT(pack_tmp, -32)
   24674     3035465 :          idata = idata + 1
   24675     3035465 :          data_tmp = ISHFT(pack_tmp, 1)
   24676     3035465 :          ipack = ipack + 1
   24677     3035465 :          pack_tmp = packed_data(ipack)
   24678     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   24679     3035465 :          pack_tmp = ISHFT(pack_tmp, -1)
   24680     3035465 :          idata = idata + 1
   24681     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24682     3035465 :          full_data(idata) = data_tmp
   24683     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24684     3035465 :          idata = idata + 1
   24685     3035465 :          data_tmp = ISHFT(pack_tmp, 3)
   24686     3035465 :          ipack = ipack + 1
   24687     3035465 :          pack_tmp = packed_data(ipack)
   24688     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   24689     3035465 :          pack_tmp = ISHFT(pack_tmp, -3)
   24690     3035465 :          idata = idata + 1
   24691     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24692     3035465 :          full_data(idata) = data_tmp
   24693     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24694     3035465 :          idata = idata + 1
   24695     3035465 :          data_tmp = ISHFT(pack_tmp, 5)
   24696     3035465 :          ipack = ipack + 1
   24697     3035465 :          pack_tmp = packed_data(ipack)
   24698     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   24699     3035465 :          pack_tmp = ISHFT(pack_tmp, -5)
   24700     3035465 :          idata = idata + 1
   24701     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24702     3035465 :          full_data(idata) = data_tmp
   24703     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24704     3035465 :          idata = idata + 1
   24705     3035465 :          data_tmp = ISHFT(pack_tmp, 7)
   24706     3035465 :          ipack = ipack + 1
   24707     3035465 :          pack_tmp = packed_data(ipack)
   24708     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   24709     3035465 :          pack_tmp = ISHFT(pack_tmp, -7)
   24710     3035465 :          idata = idata + 1
   24711     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24712     3035465 :          full_data(idata) = data_tmp
   24713     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24714     3035465 :          idata = idata + 1
   24715     3035465 :          data_tmp = ISHFT(pack_tmp, 9)
   24716     3035465 :          ipack = ipack + 1
   24717     3035465 :          pack_tmp = packed_data(ipack)
   24718     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   24719     3035465 :          pack_tmp = ISHFT(pack_tmp, -9)
   24720     3035465 :          idata = idata + 1
   24721     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24722     3035465 :          full_data(idata) = data_tmp
   24723     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24724     3035465 :          idata = idata + 1
   24725     3035465 :          data_tmp = ISHFT(pack_tmp, 11)
   24726     3035465 :          ipack = ipack + 1
   24727     3035465 :          pack_tmp = packed_data(ipack)
   24728     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   24729     3035465 :          pack_tmp = ISHFT(pack_tmp, -11)
   24730     3035465 :          idata = idata + 1
   24731     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24732     3035465 :          full_data(idata) = data_tmp
   24733     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24734     3035465 :          idata = idata + 1
   24735     3035465 :          data_tmp = ISHFT(pack_tmp, 13)
   24736     3035465 :          ipack = ipack + 1
   24737     3035465 :          pack_tmp = packed_data(ipack)
   24738     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   24739     3035465 :          pack_tmp = ISHFT(pack_tmp, -13)
   24740     3035465 :          idata = idata + 1
   24741     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24742     3035465 :          full_data(idata) = data_tmp
   24743     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24744     3035465 :          idata = idata + 1
   24745     3035465 :          data_tmp = ISHFT(pack_tmp, 15)
   24746     3035465 :          ipack = ipack + 1
   24747     3035465 :          pack_tmp = packed_data(ipack)
   24748     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   24749     3035465 :          pack_tmp = ISHFT(pack_tmp, -15)
   24750     3035465 :          idata = idata + 1
   24751     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24752     3035465 :          full_data(idata) = data_tmp
   24753     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24754     3035465 :          idata = idata + 1
   24755     3035465 :          data_tmp = ISHFT(pack_tmp, 17)
   24756     3035465 :          ipack = ipack + 1
   24757     3035465 :          pack_tmp = packed_data(ipack)
   24758     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   24759     3035465 :          pack_tmp = ISHFT(pack_tmp, -17)
   24760     3035465 :          idata = idata + 1
   24761     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24762     3035465 :          full_data(idata) = data_tmp
   24763     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24764     3035465 :          idata = idata + 1
   24765     3035465 :          data_tmp = ISHFT(pack_tmp, 19)
   24766     3035465 :          ipack = ipack + 1
   24767     3035465 :          pack_tmp = packed_data(ipack)
   24768     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   24769     3035465 :          pack_tmp = ISHFT(pack_tmp, -19)
   24770     3035465 :          idata = idata + 1
   24771     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24772     3035465 :          full_data(idata) = data_tmp
   24773     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24774     3035465 :          idata = idata + 1
   24775     3035465 :          data_tmp = ISHFT(pack_tmp, 21)
   24776     3035465 :          ipack = ipack + 1
   24777     3035465 :          pack_tmp = packed_data(ipack)
   24778     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   24779     3035465 :          pack_tmp = ISHFT(pack_tmp, -21)
   24780     3035465 :          idata = idata + 1
   24781     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24782     3035465 :          full_data(idata) = data_tmp
   24783     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24784     3035465 :          idata = idata + 1
   24785     3035465 :          data_tmp = ISHFT(pack_tmp, 23)
   24786     3035465 :          ipack = ipack + 1
   24787     3035465 :          pack_tmp = packed_data(ipack)
   24788     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   24789     3035465 :          pack_tmp = ISHFT(pack_tmp, -23)
   24790     3035465 :          idata = idata + 1
   24791     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24792     3035465 :          full_data(idata) = data_tmp
   24793     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24794     3035465 :          idata = idata + 1
   24795     3035465 :          data_tmp = ISHFT(pack_tmp, 25)
   24796     3035465 :          ipack = ipack + 1
   24797     3035465 :          pack_tmp = packed_data(ipack)
   24798     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   24799     3035465 :          pack_tmp = ISHFT(pack_tmp, -25)
   24800     3035465 :          idata = idata + 1
   24801     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24802     3035465 :          full_data(idata) = data_tmp
   24803     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24804     3035465 :          idata = idata + 1
   24805     3035465 :          data_tmp = ISHFT(pack_tmp, 27)
   24806     3035465 :          ipack = ipack + 1
   24807     3035465 :          pack_tmp = packed_data(ipack)
   24808     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   24809     3035465 :          pack_tmp = ISHFT(pack_tmp, -27)
   24810     3035465 :          idata = idata + 1
   24811     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24812     3035465 :          full_data(idata) = data_tmp
   24813     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24814     3035465 :          idata = idata + 1
   24815     3035465 :          data_tmp = ISHFT(pack_tmp, 29)
   24816     3035465 :          ipack = ipack + 1
   24817     3035465 :          pack_tmp = packed_data(ipack)
   24818     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   24819     3035465 :          pack_tmp = ISHFT(pack_tmp, -29)
   24820     3035465 :          idata = idata + 1
   24821     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24822     3035465 :          full_data(idata) = data_tmp
   24823     3035465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24824     3035465 :          idata = idata + 1
   24825     3035465 :          data_tmp = ISHFT(pack_tmp, 31)
   24826     3035465 :          ipack = ipack + 1
   24827     3035465 :          pack_tmp = packed_data(ipack)
   24828     3035465 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   24829     3035465 :          pack_tmp = ISHFT(pack_tmp, -31)
   24830     3035465 :          idata = idata + 1
   24831     3035465 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24832     3035465 :          full_data(idata) = data_tmp
   24833     3052159 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24834             :       END DO
   24835      248459 :       IF (Ndata_rep < Ndata) THEN
   24836      110574 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24837             :       END IF
   24838      248459 :    END SUBROUTINE bits2ints_33
   24839             : 
   24840             : ! **************************************************************************************************
   24841             : !> \brief ...
   24842             : !> \param Ndata ...
   24843             : !> \param packed_data ...
   24844             : !> \param full_data ...
   24845             : ! **************************************************************************************************
   24846       41432 :    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       41432 :       idata = 0
   24857       41432 :       ipack = 0
   24858       41432 :       Ndata_rep = (Ndata/64)*64
   24859       41432 :       DO kdata = 1, Ndata_rep, 64
   24860      550394 :          pack_tmp = 0
   24861      550394 :          idata = idata + 1
   24862      550394 :          data_tmp = full_data(idata)
   24863      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24864      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24865      550394 :          pack_tmp = ISHFT(pack_tmp, -30)
   24866      550394 :          idata = idata + 1
   24867      550394 :          data_tmp = full_data(idata)
   24868      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24869      550394 :          data_tmp = IAND(data_tmp, mask_left(30))
   24870      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24871      550394 :          ipack = ipack + 1
   24872      550394 :          packed_data(ipack) = pack_tmp
   24873      550394 :          data_tmp = full_data(idata)
   24874      550394 :          pack_tmp = ISHFT(data_tmp, 60)
   24875      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24876      550394 :          idata = idata + 1
   24877      550394 :          data_tmp = full_data(idata)
   24878      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24879      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24880      550394 :          pack_tmp = ISHFT(pack_tmp, -26)
   24881      550394 :          idata = idata + 1
   24882      550394 :          data_tmp = full_data(idata)
   24883      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24884      550394 :          data_tmp = IAND(data_tmp, mask_left(26))
   24885      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24886      550394 :          ipack = ipack + 1
   24887      550394 :          packed_data(ipack) = pack_tmp
   24888      550394 :          data_tmp = full_data(idata)
   24889      550394 :          pack_tmp = ISHFT(data_tmp, 56)
   24890      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24891      550394 :          idata = idata + 1
   24892      550394 :          data_tmp = full_data(idata)
   24893      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24894      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24895      550394 :          pack_tmp = ISHFT(pack_tmp, -22)
   24896      550394 :          idata = idata + 1
   24897      550394 :          data_tmp = full_data(idata)
   24898      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24899      550394 :          data_tmp = IAND(data_tmp, mask_left(22))
   24900      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24901      550394 :          ipack = ipack + 1
   24902      550394 :          packed_data(ipack) = pack_tmp
   24903      550394 :          data_tmp = full_data(idata)
   24904      550394 :          pack_tmp = ISHFT(data_tmp, 52)
   24905      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24906      550394 :          idata = idata + 1
   24907      550394 :          data_tmp = full_data(idata)
   24908      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24909      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24910      550394 :          pack_tmp = ISHFT(pack_tmp, -18)
   24911      550394 :          idata = idata + 1
   24912      550394 :          data_tmp = full_data(idata)
   24913      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24914      550394 :          data_tmp = IAND(data_tmp, mask_left(18))
   24915      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24916      550394 :          ipack = ipack + 1
   24917      550394 :          packed_data(ipack) = pack_tmp
   24918      550394 :          data_tmp = full_data(idata)
   24919      550394 :          pack_tmp = ISHFT(data_tmp, 48)
   24920      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24921      550394 :          idata = idata + 1
   24922      550394 :          data_tmp = full_data(idata)
   24923      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24924      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24925      550394 :          pack_tmp = ISHFT(pack_tmp, -14)
   24926      550394 :          idata = idata + 1
   24927      550394 :          data_tmp = full_data(idata)
   24928      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24929      550394 :          data_tmp = IAND(data_tmp, mask_left(14))
   24930      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24931      550394 :          ipack = ipack + 1
   24932      550394 :          packed_data(ipack) = pack_tmp
   24933      550394 :          data_tmp = full_data(idata)
   24934      550394 :          pack_tmp = ISHFT(data_tmp, 44)
   24935      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24936      550394 :          idata = idata + 1
   24937      550394 :          data_tmp = full_data(idata)
   24938      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24939      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24940      550394 :          pack_tmp = ISHFT(pack_tmp, -10)
   24941      550394 :          idata = idata + 1
   24942      550394 :          data_tmp = full_data(idata)
   24943      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24944      550394 :          data_tmp = IAND(data_tmp, mask_left(10))
   24945      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24946      550394 :          ipack = ipack + 1
   24947      550394 :          packed_data(ipack) = pack_tmp
   24948      550394 :          data_tmp = full_data(idata)
   24949      550394 :          pack_tmp = ISHFT(data_tmp, 40)
   24950      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24951      550394 :          idata = idata + 1
   24952      550394 :          data_tmp = full_data(idata)
   24953      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24954      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24955      550394 :          pack_tmp = ISHFT(pack_tmp, -6)
   24956      550394 :          idata = idata + 1
   24957      550394 :          data_tmp = full_data(idata)
   24958      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24959      550394 :          data_tmp = IAND(data_tmp, mask_left(6))
   24960      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24961      550394 :          ipack = ipack + 1
   24962      550394 :          packed_data(ipack) = pack_tmp
   24963      550394 :          data_tmp = full_data(idata)
   24964      550394 :          pack_tmp = ISHFT(data_tmp, 36)
   24965      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24966      550394 :          idata = idata + 1
   24967      550394 :          data_tmp = full_data(idata)
   24968      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24969      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24970      550394 :          pack_tmp = ISHFT(pack_tmp, -2)
   24971      550394 :          idata = idata + 1
   24972      550394 :          data_tmp = full_data(idata)
   24973      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24974      550394 :          data_tmp = IAND(data_tmp, mask_left(2))
   24975      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24976      550394 :          ipack = ipack + 1
   24977      550394 :          packed_data(ipack) = pack_tmp
   24978      550394 :          data_tmp = full_data(idata)
   24979      550394 :          pack_tmp = ISHFT(data_tmp, 32)
   24980      550394 :          pack_tmp = ISHFT(pack_tmp, -32)
   24981      550394 :          idata = idata + 1
   24982      550394 :          data_tmp = full_data(idata)
   24983      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24984      550394 :          data_tmp = IAND(data_tmp, mask_left(32))
   24985      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24986      550394 :          ipack = ipack + 1
   24987      550394 :          packed_data(ipack) = pack_tmp
   24988      550394 :          data_tmp = full_data(idata)
   24989      550394 :          pack_tmp = ISHFT(data_tmp, 62)
   24990      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   24991      550394 :          idata = idata + 1
   24992      550394 :          data_tmp = full_data(idata)
   24993      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24994      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24995      550394 :          pack_tmp = ISHFT(pack_tmp, -28)
   24996      550394 :          idata = idata + 1
   24997      550394 :          data_tmp = full_data(idata)
   24998      550394 :          data_tmp = ISHFT(data_tmp, 30)
   24999      550394 :          data_tmp = IAND(data_tmp, mask_left(28))
   25000      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25001      550394 :          ipack = ipack + 1
   25002      550394 :          packed_data(ipack) = pack_tmp
   25003      550394 :          data_tmp = full_data(idata)
   25004      550394 :          pack_tmp = ISHFT(data_tmp, 58)
   25005      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25006      550394 :          idata = idata + 1
   25007      550394 :          data_tmp = full_data(idata)
   25008      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25009      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25010      550394 :          pack_tmp = ISHFT(pack_tmp, -24)
   25011      550394 :          idata = idata + 1
   25012      550394 :          data_tmp = full_data(idata)
   25013      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25014      550394 :          data_tmp = IAND(data_tmp, mask_left(24))
   25015      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25016      550394 :          ipack = ipack + 1
   25017      550394 :          packed_data(ipack) = pack_tmp
   25018      550394 :          data_tmp = full_data(idata)
   25019      550394 :          pack_tmp = ISHFT(data_tmp, 54)
   25020      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25021      550394 :          idata = idata + 1
   25022      550394 :          data_tmp = full_data(idata)
   25023      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25024      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25025      550394 :          pack_tmp = ISHFT(pack_tmp, -20)
   25026      550394 :          idata = idata + 1
   25027      550394 :          data_tmp = full_data(idata)
   25028      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25029      550394 :          data_tmp = IAND(data_tmp, mask_left(20))
   25030      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25031      550394 :          ipack = ipack + 1
   25032      550394 :          packed_data(ipack) = pack_tmp
   25033      550394 :          data_tmp = full_data(idata)
   25034      550394 :          pack_tmp = ISHFT(data_tmp, 50)
   25035      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25036      550394 :          idata = idata + 1
   25037      550394 :          data_tmp = full_data(idata)
   25038      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25039      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25040      550394 :          pack_tmp = ISHFT(pack_tmp, -16)
   25041      550394 :          idata = idata + 1
   25042      550394 :          data_tmp = full_data(idata)
   25043      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25044      550394 :          data_tmp = IAND(data_tmp, mask_left(16))
   25045      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25046      550394 :          ipack = ipack + 1
   25047      550394 :          packed_data(ipack) = pack_tmp
   25048      550394 :          data_tmp = full_data(idata)
   25049      550394 :          pack_tmp = ISHFT(data_tmp, 46)
   25050      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25051      550394 :          idata = idata + 1
   25052      550394 :          data_tmp = full_data(idata)
   25053      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25054      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25055      550394 :          pack_tmp = ISHFT(pack_tmp, -12)
   25056      550394 :          idata = idata + 1
   25057      550394 :          data_tmp = full_data(idata)
   25058      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25059      550394 :          data_tmp = IAND(data_tmp, mask_left(12))
   25060      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25061      550394 :          ipack = ipack + 1
   25062      550394 :          packed_data(ipack) = pack_tmp
   25063      550394 :          data_tmp = full_data(idata)
   25064      550394 :          pack_tmp = ISHFT(data_tmp, 42)
   25065      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25066      550394 :          idata = idata + 1
   25067      550394 :          data_tmp = full_data(idata)
   25068      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25069      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25070      550394 :          pack_tmp = ISHFT(pack_tmp, -8)
   25071      550394 :          idata = idata + 1
   25072      550394 :          data_tmp = full_data(idata)
   25073      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25074      550394 :          data_tmp = IAND(data_tmp, mask_left(8))
   25075      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25076      550394 :          ipack = ipack + 1
   25077      550394 :          packed_data(ipack) = pack_tmp
   25078      550394 :          data_tmp = full_data(idata)
   25079      550394 :          pack_tmp = ISHFT(data_tmp, 38)
   25080      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25081      550394 :          idata = idata + 1
   25082      550394 :          data_tmp = full_data(idata)
   25083      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25084      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25085      550394 :          pack_tmp = ISHFT(pack_tmp, -4)
   25086      550394 :          idata = idata + 1
   25087      550394 :          data_tmp = full_data(idata)
   25088      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25089      550394 :          data_tmp = IAND(data_tmp, mask_left(4))
   25090      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25091      550394 :          ipack = ipack + 1
   25092      550394 :          packed_data(ipack) = pack_tmp
   25093      550394 :          data_tmp = full_data(idata)
   25094      550394 :          pack_tmp = ISHFT(data_tmp, 34)
   25095      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25096      550394 :          idata = idata + 1
   25097      550394 :          data_tmp = full_data(idata)
   25098      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25099      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25100      550394 :          pack_tmp = ISHFT(pack_tmp, 0)
   25101      550394 :          idata = idata + 1
   25102      550394 :          data_tmp = full_data(idata)
   25103      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25104      550394 :          data_tmp = IAND(data_tmp, mask_left(0))
   25105      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25106      550394 :          ipack = ipack + 1
   25107      550394 :          packed_data(ipack) = pack_tmp
   25108      550394 :          data_tmp = full_data(idata)
   25109      550394 :          pack_tmp = ISHFT(data_tmp, 30)
   25110      550394 :          pack_tmp = ISHFT(pack_tmp, -30)
   25111      550394 :          idata = idata + 1
   25112      550394 :          data_tmp = full_data(idata)
   25113      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25114      550394 :          data_tmp = IAND(data_tmp, mask_left(30))
   25115      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25116      550394 :          ipack = ipack + 1
   25117      550394 :          packed_data(ipack) = pack_tmp
   25118      550394 :          data_tmp = full_data(idata)
   25119      550394 :          pack_tmp = ISHFT(data_tmp, 60)
   25120      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25121      550394 :          idata = idata + 1
   25122      550394 :          data_tmp = full_data(idata)
   25123      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25124      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25125      550394 :          pack_tmp = ISHFT(pack_tmp, -26)
   25126      550394 :          idata = idata + 1
   25127      550394 :          data_tmp = full_data(idata)
   25128      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25129      550394 :          data_tmp = IAND(data_tmp, mask_left(26))
   25130      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25131      550394 :          ipack = ipack + 1
   25132      550394 :          packed_data(ipack) = pack_tmp
   25133      550394 :          data_tmp = full_data(idata)
   25134      550394 :          pack_tmp = ISHFT(data_tmp, 56)
   25135      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25136      550394 :          idata = idata + 1
   25137      550394 :          data_tmp = full_data(idata)
   25138      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25139      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25140      550394 :          pack_tmp = ISHFT(pack_tmp, -22)
   25141      550394 :          idata = idata + 1
   25142      550394 :          data_tmp = full_data(idata)
   25143      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25144      550394 :          data_tmp = IAND(data_tmp, mask_left(22))
   25145      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25146      550394 :          ipack = ipack + 1
   25147      550394 :          packed_data(ipack) = pack_tmp
   25148      550394 :          data_tmp = full_data(idata)
   25149      550394 :          pack_tmp = ISHFT(data_tmp, 52)
   25150      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25151      550394 :          idata = idata + 1
   25152      550394 :          data_tmp = full_data(idata)
   25153      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25154      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25155      550394 :          pack_tmp = ISHFT(pack_tmp, -18)
   25156      550394 :          idata = idata + 1
   25157      550394 :          data_tmp = full_data(idata)
   25158      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25159      550394 :          data_tmp = IAND(data_tmp, mask_left(18))
   25160      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25161      550394 :          ipack = ipack + 1
   25162      550394 :          packed_data(ipack) = pack_tmp
   25163      550394 :          data_tmp = full_data(idata)
   25164      550394 :          pack_tmp = ISHFT(data_tmp, 48)
   25165      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25166      550394 :          idata = idata + 1
   25167      550394 :          data_tmp = full_data(idata)
   25168      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25169      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25170      550394 :          pack_tmp = ISHFT(pack_tmp, -14)
   25171      550394 :          idata = idata + 1
   25172      550394 :          data_tmp = full_data(idata)
   25173      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25174      550394 :          data_tmp = IAND(data_tmp, mask_left(14))
   25175      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25176      550394 :          ipack = ipack + 1
   25177      550394 :          packed_data(ipack) = pack_tmp
   25178      550394 :          data_tmp = full_data(idata)
   25179      550394 :          pack_tmp = ISHFT(data_tmp, 44)
   25180      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25181      550394 :          idata = idata + 1
   25182      550394 :          data_tmp = full_data(idata)
   25183      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25184      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25185      550394 :          pack_tmp = ISHFT(pack_tmp, -10)
   25186      550394 :          idata = idata + 1
   25187      550394 :          data_tmp = full_data(idata)
   25188      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25189      550394 :          data_tmp = IAND(data_tmp, mask_left(10))
   25190      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25191      550394 :          ipack = ipack + 1
   25192      550394 :          packed_data(ipack) = pack_tmp
   25193      550394 :          data_tmp = full_data(idata)
   25194      550394 :          pack_tmp = ISHFT(data_tmp, 40)
   25195      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25196      550394 :          idata = idata + 1
   25197      550394 :          data_tmp = full_data(idata)
   25198      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25199      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25200      550394 :          pack_tmp = ISHFT(pack_tmp, -6)
   25201      550394 :          idata = idata + 1
   25202      550394 :          data_tmp = full_data(idata)
   25203      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25204      550394 :          data_tmp = IAND(data_tmp, mask_left(6))
   25205      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25206      550394 :          ipack = ipack + 1
   25207      550394 :          packed_data(ipack) = pack_tmp
   25208      550394 :          data_tmp = full_data(idata)
   25209      550394 :          pack_tmp = ISHFT(data_tmp, 36)
   25210      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25211      550394 :          idata = idata + 1
   25212      550394 :          data_tmp = full_data(idata)
   25213      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25214      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25215      550394 :          pack_tmp = ISHFT(pack_tmp, -2)
   25216      550394 :          idata = idata + 1
   25217      550394 :          data_tmp = full_data(idata)
   25218      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25219      550394 :          data_tmp = IAND(data_tmp, mask_left(2))
   25220      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25221      550394 :          ipack = ipack + 1
   25222      550394 :          packed_data(ipack) = pack_tmp
   25223      550394 :          data_tmp = full_data(idata)
   25224      550394 :          pack_tmp = ISHFT(data_tmp, 32)
   25225      550394 :          pack_tmp = ISHFT(pack_tmp, -32)
   25226      550394 :          idata = idata + 1
   25227      550394 :          data_tmp = full_data(idata)
   25228      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25229      550394 :          data_tmp = IAND(data_tmp, mask_left(32))
   25230      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25231      550394 :          ipack = ipack + 1
   25232      550394 :          packed_data(ipack) = pack_tmp
   25233      550394 :          data_tmp = full_data(idata)
   25234      550394 :          pack_tmp = ISHFT(data_tmp, 62)
   25235      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25236      550394 :          idata = idata + 1
   25237      550394 :          data_tmp = full_data(idata)
   25238      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25239      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25240      550394 :          pack_tmp = ISHFT(pack_tmp, -28)
   25241      550394 :          idata = idata + 1
   25242      550394 :          data_tmp = full_data(idata)
   25243      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25244      550394 :          data_tmp = IAND(data_tmp, mask_left(28))
   25245      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25246      550394 :          ipack = ipack + 1
   25247      550394 :          packed_data(ipack) = pack_tmp
   25248      550394 :          data_tmp = full_data(idata)
   25249      550394 :          pack_tmp = ISHFT(data_tmp, 58)
   25250      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25251      550394 :          idata = idata + 1
   25252      550394 :          data_tmp = full_data(idata)
   25253      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25254      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25255      550394 :          pack_tmp = ISHFT(pack_tmp, -24)
   25256      550394 :          idata = idata + 1
   25257      550394 :          data_tmp = full_data(idata)
   25258      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25259      550394 :          data_tmp = IAND(data_tmp, mask_left(24))
   25260      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25261      550394 :          ipack = ipack + 1
   25262      550394 :          packed_data(ipack) = pack_tmp
   25263      550394 :          data_tmp = full_data(idata)
   25264      550394 :          pack_tmp = ISHFT(data_tmp, 54)
   25265      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25266      550394 :          idata = idata + 1
   25267      550394 :          data_tmp = full_data(idata)
   25268      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25269      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25270      550394 :          pack_tmp = ISHFT(pack_tmp, -20)
   25271      550394 :          idata = idata + 1
   25272      550394 :          data_tmp = full_data(idata)
   25273      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25274      550394 :          data_tmp = IAND(data_tmp, mask_left(20))
   25275      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25276      550394 :          ipack = ipack + 1
   25277      550394 :          packed_data(ipack) = pack_tmp
   25278      550394 :          data_tmp = full_data(idata)
   25279      550394 :          pack_tmp = ISHFT(data_tmp, 50)
   25280      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25281      550394 :          idata = idata + 1
   25282      550394 :          data_tmp = full_data(idata)
   25283      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25284      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25285      550394 :          pack_tmp = ISHFT(pack_tmp, -16)
   25286      550394 :          idata = idata + 1
   25287      550394 :          data_tmp = full_data(idata)
   25288      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25289      550394 :          data_tmp = IAND(data_tmp, mask_left(16))
   25290      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25291      550394 :          ipack = ipack + 1
   25292      550394 :          packed_data(ipack) = pack_tmp
   25293      550394 :          data_tmp = full_data(idata)
   25294      550394 :          pack_tmp = ISHFT(data_tmp, 46)
   25295      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25296      550394 :          idata = idata + 1
   25297      550394 :          data_tmp = full_data(idata)
   25298      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25299      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25300      550394 :          pack_tmp = ISHFT(pack_tmp, -12)
   25301      550394 :          idata = idata + 1
   25302      550394 :          data_tmp = full_data(idata)
   25303      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25304      550394 :          data_tmp = IAND(data_tmp, mask_left(12))
   25305      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25306      550394 :          ipack = ipack + 1
   25307      550394 :          packed_data(ipack) = pack_tmp
   25308      550394 :          data_tmp = full_data(idata)
   25309      550394 :          pack_tmp = ISHFT(data_tmp, 42)
   25310      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25311      550394 :          idata = idata + 1
   25312      550394 :          data_tmp = full_data(idata)
   25313      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25314      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25315      550394 :          pack_tmp = ISHFT(pack_tmp, -8)
   25316      550394 :          idata = idata + 1
   25317      550394 :          data_tmp = full_data(idata)
   25318      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25319      550394 :          data_tmp = IAND(data_tmp, mask_left(8))
   25320      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25321      550394 :          ipack = ipack + 1
   25322      550394 :          packed_data(ipack) = pack_tmp
   25323      550394 :          data_tmp = full_data(idata)
   25324      550394 :          pack_tmp = ISHFT(data_tmp, 38)
   25325      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25326      550394 :          idata = idata + 1
   25327      550394 :          data_tmp = full_data(idata)
   25328      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25329      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25330      550394 :          pack_tmp = ISHFT(pack_tmp, -4)
   25331      550394 :          idata = idata + 1
   25332      550394 :          data_tmp = full_data(idata)
   25333      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25334      550394 :          data_tmp = IAND(data_tmp, mask_left(4))
   25335      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25336      550394 :          ipack = ipack + 1
   25337      550394 :          packed_data(ipack) = pack_tmp
   25338      550394 :          data_tmp = full_data(idata)
   25339      550394 :          pack_tmp = ISHFT(data_tmp, 34)
   25340      550394 :          pack_tmp = ISHFT(pack_tmp, -34)
   25341      550394 :          idata = idata + 1
   25342      550394 :          data_tmp = full_data(idata)
   25343      550394 :          data_tmp = ISHFT(data_tmp, 30)
   25344      550394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25345             :          pack_tmp = ISHFT(pack_tmp, 0)
   25346      550394 :          pack_tmp = ISHFT(pack_tmp, 0)
   25347      550394 :          ipack = ipack + 1
   25348      550612 :          packed_data(ipack) = pack_tmp
   25349             :       END DO
   25350       41432 :       IF (Ndata_rep < Ndata) THEN
   25351       13036 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25352             :       END IF
   25353       41432 :    END SUBROUTINE ints2bits_34
   25354             : 
   25355             : ! **************************************************************************************************
   25356             : !> \brief ...
   25357             : !> \param Ndata ...
   25358             : !> \param packed_data ...
   25359             : !> \param full_data ...
   25360             : ! **************************************************************************************************
   25361      209913 :    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      209913 :       ipack = 0
   25372      209913 :       idata = 0
   25373      209913 :       pack_tmp = 0
   25374      209913 :       Ndata_rep = (Ndata/64)*64
   25375      209913 :       DO kdata = 1, Ndata_rep, 64
   25376     2651063 :          idata = idata + 1
   25377     2651063 :          data_tmp = ISHFT(pack_tmp, 34)
   25378     2651063 :          ipack = ipack + 1
   25379     2651063 :          pack_tmp = packed_data(ipack)
   25380     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25381     2651063 :          pack_tmp = ISHFT(pack_tmp, -34)
   25382     2651063 :          idata = idata + 1
   25383     2651063 :          data_tmp = ISHFT(pack_tmp, 4)
   25384     2651063 :          ipack = ipack + 1
   25385     2651063 :          pack_tmp = packed_data(ipack)
   25386     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25387     2651063 :          pack_tmp = ISHFT(pack_tmp, -4)
   25388     2651063 :          idata = idata + 1
   25389     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25390     2651063 :          full_data(idata) = data_tmp
   25391     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25392     2651063 :          idata = idata + 1
   25393     2651063 :          data_tmp = ISHFT(pack_tmp, 8)
   25394     2651063 :          ipack = ipack + 1
   25395     2651063 :          pack_tmp = packed_data(ipack)
   25396     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25397     2651063 :          pack_tmp = ISHFT(pack_tmp, -8)
   25398     2651063 :          idata = idata + 1
   25399     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25400     2651063 :          full_data(idata) = data_tmp
   25401     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25402     2651063 :          idata = idata + 1
   25403     2651063 :          data_tmp = ISHFT(pack_tmp, 12)
   25404     2651063 :          ipack = ipack + 1
   25405     2651063 :          pack_tmp = packed_data(ipack)
   25406     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25407     2651063 :          pack_tmp = ISHFT(pack_tmp, -12)
   25408     2651063 :          idata = idata + 1
   25409     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25410     2651063 :          full_data(idata) = data_tmp
   25411     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25412     2651063 :          idata = idata + 1
   25413     2651063 :          data_tmp = ISHFT(pack_tmp, 16)
   25414     2651063 :          ipack = ipack + 1
   25415     2651063 :          pack_tmp = packed_data(ipack)
   25416     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25417     2651063 :          pack_tmp = ISHFT(pack_tmp, -16)
   25418     2651063 :          idata = idata + 1
   25419     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25420     2651063 :          full_data(idata) = data_tmp
   25421     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25422     2651063 :          idata = idata + 1
   25423     2651063 :          data_tmp = ISHFT(pack_tmp, 20)
   25424     2651063 :          ipack = ipack + 1
   25425     2651063 :          pack_tmp = packed_data(ipack)
   25426     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25427     2651063 :          pack_tmp = ISHFT(pack_tmp, -20)
   25428     2651063 :          idata = idata + 1
   25429     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25430     2651063 :          full_data(idata) = data_tmp
   25431     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25432     2651063 :          idata = idata + 1
   25433     2651063 :          data_tmp = ISHFT(pack_tmp, 24)
   25434     2651063 :          ipack = ipack + 1
   25435     2651063 :          pack_tmp = packed_data(ipack)
   25436     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25437     2651063 :          pack_tmp = ISHFT(pack_tmp, -24)
   25438     2651063 :          idata = idata + 1
   25439     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25440     2651063 :          full_data(idata) = data_tmp
   25441     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25442     2651063 :          idata = idata + 1
   25443     2651063 :          data_tmp = ISHFT(pack_tmp, 28)
   25444     2651063 :          ipack = ipack + 1
   25445     2651063 :          pack_tmp = packed_data(ipack)
   25446     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25447     2651063 :          pack_tmp = ISHFT(pack_tmp, -28)
   25448     2651063 :          idata = idata + 1
   25449     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25450     2651063 :          full_data(idata) = data_tmp
   25451     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25452     2651063 :          idata = idata + 1
   25453     2651063 :          data_tmp = ISHFT(pack_tmp, 32)
   25454     2651063 :          ipack = ipack + 1
   25455     2651063 :          pack_tmp = packed_data(ipack)
   25456     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25457     2651063 :          pack_tmp = ISHFT(pack_tmp, -32)
   25458     2651063 :          idata = idata + 1
   25459     2651063 :          data_tmp = ISHFT(pack_tmp, 2)
   25460     2651063 :          ipack = ipack + 1
   25461     2651063 :          pack_tmp = packed_data(ipack)
   25462     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25463     2651063 :          pack_tmp = ISHFT(pack_tmp, -2)
   25464     2651063 :          idata = idata + 1
   25465     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25466     2651063 :          full_data(idata) = data_tmp
   25467     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25468     2651063 :          idata = idata + 1
   25469     2651063 :          data_tmp = ISHFT(pack_tmp, 6)
   25470     2651063 :          ipack = ipack + 1
   25471     2651063 :          pack_tmp = packed_data(ipack)
   25472     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25473     2651063 :          pack_tmp = ISHFT(pack_tmp, -6)
   25474     2651063 :          idata = idata + 1
   25475     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25476     2651063 :          full_data(idata) = data_tmp
   25477     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25478     2651063 :          idata = idata + 1
   25479     2651063 :          data_tmp = ISHFT(pack_tmp, 10)
   25480     2651063 :          ipack = ipack + 1
   25481     2651063 :          pack_tmp = packed_data(ipack)
   25482     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25483     2651063 :          pack_tmp = ISHFT(pack_tmp, -10)
   25484     2651063 :          idata = idata + 1
   25485     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25486     2651063 :          full_data(idata) = data_tmp
   25487     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25488     2651063 :          idata = idata + 1
   25489     2651063 :          data_tmp = ISHFT(pack_tmp, 14)
   25490     2651063 :          ipack = ipack + 1
   25491     2651063 :          pack_tmp = packed_data(ipack)
   25492     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25493     2651063 :          pack_tmp = ISHFT(pack_tmp, -14)
   25494     2651063 :          idata = idata + 1
   25495     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25496     2651063 :          full_data(idata) = data_tmp
   25497     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25498     2651063 :          idata = idata + 1
   25499     2651063 :          data_tmp = ISHFT(pack_tmp, 18)
   25500     2651063 :          ipack = ipack + 1
   25501     2651063 :          pack_tmp = packed_data(ipack)
   25502     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25503     2651063 :          pack_tmp = ISHFT(pack_tmp, -18)
   25504     2651063 :          idata = idata + 1
   25505     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25506     2651063 :          full_data(idata) = data_tmp
   25507     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25508     2651063 :          idata = idata + 1
   25509     2651063 :          data_tmp = ISHFT(pack_tmp, 22)
   25510     2651063 :          ipack = ipack + 1
   25511     2651063 :          pack_tmp = packed_data(ipack)
   25512     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25513     2651063 :          pack_tmp = ISHFT(pack_tmp, -22)
   25514     2651063 :          idata = idata + 1
   25515     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25516     2651063 :          full_data(idata) = data_tmp
   25517     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25518     2651063 :          idata = idata + 1
   25519     2651063 :          data_tmp = ISHFT(pack_tmp, 26)
   25520     2651063 :          ipack = ipack + 1
   25521     2651063 :          pack_tmp = packed_data(ipack)
   25522     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25523     2651063 :          pack_tmp = ISHFT(pack_tmp, -26)
   25524     2651063 :          idata = idata + 1
   25525     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25526     2651063 :          full_data(idata) = data_tmp
   25527     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25528     2651063 :          idata = idata + 1
   25529     2651063 :          data_tmp = ISHFT(pack_tmp, 30)
   25530     2651063 :          ipack = ipack + 1
   25531     2651063 :          pack_tmp = packed_data(ipack)
   25532     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25533     2651063 :          pack_tmp = ISHFT(pack_tmp, -30)
   25534     2651063 :          idata = idata + 1
   25535     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25536     2651063 :          full_data(idata) = data_tmp
   25537     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25538     2651063 :          idata = idata + 1
   25539     2651063 :          data_tmp = ISHFT(pack_tmp, 34)
   25540     2651063 :          ipack = ipack + 1
   25541     2651063 :          pack_tmp = packed_data(ipack)
   25542     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25543     2651063 :          pack_tmp = ISHFT(pack_tmp, -34)
   25544     2651063 :          idata = idata + 1
   25545     2651063 :          data_tmp = ISHFT(pack_tmp, 4)
   25546     2651063 :          ipack = ipack + 1
   25547     2651063 :          pack_tmp = packed_data(ipack)
   25548     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25549     2651063 :          pack_tmp = ISHFT(pack_tmp, -4)
   25550     2651063 :          idata = idata + 1
   25551     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25552     2651063 :          full_data(idata) = data_tmp
   25553     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25554     2651063 :          idata = idata + 1
   25555     2651063 :          data_tmp = ISHFT(pack_tmp, 8)
   25556     2651063 :          ipack = ipack + 1
   25557     2651063 :          pack_tmp = packed_data(ipack)
   25558     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25559     2651063 :          pack_tmp = ISHFT(pack_tmp, -8)
   25560     2651063 :          idata = idata + 1
   25561     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25562     2651063 :          full_data(idata) = data_tmp
   25563     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25564     2651063 :          idata = idata + 1
   25565     2651063 :          data_tmp = ISHFT(pack_tmp, 12)
   25566     2651063 :          ipack = ipack + 1
   25567     2651063 :          pack_tmp = packed_data(ipack)
   25568     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25569     2651063 :          pack_tmp = ISHFT(pack_tmp, -12)
   25570     2651063 :          idata = idata + 1
   25571     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25572     2651063 :          full_data(idata) = data_tmp
   25573     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25574     2651063 :          idata = idata + 1
   25575     2651063 :          data_tmp = ISHFT(pack_tmp, 16)
   25576     2651063 :          ipack = ipack + 1
   25577     2651063 :          pack_tmp = packed_data(ipack)
   25578     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25579     2651063 :          pack_tmp = ISHFT(pack_tmp, -16)
   25580     2651063 :          idata = idata + 1
   25581     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25582     2651063 :          full_data(idata) = data_tmp
   25583     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25584     2651063 :          idata = idata + 1
   25585     2651063 :          data_tmp = ISHFT(pack_tmp, 20)
   25586     2651063 :          ipack = ipack + 1
   25587     2651063 :          pack_tmp = packed_data(ipack)
   25588     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25589     2651063 :          pack_tmp = ISHFT(pack_tmp, -20)
   25590     2651063 :          idata = idata + 1
   25591     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25592     2651063 :          full_data(idata) = data_tmp
   25593     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25594     2651063 :          idata = idata + 1
   25595     2651063 :          data_tmp = ISHFT(pack_tmp, 24)
   25596     2651063 :          ipack = ipack + 1
   25597     2651063 :          pack_tmp = packed_data(ipack)
   25598     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25599     2651063 :          pack_tmp = ISHFT(pack_tmp, -24)
   25600     2651063 :          idata = idata + 1
   25601     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25602     2651063 :          full_data(idata) = data_tmp
   25603     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25604     2651063 :          idata = idata + 1
   25605     2651063 :          data_tmp = ISHFT(pack_tmp, 28)
   25606     2651063 :          ipack = ipack + 1
   25607     2651063 :          pack_tmp = packed_data(ipack)
   25608     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25609     2651063 :          pack_tmp = ISHFT(pack_tmp, -28)
   25610     2651063 :          idata = idata + 1
   25611     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25612     2651063 :          full_data(idata) = data_tmp
   25613     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25614     2651063 :          idata = idata + 1
   25615     2651063 :          data_tmp = ISHFT(pack_tmp, 32)
   25616     2651063 :          ipack = ipack + 1
   25617     2651063 :          pack_tmp = packed_data(ipack)
   25618     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25619     2651063 :          pack_tmp = ISHFT(pack_tmp, -32)
   25620     2651063 :          idata = idata + 1
   25621     2651063 :          data_tmp = ISHFT(pack_tmp, 2)
   25622     2651063 :          ipack = ipack + 1
   25623     2651063 :          pack_tmp = packed_data(ipack)
   25624     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25625     2651063 :          pack_tmp = ISHFT(pack_tmp, -2)
   25626     2651063 :          idata = idata + 1
   25627     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25628     2651063 :          full_data(idata) = data_tmp
   25629     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25630     2651063 :          idata = idata + 1
   25631     2651063 :          data_tmp = ISHFT(pack_tmp, 6)
   25632     2651063 :          ipack = ipack + 1
   25633     2651063 :          pack_tmp = packed_data(ipack)
   25634     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25635     2651063 :          pack_tmp = ISHFT(pack_tmp, -6)
   25636     2651063 :          idata = idata + 1
   25637     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25638     2651063 :          full_data(idata) = data_tmp
   25639     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25640     2651063 :          idata = idata + 1
   25641     2651063 :          data_tmp = ISHFT(pack_tmp, 10)
   25642     2651063 :          ipack = ipack + 1
   25643     2651063 :          pack_tmp = packed_data(ipack)
   25644     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25645     2651063 :          pack_tmp = ISHFT(pack_tmp, -10)
   25646     2651063 :          idata = idata + 1
   25647     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25648     2651063 :          full_data(idata) = data_tmp
   25649     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25650     2651063 :          idata = idata + 1
   25651     2651063 :          data_tmp = ISHFT(pack_tmp, 14)
   25652     2651063 :          ipack = ipack + 1
   25653     2651063 :          pack_tmp = packed_data(ipack)
   25654     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25655     2651063 :          pack_tmp = ISHFT(pack_tmp, -14)
   25656     2651063 :          idata = idata + 1
   25657     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25658     2651063 :          full_data(idata) = data_tmp
   25659     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25660     2651063 :          idata = idata + 1
   25661     2651063 :          data_tmp = ISHFT(pack_tmp, 18)
   25662     2651063 :          ipack = ipack + 1
   25663     2651063 :          pack_tmp = packed_data(ipack)
   25664     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25665     2651063 :          pack_tmp = ISHFT(pack_tmp, -18)
   25666     2651063 :          idata = idata + 1
   25667     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25668     2651063 :          full_data(idata) = data_tmp
   25669     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25670     2651063 :          idata = idata + 1
   25671     2651063 :          data_tmp = ISHFT(pack_tmp, 22)
   25672     2651063 :          ipack = ipack + 1
   25673     2651063 :          pack_tmp = packed_data(ipack)
   25674     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25675     2651063 :          pack_tmp = ISHFT(pack_tmp, -22)
   25676     2651063 :          idata = idata + 1
   25677     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25678     2651063 :          full_data(idata) = data_tmp
   25679     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25680     2651063 :          idata = idata + 1
   25681     2651063 :          data_tmp = ISHFT(pack_tmp, 26)
   25682     2651063 :          ipack = ipack + 1
   25683     2651063 :          pack_tmp = packed_data(ipack)
   25684     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25685     2651063 :          pack_tmp = ISHFT(pack_tmp, -26)
   25686     2651063 :          idata = idata + 1
   25687     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25688     2651063 :          full_data(idata) = data_tmp
   25689     2651063 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25690     2651063 :          idata = idata + 1
   25691     2651063 :          data_tmp = ISHFT(pack_tmp, 30)
   25692     2651063 :          ipack = ipack + 1
   25693     2651063 :          pack_tmp = packed_data(ipack)
   25694     2651063 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25695     2651063 :          pack_tmp = ISHFT(pack_tmp, -30)
   25696     2651063 :          idata = idata + 1
   25697     2651063 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25698     2651063 :          full_data(idata) = data_tmp
   25699     2652275 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25700             :       END DO
   25701      209913 :       IF (Ndata_rep < Ndata) THEN
   25702       81778 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25703             :       END IF
   25704      209913 :    END SUBROUTINE bits2ints_34
   25705             : 
   25706             : ! **************************************************************************************************
   25707             : !> \brief ...
   25708             : !> \param Ndata ...
   25709             : !> \param packed_data ...
   25710             : !> \param full_data ...
   25711             : ! **************************************************************************************************
   25712       43857 :    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       43857 :       idata = 0
   25723       43857 :       ipack = 0
   25724       43857 :       Ndata_rep = (Ndata/64)*64
   25725       43857 :       DO kdata = 1, Ndata_rep, 64
   25726      567465 :          pack_tmp = 0
   25727      567465 :          idata = idata + 1
   25728      567465 :          data_tmp = full_data(idata)
   25729      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25730      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25731      567465 :          pack_tmp = ISHFT(pack_tmp, -29)
   25732      567465 :          idata = idata + 1
   25733      567465 :          data_tmp = full_data(idata)
   25734      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25735      567465 :          data_tmp = IAND(data_tmp, mask_left(29))
   25736      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25737      567465 :          ipack = ipack + 1
   25738      567465 :          packed_data(ipack) = pack_tmp
   25739      567465 :          data_tmp = full_data(idata)
   25740      567465 :          pack_tmp = ISHFT(data_tmp, 58)
   25741      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25742      567465 :          idata = idata + 1
   25743      567465 :          data_tmp = full_data(idata)
   25744      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25745      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25746      567465 :          pack_tmp = ISHFT(pack_tmp, -23)
   25747      567465 :          idata = idata + 1
   25748      567465 :          data_tmp = full_data(idata)
   25749      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25750      567465 :          data_tmp = IAND(data_tmp, mask_left(23))
   25751      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25752      567465 :          ipack = ipack + 1
   25753      567465 :          packed_data(ipack) = pack_tmp
   25754      567465 :          data_tmp = full_data(idata)
   25755      567465 :          pack_tmp = ISHFT(data_tmp, 52)
   25756      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25757      567465 :          idata = idata + 1
   25758      567465 :          data_tmp = full_data(idata)
   25759      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25760      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25761      567465 :          pack_tmp = ISHFT(pack_tmp, -17)
   25762      567465 :          idata = idata + 1
   25763      567465 :          data_tmp = full_data(idata)
   25764      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25765      567465 :          data_tmp = IAND(data_tmp, mask_left(17))
   25766      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25767      567465 :          ipack = ipack + 1
   25768      567465 :          packed_data(ipack) = pack_tmp
   25769      567465 :          data_tmp = full_data(idata)
   25770      567465 :          pack_tmp = ISHFT(data_tmp, 46)
   25771      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25772      567465 :          idata = idata + 1
   25773      567465 :          data_tmp = full_data(idata)
   25774      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25775      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25776      567465 :          pack_tmp = ISHFT(pack_tmp, -11)
   25777      567465 :          idata = idata + 1
   25778      567465 :          data_tmp = full_data(idata)
   25779      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25780      567465 :          data_tmp = IAND(data_tmp, mask_left(11))
   25781      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25782      567465 :          ipack = ipack + 1
   25783      567465 :          packed_data(ipack) = pack_tmp
   25784      567465 :          data_tmp = full_data(idata)
   25785      567465 :          pack_tmp = ISHFT(data_tmp, 40)
   25786      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25787      567465 :          idata = idata + 1
   25788      567465 :          data_tmp = full_data(idata)
   25789      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25790      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25791      567465 :          pack_tmp = ISHFT(pack_tmp, -5)
   25792      567465 :          idata = idata + 1
   25793      567465 :          data_tmp = full_data(idata)
   25794      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25795      567465 :          data_tmp = IAND(data_tmp, mask_left(5))
   25796      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25797      567465 :          ipack = ipack + 1
   25798      567465 :          packed_data(ipack) = pack_tmp
   25799      567465 :          data_tmp = full_data(idata)
   25800      567465 :          pack_tmp = ISHFT(data_tmp, 34)
   25801      567465 :          pack_tmp = ISHFT(pack_tmp, -34)
   25802      567465 :          idata = idata + 1
   25803      567465 :          data_tmp = full_data(idata)
   25804      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25805      567465 :          data_tmp = IAND(data_tmp, mask_left(34))
   25806      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25807      567465 :          ipack = ipack + 1
   25808      567465 :          packed_data(ipack) = pack_tmp
   25809      567465 :          data_tmp = full_data(idata)
   25810      567465 :          pack_tmp = ISHFT(data_tmp, 63)
   25811      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25812      567465 :          idata = idata + 1
   25813      567465 :          data_tmp = full_data(idata)
   25814      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25815      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25816      567465 :          pack_tmp = ISHFT(pack_tmp, -28)
   25817      567465 :          idata = idata + 1
   25818      567465 :          data_tmp = full_data(idata)
   25819      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25820      567465 :          data_tmp = IAND(data_tmp, mask_left(28))
   25821      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25822      567465 :          ipack = ipack + 1
   25823      567465 :          packed_data(ipack) = pack_tmp
   25824      567465 :          data_tmp = full_data(idata)
   25825      567465 :          pack_tmp = ISHFT(data_tmp, 57)
   25826      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25827      567465 :          idata = idata + 1
   25828      567465 :          data_tmp = full_data(idata)
   25829      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25830      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25831      567465 :          pack_tmp = ISHFT(pack_tmp, -22)
   25832      567465 :          idata = idata + 1
   25833      567465 :          data_tmp = full_data(idata)
   25834      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25835      567465 :          data_tmp = IAND(data_tmp, mask_left(22))
   25836      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25837      567465 :          ipack = ipack + 1
   25838      567465 :          packed_data(ipack) = pack_tmp
   25839      567465 :          data_tmp = full_data(idata)
   25840      567465 :          pack_tmp = ISHFT(data_tmp, 51)
   25841      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25842      567465 :          idata = idata + 1
   25843      567465 :          data_tmp = full_data(idata)
   25844      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25845      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25846      567465 :          pack_tmp = ISHFT(pack_tmp, -16)
   25847      567465 :          idata = idata + 1
   25848      567465 :          data_tmp = full_data(idata)
   25849      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25850      567465 :          data_tmp = IAND(data_tmp, mask_left(16))
   25851      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25852      567465 :          ipack = ipack + 1
   25853      567465 :          packed_data(ipack) = pack_tmp
   25854      567465 :          data_tmp = full_data(idata)
   25855      567465 :          pack_tmp = ISHFT(data_tmp, 45)
   25856      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25857      567465 :          idata = idata + 1
   25858      567465 :          data_tmp = full_data(idata)
   25859      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25860      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25861      567465 :          pack_tmp = ISHFT(pack_tmp, -10)
   25862      567465 :          idata = idata + 1
   25863      567465 :          data_tmp = full_data(idata)
   25864      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25865      567465 :          data_tmp = IAND(data_tmp, mask_left(10))
   25866      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25867      567465 :          ipack = ipack + 1
   25868      567465 :          packed_data(ipack) = pack_tmp
   25869      567465 :          data_tmp = full_data(idata)
   25870      567465 :          pack_tmp = ISHFT(data_tmp, 39)
   25871      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25872      567465 :          idata = idata + 1
   25873      567465 :          data_tmp = full_data(idata)
   25874      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25875      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25876      567465 :          pack_tmp = ISHFT(pack_tmp, -4)
   25877      567465 :          idata = idata + 1
   25878      567465 :          data_tmp = full_data(idata)
   25879      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25880      567465 :          data_tmp = IAND(data_tmp, mask_left(4))
   25881      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25882      567465 :          ipack = ipack + 1
   25883      567465 :          packed_data(ipack) = pack_tmp
   25884      567465 :          data_tmp = full_data(idata)
   25885      567465 :          pack_tmp = ISHFT(data_tmp, 33)
   25886      567465 :          pack_tmp = ISHFT(pack_tmp, -33)
   25887      567465 :          idata = idata + 1
   25888      567465 :          data_tmp = full_data(idata)
   25889      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25890      567465 :          data_tmp = IAND(data_tmp, mask_left(33))
   25891      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25892      567465 :          ipack = ipack + 1
   25893      567465 :          packed_data(ipack) = pack_tmp
   25894      567465 :          data_tmp = full_data(idata)
   25895      567465 :          pack_tmp = ISHFT(data_tmp, 62)
   25896      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25897      567465 :          idata = idata + 1
   25898      567465 :          data_tmp = full_data(idata)
   25899      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25900      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25901      567465 :          pack_tmp = ISHFT(pack_tmp, -27)
   25902      567465 :          idata = idata + 1
   25903      567465 :          data_tmp = full_data(idata)
   25904      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25905      567465 :          data_tmp = IAND(data_tmp, mask_left(27))
   25906      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25907      567465 :          ipack = ipack + 1
   25908      567465 :          packed_data(ipack) = pack_tmp
   25909      567465 :          data_tmp = full_data(idata)
   25910      567465 :          pack_tmp = ISHFT(data_tmp, 56)
   25911      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25912      567465 :          idata = idata + 1
   25913      567465 :          data_tmp = full_data(idata)
   25914      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25915      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25916      567465 :          pack_tmp = ISHFT(pack_tmp, -21)
   25917      567465 :          idata = idata + 1
   25918      567465 :          data_tmp = full_data(idata)
   25919      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25920      567465 :          data_tmp = IAND(data_tmp, mask_left(21))
   25921      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25922      567465 :          ipack = ipack + 1
   25923      567465 :          packed_data(ipack) = pack_tmp
   25924      567465 :          data_tmp = full_data(idata)
   25925      567465 :          pack_tmp = ISHFT(data_tmp, 50)
   25926      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25927      567465 :          idata = idata + 1
   25928      567465 :          data_tmp = full_data(idata)
   25929      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25930      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25931      567465 :          pack_tmp = ISHFT(pack_tmp, -15)
   25932      567465 :          idata = idata + 1
   25933      567465 :          data_tmp = full_data(idata)
   25934      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25935      567465 :          data_tmp = IAND(data_tmp, mask_left(15))
   25936      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25937      567465 :          ipack = ipack + 1
   25938      567465 :          packed_data(ipack) = pack_tmp
   25939      567465 :          data_tmp = full_data(idata)
   25940      567465 :          pack_tmp = ISHFT(data_tmp, 44)
   25941      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25942      567465 :          idata = idata + 1
   25943      567465 :          data_tmp = full_data(idata)
   25944      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25945      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25946      567465 :          pack_tmp = ISHFT(pack_tmp, -9)
   25947      567465 :          idata = idata + 1
   25948      567465 :          data_tmp = full_data(idata)
   25949      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25950      567465 :          data_tmp = IAND(data_tmp, mask_left(9))
   25951      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25952      567465 :          ipack = ipack + 1
   25953      567465 :          packed_data(ipack) = pack_tmp
   25954      567465 :          data_tmp = full_data(idata)
   25955      567465 :          pack_tmp = ISHFT(data_tmp, 38)
   25956      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25957      567465 :          idata = idata + 1
   25958      567465 :          data_tmp = full_data(idata)
   25959      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25960      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25961      567465 :          pack_tmp = ISHFT(pack_tmp, -3)
   25962      567465 :          idata = idata + 1
   25963      567465 :          data_tmp = full_data(idata)
   25964      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25965      567465 :          data_tmp = IAND(data_tmp, mask_left(3))
   25966      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25967      567465 :          ipack = ipack + 1
   25968      567465 :          packed_data(ipack) = pack_tmp
   25969      567465 :          data_tmp = full_data(idata)
   25970      567465 :          pack_tmp = ISHFT(data_tmp, 32)
   25971      567465 :          pack_tmp = ISHFT(pack_tmp, -32)
   25972      567465 :          idata = idata + 1
   25973      567465 :          data_tmp = full_data(idata)
   25974      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25975      567465 :          data_tmp = IAND(data_tmp, mask_left(32))
   25976      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25977      567465 :          ipack = ipack + 1
   25978      567465 :          packed_data(ipack) = pack_tmp
   25979      567465 :          data_tmp = full_data(idata)
   25980      567465 :          pack_tmp = ISHFT(data_tmp, 61)
   25981      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25982      567465 :          idata = idata + 1
   25983      567465 :          data_tmp = full_data(idata)
   25984      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25985      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25986      567465 :          pack_tmp = ISHFT(pack_tmp, -26)
   25987      567465 :          idata = idata + 1
   25988      567465 :          data_tmp = full_data(idata)
   25989      567465 :          data_tmp = ISHFT(data_tmp, 29)
   25990      567465 :          data_tmp = IAND(data_tmp, mask_left(26))
   25991      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25992      567465 :          ipack = ipack + 1
   25993      567465 :          packed_data(ipack) = pack_tmp
   25994      567465 :          data_tmp = full_data(idata)
   25995      567465 :          pack_tmp = ISHFT(data_tmp, 55)
   25996      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   25997      567465 :          idata = idata + 1
   25998      567465 :          data_tmp = full_data(idata)
   25999      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26000      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26001      567465 :          pack_tmp = ISHFT(pack_tmp, -20)
   26002      567465 :          idata = idata + 1
   26003      567465 :          data_tmp = full_data(idata)
   26004      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26005      567465 :          data_tmp = IAND(data_tmp, mask_left(20))
   26006      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26007      567465 :          ipack = ipack + 1
   26008      567465 :          packed_data(ipack) = pack_tmp
   26009      567465 :          data_tmp = full_data(idata)
   26010      567465 :          pack_tmp = ISHFT(data_tmp, 49)
   26011      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26012      567465 :          idata = idata + 1
   26013      567465 :          data_tmp = full_data(idata)
   26014      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26015      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26016      567465 :          pack_tmp = ISHFT(pack_tmp, -14)
   26017      567465 :          idata = idata + 1
   26018      567465 :          data_tmp = full_data(idata)
   26019      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26020      567465 :          data_tmp = IAND(data_tmp, mask_left(14))
   26021      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26022      567465 :          ipack = ipack + 1
   26023      567465 :          packed_data(ipack) = pack_tmp
   26024      567465 :          data_tmp = full_data(idata)
   26025      567465 :          pack_tmp = ISHFT(data_tmp, 43)
   26026      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26027      567465 :          idata = idata + 1
   26028      567465 :          data_tmp = full_data(idata)
   26029      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26030      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26031      567465 :          pack_tmp = ISHFT(pack_tmp, -8)
   26032      567465 :          idata = idata + 1
   26033      567465 :          data_tmp = full_data(idata)
   26034      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26035      567465 :          data_tmp = IAND(data_tmp, mask_left(8))
   26036      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26037      567465 :          ipack = ipack + 1
   26038      567465 :          packed_data(ipack) = pack_tmp
   26039      567465 :          data_tmp = full_data(idata)
   26040      567465 :          pack_tmp = ISHFT(data_tmp, 37)
   26041      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26042      567465 :          idata = idata + 1
   26043      567465 :          data_tmp = full_data(idata)
   26044      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26045      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26046      567465 :          pack_tmp = ISHFT(pack_tmp, -2)
   26047      567465 :          idata = idata + 1
   26048      567465 :          data_tmp = full_data(idata)
   26049      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26050      567465 :          data_tmp = IAND(data_tmp, mask_left(2))
   26051      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26052      567465 :          ipack = ipack + 1
   26053      567465 :          packed_data(ipack) = pack_tmp
   26054      567465 :          data_tmp = full_data(idata)
   26055      567465 :          pack_tmp = ISHFT(data_tmp, 31)
   26056      567465 :          pack_tmp = ISHFT(pack_tmp, -31)
   26057      567465 :          idata = idata + 1
   26058      567465 :          data_tmp = full_data(idata)
   26059      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26060      567465 :          data_tmp = IAND(data_tmp, mask_left(31))
   26061      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26062      567465 :          ipack = ipack + 1
   26063      567465 :          packed_data(ipack) = pack_tmp
   26064      567465 :          data_tmp = full_data(idata)
   26065      567465 :          pack_tmp = ISHFT(data_tmp, 60)
   26066      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26067      567465 :          idata = idata + 1
   26068      567465 :          data_tmp = full_data(idata)
   26069      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26070      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26071      567465 :          pack_tmp = ISHFT(pack_tmp, -25)
   26072      567465 :          idata = idata + 1
   26073      567465 :          data_tmp = full_data(idata)
   26074      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26075      567465 :          data_tmp = IAND(data_tmp, mask_left(25))
   26076      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26077      567465 :          ipack = ipack + 1
   26078      567465 :          packed_data(ipack) = pack_tmp
   26079      567465 :          data_tmp = full_data(idata)
   26080      567465 :          pack_tmp = ISHFT(data_tmp, 54)
   26081      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26082      567465 :          idata = idata + 1
   26083      567465 :          data_tmp = full_data(idata)
   26084      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26085      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26086      567465 :          pack_tmp = ISHFT(pack_tmp, -19)
   26087      567465 :          idata = idata + 1
   26088      567465 :          data_tmp = full_data(idata)
   26089      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26090      567465 :          data_tmp = IAND(data_tmp, mask_left(19))
   26091      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26092      567465 :          ipack = ipack + 1
   26093      567465 :          packed_data(ipack) = pack_tmp
   26094      567465 :          data_tmp = full_data(idata)
   26095      567465 :          pack_tmp = ISHFT(data_tmp, 48)
   26096      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26097      567465 :          idata = idata + 1
   26098      567465 :          data_tmp = full_data(idata)
   26099      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26100      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26101      567465 :          pack_tmp = ISHFT(pack_tmp, -13)
   26102      567465 :          idata = idata + 1
   26103      567465 :          data_tmp = full_data(idata)
   26104      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26105      567465 :          data_tmp = IAND(data_tmp, mask_left(13))
   26106      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26107      567465 :          ipack = ipack + 1
   26108      567465 :          packed_data(ipack) = pack_tmp
   26109      567465 :          data_tmp = full_data(idata)
   26110      567465 :          pack_tmp = ISHFT(data_tmp, 42)
   26111      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26112      567465 :          idata = idata + 1
   26113      567465 :          data_tmp = full_data(idata)
   26114      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26115      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26116      567465 :          pack_tmp = ISHFT(pack_tmp, -7)
   26117      567465 :          idata = idata + 1
   26118      567465 :          data_tmp = full_data(idata)
   26119      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26120      567465 :          data_tmp = IAND(data_tmp, mask_left(7))
   26121      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26122      567465 :          ipack = ipack + 1
   26123      567465 :          packed_data(ipack) = pack_tmp
   26124      567465 :          data_tmp = full_data(idata)
   26125      567465 :          pack_tmp = ISHFT(data_tmp, 36)
   26126      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26127      567465 :          idata = idata + 1
   26128      567465 :          data_tmp = full_data(idata)
   26129      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26130      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26131      567465 :          pack_tmp = ISHFT(pack_tmp, -1)
   26132      567465 :          idata = idata + 1
   26133      567465 :          data_tmp = full_data(idata)
   26134      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26135      567465 :          data_tmp = IAND(data_tmp, mask_left(1))
   26136      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26137      567465 :          ipack = ipack + 1
   26138      567465 :          packed_data(ipack) = pack_tmp
   26139      567465 :          data_tmp = full_data(idata)
   26140      567465 :          pack_tmp = ISHFT(data_tmp, 30)
   26141      567465 :          pack_tmp = ISHFT(pack_tmp, -30)
   26142      567465 :          idata = idata + 1
   26143      567465 :          data_tmp = full_data(idata)
   26144      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26145      567465 :          data_tmp = IAND(data_tmp, mask_left(30))
   26146      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26147      567465 :          ipack = ipack + 1
   26148      567465 :          packed_data(ipack) = pack_tmp
   26149      567465 :          data_tmp = full_data(idata)
   26150      567465 :          pack_tmp = ISHFT(data_tmp, 59)
   26151      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26152      567465 :          idata = idata + 1
   26153      567465 :          data_tmp = full_data(idata)
   26154      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26155      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26156      567465 :          pack_tmp = ISHFT(pack_tmp, -24)
   26157      567465 :          idata = idata + 1
   26158      567465 :          data_tmp = full_data(idata)
   26159      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26160      567465 :          data_tmp = IAND(data_tmp, mask_left(24))
   26161      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26162      567465 :          ipack = ipack + 1
   26163      567465 :          packed_data(ipack) = pack_tmp
   26164      567465 :          data_tmp = full_data(idata)
   26165      567465 :          pack_tmp = ISHFT(data_tmp, 53)
   26166      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26167      567465 :          idata = idata + 1
   26168      567465 :          data_tmp = full_data(idata)
   26169      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26170      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26171      567465 :          pack_tmp = ISHFT(pack_tmp, -18)
   26172      567465 :          idata = idata + 1
   26173      567465 :          data_tmp = full_data(idata)
   26174      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26175      567465 :          data_tmp = IAND(data_tmp, mask_left(18))
   26176      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26177      567465 :          ipack = ipack + 1
   26178      567465 :          packed_data(ipack) = pack_tmp
   26179      567465 :          data_tmp = full_data(idata)
   26180      567465 :          pack_tmp = ISHFT(data_tmp, 47)
   26181      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26182      567465 :          idata = idata + 1
   26183      567465 :          data_tmp = full_data(idata)
   26184      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26185      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26186      567465 :          pack_tmp = ISHFT(pack_tmp, -12)
   26187      567465 :          idata = idata + 1
   26188      567465 :          data_tmp = full_data(idata)
   26189      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26190      567465 :          data_tmp = IAND(data_tmp, mask_left(12))
   26191      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26192      567465 :          ipack = ipack + 1
   26193      567465 :          packed_data(ipack) = pack_tmp
   26194      567465 :          data_tmp = full_data(idata)
   26195      567465 :          pack_tmp = ISHFT(data_tmp, 41)
   26196      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26197      567465 :          idata = idata + 1
   26198      567465 :          data_tmp = full_data(idata)
   26199      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26200      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26201      567465 :          pack_tmp = ISHFT(pack_tmp, -6)
   26202      567465 :          idata = idata + 1
   26203      567465 :          data_tmp = full_data(idata)
   26204      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26205      567465 :          data_tmp = IAND(data_tmp, mask_left(6))
   26206      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26207      567465 :          ipack = ipack + 1
   26208      567465 :          packed_data(ipack) = pack_tmp
   26209      567465 :          data_tmp = full_data(idata)
   26210      567465 :          pack_tmp = ISHFT(data_tmp, 35)
   26211      567465 :          pack_tmp = ISHFT(pack_tmp, -35)
   26212      567465 :          idata = idata + 1
   26213      567465 :          data_tmp = full_data(idata)
   26214      567465 :          data_tmp = ISHFT(data_tmp, 29)
   26215      567465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26216             :          pack_tmp = ISHFT(pack_tmp, 0)
   26217      567465 :          pack_tmp = ISHFT(pack_tmp, 0)
   26218      567465 :          ipack = ipack + 1
   26219      567917 :          packed_data(ipack) = pack_tmp
   26220             :       END DO
   26221       43857 :       IF (Ndata_rep < Ndata) THEN
   26222       15598 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26223             :       END IF
   26224       43857 :    END SUBROUTINE ints2bits_35
   26225             : 
   26226             : ! **************************************************************************************************
   26227             : !> \brief ...
   26228             : !> \param Ndata ...
   26229             : !> \param packed_data ...
   26230             : !> \param full_data ...
   26231             : ! **************************************************************************************************
   26232      216937 :    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      216937 :       ipack = 0
   26243      216937 :       idata = 0
   26244      216937 :       pack_tmp = 0
   26245      216937 :       Ndata_rep = (Ndata/64)*64
   26246      216937 :       DO kdata = 1, Ndata_rep, 64
   26247     2692881 :          idata = idata + 1
   26248     2692881 :          data_tmp = ISHFT(pack_tmp, 35)
   26249     2692881 :          ipack = ipack + 1
   26250     2692881 :          pack_tmp = packed_data(ipack)
   26251     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   26252     2692881 :          pack_tmp = ISHFT(pack_tmp, -35)
   26253     2692881 :          idata = idata + 1
   26254     2692881 :          data_tmp = ISHFT(pack_tmp, 6)
   26255     2692881 :          ipack = ipack + 1
   26256     2692881 :          pack_tmp = packed_data(ipack)
   26257     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   26258     2692881 :          pack_tmp = ISHFT(pack_tmp, -6)
   26259     2692881 :          idata = idata + 1
   26260     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26261     2692881 :          full_data(idata) = data_tmp
   26262     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26263     2692881 :          idata = idata + 1
   26264     2692881 :          data_tmp = ISHFT(pack_tmp, 12)
   26265     2692881 :          ipack = ipack + 1
   26266     2692881 :          pack_tmp = packed_data(ipack)
   26267     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   26268     2692881 :          pack_tmp = ISHFT(pack_tmp, -12)
   26269     2692881 :          idata = idata + 1
   26270     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26271     2692881 :          full_data(idata) = data_tmp
   26272     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26273     2692881 :          idata = idata + 1
   26274     2692881 :          data_tmp = ISHFT(pack_tmp, 18)
   26275     2692881 :          ipack = ipack + 1
   26276     2692881 :          pack_tmp = packed_data(ipack)
   26277     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   26278     2692881 :          pack_tmp = ISHFT(pack_tmp, -18)
   26279     2692881 :          idata = idata + 1
   26280     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26281     2692881 :          full_data(idata) = data_tmp
   26282     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26283     2692881 :          idata = idata + 1
   26284     2692881 :          data_tmp = ISHFT(pack_tmp, 24)
   26285     2692881 :          ipack = ipack + 1
   26286     2692881 :          pack_tmp = packed_data(ipack)
   26287     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   26288     2692881 :          pack_tmp = ISHFT(pack_tmp, -24)
   26289     2692881 :          idata = idata + 1
   26290     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26291     2692881 :          full_data(idata) = data_tmp
   26292     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26293     2692881 :          idata = idata + 1
   26294     2692881 :          data_tmp = ISHFT(pack_tmp, 30)
   26295     2692881 :          ipack = ipack + 1
   26296     2692881 :          pack_tmp = packed_data(ipack)
   26297     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   26298     2692881 :          pack_tmp = ISHFT(pack_tmp, -30)
   26299     2692881 :          idata = idata + 1
   26300     2692881 :          data_tmp = ISHFT(pack_tmp, 1)
   26301     2692881 :          ipack = ipack + 1
   26302     2692881 :          pack_tmp = packed_data(ipack)
   26303     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   26304     2692881 :          pack_tmp = ISHFT(pack_tmp, -1)
   26305     2692881 :          idata = idata + 1
   26306     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26307     2692881 :          full_data(idata) = data_tmp
   26308     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26309     2692881 :          idata = idata + 1
   26310     2692881 :          data_tmp = ISHFT(pack_tmp, 7)
   26311     2692881 :          ipack = ipack + 1
   26312     2692881 :          pack_tmp = packed_data(ipack)
   26313     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   26314     2692881 :          pack_tmp = ISHFT(pack_tmp, -7)
   26315     2692881 :          idata = idata + 1
   26316     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26317     2692881 :          full_data(idata) = data_tmp
   26318     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26319     2692881 :          idata = idata + 1
   26320     2692881 :          data_tmp = ISHFT(pack_tmp, 13)
   26321     2692881 :          ipack = ipack + 1
   26322     2692881 :          pack_tmp = packed_data(ipack)
   26323     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   26324     2692881 :          pack_tmp = ISHFT(pack_tmp, -13)
   26325     2692881 :          idata = idata + 1
   26326     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26327     2692881 :          full_data(idata) = data_tmp
   26328     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26329     2692881 :          idata = idata + 1
   26330     2692881 :          data_tmp = ISHFT(pack_tmp, 19)
   26331     2692881 :          ipack = ipack + 1
   26332     2692881 :          pack_tmp = packed_data(ipack)
   26333     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   26334     2692881 :          pack_tmp = ISHFT(pack_tmp, -19)
   26335     2692881 :          idata = idata + 1
   26336     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26337     2692881 :          full_data(idata) = data_tmp
   26338     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26339     2692881 :          idata = idata + 1
   26340     2692881 :          data_tmp = ISHFT(pack_tmp, 25)
   26341     2692881 :          ipack = ipack + 1
   26342     2692881 :          pack_tmp = packed_data(ipack)
   26343     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   26344     2692881 :          pack_tmp = ISHFT(pack_tmp, -25)
   26345     2692881 :          idata = idata + 1
   26346     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26347     2692881 :          full_data(idata) = data_tmp
   26348     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26349     2692881 :          idata = idata + 1
   26350     2692881 :          data_tmp = ISHFT(pack_tmp, 31)
   26351     2692881 :          ipack = ipack + 1
   26352     2692881 :          pack_tmp = packed_data(ipack)
   26353     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   26354     2692881 :          pack_tmp = ISHFT(pack_tmp, -31)
   26355     2692881 :          idata = idata + 1
   26356     2692881 :          data_tmp = ISHFT(pack_tmp, 2)
   26357     2692881 :          ipack = ipack + 1
   26358     2692881 :          pack_tmp = packed_data(ipack)
   26359     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   26360     2692881 :          pack_tmp = ISHFT(pack_tmp, -2)
   26361     2692881 :          idata = idata + 1
   26362     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26363     2692881 :          full_data(idata) = data_tmp
   26364     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26365     2692881 :          idata = idata + 1
   26366     2692881 :          data_tmp = ISHFT(pack_tmp, 8)
   26367     2692881 :          ipack = ipack + 1
   26368     2692881 :          pack_tmp = packed_data(ipack)
   26369     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   26370     2692881 :          pack_tmp = ISHFT(pack_tmp, -8)
   26371     2692881 :          idata = idata + 1
   26372     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26373     2692881 :          full_data(idata) = data_tmp
   26374     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26375     2692881 :          idata = idata + 1
   26376     2692881 :          data_tmp = ISHFT(pack_tmp, 14)
   26377     2692881 :          ipack = ipack + 1
   26378     2692881 :          pack_tmp = packed_data(ipack)
   26379     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   26380     2692881 :          pack_tmp = ISHFT(pack_tmp, -14)
   26381     2692881 :          idata = idata + 1
   26382     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26383     2692881 :          full_data(idata) = data_tmp
   26384     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26385     2692881 :          idata = idata + 1
   26386     2692881 :          data_tmp = ISHFT(pack_tmp, 20)
   26387     2692881 :          ipack = ipack + 1
   26388     2692881 :          pack_tmp = packed_data(ipack)
   26389     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   26390     2692881 :          pack_tmp = ISHFT(pack_tmp, -20)
   26391     2692881 :          idata = idata + 1
   26392     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26393     2692881 :          full_data(idata) = data_tmp
   26394     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26395     2692881 :          idata = idata + 1
   26396     2692881 :          data_tmp = ISHFT(pack_tmp, 26)
   26397     2692881 :          ipack = ipack + 1
   26398     2692881 :          pack_tmp = packed_data(ipack)
   26399     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   26400     2692881 :          pack_tmp = ISHFT(pack_tmp, -26)
   26401     2692881 :          idata = idata + 1
   26402     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26403     2692881 :          full_data(idata) = data_tmp
   26404     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26405     2692881 :          idata = idata + 1
   26406     2692881 :          data_tmp = ISHFT(pack_tmp, 32)
   26407     2692881 :          ipack = ipack + 1
   26408     2692881 :          pack_tmp = packed_data(ipack)
   26409     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   26410     2692881 :          pack_tmp = ISHFT(pack_tmp, -32)
   26411     2692881 :          idata = idata + 1
   26412     2692881 :          data_tmp = ISHFT(pack_tmp, 3)
   26413     2692881 :          ipack = ipack + 1
   26414     2692881 :          pack_tmp = packed_data(ipack)
   26415     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   26416     2692881 :          pack_tmp = ISHFT(pack_tmp, -3)
   26417     2692881 :          idata = idata + 1
   26418     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26419     2692881 :          full_data(idata) = data_tmp
   26420     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26421     2692881 :          idata = idata + 1
   26422     2692881 :          data_tmp = ISHFT(pack_tmp, 9)
   26423     2692881 :          ipack = ipack + 1
   26424     2692881 :          pack_tmp = packed_data(ipack)
   26425     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   26426     2692881 :          pack_tmp = ISHFT(pack_tmp, -9)
   26427     2692881 :          idata = idata + 1
   26428     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26429     2692881 :          full_data(idata) = data_tmp
   26430     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26431     2692881 :          idata = idata + 1
   26432     2692881 :          data_tmp = ISHFT(pack_tmp, 15)
   26433     2692881 :          ipack = ipack + 1
   26434     2692881 :          pack_tmp = packed_data(ipack)
   26435     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   26436     2692881 :          pack_tmp = ISHFT(pack_tmp, -15)
   26437     2692881 :          idata = idata + 1
   26438     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26439     2692881 :          full_data(idata) = data_tmp
   26440     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26441     2692881 :          idata = idata + 1
   26442     2692881 :          data_tmp = ISHFT(pack_tmp, 21)
   26443     2692881 :          ipack = ipack + 1
   26444     2692881 :          pack_tmp = packed_data(ipack)
   26445     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   26446     2692881 :          pack_tmp = ISHFT(pack_tmp, -21)
   26447     2692881 :          idata = idata + 1
   26448     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26449     2692881 :          full_data(idata) = data_tmp
   26450     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26451     2692881 :          idata = idata + 1
   26452     2692881 :          data_tmp = ISHFT(pack_tmp, 27)
   26453     2692881 :          ipack = ipack + 1
   26454     2692881 :          pack_tmp = packed_data(ipack)
   26455     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   26456     2692881 :          pack_tmp = ISHFT(pack_tmp, -27)
   26457     2692881 :          idata = idata + 1
   26458     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26459     2692881 :          full_data(idata) = data_tmp
   26460     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26461     2692881 :          idata = idata + 1
   26462     2692881 :          data_tmp = ISHFT(pack_tmp, 33)
   26463     2692881 :          ipack = ipack + 1
   26464     2692881 :          pack_tmp = packed_data(ipack)
   26465     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   26466     2692881 :          pack_tmp = ISHFT(pack_tmp, -33)
   26467     2692881 :          idata = idata + 1
   26468     2692881 :          data_tmp = ISHFT(pack_tmp, 4)
   26469     2692881 :          ipack = ipack + 1
   26470     2692881 :          pack_tmp = packed_data(ipack)
   26471     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   26472     2692881 :          pack_tmp = ISHFT(pack_tmp, -4)
   26473     2692881 :          idata = idata + 1
   26474     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26475     2692881 :          full_data(idata) = data_tmp
   26476     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26477     2692881 :          idata = idata + 1
   26478     2692881 :          data_tmp = ISHFT(pack_tmp, 10)
   26479     2692881 :          ipack = ipack + 1
   26480     2692881 :          pack_tmp = packed_data(ipack)
   26481     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   26482     2692881 :          pack_tmp = ISHFT(pack_tmp, -10)
   26483     2692881 :          idata = idata + 1
   26484     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26485     2692881 :          full_data(idata) = data_tmp
   26486     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26487     2692881 :          idata = idata + 1
   26488     2692881 :          data_tmp = ISHFT(pack_tmp, 16)
   26489     2692881 :          ipack = ipack + 1
   26490     2692881 :          pack_tmp = packed_data(ipack)
   26491     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   26492     2692881 :          pack_tmp = ISHFT(pack_tmp, -16)
   26493     2692881 :          idata = idata + 1
   26494     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26495     2692881 :          full_data(idata) = data_tmp
   26496     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26497     2692881 :          idata = idata + 1
   26498     2692881 :          data_tmp = ISHFT(pack_tmp, 22)
   26499     2692881 :          ipack = ipack + 1
   26500     2692881 :          pack_tmp = packed_data(ipack)
   26501     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   26502     2692881 :          pack_tmp = ISHFT(pack_tmp, -22)
   26503     2692881 :          idata = idata + 1
   26504     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26505     2692881 :          full_data(idata) = data_tmp
   26506     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26507     2692881 :          idata = idata + 1
   26508     2692881 :          data_tmp = ISHFT(pack_tmp, 28)
   26509     2692881 :          ipack = ipack + 1
   26510     2692881 :          pack_tmp = packed_data(ipack)
   26511     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   26512     2692881 :          pack_tmp = ISHFT(pack_tmp, -28)
   26513     2692881 :          idata = idata + 1
   26514     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26515     2692881 :          full_data(idata) = data_tmp
   26516     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26517     2692881 :          idata = idata + 1
   26518     2692881 :          data_tmp = ISHFT(pack_tmp, 34)
   26519     2692881 :          ipack = ipack + 1
   26520     2692881 :          pack_tmp = packed_data(ipack)
   26521     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   26522     2692881 :          pack_tmp = ISHFT(pack_tmp, -34)
   26523     2692881 :          idata = idata + 1
   26524     2692881 :          data_tmp = ISHFT(pack_tmp, 5)
   26525     2692881 :          ipack = ipack + 1
   26526     2692881 :          pack_tmp = packed_data(ipack)
   26527     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   26528     2692881 :          pack_tmp = ISHFT(pack_tmp, -5)
   26529     2692881 :          idata = idata + 1
   26530     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26531     2692881 :          full_data(idata) = data_tmp
   26532     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26533     2692881 :          idata = idata + 1
   26534     2692881 :          data_tmp = ISHFT(pack_tmp, 11)
   26535     2692881 :          ipack = ipack + 1
   26536     2692881 :          pack_tmp = packed_data(ipack)
   26537     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   26538     2692881 :          pack_tmp = ISHFT(pack_tmp, -11)
   26539     2692881 :          idata = idata + 1
   26540     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26541     2692881 :          full_data(idata) = data_tmp
   26542     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26543     2692881 :          idata = idata + 1
   26544     2692881 :          data_tmp = ISHFT(pack_tmp, 17)
   26545     2692881 :          ipack = ipack + 1
   26546     2692881 :          pack_tmp = packed_data(ipack)
   26547     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   26548     2692881 :          pack_tmp = ISHFT(pack_tmp, -17)
   26549     2692881 :          idata = idata + 1
   26550     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26551     2692881 :          full_data(idata) = data_tmp
   26552     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26553     2692881 :          idata = idata + 1
   26554     2692881 :          data_tmp = ISHFT(pack_tmp, 23)
   26555     2692881 :          ipack = ipack + 1
   26556     2692881 :          pack_tmp = packed_data(ipack)
   26557     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   26558     2692881 :          pack_tmp = ISHFT(pack_tmp, -23)
   26559     2692881 :          idata = idata + 1
   26560     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26561     2692881 :          full_data(idata) = data_tmp
   26562     2692881 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26563     2692881 :          idata = idata + 1
   26564     2692881 :          data_tmp = ISHFT(pack_tmp, 29)
   26565     2692881 :          ipack = ipack + 1
   26566     2692881 :          pack_tmp = packed_data(ipack)
   26567     2692881 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   26568     2692881 :          pack_tmp = ISHFT(pack_tmp, -29)
   26569     2692881 :          idata = idata + 1
   26570     2692881 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26571     2692881 :          full_data(idata) = data_tmp
   26572     2694988 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26573             :       END DO
   26574      216937 :       IF (Ndata_rep < Ndata) THEN
   26575       90590 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26576             :       END IF
   26577      216937 :    END SUBROUTINE bits2ints_35
   26578             : 
   26579             : ! **************************************************************************************************
   26580             : !> \brief ...
   26581             : !> \param Ndata ...
   26582             : !> \param packed_data ...
   26583             : !> \param full_data ...
   26584             : ! **************************************************************************************************
   26585       43403 :    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       43403 :       idata = 0
   26596       43403 :       ipack = 0
   26597       43403 :       Ndata_rep = (Ndata/64)*64
   26598       43403 :       DO kdata = 1, Ndata_rep, 64
   26599      562953 :          pack_tmp = 0
   26600      562953 :          idata = idata + 1
   26601      562953 :          data_tmp = full_data(idata)
   26602      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26603      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26604      562953 :          pack_tmp = ISHFT(pack_tmp, -28)
   26605      562953 :          idata = idata + 1
   26606      562953 :          data_tmp = full_data(idata)
   26607      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26608      562953 :          data_tmp = IAND(data_tmp, mask_left(28))
   26609      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26610      562953 :          ipack = ipack + 1
   26611      562953 :          packed_data(ipack) = pack_tmp
   26612      562953 :          data_tmp = full_data(idata)
   26613      562953 :          pack_tmp = ISHFT(data_tmp, 56)
   26614      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26615      562953 :          idata = idata + 1
   26616      562953 :          data_tmp = full_data(idata)
   26617      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26618      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26619      562953 :          pack_tmp = ISHFT(pack_tmp, -20)
   26620      562953 :          idata = idata + 1
   26621      562953 :          data_tmp = full_data(idata)
   26622      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26623      562953 :          data_tmp = IAND(data_tmp, mask_left(20))
   26624      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26625      562953 :          ipack = ipack + 1
   26626      562953 :          packed_data(ipack) = pack_tmp
   26627      562953 :          data_tmp = full_data(idata)
   26628      562953 :          pack_tmp = ISHFT(data_tmp, 48)
   26629      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26630      562953 :          idata = idata + 1
   26631      562953 :          data_tmp = full_data(idata)
   26632      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26633      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26634      562953 :          pack_tmp = ISHFT(pack_tmp, -12)
   26635      562953 :          idata = idata + 1
   26636      562953 :          data_tmp = full_data(idata)
   26637      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26638      562953 :          data_tmp = IAND(data_tmp, mask_left(12))
   26639      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26640      562953 :          ipack = ipack + 1
   26641      562953 :          packed_data(ipack) = pack_tmp
   26642      562953 :          data_tmp = full_data(idata)
   26643      562953 :          pack_tmp = ISHFT(data_tmp, 40)
   26644      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26645      562953 :          idata = idata + 1
   26646      562953 :          data_tmp = full_data(idata)
   26647      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26648      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26649      562953 :          pack_tmp = ISHFT(pack_tmp, -4)
   26650      562953 :          idata = idata + 1
   26651      562953 :          data_tmp = full_data(idata)
   26652      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26653      562953 :          data_tmp = IAND(data_tmp, mask_left(4))
   26654      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26655      562953 :          ipack = ipack + 1
   26656      562953 :          packed_data(ipack) = pack_tmp
   26657      562953 :          data_tmp = full_data(idata)
   26658      562953 :          pack_tmp = ISHFT(data_tmp, 32)
   26659      562953 :          pack_tmp = ISHFT(pack_tmp, -32)
   26660      562953 :          idata = idata + 1
   26661      562953 :          data_tmp = full_data(idata)
   26662      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26663      562953 :          data_tmp = IAND(data_tmp, mask_left(32))
   26664      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26665      562953 :          ipack = ipack + 1
   26666      562953 :          packed_data(ipack) = pack_tmp
   26667      562953 :          data_tmp = full_data(idata)
   26668      562953 :          pack_tmp = ISHFT(data_tmp, 60)
   26669      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26670      562953 :          idata = idata + 1
   26671      562953 :          data_tmp = full_data(idata)
   26672      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26673      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26674      562953 :          pack_tmp = ISHFT(pack_tmp, -24)
   26675      562953 :          idata = idata + 1
   26676      562953 :          data_tmp = full_data(idata)
   26677      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26678      562953 :          data_tmp = IAND(data_tmp, mask_left(24))
   26679      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26680      562953 :          ipack = ipack + 1
   26681      562953 :          packed_data(ipack) = pack_tmp
   26682      562953 :          data_tmp = full_data(idata)
   26683      562953 :          pack_tmp = ISHFT(data_tmp, 52)
   26684      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26685      562953 :          idata = idata + 1
   26686      562953 :          data_tmp = full_data(idata)
   26687      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26688      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26689      562953 :          pack_tmp = ISHFT(pack_tmp, -16)
   26690      562953 :          idata = idata + 1
   26691      562953 :          data_tmp = full_data(idata)
   26692      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26693      562953 :          data_tmp = IAND(data_tmp, mask_left(16))
   26694      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26695      562953 :          ipack = ipack + 1
   26696      562953 :          packed_data(ipack) = pack_tmp
   26697      562953 :          data_tmp = full_data(idata)
   26698      562953 :          pack_tmp = ISHFT(data_tmp, 44)
   26699      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26700      562953 :          idata = idata + 1
   26701      562953 :          data_tmp = full_data(idata)
   26702      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26703      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26704      562953 :          pack_tmp = ISHFT(pack_tmp, -8)
   26705      562953 :          idata = idata + 1
   26706      562953 :          data_tmp = full_data(idata)
   26707      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26708      562953 :          data_tmp = IAND(data_tmp, mask_left(8))
   26709      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26710      562953 :          ipack = ipack + 1
   26711      562953 :          packed_data(ipack) = pack_tmp
   26712      562953 :          data_tmp = full_data(idata)
   26713      562953 :          pack_tmp = ISHFT(data_tmp, 36)
   26714      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26715      562953 :          idata = idata + 1
   26716      562953 :          data_tmp = full_data(idata)
   26717      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26718      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26719      562953 :          pack_tmp = ISHFT(pack_tmp, 0)
   26720      562953 :          idata = idata + 1
   26721      562953 :          data_tmp = full_data(idata)
   26722      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26723      562953 :          data_tmp = IAND(data_tmp, mask_left(0))
   26724      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26725      562953 :          ipack = ipack + 1
   26726      562953 :          packed_data(ipack) = pack_tmp
   26727      562953 :          data_tmp = full_data(idata)
   26728      562953 :          pack_tmp = ISHFT(data_tmp, 28)
   26729      562953 :          pack_tmp = ISHFT(pack_tmp, -28)
   26730      562953 :          idata = idata + 1
   26731      562953 :          data_tmp = full_data(idata)
   26732      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26733      562953 :          data_tmp = IAND(data_tmp, mask_left(28))
   26734      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26735      562953 :          ipack = ipack + 1
   26736      562953 :          packed_data(ipack) = pack_tmp
   26737      562953 :          data_tmp = full_data(idata)
   26738      562953 :          pack_tmp = ISHFT(data_tmp, 56)
   26739      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26740      562953 :          idata = idata + 1
   26741      562953 :          data_tmp = full_data(idata)
   26742      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26743      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26744      562953 :          pack_tmp = ISHFT(pack_tmp, -20)
   26745      562953 :          idata = idata + 1
   26746      562953 :          data_tmp = full_data(idata)
   26747      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26748      562953 :          data_tmp = IAND(data_tmp, mask_left(20))
   26749      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26750      562953 :          ipack = ipack + 1
   26751      562953 :          packed_data(ipack) = pack_tmp
   26752      562953 :          data_tmp = full_data(idata)
   26753      562953 :          pack_tmp = ISHFT(data_tmp, 48)
   26754      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26755      562953 :          idata = idata + 1
   26756      562953 :          data_tmp = full_data(idata)
   26757      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26758      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26759      562953 :          pack_tmp = ISHFT(pack_tmp, -12)
   26760      562953 :          idata = idata + 1
   26761      562953 :          data_tmp = full_data(idata)
   26762      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26763      562953 :          data_tmp = IAND(data_tmp, mask_left(12))
   26764      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26765      562953 :          ipack = ipack + 1
   26766      562953 :          packed_data(ipack) = pack_tmp
   26767      562953 :          data_tmp = full_data(idata)
   26768      562953 :          pack_tmp = ISHFT(data_tmp, 40)
   26769      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26770      562953 :          idata = idata + 1
   26771      562953 :          data_tmp = full_data(idata)
   26772      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26773      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26774      562953 :          pack_tmp = ISHFT(pack_tmp, -4)
   26775      562953 :          idata = idata + 1
   26776      562953 :          data_tmp = full_data(idata)
   26777      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26778      562953 :          data_tmp = IAND(data_tmp, mask_left(4))
   26779      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26780      562953 :          ipack = ipack + 1
   26781      562953 :          packed_data(ipack) = pack_tmp
   26782      562953 :          data_tmp = full_data(idata)
   26783      562953 :          pack_tmp = ISHFT(data_tmp, 32)
   26784      562953 :          pack_tmp = ISHFT(pack_tmp, -32)
   26785      562953 :          idata = idata + 1
   26786      562953 :          data_tmp = full_data(idata)
   26787      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26788      562953 :          data_tmp = IAND(data_tmp, mask_left(32))
   26789      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26790      562953 :          ipack = ipack + 1
   26791      562953 :          packed_data(ipack) = pack_tmp
   26792      562953 :          data_tmp = full_data(idata)
   26793      562953 :          pack_tmp = ISHFT(data_tmp, 60)
   26794      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26795      562953 :          idata = idata + 1
   26796      562953 :          data_tmp = full_data(idata)
   26797      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26798      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26799      562953 :          pack_tmp = ISHFT(pack_tmp, -24)
   26800      562953 :          idata = idata + 1
   26801      562953 :          data_tmp = full_data(idata)
   26802      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26803      562953 :          data_tmp = IAND(data_tmp, mask_left(24))
   26804      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26805      562953 :          ipack = ipack + 1
   26806      562953 :          packed_data(ipack) = pack_tmp
   26807      562953 :          data_tmp = full_data(idata)
   26808      562953 :          pack_tmp = ISHFT(data_tmp, 52)
   26809      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26810      562953 :          idata = idata + 1
   26811      562953 :          data_tmp = full_data(idata)
   26812      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26813      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26814      562953 :          pack_tmp = ISHFT(pack_tmp, -16)
   26815      562953 :          idata = idata + 1
   26816      562953 :          data_tmp = full_data(idata)
   26817      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26818      562953 :          data_tmp = IAND(data_tmp, mask_left(16))
   26819      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26820      562953 :          ipack = ipack + 1
   26821      562953 :          packed_data(ipack) = pack_tmp
   26822      562953 :          data_tmp = full_data(idata)
   26823      562953 :          pack_tmp = ISHFT(data_tmp, 44)
   26824      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26825      562953 :          idata = idata + 1
   26826      562953 :          data_tmp = full_data(idata)
   26827      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26828      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26829      562953 :          pack_tmp = ISHFT(pack_tmp, -8)
   26830      562953 :          idata = idata + 1
   26831      562953 :          data_tmp = full_data(idata)
   26832      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26833      562953 :          data_tmp = IAND(data_tmp, mask_left(8))
   26834      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26835      562953 :          ipack = ipack + 1
   26836      562953 :          packed_data(ipack) = pack_tmp
   26837      562953 :          data_tmp = full_data(idata)
   26838      562953 :          pack_tmp = ISHFT(data_tmp, 36)
   26839      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26840      562953 :          idata = idata + 1
   26841      562953 :          data_tmp = full_data(idata)
   26842      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26843      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26844      562953 :          pack_tmp = ISHFT(pack_tmp, 0)
   26845      562953 :          idata = idata + 1
   26846      562953 :          data_tmp = full_data(idata)
   26847      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26848      562953 :          data_tmp = IAND(data_tmp, mask_left(0))
   26849      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26850      562953 :          ipack = ipack + 1
   26851      562953 :          packed_data(ipack) = pack_tmp
   26852      562953 :          data_tmp = full_data(idata)
   26853      562953 :          pack_tmp = ISHFT(data_tmp, 28)
   26854      562953 :          pack_tmp = ISHFT(pack_tmp, -28)
   26855      562953 :          idata = idata + 1
   26856      562953 :          data_tmp = full_data(idata)
   26857      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26858      562953 :          data_tmp = IAND(data_tmp, mask_left(28))
   26859      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26860      562953 :          ipack = ipack + 1
   26861      562953 :          packed_data(ipack) = pack_tmp
   26862      562953 :          data_tmp = full_data(idata)
   26863      562953 :          pack_tmp = ISHFT(data_tmp, 56)
   26864      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26865      562953 :          idata = idata + 1
   26866      562953 :          data_tmp = full_data(idata)
   26867      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26868      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26869      562953 :          pack_tmp = ISHFT(pack_tmp, -20)
   26870      562953 :          idata = idata + 1
   26871      562953 :          data_tmp = full_data(idata)
   26872      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26873      562953 :          data_tmp = IAND(data_tmp, mask_left(20))
   26874      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26875      562953 :          ipack = ipack + 1
   26876      562953 :          packed_data(ipack) = pack_tmp
   26877      562953 :          data_tmp = full_data(idata)
   26878      562953 :          pack_tmp = ISHFT(data_tmp, 48)
   26879      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26880      562953 :          idata = idata + 1
   26881      562953 :          data_tmp = full_data(idata)
   26882      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26883      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26884      562953 :          pack_tmp = ISHFT(pack_tmp, -12)
   26885      562953 :          idata = idata + 1
   26886      562953 :          data_tmp = full_data(idata)
   26887      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26888      562953 :          data_tmp = IAND(data_tmp, mask_left(12))
   26889      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26890      562953 :          ipack = ipack + 1
   26891      562953 :          packed_data(ipack) = pack_tmp
   26892      562953 :          data_tmp = full_data(idata)
   26893      562953 :          pack_tmp = ISHFT(data_tmp, 40)
   26894      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26895      562953 :          idata = idata + 1
   26896      562953 :          data_tmp = full_data(idata)
   26897      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26898      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26899      562953 :          pack_tmp = ISHFT(pack_tmp, -4)
   26900      562953 :          idata = idata + 1
   26901      562953 :          data_tmp = full_data(idata)
   26902      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26903      562953 :          data_tmp = IAND(data_tmp, mask_left(4))
   26904      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26905      562953 :          ipack = ipack + 1
   26906      562953 :          packed_data(ipack) = pack_tmp
   26907      562953 :          data_tmp = full_data(idata)
   26908      562953 :          pack_tmp = ISHFT(data_tmp, 32)
   26909      562953 :          pack_tmp = ISHFT(pack_tmp, -32)
   26910      562953 :          idata = idata + 1
   26911      562953 :          data_tmp = full_data(idata)
   26912      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26913      562953 :          data_tmp = IAND(data_tmp, mask_left(32))
   26914      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26915      562953 :          ipack = ipack + 1
   26916      562953 :          packed_data(ipack) = pack_tmp
   26917      562953 :          data_tmp = full_data(idata)
   26918      562953 :          pack_tmp = ISHFT(data_tmp, 60)
   26919      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26920      562953 :          idata = idata + 1
   26921      562953 :          data_tmp = full_data(idata)
   26922      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26923      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26924      562953 :          pack_tmp = ISHFT(pack_tmp, -24)
   26925      562953 :          idata = idata + 1
   26926      562953 :          data_tmp = full_data(idata)
   26927      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26928      562953 :          data_tmp = IAND(data_tmp, mask_left(24))
   26929      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26930      562953 :          ipack = ipack + 1
   26931      562953 :          packed_data(ipack) = pack_tmp
   26932      562953 :          data_tmp = full_data(idata)
   26933      562953 :          pack_tmp = ISHFT(data_tmp, 52)
   26934      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26935      562953 :          idata = idata + 1
   26936      562953 :          data_tmp = full_data(idata)
   26937      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26938      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26939      562953 :          pack_tmp = ISHFT(pack_tmp, -16)
   26940      562953 :          idata = idata + 1
   26941      562953 :          data_tmp = full_data(idata)
   26942      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26943      562953 :          data_tmp = IAND(data_tmp, mask_left(16))
   26944      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26945      562953 :          ipack = ipack + 1
   26946      562953 :          packed_data(ipack) = pack_tmp
   26947      562953 :          data_tmp = full_data(idata)
   26948      562953 :          pack_tmp = ISHFT(data_tmp, 44)
   26949      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26950      562953 :          idata = idata + 1
   26951      562953 :          data_tmp = full_data(idata)
   26952      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26953      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26954      562953 :          pack_tmp = ISHFT(pack_tmp, -8)
   26955      562953 :          idata = idata + 1
   26956      562953 :          data_tmp = full_data(idata)
   26957      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26958      562953 :          data_tmp = IAND(data_tmp, mask_left(8))
   26959      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26960      562953 :          ipack = ipack + 1
   26961      562953 :          packed_data(ipack) = pack_tmp
   26962      562953 :          data_tmp = full_data(idata)
   26963      562953 :          pack_tmp = ISHFT(data_tmp, 36)
   26964      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26965      562953 :          idata = idata + 1
   26966      562953 :          data_tmp = full_data(idata)
   26967      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26968      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26969      562953 :          pack_tmp = ISHFT(pack_tmp, 0)
   26970      562953 :          idata = idata + 1
   26971      562953 :          data_tmp = full_data(idata)
   26972      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26973      562953 :          data_tmp = IAND(data_tmp, mask_left(0))
   26974      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26975      562953 :          ipack = ipack + 1
   26976      562953 :          packed_data(ipack) = pack_tmp
   26977      562953 :          data_tmp = full_data(idata)
   26978      562953 :          pack_tmp = ISHFT(data_tmp, 28)
   26979      562953 :          pack_tmp = ISHFT(pack_tmp, -28)
   26980      562953 :          idata = idata + 1
   26981      562953 :          data_tmp = full_data(idata)
   26982      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26983      562953 :          data_tmp = IAND(data_tmp, mask_left(28))
   26984      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26985      562953 :          ipack = ipack + 1
   26986      562953 :          packed_data(ipack) = pack_tmp
   26987      562953 :          data_tmp = full_data(idata)
   26988      562953 :          pack_tmp = ISHFT(data_tmp, 56)
   26989      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   26990      562953 :          idata = idata + 1
   26991      562953 :          data_tmp = full_data(idata)
   26992      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26993      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26994      562953 :          pack_tmp = ISHFT(pack_tmp, -20)
   26995      562953 :          idata = idata + 1
   26996      562953 :          data_tmp = full_data(idata)
   26997      562953 :          data_tmp = ISHFT(data_tmp, 28)
   26998      562953 :          data_tmp = IAND(data_tmp, mask_left(20))
   26999      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27000      562953 :          ipack = ipack + 1
   27001      562953 :          packed_data(ipack) = pack_tmp
   27002      562953 :          data_tmp = full_data(idata)
   27003      562953 :          pack_tmp = ISHFT(data_tmp, 48)
   27004      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27005      562953 :          idata = idata + 1
   27006      562953 :          data_tmp = full_data(idata)
   27007      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27008      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27009      562953 :          pack_tmp = ISHFT(pack_tmp, -12)
   27010      562953 :          idata = idata + 1
   27011      562953 :          data_tmp = full_data(idata)
   27012      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27013      562953 :          data_tmp = IAND(data_tmp, mask_left(12))
   27014      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27015      562953 :          ipack = ipack + 1
   27016      562953 :          packed_data(ipack) = pack_tmp
   27017      562953 :          data_tmp = full_data(idata)
   27018      562953 :          pack_tmp = ISHFT(data_tmp, 40)
   27019      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27020      562953 :          idata = idata + 1
   27021      562953 :          data_tmp = full_data(idata)
   27022      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27023      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27024      562953 :          pack_tmp = ISHFT(pack_tmp, -4)
   27025      562953 :          idata = idata + 1
   27026      562953 :          data_tmp = full_data(idata)
   27027      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27028      562953 :          data_tmp = IAND(data_tmp, mask_left(4))
   27029      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27030      562953 :          ipack = ipack + 1
   27031      562953 :          packed_data(ipack) = pack_tmp
   27032      562953 :          data_tmp = full_data(idata)
   27033      562953 :          pack_tmp = ISHFT(data_tmp, 32)
   27034      562953 :          pack_tmp = ISHFT(pack_tmp, -32)
   27035      562953 :          idata = idata + 1
   27036      562953 :          data_tmp = full_data(idata)
   27037      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27038      562953 :          data_tmp = IAND(data_tmp, mask_left(32))
   27039      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27040      562953 :          ipack = ipack + 1
   27041      562953 :          packed_data(ipack) = pack_tmp
   27042      562953 :          data_tmp = full_data(idata)
   27043      562953 :          pack_tmp = ISHFT(data_tmp, 60)
   27044      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27045      562953 :          idata = idata + 1
   27046      562953 :          data_tmp = full_data(idata)
   27047      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27048      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27049      562953 :          pack_tmp = ISHFT(pack_tmp, -24)
   27050      562953 :          idata = idata + 1
   27051      562953 :          data_tmp = full_data(idata)
   27052      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27053      562953 :          data_tmp = IAND(data_tmp, mask_left(24))
   27054      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27055      562953 :          ipack = ipack + 1
   27056      562953 :          packed_data(ipack) = pack_tmp
   27057      562953 :          data_tmp = full_data(idata)
   27058      562953 :          pack_tmp = ISHFT(data_tmp, 52)
   27059      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27060      562953 :          idata = idata + 1
   27061      562953 :          data_tmp = full_data(idata)
   27062      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27063      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27064      562953 :          pack_tmp = ISHFT(pack_tmp, -16)
   27065      562953 :          idata = idata + 1
   27066      562953 :          data_tmp = full_data(idata)
   27067      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27068      562953 :          data_tmp = IAND(data_tmp, mask_left(16))
   27069      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27070      562953 :          ipack = ipack + 1
   27071      562953 :          packed_data(ipack) = pack_tmp
   27072      562953 :          data_tmp = full_data(idata)
   27073      562953 :          pack_tmp = ISHFT(data_tmp, 44)
   27074      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27075      562953 :          idata = idata + 1
   27076      562953 :          data_tmp = full_data(idata)
   27077      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27078      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27079      562953 :          pack_tmp = ISHFT(pack_tmp, -8)
   27080      562953 :          idata = idata + 1
   27081      562953 :          data_tmp = full_data(idata)
   27082      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27083      562953 :          data_tmp = IAND(data_tmp, mask_left(8))
   27084      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27085      562953 :          ipack = ipack + 1
   27086      562953 :          packed_data(ipack) = pack_tmp
   27087      562953 :          data_tmp = full_data(idata)
   27088      562953 :          pack_tmp = ISHFT(data_tmp, 36)
   27089      562953 :          pack_tmp = ISHFT(pack_tmp, -36)
   27090      562953 :          idata = idata + 1
   27091      562953 :          data_tmp = full_data(idata)
   27092      562953 :          data_tmp = ISHFT(data_tmp, 28)
   27093      562953 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27094             :          pack_tmp = ISHFT(pack_tmp, 0)
   27095      562953 :          pack_tmp = ISHFT(pack_tmp, 0)
   27096      562953 :          ipack = ipack + 1
   27097      563248 :          packed_data(ipack) = pack_tmp
   27098             :       END DO
   27099       43403 :       IF (Ndata_rep < Ndata) THEN
   27100       15470 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27101             :       END IF
   27102       43403 :    END SUBROUTINE ints2bits_36
   27103             : 
   27104             : ! **************************************************************************************************
   27105             : !> \brief ...
   27106             : !> \param Ndata ...
   27107             : !> \param packed_data ...
   27108             : !> \param full_data ...
   27109             : ! **************************************************************************************************
   27110      165734 :    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      165734 :       ipack = 0
   27121      165734 :       idata = 0
   27122      165734 :       pack_tmp = 0
   27123      165734 :       Ndata_rep = (Ndata/64)*64
   27124      165734 :       DO kdata = 1, Ndata_rep, 64
   27125     2193441 :          idata = idata + 1
   27126     2193441 :          data_tmp = ISHFT(pack_tmp, 36)
   27127     2193441 :          ipack = ipack + 1
   27128     2193441 :          pack_tmp = packed_data(ipack)
   27129     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27130     2193441 :          pack_tmp = ISHFT(pack_tmp, -36)
   27131     2193441 :          idata = idata + 1
   27132     2193441 :          data_tmp = ISHFT(pack_tmp, 8)
   27133     2193441 :          ipack = ipack + 1
   27134     2193441 :          pack_tmp = packed_data(ipack)
   27135     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27136     2193441 :          pack_tmp = ISHFT(pack_tmp, -8)
   27137     2193441 :          idata = idata + 1
   27138     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27139     2193441 :          full_data(idata) = data_tmp
   27140     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27141     2193441 :          idata = idata + 1
   27142     2193441 :          data_tmp = ISHFT(pack_tmp, 16)
   27143     2193441 :          ipack = ipack + 1
   27144     2193441 :          pack_tmp = packed_data(ipack)
   27145     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27146     2193441 :          pack_tmp = ISHFT(pack_tmp, -16)
   27147     2193441 :          idata = idata + 1
   27148     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27149     2193441 :          full_data(idata) = data_tmp
   27150     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27151     2193441 :          idata = idata + 1
   27152     2193441 :          data_tmp = ISHFT(pack_tmp, 24)
   27153     2193441 :          ipack = ipack + 1
   27154     2193441 :          pack_tmp = packed_data(ipack)
   27155     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27156     2193441 :          pack_tmp = ISHFT(pack_tmp, -24)
   27157     2193441 :          idata = idata + 1
   27158     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27159     2193441 :          full_data(idata) = data_tmp
   27160     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27161     2193441 :          idata = idata + 1
   27162     2193441 :          data_tmp = ISHFT(pack_tmp, 32)
   27163     2193441 :          ipack = ipack + 1
   27164     2193441 :          pack_tmp = packed_data(ipack)
   27165     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27166     2193441 :          pack_tmp = ISHFT(pack_tmp, -32)
   27167     2193441 :          idata = idata + 1
   27168     2193441 :          data_tmp = ISHFT(pack_tmp, 4)
   27169     2193441 :          ipack = ipack + 1
   27170     2193441 :          pack_tmp = packed_data(ipack)
   27171     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27172     2193441 :          pack_tmp = ISHFT(pack_tmp, -4)
   27173     2193441 :          idata = idata + 1
   27174     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27175     2193441 :          full_data(idata) = data_tmp
   27176     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27177     2193441 :          idata = idata + 1
   27178     2193441 :          data_tmp = ISHFT(pack_tmp, 12)
   27179     2193441 :          ipack = ipack + 1
   27180     2193441 :          pack_tmp = packed_data(ipack)
   27181     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27182     2193441 :          pack_tmp = ISHFT(pack_tmp, -12)
   27183     2193441 :          idata = idata + 1
   27184     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27185     2193441 :          full_data(idata) = data_tmp
   27186     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27187     2193441 :          idata = idata + 1
   27188     2193441 :          data_tmp = ISHFT(pack_tmp, 20)
   27189     2193441 :          ipack = ipack + 1
   27190     2193441 :          pack_tmp = packed_data(ipack)
   27191     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27192     2193441 :          pack_tmp = ISHFT(pack_tmp, -20)
   27193     2193441 :          idata = idata + 1
   27194     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27195     2193441 :          full_data(idata) = data_tmp
   27196     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27197     2193441 :          idata = idata + 1
   27198     2193441 :          data_tmp = ISHFT(pack_tmp, 28)
   27199     2193441 :          ipack = ipack + 1
   27200     2193441 :          pack_tmp = packed_data(ipack)
   27201     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27202     2193441 :          pack_tmp = ISHFT(pack_tmp, -28)
   27203     2193441 :          idata = idata + 1
   27204     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27205     2193441 :          full_data(idata) = data_tmp
   27206     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27207     2193441 :          idata = idata + 1
   27208     2193441 :          data_tmp = ISHFT(pack_tmp, 36)
   27209     2193441 :          ipack = ipack + 1
   27210     2193441 :          pack_tmp = packed_data(ipack)
   27211     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27212     2193441 :          pack_tmp = ISHFT(pack_tmp, -36)
   27213     2193441 :          idata = idata + 1
   27214     2193441 :          data_tmp = ISHFT(pack_tmp, 8)
   27215     2193441 :          ipack = ipack + 1
   27216     2193441 :          pack_tmp = packed_data(ipack)
   27217     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27218     2193441 :          pack_tmp = ISHFT(pack_tmp, -8)
   27219     2193441 :          idata = idata + 1
   27220     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27221     2193441 :          full_data(idata) = data_tmp
   27222     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27223     2193441 :          idata = idata + 1
   27224     2193441 :          data_tmp = ISHFT(pack_tmp, 16)
   27225     2193441 :          ipack = ipack + 1
   27226     2193441 :          pack_tmp = packed_data(ipack)
   27227     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27228     2193441 :          pack_tmp = ISHFT(pack_tmp, -16)
   27229     2193441 :          idata = idata + 1
   27230     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27231     2193441 :          full_data(idata) = data_tmp
   27232     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27233     2193441 :          idata = idata + 1
   27234     2193441 :          data_tmp = ISHFT(pack_tmp, 24)
   27235     2193441 :          ipack = ipack + 1
   27236     2193441 :          pack_tmp = packed_data(ipack)
   27237     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27238     2193441 :          pack_tmp = ISHFT(pack_tmp, -24)
   27239     2193441 :          idata = idata + 1
   27240     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27241     2193441 :          full_data(idata) = data_tmp
   27242     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27243     2193441 :          idata = idata + 1
   27244     2193441 :          data_tmp = ISHFT(pack_tmp, 32)
   27245     2193441 :          ipack = ipack + 1
   27246     2193441 :          pack_tmp = packed_data(ipack)
   27247     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27248     2193441 :          pack_tmp = ISHFT(pack_tmp, -32)
   27249     2193441 :          idata = idata + 1
   27250     2193441 :          data_tmp = ISHFT(pack_tmp, 4)
   27251     2193441 :          ipack = ipack + 1
   27252     2193441 :          pack_tmp = packed_data(ipack)
   27253     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27254     2193441 :          pack_tmp = ISHFT(pack_tmp, -4)
   27255     2193441 :          idata = idata + 1
   27256     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27257     2193441 :          full_data(idata) = data_tmp
   27258     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27259     2193441 :          idata = idata + 1
   27260     2193441 :          data_tmp = ISHFT(pack_tmp, 12)
   27261     2193441 :          ipack = ipack + 1
   27262     2193441 :          pack_tmp = packed_data(ipack)
   27263     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27264     2193441 :          pack_tmp = ISHFT(pack_tmp, -12)
   27265     2193441 :          idata = idata + 1
   27266     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27267     2193441 :          full_data(idata) = data_tmp
   27268     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27269     2193441 :          idata = idata + 1
   27270     2193441 :          data_tmp = ISHFT(pack_tmp, 20)
   27271     2193441 :          ipack = ipack + 1
   27272     2193441 :          pack_tmp = packed_data(ipack)
   27273     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27274     2193441 :          pack_tmp = ISHFT(pack_tmp, -20)
   27275     2193441 :          idata = idata + 1
   27276     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27277     2193441 :          full_data(idata) = data_tmp
   27278     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27279     2193441 :          idata = idata + 1
   27280     2193441 :          data_tmp = ISHFT(pack_tmp, 28)
   27281     2193441 :          ipack = ipack + 1
   27282     2193441 :          pack_tmp = packed_data(ipack)
   27283     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27284     2193441 :          pack_tmp = ISHFT(pack_tmp, -28)
   27285     2193441 :          idata = idata + 1
   27286     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27287     2193441 :          full_data(idata) = data_tmp
   27288     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27289     2193441 :          idata = idata + 1
   27290     2193441 :          data_tmp = ISHFT(pack_tmp, 36)
   27291     2193441 :          ipack = ipack + 1
   27292     2193441 :          pack_tmp = packed_data(ipack)
   27293     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27294     2193441 :          pack_tmp = ISHFT(pack_tmp, -36)
   27295     2193441 :          idata = idata + 1
   27296     2193441 :          data_tmp = ISHFT(pack_tmp, 8)
   27297     2193441 :          ipack = ipack + 1
   27298     2193441 :          pack_tmp = packed_data(ipack)
   27299     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27300     2193441 :          pack_tmp = ISHFT(pack_tmp, -8)
   27301     2193441 :          idata = idata + 1
   27302     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27303     2193441 :          full_data(idata) = data_tmp
   27304     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27305     2193441 :          idata = idata + 1
   27306     2193441 :          data_tmp = ISHFT(pack_tmp, 16)
   27307     2193441 :          ipack = ipack + 1
   27308     2193441 :          pack_tmp = packed_data(ipack)
   27309     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27310     2193441 :          pack_tmp = ISHFT(pack_tmp, -16)
   27311     2193441 :          idata = idata + 1
   27312     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27313     2193441 :          full_data(idata) = data_tmp
   27314     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27315     2193441 :          idata = idata + 1
   27316     2193441 :          data_tmp = ISHFT(pack_tmp, 24)
   27317     2193441 :          ipack = ipack + 1
   27318     2193441 :          pack_tmp = packed_data(ipack)
   27319     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27320     2193441 :          pack_tmp = ISHFT(pack_tmp, -24)
   27321     2193441 :          idata = idata + 1
   27322     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27323     2193441 :          full_data(idata) = data_tmp
   27324     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27325     2193441 :          idata = idata + 1
   27326     2193441 :          data_tmp = ISHFT(pack_tmp, 32)
   27327     2193441 :          ipack = ipack + 1
   27328     2193441 :          pack_tmp = packed_data(ipack)
   27329     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27330     2193441 :          pack_tmp = ISHFT(pack_tmp, -32)
   27331     2193441 :          idata = idata + 1
   27332     2193441 :          data_tmp = ISHFT(pack_tmp, 4)
   27333     2193441 :          ipack = ipack + 1
   27334     2193441 :          pack_tmp = packed_data(ipack)
   27335     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27336     2193441 :          pack_tmp = ISHFT(pack_tmp, -4)
   27337     2193441 :          idata = idata + 1
   27338     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27339     2193441 :          full_data(idata) = data_tmp
   27340     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27341     2193441 :          idata = idata + 1
   27342     2193441 :          data_tmp = ISHFT(pack_tmp, 12)
   27343     2193441 :          ipack = ipack + 1
   27344     2193441 :          pack_tmp = packed_data(ipack)
   27345     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27346     2193441 :          pack_tmp = ISHFT(pack_tmp, -12)
   27347     2193441 :          idata = idata + 1
   27348     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27349     2193441 :          full_data(idata) = data_tmp
   27350     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27351     2193441 :          idata = idata + 1
   27352     2193441 :          data_tmp = ISHFT(pack_tmp, 20)
   27353     2193441 :          ipack = ipack + 1
   27354     2193441 :          pack_tmp = packed_data(ipack)
   27355     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27356     2193441 :          pack_tmp = ISHFT(pack_tmp, -20)
   27357     2193441 :          idata = idata + 1
   27358     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27359     2193441 :          full_data(idata) = data_tmp
   27360     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27361     2193441 :          idata = idata + 1
   27362     2193441 :          data_tmp = ISHFT(pack_tmp, 28)
   27363     2193441 :          ipack = ipack + 1
   27364     2193441 :          pack_tmp = packed_data(ipack)
   27365     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27366     2193441 :          pack_tmp = ISHFT(pack_tmp, -28)
   27367     2193441 :          idata = idata + 1
   27368     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27369     2193441 :          full_data(idata) = data_tmp
   27370     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27371     2193441 :          idata = idata + 1
   27372     2193441 :          data_tmp = ISHFT(pack_tmp, 36)
   27373     2193441 :          ipack = ipack + 1
   27374     2193441 :          pack_tmp = packed_data(ipack)
   27375     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27376     2193441 :          pack_tmp = ISHFT(pack_tmp, -36)
   27377     2193441 :          idata = idata + 1
   27378     2193441 :          data_tmp = ISHFT(pack_tmp, 8)
   27379     2193441 :          ipack = ipack + 1
   27380     2193441 :          pack_tmp = packed_data(ipack)
   27381     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27382     2193441 :          pack_tmp = ISHFT(pack_tmp, -8)
   27383     2193441 :          idata = idata + 1
   27384     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27385     2193441 :          full_data(idata) = data_tmp
   27386     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27387     2193441 :          idata = idata + 1
   27388     2193441 :          data_tmp = ISHFT(pack_tmp, 16)
   27389     2193441 :          ipack = ipack + 1
   27390     2193441 :          pack_tmp = packed_data(ipack)
   27391     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27392     2193441 :          pack_tmp = ISHFT(pack_tmp, -16)
   27393     2193441 :          idata = idata + 1
   27394     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27395     2193441 :          full_data(idata) = data_tmp
   27396     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27397     2193441 :          idata = idata + 1
   27398     2193441 :          data_tmp = ISHFT(pack_tmp, 24)
   27399     2193441 :          ipack = ipack + 1
   27400     2193441 :          pack_tmp = packed_data(ipack)
   27401     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27402     2193441 :          pack_tmp = ISHFT(pack_tmp, -24)
   27403     2193441 :          idata = idata + 1
   27404     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27405     2193441 :          full_data(idata) = data_tmp
   27406     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27407     2193441 :          idata = idata + 1
   27408     2193441 :          data_tmp = ISHFT(pack_tmp, 32)
   27409     2193441 :          ipack = ipack + 1
   27410     2193441 :          pack_tmp = packed_data(ipack)
   27411     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27412     2193441 :          pack_tmp = ISHFT(pack_tmp, -32)
   27413     2193441 :          idata = idata + 1
   27414     2193441 :          data_tmp = ISHFT(pack_tmp, 4)
   27415     2193441 :          ipack = ipack + 1
   27416     2193441 :          pack_tmp = packed_data(ipack)
   27417     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27418     2193441 :          pack_tmp = ISHFT(pack_tmp, -4)
   27419     2193441 :          idata = idata + 1
   27420     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27421     2193441 :          full_data(idata) = data_tmp
   27422     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27423     2193441 :          idata = idata + 1
   27424     2193441 :          data_tmp = ISHFT(pack_tmp, 12)
   27425     2193441 :          ipack = ipack + 1
   27426     2193441 :          pack_tmp = packed_data(ipack)
   27427     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27428     2193441 :          pack_tmp = ISHFT(pack_tmp, -12)
   27429     2193441 :          idata = idata + 1
   27430     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27431     2193441 :          full_data(idata) = data_tmp
   27432     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27433     2193441 :          idata = idata + 1
   27434     2193441 :          data_tmp = ISHFT(pack_tmp, 20)
   27435     2193441 :          ipack = ipack + 1
   27436     2193441 :          pack_tmp = packed_data(ipack)
   27437     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27438     2193441 :          pack_tmp = ISHFT(pack_tmp, -20)
   27439     2193441 :          idata = idata + 1
   27440     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27441     2193441 :          full_data(idata) = data_tmp
   27442     2193441 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27443     2193441 :          idata = idata + 1
   27444     2193441 :          data_tmp = ISHFT(pack_tmp, 28)
   27445     2193441 :          ipack = ipack + 1
   27446     2193441 :          pack_tmp = packed_data(ipack)
   27447     2193441 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27448     2193441 :          pack_tmp = ISHFT(pack_tmp, -28)
   27449     2193441 :          idata = idata + 1
   27450     2193441 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27451     2193441 :          full_data(idata) = data_tmp
   27452     2194866 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27453             :       END DO
   27454      165734 :       IF (Ndata_rep < Ndata) THEN
   27455       53918 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27456             :       END IF
   27457      165734 :    END SUBROUTINE bits2ints_36
   27458             : 
   27459             : ! **************************************************************************************************
   27460             : !> \brief ...
   27461             : !> \param Ndata ...
   27462             : !> \param packed_data ...
   27463             : !> \param full_data ...
   27464             : ! **************************************************************************************************
   27465       32183 :    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       32183 :       idata = 0
   27476       32183 :       ipack = 0
   27477       32183 :       Ndata_rep = (Ndata/64)*64
   27478       32183 :       DO kdata = 1, Ndata_rep, 64
   27479      452659 :          pack_tmp = 0
   27480      452659 :          idata = idata + 1
   27481      452659 :          data_tmp = full_data(idata)
   27482      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27483      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27484      452659 :          pack_tmp = ISHFT(pack_tmp, -27)
   27485      452659 :          idata = idata + 1
   27486      452659 :          data_tmp = full_data(idata)
   27487      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27488      452659 :          data_tmp = IAND(data_tmp, mask_left(27))
   27489      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27490      452659 :          ipack = ipack + 1
   27491      452659 :          packed_data(ipack) = pack_tmp
   27492      452659 :          data_tmp = full_data(idata)
   27493      452659 :          pack_tmp = ISHFT(data_tmp, 54)
   27494      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27495      452659 :          idata = idata + 1
   27496      452659 :          data_tmp = full_data(idata)
   27497      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27498      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27499      452659 :          pack_tmp = ISHFT(pack_tmp, -17)
   27500      452659 :          idata = idata + 1
   27501      452659 :          data_tmp = full_data(idata)
   27502      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27503      452659 :          data_tmp = IAND(data_tmp, mask_left(17))
   27504      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27505      452659 :          ipack = ipack + 1
   27506      452659 :          packed_data(ipack) = pack_tmp
   27507      452659 :          data_tmp = full_data(idata)
   27508      452659 :          pack_tmp = ISHFT(data_tmp, 44)
   27509      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27510      452659 :          idata = idata + 1
   27511      452659 :          data_tmp = full_data(idata)
   27512      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27513      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27514      452659 :          pack_tmp = ISHFT(pack_tmp, -7)
   27515      452659 :          idata = idata + 1
   27516      452659 :          data_tmp = full_data(idata)
   27517      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27518      452659 :          data_tmp = IAND(data_tmp, mask_left(7))
   27519      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27520      452659 :          ipack = ipack + 1
   27521      452659 :          packed_data(ipack) = pack_tmp
   27522      452659 :          data_tmp = full_data(idata)
   27523      452659 :          pack_tmp = ISHFT(data_tmp, 34)
   27524      452659 :          pack_tmp = ISHFT(pack_tmp, -34)
   27525      452659 :          idata = idata + 1
   27526      452659 :          data_tmp = full_data(idata)
   27527      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27528      452659 :          data_tmp = IAND(data_tmp, mask_left(34))
   27529      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27530      452659 :          ipack = ipack + 1
   27531      452659 :          packed_data(ipack) = pack_tmp
   27532      452659 :          data_tmp = full_data(idata)
   27533      452659 :          pack_tmp = ISHFT(data_tmp, 61)
   27534      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27535      452659 :          idata = idata + 1
   27536      452659 :          data_tmp = full_data(idata)
   27537      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27538      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27539      452659 :          pack_tmp = ISHFT(pack_tmp, -24)
   27540      452659 :          idata = idata + 1
   27541      452659 :          data_tmp = full_data(idata)
   27542      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27543      452659 :          data_tmp = IAND(data_tmp, mask_left(24))
   27544      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27545      452659 :          ipack = ipack + 1
   27546      452659 :          packed_data(ipack) = pack_tmp
   27547      452659 :          data_tmp = full_data(idata)
   27548      452659 :          pack_tmp = ISHFT(data_tmp, 51)
   27549      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27550      452659 :          idata = idata + 1
   27551      452659 :          data_tmp = full_data(idata)
   27552      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27553      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27554      452659 :          pack_tmp = ISHFT(pack_tmp, -14)
   27555      452659 :          idata = idata + 1
   27556      452659 :          data_tmp = full_data(idata)
   27557      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27558      452659 :          data_tmp = IAND(data_tmp, mask_left(14))
   27559      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27560      452659 :          ipack = ipack + 1
   27561      452659 :          packed_data(ipack) = pack_tmp
   27562      452659 :          data_tmp = full_data(idata)
   27563      452659 :          pack_tmp = ISHFT(data_tmp, 41)
   27564      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27565      452659 :          idata = idata + 1
   27566      452659 :          data_tmp = full_data(idata)
   27567      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27568      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27569      452659 :          pack_tmp = ISHFT(pack_tmp, -4)
   27570      452659 :          idata = idata + 1
   27571      452659 :          data_tmp = full_data(idata)
   27572      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27573      452659 :          data_tmp = IAND(data_tmp, mask_left(4))
   27574      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27575      452659 :          ipack = ipack + 1
   27576      452659 :          packed_data(ipack) = pack_tmp
   27577      452659 :          data_tmp = full_data(idata)
   27578      452659 :          pack_tmp = ISHFT(data_tmp, 31)
   27579      452659 :          pack_tmp = ISHFT(pack_tmp, -31)
   27580      452659 :          idata = idata + 1
   27581      452659 :          data_tmp = full_data(idata)
   27582      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27583      452659 :          data_tmp = IAND(data_tmp, mask_left(31))
   27584      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27585      452659 :          ipack = ipack + 1
   27586      452659 :          packed_data(ipack) = pack_tmp
   27587      452659 :          data_tmp = full_data(idata)
   27588      452659 :          pack_tmp = ISHFT(data_tmp, 58)
   27589      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27590      452659 :          idata = idata + 1
   27591      452659 :          data_tmp = full_data(idata)
   27592      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27593      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27594      452659 :          pack_tmp = ISHFT(pack_tmp, -21)
   27595      452659 :          idata = idata + 1
   27596      452659 :          data_tmp = full_data(idata)
   27597      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27598      452659 :          data_tmp = IAND(data_tmp, mask_left(21))
   27599      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27600      452659 :          ipack = ipack + 1
   27601      452659 :          packed_data(ipack) = pack_tmp
   27602      452659 :          data_tmp = full_data(idata)
   27603      452659 :          pack_tmp = ISHFT(data_tmp, 48)
   27604      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27605      452659 :          idata = idata + 1
   27606      452659 :          data_tmp = full_data(idata)
   27607      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27608      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27609      452659 :          pack_tmp = ISHFT(pack_tmp, -11)
   27610      452659 :          idata = idata + 1
   27611      452659 :          data_tmp = full_data(idata)
   27612      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27613      452659 :          data_tmp = IAND(data_tmp, mask_left(11))
   27614      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27615      452659 :          ipack = ipack + 1
   27616      452659 :          packed_data(ipack) = pack_tmp
   27617      452659 :          data_tmp = full_data(idata)
   27618      452659 :          pack_tmp = ISHFT(data_tmp, 38)
   27619      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27620      452659 :          idata = idata + 1
   27621      452659 :          data_tmp = full_data(idata)
   27622      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27623      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27624      452659 :          pack_tmp = ISHFT(pack_tmp, -1)
   27625      452659 :          idata = idata + 1
   27626      452659 :          data_tmp = full_data(idata)
   27627      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27628      452659 :          data_tmp = IAND(data_tmp, mask_left(1))
   27629      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27630      452659 :          ipack = ipack + 1
   27631      452659 :          packed_data(ipack) = pack_tmp
   27632      452659 :          data_tmp = full_data(idata)
   27633      452659 :          pack_tmp = ISHFT(data_tmp, 28)
   27634      452659 :          pack_tmp = ISHFT(pack_tmp, -28)
   27635      452659 :          idata = idata + 1
   27636      452659 :          data_tmp = full_data(idata)
   27637      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27638      452659 :          data_tmp = IAND(data_tmp, mask_left(28))
   27639      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27640      452659 :          ipack = ipack + 1
   27641      452659 :          packed_data(ipack) = pack_tmp
   27642      452659 :          data_tmp = full_data(idata)
   27643      452659 :          pack_tmp = ISHFT(data_tmp, 55)
   27644      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27645      452659 :          idata = idata + 1
   27646      452659 :          data_tmp = full_data(idata)
   27647      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27648      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27649      452659 :          pack_tmp = ISHFT(pack_tmp, -18)
   27650      452659 :          idata = idata + 1
   27651      452659 :          data_tmp = full_data(idata)
   27652      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27653      452659 :          data_tmp = IAND(data_tmp, mask_left(18))
   27654      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27655      452659 :          ipack = ipack + 1
   27656      452659 :          packed_data(ipack) = pack_tmp
   27657      452659 :          data_tmp = full_data(idata)
   27658      452659 :          pack_tmp = ISHFT(data_tmp, 45)
   27659      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27660      452659 :          idata = idata + 1
   27661      452659 :          data_tmp = full_data(idata)
   27662      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27663      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27664      452659 :          pack_tmp = ISHFT(pack_tmp, -8)
   27665      452659 :          idata = idata + 1
   27666      452659 :          data_tmp = full_data(idata)
   27667      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27668      452659 :          data_tmp = IAND(data_tmp, mask_left(8))
   27669      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27670      452659 :          ipack = ipack + 1
   27671      452659 :          packed_data(ipack) = pack_tmp
   27672      452659 :          data_tmp = full_data(idata)
   27673      452659 :          pack_tmp = ISHFT(data_tmp, 35)
   27674      452659 :          pack_tmp = ISHFT(pack_tmp, -35)
   27675      452659 :          idata = idata + 1
   27676      452659 :          data_tmp = full_data(idata)
   27677      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27678      452659 :          data_tmp = IAND(data_tmp, mask_left(35))
   27679      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27680      452659 :          ipack = ipack + 1
   27681      452659 :          packed_data(ipack) = pack_tmp
   27682      452659 :          data_tmp = full_data(idata)
   27683      452659 :          pack_tmp = ISHFT(data_tmp, 62)
   27684      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27685      452659 :          idata = idata + 1
   27686      452659 :          data_tmp = full_data(idata)
   27687      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27688      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27689      452659 :          pack_tmp = ISHFT(pack_tmp, -25)
   27690      452659 :          idata = idata + 1
   27691      452659 :          data_tmp = full_data(idata)
   27692      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27693      452659 :          data_tmp = IAND(data_tmp, mask_left(25))
   27694      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27695      452659 :          ipack = ipack + 1
   27696      452659 :          packed_data(ipack) = pack_tmp
   27697      452659 :          data_tmp = full_data(idata)
   27698      452659 :          pack_tmp = ISHFT(data_tmp, 52)
   27699      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27700      452659 :          idata = idata + 1
   27701      452659 :          data_tmp = full_data(idata)
   27702      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27703      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27704      452659 :          pack_tmp = ISHFT(pack_tmp, -15)
   27705      452659 :          idata = idata + 1
   27706      452659 :          data_tmp = full_data(idata)
   27707      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27708      452659 :          data_tmp = IAND(data_tmp, mask_left(15))
   27709      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27710      452659 :          ipack = ipack + 1
   27711      452659 :          packed_data(ipack) = pack_tmp
   27712      452659 :          data_tmp = full_data(idata)
   27713      452659 :          pack_tmp = ISHFT(data_tmp, 42)
   27714      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27715      452659 :          idata = idata + 1
   27716      452659 :          data_tmp = full_data(idata)
   27717      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27718      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27719      452659 :          pack_tmp = ISHFT(pack_tmp, -5)
   27720      452659 :          idata = idata + 1
   27721      452659 :          data_tmp = full_data(idata)
   27722      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27723      452659 :          data_tmp = IAND(data_tmp, mask_left(5))
   27724      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27725      452659 :          ipack = ipack + 1
   27726      452659 :          packed_data(ipack) = pack_tmp
   27727      452659 :          data_tmp = full_data(idata)
   27728      452659 :          pack_tmp = ISHFT(data_tmp, 32)
   27729      452659 :          pack_tmp = ISHFT(pack_tmp, -32)
   27730      452659 :          idata = idata + 1
   27731      452659 :          data_tmp = full_data(idata)
   27732      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27733      452659 :          data_tmp = IAND(data_tmp, mask_left(32))
   27734      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27735      452659 :          ipack = ipack + 1
   27736      452659 :          packed_data(ipack) = pack_tmp
   27737      452659 :          data_tmp = full_data(idata)
   27738      452659 :          pack_tmp = ISHFT(data_tmp, 59)
   27739      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27740      452659 :          idata = idata + 1
   27741      452659 :          data_tmp = full_data(idata)
   27742      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27743      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27744      452659 :          pack_tmp = ISHFT(pack_tmp, -22)
   27745      452659 :          idata = idata + 1
   27746      452659 :          data_tmp = full_data(idata)
   27747      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27748      452659 :          data_tmp = IAND(data_tmp, mask_left(22))
   27749      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27750      452659 :          ipack = ipack + 1
   27751      452659 :          packed_data(ipack) = pack_tmp
   27752      452659 :          data_tmp = full_data(idata)
   27753      452659 :          pack_tmp = ISHFT(data_tmp, 49)
   27754      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27755      452659 :          idata = idata + 1
   27756      452659 :          data_tmp = full_data(idata)
   27757      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27758      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27759      452659 :          pack_tmp = ISHFT(pack_tmp, -12)
   27760      452659 :          idata = idata + 1
   27761      452659 :          data_tmp = full_data(idata)
   27762      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27763      452659 :          data_tmp = IAND(data_tmp, mask_left(12))
   27764      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27765      452659 :          ipack = ipack + 1
   27766      452659 :          packed_data(ipack) = pack_tmp
   27767      452659 :          data_tmp = full_data(idata)
   27768      452659 :          pack_tmp = ISHFT(data_tmp, 39)
   27769      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27770      452659 :          idata = idata + 1
   27771      452659 :          data_tmp = full_data(idata)
   27772      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27773      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27774      452659 :          pack_tmp = ISHFT(pack_tmp, -2)
   27775      452659 :          idata = idata + 1
   27776      452659 :          data_tmp = full_data(idata)
   27777      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27778      452659 :          data_tmp = IAND(data_tmp, mask_left(2))
   27779      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27780      452659 :          ipack = ipack + 1
   27781      452659 :          packed_data(ipack) = pack_tmp
   27782      452659 :          data_tmp = full_data(idata)
   27783      452659 :          pack_tmp = ISHFT(data_tmp, 29)
   27784      452659 :          pack_tmp = ISHFT(pack_tmp, -29)
   27785      452659 :          idata = idata + 1
   27786      452659 :          data_tmp = full_data(idata)
   27787      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27788      452659 :          data_tmp = IAND(data_tmp, mask_left(29))
   27789      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27790      452659 :          ipack = ipack + 1
   27791      452659 :          packed_data(ipack) = pack_tmp
   27792      452659 :          data_tmp = full_data(idata)
   27793      452659 :          pack_tmp = ISHFT(data_tmp, 56)
   27794      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27795      452659 :          idata = idata + 1
   27796      452659 :          data_tmp = full_data(idata)
   27797      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27798      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27799      452659 :          pack_tmp = ISHFT(pack_tmp, -19)
   27800      452659 :          idata = idata + 1
   27801      452659 :          data_tmp = full_data(idata)
   27802      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27803      452659 :          data_tmp = IAND(data_tmp, mask_left(19))
   27804      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27805      452659 :          ipack = ipack + 1
   27806      452659 :          packed_data(ipack) = pack_tmp
   27807      452659 :          data_tmp = full_data(idata)
   27808      452659 :          pack_tmp = ISHFT(data_tmp, 46)
   27809      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27810      452659 :          idata = idata + 1
   27811      452659 :          data_tmp = full_data(idata)
   27812      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27813      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27814      452659 :          pack_tmp = ISHFT(pack_tmp, -9)
   27815      452659 :          idata = idata + 1
   27816      452659 :          data_tmp = full_data(idata)
   27817      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27818      452659 :          data_tmp = IAND(data_tmp, mask_left(9))
   27819      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27820      452659 :          ipack = ipack + 1
   27821      452659 :          packed_data(ipack) = pack_tmp
   27822      452659 :          data_tmp = full_data(idata)
   27823      452659 :          pack_tmp = ISHFT(data_tmp, 36)
   27824      452659 :          pack_tmp = ISHFT(pack_tmp, -36)
   27825      452659 :          idata = idata + 1
   27826      452659 :          data_tmp = full_data(idata)
   27827      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27828      452659 :          data_tmp = IAND(data_tmp, mask_left(36))
   27829      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27830      452659 :          ipack = ipack + 1
   27831      452659 :          packed_data(ipack) = pack_tmp
   27832      452659 :          data_tmp = full_data(idata)
   27833      452659 :          pack_tmp = ISHFT(data_tmp, 63)
   27834      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27835      452659 :          idata = idata + 1
   27836      452659 :          data_tmp = full_data(idata)
   27837      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27838      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27839      452659 :          pack_tmp = ISHFT(pack_tmp, -26)
   27840      452659 :          idata = idata + 1
   27841      452659 :          data_tmp = full_data(idata)
   27842      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27843      452659 :          data_tmp = IAND(data_tmp, mask_left(26))
   27844      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27845      452659 :          ipack = ipack + 1
   27846      452659 :          packed_data(ipack) = pack_tmp
   27847      452659 :          data_tmp = full_data(idata)
   27848      452659 :          pack_tmp = ISHFT(data_tmp, 53)
   27849      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27850      452659 :          idata = idata + 1
   27851      452659 :          data_tmp = full_data(idata)
   27852      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27853      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27854      452659 :          pack_tmp = ISHFT(pack_tmp, -16)
   27855      452659 :          idata = idata + 1
   27856      452659 :          data_tmp = full_data(idata)
   27857      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27858      452659 :          data_tmp = IAND(data_tmp, mask_left(16))
   27859      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27860      452659 :          ipack = ipack + 1
   27861      452659 :          packed_data(ipack) = pack_tmp
   27862      452659 :          data_tmp = full_data(idata)
   27863      452659 :          pack_tmp = ISHFT(data_tmp, 43)
   27864      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27865      452659 :          idata = idata + 1
   27866      452659 :          data_tmp = full_data(idata)
   27867      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27868      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27869      452659 :          pack_tmp = ISHFT(pack_tmp, -6)
   27870      452659 :          idata = idata + 1
   27871      452659 :          data_tmp = full_data(idata)
   27872      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27873      452659 :          data_tmp = IAND(data_tmp, mask_left(6))
   27874      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27875      452659 :          ipack = ipack + 1
   27876      452659 :          packed_data(ipack) = pack_tmp
   27877      452659 :          data_tmp = full_data(idata)
   27878      452659 :          pack_tmp = ISHFT(data_tmp, 33)
   27879      452659 :          pack_tmp = ISHFT(pack_tmp, -33)
   27880      452659 :          idata = idata + 1
   27881      452659 :          data_tmp = full_data(idata)
   27882      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27883      452659 :          data_tmp = IAND(data_tmp, mask_left(33))
   27884      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27885      452659 :          ipack = ipack + 1
   27886      452659 :          packed_data(ipack) = pack_tmp
   27887      452659 :          data_tmp = full_data(idata)
   27888      452659 :          pack_tmp = ISHFT(data_tmp, 60)
   27889      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27890      452659 :          idata = idata + 1
   27891      452659 :          data_tmp = full_data(idata)
   27892      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27893      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27894      452659 :          pack_tmp = ISHFT(pack_tmp, -23)
   27895      452659 :          idata = idata + 1
   27896      452659 :          data_tmp = full_data(idata)
   27897      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27898      452659 :          data_tmp = IAND(data_tmp, mask_left(23))
   27899      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27900      452659 :          ipack = ipack + 1
   27901      452659 :          packed_data(ipack) = pack_tmp
   27902      452659 :          data_tmp = full_data(idata)
   27903      452659 :          pack_tmp = ISHFT(data_tmp, 50)
   27904      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27905      452659 :          idata = idata + 1
   27906      452659 :          data_tmp = full_data(idata)
   27907      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27908      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27909      452659 :          pack_tmp = ISHFT(pack_tmp, -13)
   27910      452659 :          idata = idata + 1
   27911      452659 :          data_tmp = full_data(idata)
   27912      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27913      452659 :          data_tmp = IAND(data_tmp, mask_left(13))
   27914      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27915      452659 :          ipack = ipack + 1
   27916      452659 :          packed_data(ipack) = pack_tmp
   27917      452659 :          data_tmp = full_data(idata)
   27918      452659 :          pack_tmp = ISHFT(data_tmp, 40)
   27919      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27920      452659 :          idata = idata + 1
   27921      452659 :          data_tmp = full_data(idata)
   27922      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27923      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27924      452659 :          pack_tmp = ISHFT(pack_tmp, -3)
   27925      452659 :          idata = idata + 1
   27926      452659 :          data_tmp = full_data(idata)
   27927      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27928      452659 :          data_tmp = IAND(data_tmp, mask_left(3))
   27929      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27930      452659 :          ipack = ipack + 1
   27931      452659 :          packed_data(ipack) = pack_tmp
   27932      452659 :          data_tmp = full_data(idata)
   27933      452659 :          pack_tmp = ISHFT(data_tmp, 30)
   27934      452659 :          pack_tmp = ISHFT(pack_tmp, -30)
   27935      452659 :          idata = idata + 1
   27936      452659 :          data_tmp = full_data(idata)
   27937      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27938      452659 :          data_tmp = IAND(data_tmp, mask_left(30))
   27939      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27940      452659 :          ipack = ipack + 1
   27941      452659 :          packed_data(ipack) = pack_tmp
   27942      452659 :          data_tmp = full_data(idata)
   27943      452659 :          pack_tmp = ISHFT(data_tmp, 57)
   27944      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27945      452659 :          idata = idata + 1
   27946      452659 :          data_tmp = full_data(idata)
   27947      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27948      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27949      452659 :          pack_tmp = ISHFT(pack_tmp, -20)
   27950      452659 :          idata = idata + 1
   27951      452659 :          data_tmp = full_data(idata)
   27952      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27953      452659 :          data_tmp = IAND(data_tmp, mask_left(20))
   27954      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27955      452659 :          ipack = ipack + 1
   27956      452659 :          packed_data(ipack) = pack_tmp
   27957      452659 :          data_tmp = full_data(idata)
   27958      452659 :          pack_tmp = ISHFT(data_tmp, 47)
   27959      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27960      452659 :          idata = idata + 1
   27961      452659 :          data_tmp = full_data(idata)
   27962      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27963      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27964      452659 :          pack_tmp = ISHFT(pack_tmp, -10)
   27965      452659 :          idata = idata + 1
   27966      452659 :          data_tmp = full_data(idata)
   27967      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27968      452659 :          data_tmp = IAND(data_tmp, mask_left(10))
   27969      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27970      452659 :          ipack = ipack + 1
   27971      452659 :          packed_data(ipack) = pack_tmp
   27972      452659 :          data_tmp = full_data(idata)
   27973      452659 :          pack_tmp = ISHFT(data_tmp, 37)
   27974      452659 :          pack_tmp = ISHFT(pack_tmp, -37)
   27975      452659 :          idata = idata + 1
   27976      452659 :          data_tmp = full_data(idata)
   27977      452659 :          data_tmp = ISHFT(data_tmp, 27)
   27978      452659 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27979             :          pack_tmp = ISHFT(pack_tmp, 0)
   27980      452659 :          pack_tmp = ISHFT(pack_tmp, 0)
   27981      452659 :          ipack = ipack + 1
   27982      452674 :          packed_data(ipack) = pack_tmp
   27983             :       END DO
   27984       32183 :       IF (Ndata_rep < Ndata) THEN
   27985        7322 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27986             :       END IF
   27987       32183 :    END SUBROUTINE ints2bits_37
   27988             : 
   27989             : ! **************************************************************************************************
   27990             : !> \brief ...
   27991             : !> \param Ndata ...
   27992             : !> \param packed_data ...
   27993             : !> \param full_data ...
   27994             : ! **************************************************************************************************
   27995      139177 :    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      139177 :       ipack = 0
   28006      139177 :       idata = 0
   28007      139177 :       pack_tmp = 0
   28008      139177 :       Ndata_rep = (Ndata/64)*64
   28009      139177 :       DO kdata = 1, Ndata_rep, 64
   28010     1919933 :          idata = idata + 1
   28011     1919933 :          data_tmp = ISHFT(pack_tmp, 37)
   28012     1919933 :          ipack = ipack + 1
   28013     1919933 :          pack_tmp = packed_data(ipack)
   28014     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   28015     1919933 :          pack_tmp = ISHFT(pack_tmp, -37)
   28016     1919933 :          idata = idata + 1
   28017     1919933 :          data_tmp = ISHFT(pack_tmp, 10)
   28018     1919933 :          ipack = ipack + 1
   28019     1919933 :          pack_tmp = packed_data(ipack)
   28020     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28021     1919933 :          pack_tmp = ISHFT(pack_tmp, -10)
   28022     1919933 :          idata = idata + 1
   28023     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28024     1919933 :          full_data(idata) = data_tmp
   28025     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28026     1919933 :          idata = idata + 1
   28027     1919933 :          data_tmp = ISHFT(pack_tmp, 20)
   28028     1919933 :          ipack = ipack + 1
   28029     1919933 :          pack_tmp = packed_data(ipack)
   28030     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28031     1919933 :          pack_tmp = ISHFT(pack_tmp, -20)
   28032     1919933 :          idata = idata + 1
   28033     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28034     1919933 :          full_data(idata) = data_tmp
   28035     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28036     1919933 :          idata = idata + 1
   28037     1919933 :          data_tmp = ISHFT(pack_tmp, 30)
   28038     1919933 :          ipack = ipack + 1
   28039     1919933 :          pack_tmp = packed_data(ipack)
   28040     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   28041     1919933 :          pack_tmp = ISHFT(pack_tmp, -30)
   28042     1919933 :          idata = idata + 1
   28043     1919933 :          data_tmp = ISHFT(pack_tmp, 3)
   28044     1919933 :          ipack = ipack + 1
   28045     1919933 :          pack_tmp = packed_data(ipack)
   28046     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   28047     1919933 :          pack_tmp = ISHFT(pack_tmp, -3)
   28048     1919933 :          idata = idata + 1
   28049     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28050     1919933 :          full_data(idata) = data_tmp
   28051     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28052     1919933 :          idata = idata + 1
   28053     1919933 :          data_tmp = ISHFT(pack_tmp, 13)
   28054     1919933 :          ipack = ipack + 1
   28055     1919933 :          pack_tmp = packed_data(ipack)
   28056     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   28057     1919933 :          pack_tmp = ISHFT(pack_tmp, -13)
   28058     1919933 :          idata = idata + 1
   28059     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28060     1919933 :          full_data(idata) = data_tmp
   28061     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28062     1919933 :          idata = idata + 1
   28063     1919933 :          data_tmp = ISHFT(pack_tmp, 23)
   28064     1919933 :          ipack = ipack + 1
   28065     1919933 :          pack_tmp = packed_data(ipack)
   28066     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   28067     1919933 :          pack_tmp = ISHFT(pack_tmp, -23)
   28068     1919933 :          idata = idata + 1
   28069     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28070     1919933 :          full_data(idata) = data_tmp
   28071     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28072     1919933 :          idata = idata + 1
   28073     1919933 :          data_tmp = ISHFT(pack_tmp, 33)
   28074     1919933 :          ipack = ipack + 1
   28075     1919933 :          pack_tmp = packed_data(ipack)
   28076     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   28077     1919933 :          pack_tmp = ISHFT(pack_tmp, -33)
   28078     1919933 :          idata = idata + 1
   28079     1919933 :          data_tmp = ISHFT(pack_tmp, 6)
   28080     1919933 :          ipack = ipack + 1
   28081     1919933 :          pack_tmp = packed_data(ipack)
   28082     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28083     1919933 :          pack_tmp = ISHFT(pack_tmp, -6)
   28084     1919933 :          idata = idata + 1
   28085     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28086     1919933 :          full_data(idata) = data_tmp
   28087     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28088     1919933 :          idata = idata + 1
   28089     1919933 :          data_tmp = ISHFT(pack_tmp, 16)
   28090     1919933 :          ipack = ipack + 1
   28091     1919933 :          pack_tmp = packed_data(ipack)
   28092     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   28093     1919933 :          pack_tmp = ISHFT(pack_tmp, -16)
   28094     1919933 :          idata = idata + 1
   28095     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28096     1919933 :          full_data(idata) = data_tmp
   28097     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28098     1919933 :          idata = idata + 1
   28099     1919933 :          data_tmp = ISHFT(pack_tmp, 26)
   28100     1919933 :          ipack = ipack + 1
   28101     1919933 :          pack_tmp = packed_data(ipack)
   28102     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   28103     1919933 :          pack_tmp = ISHFT(pack_tmp, -26)
   28104     1919933 :          idata = idata + 1
   28105     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28106     1919933 :          full_data(idata) = data_tmp
   28107     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28108     1919933 :          idata = idata + 1
   28109     1919933 :          data_tmp = ISHFT(pack_tmp, 36)
   28110     1919933 :          ipack = ipack + 1
   28111     1919933 :          pack_tmp = packed_data(ipack)
   28112     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28113     1919933 :          pack_tmp = ISHFT(pack_tmp, -36)
   28114     1919933 :          idata = idata + 1
   28115     1919933 :          data_tmp = ISHFT(pack_tmp, 9)
   28116     1919933 :          ipack = ipack + 1
   28117     1919933 :          pack_tmp = packed_data(ipack)
   28118     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   28119     1919933 :          pack_tmp = ISHFT(pack_tmp, -9)
   28120     1919933 :          idata = idata + 1
   28121     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28122     1919933 :          full_data(idata) = data_tmp
   28123     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28124     1919933 :          idata = idata + 1
   28125     1919933 :          data_tmp = ISHFT(pack_tmp, 19)
   28126     1919933 :          ipack = ipack + 1
   28127     1919933 :          pack_tmp = packed_data(ipack)
   28128     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   28129     1919933 :          pack_tmp = ISHFT(pack_tmp, -19)
   28130     1919933 :          idata = idata + 1
   28131     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28132     1919933 :          full_data(idata) = data_tmp
   28133     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28134     1919933 :          idata = idata + 1
   28135     1919933 :          data_tmp = ISHFT(pack_tmp, 29)
   28136     1919933 :          ipack = ipack + 1
   28137     1919933 :          pack_tmp = packed_data(ipack)
   28138     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   28139     1919933 :          pack_tmp = ISHFT(pack_tmp, -29)
   28140     1919933 :          idata = idata + 1
   28141     1919933 :          data_tmp = ISHFT(pack_tmp, 2)
   28142     1919933 :          ipack = ipack + 1
   28143     1919933 :          pack_tmp = packed_data(ipack)
   28144     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   28145     1919933 :          pack_tmp = ISHFT(pack_tmp, -2)
   28146     1919933 :          idata = idata + 1
   28147     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28148     1919933 :          full_data(idata) = data_tmp
   28149     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28150     1919933 :          idata = idata + 1
   28151     1919933 :          data_tmp = ISHFT(pack_tmp, 12)
   28152     1919933 :          ipack = ipack + 1
   28153     1919933 :          pack_tmp = packed_data(ipack)
   28154     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28155     1919933 :          pack_tmp = ISHFT(pack_tmp, -12)
   28156     1919933 :          idata = idata + 1
   28157     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28158     1919933 :          full_data(idata) = data_tmp
   28159     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28160     1919933 :          idata = idata + 1
   28161     1919933 :          data_tmp = ISHFT(pack_tmp, 22)
   28162     1919933 :          ipack = ipack + 1
   28163     1919933 :          pack_tmp = packed_data(ipack)
   28164     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28165     1919933 :          pack_tmp = ISHFT(pack_tmp, -22)
   28166     1919933 :          idata = idata + 1
   28167     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28168     1919933 :          full_data(idata) = data_tmp
   28169     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28170     1919933 :          idata = idata + 1
   28171     1919933 :          data_tmp = ISHFT(pack_tmp, 32)
   28172     1919933 :          ipack = ipack + 1
   28173     1919933 :          pack_tmp = packed_data(ipack)
   28174     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28175     1919933 :          pack_tmp = ISHFT(pack_tmp, -32)
   28176     1919933 :          idata = idata + 1
   28177     1919933 :          data_tmp = ISHFT(pack_tmp, 5)
   28178     1919933 :          ipack = ipack + 1
   28179     1919933 :          pack_tmp = packed_data(ipack)
   28180     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   28181     1919933 :          pack_tmp = ISHFT(pack_tmp, -5)
   28182     1919933 :          idata = idata + 1
   28183     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28184     1919933 :          full_data(idata) = data_tmp
   28185     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28186     1919933 :          idata = idata + 1
   28187     1919933 :          data_tmp = ISHFT(pack_tmp, 15)
   28188     1919933 :          ipack = ipack + 1
   28189     1919933 :          pack_tmp = packed_data(ipack)
   28190     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   28191     1919933 :          pack_tmp = ISHFT(pack_tmp, -15)
   28192     1919933 :          idata = idata + 1
   28193     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28194     1919933 :          full_data(idata) = data_tmp
   28195     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28196     1919933 :          idata = idata + 1
   28197     1919933 :          data_tmp = ISHFT(pack_tmp, 25)
   28198     1919933 :          ipack = ipack + 1
   28199     1919933 :          pack_tmp = packed_data(ipack)
   28200     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   28201     1919933 :          pack_tmp = ISHFT(pack_tmp, -25)
   28202     1919933 :          idata = idata + 1
   28203     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28204     1919933 :          full_data(idata) = data_tmp
   28205     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28206     1919933 :          idata = idata + 1
   28207     1919933 :          data_tmp = ISHFT(pack_tmp, 35)
   28208     1919933 :          ipack = ipack + 1
   28209     1919933 :          pack_tmp = packed_data(ipack)
   28210     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   28211     1919933 :          pack_tmp = ISHFT(pack_tmp, -35)
   28212     1919933 :          idata = idata + 1
   28213     1919933 :          data_tmp = ISHFT(pack_tmp, 8)
   28214     1919933 :          ipack = ipack + 1
   28215     1919933 :          pack_tmp = packed_data(ipack)
   28216     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28217     1919933 :          pack_tmp = ISHFT(pack_tmp, -8)
   28218     1919933 :          idata = idata + 1
   28219     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28220     1919933 :          full_data(idata) = data_tmp
   28221     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28222     1919933 :          idata = idata + 1
   28223     1919933 :          data_tmp = ISHFT(pack_tmp, 18)
   28224     1919933 :          ipack = ipack + 1
   28225     1919933 :          pack_tmp = packed_data(ipack)
   28226     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   28227     1919933 :          pack_tmp = ISHFT(pack_tmp, -18)
   28228     1919933 :          idata = idata + 1
   28229     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28230     1919933 :          full_data(idata) = data_tmp
   28231     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28232     1919933 :          idata = idata + 1
   28233     1919933 :          data_tmp = ISHFT(pack_tmp, 28)
   28234     1919933 :          ipack = ipack + 1
   28235     1919933 :          pack_tmp = packed_data(ipack)
   28236     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   28237     1919933 :          pack_tmp = ISHFT(pack_tmp, -28)
   28238     1919933 :          idata = idata + 1
   28239     1919933 :          data_tmp = ISHFT(pack_tmp, 1)
   28240     1919933 :          ipack = ipack + 1
   28241     1919933 :          pack_tmp = packed_data(ipack)
   28242     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   28243     1919933 :          pack_tmp = ISHFT(pack_tmp, -1)
   28244     1919933 :          idata = idata + 1
   28245     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28246     1919933 :          full_data(idata) = data_tmp
   28247     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28248     1919933 :          idata = idata + 1
   28249     1919933 :          data_tmp = ISHFT(pack_tmp, 11)
   28250     1919933 :          ipack = ipack + 1
   28251     1919933 :          pack_tmp = packed_data(ipack)
   28252     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   28253     1919933 :          pack_tmp = ISHFT(pack_tmp, -11)
   28254     1919933 :          idata = idata + 1
   28255     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28256     1919933 :          full_data(idata) = data_tmp
   28257     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28258     1919933 :          idata = idata + 1
   28259     1919933 :          data_tmp = ISHFT(pack_tmp, 21)
   28260     1919933 :          ipack = ipack + 1
   28261     1919933 :          pack_tmp = packed_data(ipack)
   28262     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   28263     1919933 :          pack_tmp = ISHFT(pack_tmp, -21)
   28264     1919933 :          idata = idata + 1
   28265     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28266     1919933 :          full_data(idata) = data_tmp
   28267     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28268     1919933 :          idata = idata + 1
   28269     1919933 :          data_tmp = ISHFT(pack_tmp, 31)
   28270     1919933 :          ipack = ipack + 1
   28271     1919933 :          pack_tmp = packed_data(ipack)
   28272     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   28273     1919933 :          pack_tmp = ISHFT(pack_tmp, -31)
   28274     1919933 :          idata = idata + 1
   28275     1919933 :          data_tmp = ISHFT(pack_tmp, 4)
   28276     1919933 :          ipack = ipack + 1
   28277     1919933 :          pack_tmp = packed_data(ipack)
   28278     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   28279     1919933 :          pack_tmp = ISHFT(pack_tmp, -4)
   28280     1919933 :          idata = idata + 1
   28281     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28282     1919933 :          full_data(idata) = data_tmp
   28283     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28284     1919933 :          idata = idata + 1
   28285     1919933 :          data_tmp = ISHFT(pack_tmp, 14)
   28286     1919933 :          ipack = ipack + 1
   28287     1919933 :          pack_tmp = packed_data(ipack)
   28288     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   28289     1919933 :          pack_tmp = ISHFT(pack_tmp, -14)
   28290     1919933 :          idata = idata + 1
   28291     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28292     1919933 :          full_data(idata) = data_tmp
   28293     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28294     1919933 :          idata = idata + 1
   28295     1919933 :          data_tmp = ISHFT(pack_tmp, 24)
   28296     1919933 :          ipack = ipack + 1
   28297     1919933 :          pack_tmp = packed_data(ipack)
   28298     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28299     1919933 :          pack_tmp = ISHFT(pack_tmp, -24)
   28300     1919933 :          idata = idata + 1
   28301     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28302     1919933 :          full_data(idata) = data_tmp
   28303     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28304     1919933 :          idata = idata + 1
   28305     1919933 :          data_tmp = ISHFT(pack_tmp, 34)
   28306     1919933 :          ipack = ipack + 1
   28307     1919933 :          pack_tmp = packed_data(ipack)
   28308     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28309     1919933 :          pack_tmp = ISHFT(pack_tmp, -34)
   28310     1919933 :          idata = idata + 1
   28311     1919933 :          data_tmp = ISHFT(pack_tmp, 7)
   28312     1919933 :          ipack = ipack + 1
   28313     1919933 :          pack_tmp = packed_data(ipack)
   28314     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   28315     1919933 :          pack_tmp = ISHFT(pack_tmp, -7)
   28316     1919933 :          idata = idata + 1
   28317     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28318     1919933 :          full_data(idata) = data_tmp
   28319     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28320     1919933 :          idata = idata + 1
   28321     1919933 :          data_tmp = ISHFT(pack_tmp, 17)
   28322     1919933 :          ipack = ipack + 1
   28323     1919933 :          pack_tmp = packed_data(ipack)
   28324     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   28325     1919933 :          pack_tmp = ISHFT(pack_tmp, -17)
   28326     1919933 :          idata = idata + 1
   28327     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28328     1919933 :          full_data(idata) = data_tmp
   28329     1919933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28330     1919933 :          idata = idata + 1
   28331     1919933 :          data_tmp = ISHFT(pack_tmp, 27)
   28332     1919933 :          ipack = ipack + 1
   28333     1919933 :          pack_tmp = packed_data(ipack)
   28334     1919933 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   28335     1919933 :          pack_tmp = ISHFT(pack_tmp, -27)
   28336     1919933 :          idata = idata + 1
   28337     1919933 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28338     1919933 :          full_data(idata) = data_tmp
   28339     1919956 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28340             :       END DO
   28341      139177 :       IF (Ndata_rep < Ndata) THEN
   28342       36102 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28343             :       END IF
   28344      139177 :    END SUBROUTINE bits2ints_37
   28345             : 
   28346             : ! **************************************************************************************************
   28347             : !> \brief ...
   28348             : !> \param Ndata ...
   28349             : !> \param packed_data ...
   28350             : !> \param full_data ...
   28351             : ! **************************************************************************************************
   28352       30823 :    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       30823 :       idata = 0
   28363       30823 :       ipack = 0
   28364       30823 :       Ndata_rep = (Ndata/64)*64
   28365       30823 :       DO kdata = 1, Ndata_rep, 64
   28366      439886 :          pack_tmp = 0
   28367      439886 :          idata = idata + 1
   28368      439886 :          data_tmp = full_data(idata)
   28369      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28370      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28371      439886 :          pack_tmp = ISHFT(pack_tmp, -26)
   28372      439886 :          idata = idata + 1
   28373      439886 :          data_tmp = full_data(idata)
   28374      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28375      439886 :          data_tmp = IAND(data_tmp, mask_left(26))
   28376      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28377      439886 :          ipack = ipack + 1
   28378      439886 :          packed_data(ipack) = pack_tmp
   28379      439886 :          data_tmp = full_data(idata)
   28380      439886 :          pack_tmp = ISHFT(data_tmp, 52)
   28381      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28382      439886 :          idata = idata + 1
   28383      439886 :          data_tmp = full_data(idata)
   28384      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28385      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28386      439886 :          pack_tmp = ISHFT(pack_tmp, -14)
   28387      439886 :          idata = idata + 1
   28388      439886 :          data_tmp = full_data(idata)
   28389      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28390      439886 :          data_tmp = IAND(data_tmp, mask_left(14))
   28391      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28392      439886 :          ipack = ipack + 1
   28393      439886 :          packed_data(ipack) = pack_tmp
   28394      439886 :          data_tmp = full_data(idata)
   28395      439886 :          pack_tmp = ISHFT(data_tmp, 40)
   28396      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28397      439886 :          idata = idata + 1
   28398      439886 :          data_tmp = full_data(idata)
   28399      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28400      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28401      439886 :          pack_tmp = ISHFT(pack_tmp, -2)
   28402      439886 :          idata = idata + 1
   28403      439886 :          data_tmp = full_data(idata)
   28404      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28405      439886 :          data_tmp = IAND(data_tmp, mask_left(2))
   28406      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28407      439886 :          ipack = ipack + 1
   28408      439886 :          packed_data(ipack) = pack_tmp
   28409      439886 :          data_tmp = full_data(idata)
   28410      439886 :          pack_tmp = ISHFT(data_tmp, 28)
   28411      439886 :          pack_tmp = ISHFT(pack_tmp, -28)
   28412      439886 :          idata = idata + 1
   28413      439886 :          data_tmp = full_data(idata)
   28414      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28415      439886 :          data_tmp = IAND(data_tmp, mask_left(28))
   28416      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28417      439886 :          ipack = ipack + 1
   28418      439886 :          packed_data(ipack) = pack_tmp
   28419      439886 :          data_tmp = full_data(idata)
   28420      439886 :          pack_tmp = ISHFT(data_tmp, 54)
   28421      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28422      439886 :          idata = idata + 1
   28423      439886 :          data_tmp = full_data(idata)
   28424      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28425      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28426      439886 :          pack_tmp = ISHFT(pack_tmp, -16)
   28427      439886 :          idata = idata + 1
   28428      439886 :          data_tmp = full_data(idata)
   28429      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28430      439886 :          data_tmp = IAND(data_tmp, mask_left(16))
   28431      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28432      439886 :          ipack = ipack + 1
   28433      439886 :          packed_data(ipack) = pack_tmp
   28434      439886 :          data_tmp = full_data(idata)
   28435      439886 :          pack_tmp = ISHFT(data_tmp, 42)
   28436      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28437      439886 :          idata = idata + 1
   28438      439886 :          data_tmp = full_data(idata)
   28439      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28440      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28441      439886 :          pack_tmp = ISHFT(pack_tmp, -4)
   28442      439886 :          idata = idata + 1
   28443      439886 :          data_tmp = full_data(idata)
   28444      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28445      439886 :          data_tmp = IAND(data_tmp, mask_left(4))
   28446      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28447      439886 :          ipack = ipack + 1
   28448      439886 :          packed_data(ipack) = pack_tmp
   28449      439886 :          data_tmp = full_data(idata)
   28450      439886 :          pack_tmp = ISHFT(data_tmp, 30)
   28451      439886 :          pack_tmp = ISHFT(pack_tmp, -30)
   28452      439886 :          idata = idata + 1
   28453      439886 :          data_tmp = full_data(idata)
   28454      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28455      439886 :          data_tmp = IAND(data_tmp, mask_left(30))
   28456      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28457      439886 :          ipack = ipack + 1
   28458      439886 :          packed_data(ipack) = pack_tmp
   28459      439886 :          data_tmp = full_data(idata)
   28460      439886 :          pack_tmp = ISHFT(data_tmp, 56)
   28461      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28462      439886 :          idata = idata + 1
   28463      439886 :          data_tmp = full_data(idata)
   28464      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28465      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28466      439886 :          pack_tmp = ISHFT(pack_tmp, -18)
   28467      439886 :          idata = idata + 1
   28468      439886 :          data_tmp = full_data(idata)
   28469      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28470      439886 :          data_tmp = IAND(data_tmp, mask_left(18))
   28471      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28472      439886 :          ipack = ipack + 1
   28473      439886 :          packed_data(ipack) = pack_tmp
   28474      439886 :          data_tmp = full_data(idata)
   28475      439886 :          pack_tmp = ISHFT(data_tmp, 44)
   28476      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28477      439886 :          idata = idata + 1
   28478      439886 :          data_tmp = full_data(idata)
   28479      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28480      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28481      439886 :          pack_tmp = ISHFT(pack_tmp, -6)
   28482      439886 :          idata = idata + 1
   28483      439886 :          data_tmp = full_data(idata)
   28484      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28485      439886 :          data_tmp = IAND(data_tmp, mask_left(6))
   28486      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28487      439886 :          ipack = ipack + 1
   28488      439886 :          packed_data(ipack) = pack_tmp
   28489      439886 :          data_tmp = full_data(idata)
   28490      439886 :          pack_tmp = ISHFT(data_tmp, 32)
   28491      439886 :          pack_tmp = ISHFT(pack_tmp, -32)
   28492      439886 :          idata = idata + 1
   28493      439886 :          data_tmp = full_data(idata)
   28494      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28495      439886 :          data_tmp = IAND(data_tmp, mask_left(32))
   28496      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28497      439886 :          ipack = ipack + 1
   28498      439886 :          packed_data(ipack) = pack_tmp
   28499      439886 :          data_tmp = full_data(idata)
   28500      439886 :          pack_tmp = ISHFT(data_tmp, 58)
   28501      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28502      439886 :          idata = idata + 1
   28503      439886 :          data_tmp = full_data(idata)
   28504      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28505      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28506      439886 :          pack_tmp = ISHFT(pack_tmp, -20)
   28507      439886 :          idata = idata + 1
   28508      439886 :          data_tmp = full_data(idata)
   28509      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28510      439886 :          data_tmp = IAND(data_tmp, mask_left(20))
   28511      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28512      439886 :          ipack = ipack + 1
   28513      439886 :          packed_data(ipack) = pack_tmp
   28514      439886 :          data_tmp = full_data(idata)
   28515      439886 :          pack_tmp = ISHFT(data_tmp, 46)
   28516      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28517      439886 :          idata = idata + 1
   28518      439886 :          data_tmp = full_data(idata)
   28519      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28520      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28521      439886 :          pack_tmp = ISHFT(pack_tmp, -8)
   28522      439886 :          idata = idata + 1
   28523      439886 :          data_tmp = full_data(idata)
   28524      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28525      439886 :          data_tmp = IAND(data_tmp, mask_left(8))
   28526      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28527      439886 :          ipack = ipack + 1
   28528      439886 :          packed_data(ipack) = pack_tmp
   28529      439886 :          data_tmp = full_data(idata)
   28530      439886 :          pack_tmp = ISHFT(data_tmp, 34)
   28531      439886 :          pack_tmp = ISHFT(pack_tmp, -34)
   28532      439886 :          idata = idata + 1
   28533      439886 :          data_tmp = full_data(idata)
   28534      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28535      439886 :          data_tmp = IAND(data_tmp, mask_left(34))
   28536      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28537      439886 :          ipack = ipack + 1
   28538      439886 :          packed_data(ipack) = pack_tmp
   28539      439886 :          data_tmp = full_data(idata)
   28540      439886 :          pack_tmp = ISHFT(data_tmp, 60)
   28541      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28542      439886 :          idata = idata + 1
   28543      439886 :          data_tmp = full_data(idata)
   28544      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28545      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28546      439886 :          pack_tmp = ISHFT(pack_tmp, -22)
   28547      439886 :          idata = idata + 1
   28548      439886 :          data_tmp = full_data(idata)
   28549      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28550      439886 :          data_tmp = IAND(data_tmp, mask_left(22))
   28551      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28552      439886 :          ipack = ipack + 1
   28553      439886 :          packed_data(ipack) = pack_tmp
   28554      439886 :          data_tmp = full_data(idata)
   28555      439886 :          pack_tmp = ISHFT(data_tmp, 48)
   28556      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28557      439886 :          idata = idata + 1
   28558      439886 :          data_tmp = full_data(idata)
   28559      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28560      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28561      439886 :          pack_tmp = ISHFT(pack_tmp, -10)
   28562      439886 :          idata = idata + 1
   28563      439886 :          data_tmp = full_data(idata)
   28564      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28565      439886 :          data_tmp = IAND(data_tmp, mask_left(10))
   28566      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28567      439886 :          ipack = ipack + 1
   28568      439886 :          packed_data(ipack) = pack_tmp
   28569      439886 :          data_tmp = full_data(idata)
   28570      439886 :          pack_tmp = ISHFT(data_tmp, 36)
   28571      439886 :          pack_tmp = ISHFT(pack_tmp, -36)
   28572      439886 :          idata = idata + 1
   28573      439886 :          data_tmp = full_data(idata)
   28574      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28575      439886 :          data_tmp = IAND(data_tmp, mask_left(36))
   28576      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28577      439886 :          ipack = ipack + 1
   28578      439886 :          packed_data(ipack) = pack_tmp
   28579      439886 :          data_tmp = full_data(idata)
   28580      439886 :          pack_tmp = ISHFT(data_tmp, 62)
   28581      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28582      439886 :          idata = idata + 1
   28583      439886 :          data_tmp = full_data(idata)
   28584      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28585      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28586      439886 :          pack_tmp = ISHFT(pack_tmp, -24)
   28587      439886 :          idata = idata + 1
   28588      439886 :          data_tmp = full_data(idata)
   28589      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28590      439886 :          data_tmp = IAND(data_tmp, mask_left(24))
   28591      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28592      439886 :          ipack = ipack + 1
   28593      439886 :          packed_data(ipack) = pack_tmp
   28594      439886 :          data_tmp = full_data(idata)
   28595      439886 :          pack_tmp = ISHFT(data_tmp, 50)
   28596      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28597      439886 :          idata = idata + 1
   28598      439886 :          data_tmp = full_data(idata)
   28599      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28600      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28601      439886 :          pack_tmp = ISHFT(pack_tmp, -12)
   28602      439886 :          idata = idata + 1
   28603      439886 :          data_tmp = full_data(idata)
   28604      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28605      439886 :          data_tmp = IAND(data_tmp, mask_left(12))
   28606      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28607      439886 :          ipack = ipack + 1
   28608      439886 :          packed_data(ipack) = pack_tmp
   28609      439886 :          data_tmp = full_data(idata)
   28610      439886 :          pack_tmp = ISHFT(data_tmp, 38)
   28611      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28612      439886 :          idata = idata + 1
   28613      439886 :          data_tmp = full_data(idata)
   28614      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28615      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28616      439886 :          pack_tmp = ISHFT(pack_tmp, 0)
   28617      439886 :          idata = idata + 1
   28618      439886 :          data_tmp = full_data(idata)
   28619      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28620      439886 :          data_tmp = IAND(data_tmp, mask_left(0))
   28621      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28622      439886 :          ipack = ipack + 1
   28623      439886 :          packed_data(ipack) = pack_tmp
   28624      439886 :          data_tmp = full_data(idata)
   28625      439886 :          pack_tmp = ISHFT(data_tmp, 26)
   28626      439886 :          pack_tmp = ISHFT(pack_tmp, -26)
   28627      439886 :          idata = idata + 1
   28628      439886 :          data_tmp = full_data(idata)
   28629      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28630      439886 :          data_tmp = IAND(data_tmp, mask_left(26))
   28631      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28632      439886 :          ipack = ipack + 1
   28633      439886 :          packed_data(ipack) = pack_tmp
   28634      439886 :          data_tmp = full_data(idata)
   28635      439886 :          pack_tmp = ISHFT(data_tmp, 52)
   28636      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28637      439886 :          idata = idata + 1
   28638      439886 :          data_tmp = full_data(idata)
   28639      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28640      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28641      439886 :          pack_tmp = ISHFT(pack_tmp, -14)
   28642      439886 :          idata = idata + 1
   28643      439886 :          data_tmp = full_data(idata)
   28644      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28645      439886 :          data_tmp = IAND(data_tmp, mask_left(14))
   28646      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28647      439886 :          ipack = ipack + 1
   28648      439886 :          packed_data(ipack) = pack_tmp
   28649      439886 :          data_tmp = full_data(idata)
   28650      439886 :          pack_tmp = ISHFT(data_tmp, 40)
   28651      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28652      439886 :          idata = idata + 1
   28653      439886 :          data_tmp = full_data(idata)
   28654      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28655      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28656      439886 :          pack_tmp = ISHFT(pack_tmp, -2)
   28657      439886 :          idata = idata + 1
   28658      439886 :          data_tmp = full_data(idata)
   28659      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28660      439886 :          data_tmp = IAND(data_tmp, mask_left(2))
   28661      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28662      439886 :          ipack = ipack + 1
   28663      439886 :          packed_data(ipack) = pack_tmp
   28664      439886 :          data_tmp = full_data(idata)
   28665      439886 :          pack_tmp = ISHFT(data_tmp, 28)
   28666      439886 :          pack_tmp = ISHFT(pack_tmp, -28)
   28667      439886 :          idata = idata + 1
   28668      439886 :          data_tmp = full_data(idata)
   28669      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28670      439886 :          data_tmp = IAND(data_tmp, mask_left(28))
   28671      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28672      439886 :          ipack = ipack + 1
   28673      439886 :          packed_data(ipack) = pack_tmp
   28674      439886 :          data_tmp = full_data(idata)
   28675      439886 :          pack_tmp = ISHFT(data_tmp, 54)
   28676      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28677      439886 :          idata = idata + 1
   28678      439886 :          data_tmp = full_data(idata)
   28679      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28680      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28681      439886 :          pack_tmp = ISHFT(pack_tmp, -16)
   28682      439886 :          idata = idata + 1
   28683      439886 :          data_tmp = full_data(idata)
   28684      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28685      439886 :          data_tmp = IAND(data_tmp, mask_left(16))
   28686      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28687      439886 :          ipack = ipack + 1
   28688      439886 :          packed_data(ipack) = pack_tmp
   28689      439886 :          data_tmp = full_data(idata)
   28690      439886 :          pack_tmp = ISHFT(data_tmp, 42)
   28691      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28692      439886 :          idata = idata + 1
   28693      439886 :          data_tmp = full_data(idata)
   28694      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28695      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28696      439886 :          pack_tmp = ISHFT(pack_tmp, -4)
   28697      439886 :          idata = idata + 1
   28698      439886 :          data_tmp = full_data(idata)
   28699      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28700      439886 :          data_tmp = IAND(data_tmp, mask_left(4))
   28701      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28702      439886 :          ipack = ipack + 1
   28703      439886 :          packed_data(ipack) = pack_tmp
   28704      439886 :          data_tmp = full_data(idata)
   28705      439886 :          pack_tmp = ISHFT(data_tmp, 30)
   28706      439886 :          pack_tmp = ISHFT(pack_tmp, -30)
   28707      439886 :          idata = idata + 1
   28708      439886 :          data_tmp = full_data(idata)
   28709      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28710      439886 :          data_tmp = IAND(data_tmp, mask_left(30))
   28711      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28712      439886 :          ipack = ipack + 1
   28713      439886 :          packed_data(ipack) = pack_tmp
   28714      439886 :          data_tmp = full_data(idata)
   28715      439886 :          pack_tmp = ISHFT(data_tmp, 56)
   28716      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28717      439886 :          idata = idata + 1
   28718      439886 :          data_tmp = full_data(idata)
   28719      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28720      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28721      439886 :          pack_tmp = ISHFT(pack_tmp, -18)
   28722      439886 :          idata = idata + 1
   28723      439886 :          data_tmp = full_data(idata)
   28724      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28725      439886 :          data_tmp = IAND(data_tmp, mask_left(18))
   28726      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28727      439886 :          ipack = ipack + 1
   28728      439886 :          packed_data(ipack) = pack_tmp
   28729      439886 :          data_tmp = full_data(idata)
   28730      439886 :          pack_tmp = ISHFT(data_tmp, 44)
   28731      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28732      439886 :          idata = idata + 1
   28733      439886 :          data_tmp = full_data(idata)
   28734      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28735      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28736      439886 :          pack_tmp = ISHFT(pack_tmp, -6)
   28737      439886 :          idata = idata + 1
   28738      439886 :          data_tmp = full_data(idata)
   28739      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28740      439886 :          data_tmp = IAND(data_tmp, mask_left(6))
   28741      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28742      439886 :          ipack = ipack + 1
   28743      439886 :          packed_data(ipack) = pack_tmp
   28744      439886 :          data_tmp = full_data(idata)
   28745      439886 :          pack_tmp = ISHFT(data_tmp, 32)
   28746      439886 :          pack_tmp = ISHFT(pack_tmp, -32)
   28747      439886 :          idata = idata + 1
   28748      439886 :          data_tmp = full_data(idata)
   28749      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28750      439886 :          data_tmp = IAND(data_tmp, mask_left(32))
   28751      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28752      439886 :          ipack = ipack + 1
   28753      439886 :          packed_data(ipack) = pack_tmp
   28754      439886 :          data_tmp = full_data(idata)
   28755      439886 :          pack_tmp = ISHFT(data_tmp, 58)
   28756      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28757      439886 :          idata = idata + 1
   28758      439886 :          data_tmp = full_data(idata)
   28759      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28760      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28761      439886 :          pack_tmp = ISHFT(pack_tmp, -20)
   28762      439886 :          idata = idata + 1
   28763      439886 :          data_tmp = full_data(idata)
   28764      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28765      439886 :          data_tmp = IAND(data_tmp, mask_left(20))
   28766      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28767      439886 :          ipack = ipack + 1
   28768      439886 :          packed_data(ipack) = pack_tmp
   28769      439886 :          data_tmp = full_data(idata)
   28770      439886 :          pack_tmp = ISHFT(data_tmp, 46)
   28771      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28772      439886 :          idata = idata + 1
   28773      439886 :          data_tmp = full_data(idata)
   28774      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28775      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28776      439886 :          pack_tmp = ISHFT(pack_tmp, -8)
   28777      439886 :          idata = idata + 1
   28778      439886 :          data_tmp = full_data(idata)
   28779      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28780      439886 :          data_tmp = IAND(data_tmp, mask_left(8))
   28781      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28782      439886 :          ipack = ipack + 1
   28783      439886 :          packed_data(ipack) = pack_tmp
   28784      439886 :          data_tmp = full_data(idata)
   28785      439886 :          pack_tmp = ISHFT(data_tmp, 34)
   28786      439886 :          pack_tmp = ISHFT(pack_tmp, -34)
   28787      439886 :          idata = idata + 1
   28788      439886 :          data_tmp = full_data(idata)
   28789      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28790      439886 :          data_tmp = IAND(data_tmp, mask_left(34))
   28791      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28792      439886 :          ipack = ipack + 1
   28793      439886 :          packed_data(ipack) = pack_tmp
   28794      439886 :          data_tmp = full_data(idata)
   28795      439886 :          pack_tmp = ISHFT(data_tmp, 60)
   28796      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28797      439886 :          idata = idata + 1
   28798      439886 :          data_tmp = full_data(idata)
   28799      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28800      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28801      439886 :          pack_tmp = ISHFT(pack_tmp, -22)
   28802      439886 :          idata = idata + 1
   28803      439886 :          data_tmp = full_data(idata)
   28804      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28805      439886 :          data_tmp = IAND(data_tmp, mask_left(22))
   28806      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28807      439886 :          ipack = ipack + 1
   28808      439886 :          packed_data(ipack) = pack_tmp
   28809      439886 :          data_tmp = full_data(idata)
   28810      439886 :          pack_tmp = ISHFT(data_tmp, 48)
   28811      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28812      439886 :          idata = idata + 1
   28813      439886 :          data_tmp = full_data(idata)
   28814      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28815      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28816      439886 :          pack_tmp = ISHFT(pack_tmp, -10)
   28817      439886 :          idata = idata + 1
   28818      439886 :          data_tmp = full_data(idata)
   28819      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28820      439886 :          data_tmp = IAND(data_tmp, mask_left(10))
   28821      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28822      439886 :          ipack = ipack + 1
   28823      439886 :          packed_data(ipack) = pack_tmp
   28824      439886 :          data_tmp = full_data(idata)
   28825      439886 :          pack_tmp = ISHFT(data_tmp, 36)
   28826      439886 :          pack_tmp = ISHFT(pack_tmp, -36)
   28827      439886 :          idata = idata + 1
   28828      439886 :          data_tmp = full_data(idata)
   28829      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28830      439886 :          data_tmp = IAND(data_tmp, mask_left(36))
   28831      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28832      439886 :          ipack = ipack + 1
   28833      439886 :          packed_data(ipack) = pack_tmp
   28834      439886 :          data_tmp = full_data(idata)
   28835      439886 :          pack_tmp = ISHFT(data_tmp, 62)
   28836      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28837      439886 :          idata = idata + 1
   28838      439886 :          data_tmp = full_data(idata)
   28839      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28840      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28841      439886 :          pack_tmp = ISHFT(pack_tmp, -24)
   28842      439886 :          idata = idata + 1
   28843      439886 :          data_tmp = full_data(idata)
   28844      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28845      439886 :          data_tmp = IAND(data_tmp, mask_left(24))
   28846      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28847      439886 :          ipack = ipack + 1
   28848      439886 :          packed_data(ipack) = pack_tmp
   28849      439886 :          data_tmp = full_data(idata)
   28850      439886 :          pack_tmp = ISHFT(data_tmp, 50)
   28851      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28852      439886 :          idata = idata + 1
   28853      439886 :          data_tmp = full_data(idata)
   28854      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28855      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28856      439886 :          pack_tmp = ISHFT(pack_tmp, -12)
   28857      439886 :          idata = idata + 1
   28858      439886 :          data_tmp = full_data(idata)
   28859      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28860      439886 :          data_tmp = IAND(data_tmp, mask_left(12))
   28861      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28862      439886 :          ipack = ipack + 1
   28863      439886 :          packed_data(ipack) = pack_tmp
   28864      439886 :          data_tmp = full_data(idata)
   28865      439886 :          pack_tmp = ISHFT(data_tmp, 38)
   28866      439886 :          pack_tmp = ISHFT(pack_tmp, -38)
   28867      439886 :          idata = idata + 1
   28868      439886 :          data_tmp = full_data(idata)
   28869      439886 :          data_tmp = ISHFT(data_tmp, 26)
   28870      439886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28871             :          pack_tmp = ISHFT(pack_tmp, 0)
   28872      439886 :          pack_tmp = ISHFT(pack_tmp, 0)
   28873      439886 :          ipack = ipack + 1
   28874      440174 :          packed_data(ipack) = pack_tmp
   28875             :       END DO
   28876       30823 :       IF (Ndata_rep < Ndata) THEN
   28877        6244 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28878             :       END IF
   28879       30823 :    END SUBROUTINE ints2bits_38
   28880             : 
   28881             : ! **************************************************************************************************
   28882             : !> \brief ...
   28883             : !> \param Ndata ...
   28884             : !> \param packed_data ...
   28885             : !> \param full_data ...
   28886             : ! **************************************************************************************************
   28887      153020 :    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      153020 :       ipack = 0
   28898      153020 :       idata = 0
   28899      153020 :       pack_tmp = 0
   28900      153020 :       Ndata_rep = (Ndata/64)*64
   28901      153020 :       DO kdata = 1, Ndata_rep, 64
   28902     2063118 :          idata = idata + 1
   28903     2063118 :          data_tmp = ISHFT(pack_tmp, 38)
   28904     2063118 :          ipack = ipack + 1
   28905     2063118 :          pack_tmp = packed_data(ipack)
   28906     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   28907     2063118 :          pack_tmp = ISHFT(pack_tmp, -38)
   28908     2063118 :          idata = idata + 1
   28909     2063118 :          data_tmp = ISHFT(pack_tmp, 12)
   28910     2063118 :          ipack = ipack + 1
   28911     2063118 :          pack_tmp = packed_data(ipack)
   28912     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28913     2063118 :          pack_tmp = ISHFT(pack_tmp, -12)
   28914     2063118 :          idata = idata + 1
   28915     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28916     2063118 :          full_data(idata) = data_tmp
   28917     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28918     2063118 :          idata = idata + 1
   28919     2063118 :          data_tmp = ISHFT(pack_tmp, 24)
   28920     2063118 :          ipack = ipack + 1
   28921     2063118 :          pack_tmp = packed_data(ipack)
   28922     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28923     2063118 :          pack_tmp = ISHFT(pack_tmp, -24)
   28924     2063118 :          idata = idata + 1
   28925     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28926     2063118 :          full_data(idata) = data_tmp
   28927     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28928     2063118 :          idata = idata + 1
   28929     2063118 :          data_tmp = ISHFT(pack_tmp, 36)
   28930     2063118 :          ipack = ipack + 1
   28931     2063118 :          pack_tmp = packed_data(ipack)
   28932     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28933     2063118 :          pack_tmp = ISHFT(pack_tmp, -36)
   28934     2063118 :          idata = idata + 1
   28935     2063118 :          data_tmp = ISHFT(pack_tmp, 10)
   28936     2063118 :          ipack = ipack + 1
   28937     2063118 :          pack_tmp = packed_data(ipack)
   28938     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28939     2063118 :          pack_tmp = ISHFT(pack_tmp, -10)
   28940     2063118 :          idata = idata + 1
   28941     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28942     2063118 :          full_data(idata) = data_tmp
   28943     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28944     2063118 :          idata = idata + 1
   28945     2063118 :          data_tmp = ISHFT(pack_tmp, 22)
   28946     2063118 :          ipack = ipack + 1
   28947     2063118 :          pack_tmp = packed_data(ipack)
   28948     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28949     2063118 :          pack_tmp = ISHFT(pack_tmp, -22)
   28950     2063118 :          idata = idata + 1
   28951     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28952     2063118 :          full_data(idata) = data_tmp
   28953     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28954     2063118 :          idata = idata + 1
   28955     2063118 :          data_tmp = ISHFT(pack_tmp, 34)
   28956     2063118 :          ipack = ipack + 1
   28957     2063118 :          pack_tmp = packed_data(ipack)
   28958     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28959     2063118 :          pack_tmp = ISHFT(pack_tmp, -34)
   28960     2063118 :          idata = idata + 1
   28961     2063118 :          data_tmp = ISHFT(pack_tmp, 8)
   28962     2063118 :          ipack = ipack + 1
   28963     2063118 :          pack_tmp = packed_data(ipack)
   28964     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28965     2063118 :          pack_tmp = ISHFT(pack_tmp, -8)
   28966     2063118 :          idata = idata + 1
   28967     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28968     2063118 :          full_data(idata) = data_tmp
   28969     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28970     2063118 :          idata = idata + 1
   28971     2063118 :          data_tmp = ISHFT(pack_tmp, 20)
   28972     2063118 :          ipack = ipack + 1
   28973     2063118 :          pack_tmp = packed_data(ipack)
   28974     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28975     2063118 :          pack_tmp = ISHFT(pack_tmp, -20)
   28976     2063118 :          idata = idata + 1
   28977     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28978     2063118 :          full_data(idata) = data_tmp
   28979     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28980     2063118 :          idata = idata + 1
   28981     2063118 :          data_tmp = ISHFT(pack_tmp, 32)
   28982     2063118 :          ipack = ipack + 1
   28983     2063118 :          pack_tmp = packed_data(ipack)
   28984     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28985     2063118 :          pack_tmp = ISHFT(pack_tmp, -32)
   28986     2063118 :          idata = idata + 1
   28987     2063118 :          data_tmp = ISHFT(pack_tmp, 6)
   28988     2063118 :          ipack = ipack + 1
   28989     2063118 :          pack_tmp = packed_data(ipack)
   28990     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28991     2063118 :          pack_tmp = ISHFT(pack_tmp, -6)
   28992     2063118 :          idata = idata + 1
   28993     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28994     2063118 :          full_data(idata) = data_tmp
   28995     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28996     2063118 :          idata = idata + 1
   28997     2063118 :          data_tmp = ISHFT(pack_tmp, 18)
   28998     2063118 :          ipack = ipack + 1
   28999     2063118 :          pack_tmp = packed_data(ipack)
   29000     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29001     2063118 :          pack_tmp = ISHFT(pack_tmp, -18)
   29002     2063118 :          idata = idata + 1
   29003     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29004     2063118 :          full_data(idata) = data_tmp
   29005     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29006     2063118 :          idata = idata + 1
   29007     2063118 :          data_tmp = ISHFT(pack_tmp, 30)
   29008     2063118 :          ipack = ipack + 1
   29009     2063118 :          pack_tmp = packed_data(ipack)
   29010     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29011     2063118 :          pack_tmp = ISHFT(pack_tmp, -30)
   29012     2063118 :          idata = idata + 1
   29013     2063118 :          data_tmp = ISHFT(pack_tmp, 4)
   29014     2063118 :          ipack = ipack + 1
   29015     2063118 :          pack_tmp = packed_data(ipack)
   29016     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29017     2063118 :          pack_tmp = ISHFT(pack_tmp, -4)
   29018     2063118 :          idata = idata + 1
   29019     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29020     2063118 :          full_data(idata) = data_tmp
   29021     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29022     2063118 :          idata = idata + 1
   29023     2063118 :          data_tmp = ISHFT(pack_tmp, 16)
   29024     2063118 :          ipack = ipack + 1
   29025     2063118 :          pack_tmp = packed_data(ipack)
   29026     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29027     2063118 :          pack_tmp = ISHFT(pack_tmp, -16)
   29028     2063118 :          idata = idata + 1
   29029     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29030     2063118 :          full_data(idata) = data_tmp
   29031     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29032     2063118 :          idata = idata + 1
   29033     2063118 :          data_tmp = ISHFT(pack_tmp, 28)
   29034     2063118 :          ipack = ipack + 1
   29035     2063118 :          pack_tmp = packed_data(ipack)
   29036     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29037     2063118 :          pack_tmp = ISHFT(pack_tmp, -28)
   29038     2063118 :          idata = idata + 1
   29039     2063118 :          data_tmp = ISHFT(pack_tmp, 2)
   29040     2063118 :          ipack = ipack + 1
   29041     2063118 :          pack_tmp = packed_data(ipack)
   29042     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29043     2063118 :          pack_tmp = ISHFT(pack_tmp, -2)
   29044     2063118 :          idata = idata + 1
   29045     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29046     2063118 :          full_data(idata) = data_tmp
   29047     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29048     2063118 :          idata = idata + 1
   29049     2063118 :          data_tmp = ISHFT(pack_tmp, 14)
   29050     2063118 :          ipack = ipack + 1
   29051     2063118 :          pack_tmp = packed_data(ipack)
   29052     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29053     2063118 :          pack_tmp = ISHFT(pack_tmp, -14)
   29054     2063118 :          idata = idata + 1
   29055     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29056     2063118 :          full_data(idata) = data_tmp
   29057     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29058     2063118 :          idata = idata + 1
   29059     2063118 :          data_tmp = ISHFT(pack_tmp, 26)
   29060     2063118 :          ipack = ipack + 1
   29061     2063118 :          pack_tmp = packed_data(ipack)
   29062     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29063     2063118 :          pack_tmp = ISHFT(pack_tmp, -26)
   29064     2063118 :          idata = idata + 1
   29065     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29066     2063118 :          full_data(idata) = data_tmp
   29067     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29068     2063118 :          idata = idata + 1
   29069     2063118 :          data_tmp = ISHFT(pack_tmp, 38)
   29070     2063118 :          ipack = ipack + 1
   29071     2063118 :          pack_tmp = packed_data(ipack)
   29072     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   29073     2063118 :          pack_tmp = ISHFT(pack_tmp, -38)
   29074     2063118 :          idata = idata + 1
   29075     2063118 :          data_tmp = ISHFT(pack_tmp, 12)
   29076     2063118 :          ipack = ipack + 1
   29077     2063118 :          pack_tmp = packed_data(ipack)
   29078     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29079     2063118 :          pack_tmp = ISHFT(pack_tmp, -12)
   29080     2063118 :          idata = idata + 1
   29081     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29082     2063118 :          full_data(idata) = data_tmp
   29083     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29084     2063118 :          idata = idata + 1
   29085     2063118 :          data_tmp = ISHFT(pack_tmp, 24)
   29086     2063118 :          ipack = ipack + 1
   29087     2063118 :          pack_tmp = packed_data(ipack)
   29088     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   29089     2063118 :          pack_tmp = ISHFT(pack_tmp, -24)
   29090     2063118 :          idata = idata + 1
   29091     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29092     2063118 :          full_data(idata) = data_tmp
   29093     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29094     2063118 :          idata = idata + 1
   29095     2063118 :          data_tmp = ISHFT(pack_tmp, 36)
   29096     2063118 :          ipack = ipack + 1
   29097     2063118 :          pack_tmp = packed_data(ipack)
   29098     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   29099     2063118 :          pack_tmp = ISHFT(pack_tmp, -36)
   29100     2063118 :          idata = idata + 1
   29101     2063118 :          data_tmp = ISHFT(pack_tmp, 10)
   29102     2063118 :          ipack = ipack + 1
   29103     2063118 :          pack_tmp = packed_data(ipack)
   29104     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   29105     2063118 :          pack_tmp = ISHFT(pack_tmp, -10)
   29106     2063118 :          idata = idata + 1
   29107     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29108     2063118 :          full_data(idata) = data_tmp
   29109     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29110     2063118 :          idata = idata + 1
   29111     2063118 :          data_tmp = ISHFT(pack_tmp, 22)
   29112     2063118 :          ipack = ipack + 1
   29113     2063118 :          pack_tmp = packed_data(ipack)
   29114     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   29115     2063118 :          pack_tmp = ISHFT(pack_tmp, -22)
   29116     2063118 :          idata = idata + 1
   29117     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29118     2063118 :          full_data(idata) = data_tmp
   29119     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29120     2063118 :          idata = idata + 1
   29121     2063118 :          data_tmp = ISHFT(pack_tmp, 34)
   29122     2063118 :          ipack = ipack + 1
   29123     2063118 :          pack_tmp = packed_data(ipack)
   29124     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29125     2063118 :          pack_tmp = ISHFT(pack_tmp, -34)
   29126     2063118 :          idata = idata + 1
   29127     2063118 :          data_tmp = ISHFT(pack_tmp, 8)
   29128     2063118 :          ipack = ipack + 1
   29129     2063118 :          pack_tmp = packed_data(ipack)
   29130     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   29131     2063118 :          pack_tmp = ISHFT(pack_tmp, -8)
   29132     2063118 :          idata = idata + 1
   29133     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29134     2063118 :          full_data(idata) = data_tmp
   29135     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29136     2063118 :          idata = idata + 1
   29137     2063118 :          data_tmp = ISHFT(pack_tmp, 20)
   29138     2063118 :          ipack = ipack + 1
   29139     2063118 :          pack_tmp = packed_data(ipack)
   29140     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29141     2063118 :          pack_tmp = ISHFT(pack_tmp, -20)
   29142     2063118 :          idata = idata + 1
   29143     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29144     2063118 :          full_data(idata) = data_tmp
   29145     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29146     2063118 :          idata = idata + 1
   29147     2063118 :          data_tmp = ISHFT(pack_tmp, 32)
   29148     2063118 :          ipack = ipack + 1
   29149     2063118 :          pack_tmp = packed_data(ipack)
   29150     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29151     2063118 :          pack_tmp = ISHFT(pack_tmp, -32)
   29152     2063118 :          idata = idata + 1
   29153     2063118 :          data_tmp = ISHFT(pack_tmp, 6)
   29154     2063118 :          ipack = ipack + 1
   29155     2063118 :          pack_tmp = packed_data(ipack)
   29156     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29157     2063118 :          pack_tmp = ISHFT(pack_tmp, -6)
   29158     2063118 :          idata = idata + 1
   29159     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29160     2063118 :          full_data(idata) = data_tmp
   29161     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29162     2063118 :          idata = idata + 1
   29163     2063118 :          data_tmp = ISHFT(pack_tmp, 18)
   29164     2063118 :          ipack = ipack + 1
   29165     2063118 :          pack_tmp = packed_data(ipack)
   29166     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29167     2063118 :          pack_tmp = ISHFT(pack_tmp, -18)
   29168     2063118 :          idata = idata + 1
   29169     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29170     2063118 :          full_data(idata) = data_tmp
   29171     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29172     2063118 :          idata = idata + 1
   29173     2063118 :          data_tmp = ISHFT(pack_tmp, 30)
   29174     2063118 :          ipack = ipack + 1
   29175     2063118 :          pack_tmp = packed_data(ipack)
   29176     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29177     2063118 :          pack_tmp = ISHFT(pack_tmp, -30)
   29178     2063118 :          idata = idata + 1
   29179     2063118 :          data_tmp = ISHFT(pack_tmp, 4)
   29180     2063118 :          ipack = ipack + 1
   29181     2063118 :          pack_tmp = packed_data(ipack)
   29182     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29183     2063118 :          pack_tmp = ISHFT(pack_tmp, -4)
   29184     2063118 :          idata = idata + 1
   29185     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29186     2063118 :          full_data(idata) = data_tmp
   29187     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29188     2063118 :          idata = idata + 1
   29189     2063118 :          data_tmp = ISHFT(pack_tmp, 16)
   29190     2063118 :          ipack = ipack + 1
   29191     2063118 :          pack_tmp = packed_data(ipack)
   29192     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29193     2063118 :          pack_tmp = ISHFT(pack_tmp, -16)
   29194     2063118 :          idata = idata + 1
   29195     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29196     2063118 :          full_data(idata) = data_tmp
   29197     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29198     2063118 :          idata = idata + 1
   29199     2063118 :          data_tmp = ISHFT(pack_tmp, 28)
   29200     2063118 :          ipack = ipack + 1
   29201     2063118 :          pack_tmp = packed_data(ipack)
   29202     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29203     2063118 :          pack_tmp = ISHFT(pack_tmp, -28)
   29204     2063118 :          idata = idata + 1
   29205     2063118 :          data_tmp = ISHFT(pack_tmp, 2)
   29206     2063118 :          ipack = ipack + 1
   29207     2063118 :          pack_tmp = packed_data(ipack)
   29208     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29209     2063118 :          pack_tmp = ISHFT(pack_tmp, -2)
   29210     2063118 :          idata = idata + 1
   29211     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29212     2063118 :          full_data(idata) = data_tmp
   29213     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29214     2063118 :          idata = idata + 1
   29215     2063118 :          data_tmp = ISHFT(pack_tmp, 14)
   29216     2063118 :          ipack = ipack + 1
   29217     2063118 :          pack_tmp = packed_data(ipack)
   29218     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29219     2063118 :          pack_tmp = ISHFT(pack_tmp, -14)
   29220     2063118 :          idata = idata + 1
   29221     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29222     2063118 :          full_data(idata) = data_tmp
   29223     2063118 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29224     2063118 :          idata = idata + 1
   29225     2063118 :          data_tmp = ISHFT(pack_tmp, 26)
   29226     2063118 :          ipack = ipack + 1
   29227     2063118 :          pack_tmp = packed_data(ipack)
   29228     2063118 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29229     2063118 :          pack_tmp = ISHFT(pack_tmp, -26)
   29230     2063118 :          idata = idata + 1
   29231     2063118 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29232     2063118 :          full_data(idata) = data_tmp
   29233     2065594 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29234             :       END DO
   29235      153020 :       IF (Ndata_rep < Ndata) THEN
   29236       45060 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29237             :       END IF
   29238      153020 :    END SUBROUTINE bits2ints_38
   29239             : 
   29240             : ! **************************************************************************************************
   29241             : !> \brief ...
   29242             : !> \param Ndata ...
   29243             : !> \param packed_data ...
   29244             : !> \param full_data ...
   29245             : ! **************************************************************************************************
   29246       27483 :    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       27483 :       idata = 0
   29257       27483 :       ipack = 0
   29258       27483 :       Ndata_rep = (Ndata/64)*64
   29259       27483 :       DO kdata = 1, Ndata_rep, 64
   29260      404334 :          pack_tmp = 0
   29261      404334 :          idata = idata + 1
   29262      404334 :          data_tmp = full_data(idata)
   29263      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29264      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29265      404334 :          pack_tmp = ISHFT(pack_tmp, -25)
   29266      404334 :          idata = idata + 1
   29267      404334 :          data_tmp = full_data(idata)
   29268      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29269      404334 :          data_tmp = IAND(data_tmp, mask_left(25))
   29270      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29271      404334 :          ipack = ipack + 1
   29272      404334 :          packed_data(ipack) = pack_tmp
   29273      404334 :          data_tmp = full_data(idata)
   29274      404334 :          pack_tmp = ISHFT(data_tmp, 50)
   29275      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29276      404334 :          idata = idata + 1
   29277      404334 :          data_tmp = full_data(idata)
   29278      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29279      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29280      404334 :          pack_tmp = ISHFT(pack_tmp, -11)
   29281      404334 :          idata = idata + 1
   29282      404334 :          data_tmp = full_data(idata)
   29283      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29284      404334 :          data_tmp = IAND(data_tmp, mask_left(11))
   29285      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29286      404334 :          ipack = ipack + 1
   29287      404334 :          packed_data(ipack) = pack_tmp
   29288      404334 :          data_tmp = full_data(idata)
   29289      404334 :          pack_tmp = ISHFT(data_tmp, 36)
   29290      404334 :          pack_tmp = ISHFT(pack_tmp, -36)
   29291      404334 :          idata = idata + 1
   29292      404334 :          data_tmp = full_data(idata)
   29293      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29294      404334 :          data_tmp = IAND(data_tmp, mask_left(36))
   29295      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29296      404334 :          ipack = ipack + 1
   29297      404334 :          packed_data(ipack) = pack_tmp
   29298      404334 :          data_tmp = full_data(idata)
   29299      404334 :          pack_tmp = ISHFT(data_tmp, 61)
   29300      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29301      404334 :          idata = idata + 1
   29302      404334 :          data_tmp = full_data(idata)
   29303      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29304      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29305      404334 :          pack_tmp = ISHFT(pack_tmp, -22)
   29306      404334 :          idata = idata + 1
   29307      404334 :          data_tmp = full_data(idata)
   29308      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29309      404334 :          data_tmp = IAND(data_tmp, mask_left(22))
   29310      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29311      404334 :          ipack = ipack + 1
   29312      404334 :          packed_data(ipack) = pack_tmp
   29313      404334 :          data_tmp = full_data(idata)
   29314      404334 :          pack_tmp = ISHFT(data_tmp, 47)
   29315      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29316      404334 :          idata = idata + 1
   29317      404334 :          data_tmp = full_data(idata)
   29318      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29319      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29320      404334 :          pack_tmp = ISHFT(pack_tmp, -8)
   29321      404334 :          idata = idata + 1
   29322      404334 :          data_tmp = full_data(idata)
   29323      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29324      404334 :          data_tmp = IAND(data_tmp, mask_left(8))
   29325      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29326      404334 :          ipack = ipack + 1
   29327      404334 :          packed_data(ipack) = pack_tmp
   29328      404334 :          data_tmp = full_data(idata)
   29329      404334 :          pack_tmp = ISHFT(data_tmp, 33)
   29330      404334 :          pack_tmp = ISHFT(pack_tmp, -33)
   29331      404334 :          idata = idata + 1
   29332      404334 :          data_tmp = full_data(idata)
   29333      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29334      404334 :          data_tmp = IAND(data_tmp, mask_left(33))
   29335      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29336      404334 :          ipack = ipack + 1
   29337      404334 :          packed_data(ipack) = pack_tmp
   29338      404334 :          data_tmp = full_data(idata)
   29339      404334 :          pack_tmp = ISHFT(data_tmp, 58)
   29340      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29341      404334 :          idata = idata + 1
   29342      404334 :          data_tmp = full_data(idata)
   29343      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29344      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29345      404334 :          pack_tmp = ISHFT(pack_tmp, -19)
   29346      404334 :          idata = idata + 1
   29347      404334 :          data_tmp = full_data(idata)
   29348      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29349      404334 :          data_tmp = IAND(data_tmp, mask_left(19))
   29350      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29351      404334 :          ipack = ipack + 1
   29352      404334 :          packed_data(ipack) = pack_tmp
   29353      404334 :          data_tmp = full_data(idata)
   29354      404334 :          pack_tmp = ISHFT(data_tmp, 44)
   29355      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29356      404334 :          idata = idata + 1
   29357      404334 :          data_tmp = full_data(idata)
   29358      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29359      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29360      404334 :          pack_tmp = ISHFT(pack_tmp, -5)
   29361      404334 :          idata = idata + 1
   29362      404334 :          data_tmp = full_data(idata)
   29363      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29364      404334 :          data_tmp = IAND(data_tmp, mask_left(5))
   29365      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29366      404334 :          ipack = ipack + 1
   29367      404334 :          packed_data(ipack) = pack_tmp
   29368      404334 :          data_tmp = full_data(idata)
   29369      404334 :          pack_tmp = ISHFT(data_tmp, 30)
   29370      404334 :          pack_tmp = ISHFT(pack_tmp, -30)
   29371      404334 :          idata = idata + 1
   29372      404334 :          data_tmp = full_data(idata)
   29373      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29374      404334 :          data_tmp = IAND(data_tmp, mask_left(30))
   29375      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29376      404334 :          ipack = ipack + 1
   29377      404334 :          packed_data(ipack) = pack_tmp
   29378      404334 :          data_tmp = full_data(idata)
   29379      404334 :          pack_tmp = ISHFT(data_tmp, 55)
   29380      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29381      404334 :          idata = idata + 1
   29382      404334 :          data_tmp = full_data(idata)
   29383      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29384      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29385      404334 :          pack_tmp = ISHFT(pack_tmp, -16)
   29386      404334 :          idata = idata + 1
   29387      404334 :          data_tmp = full_data(idata)
   29388      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29389      404334 :          data_tmp = IAND(data_tmp, mask_left(16))
   29390      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29391      404334 :          ipack = ipack + 1
   29392      404334 :          packed_data(ipack) = pack_tmp
   29393      404334 :          data_tmp = full_data(idata)
   29394      404334 :          pack_tmp = ISHFT(data_tmp, 41)
   29395      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29396      404334 :          idata = idata + 1
   29397      404334 :          data_tmp = full_data(idata)
   29398      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29399      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29400      404334 :          pack_tmp = ISHFT(pack_tmp, -2)
   29401      404334 :          idata = idata + 1
   29402      404334 :          data_tmp = full_data(idata)
   29403      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29404      404334 :          data_tmp = IAND(data_tmp, mask_left(2))
   29405      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29406      404334 :          ipack = ipack + 1
   29407      404334 :          packed_data(ipack) = pack_tmp
   29408      404334 :          data_tmp = full_data(idata)
   29409      404334 :          pack_tmp = ISHFT(data_tmp, 27)
   29410      404334 :          pack_tmp = ISHFT(pack_tmp, -27)
   29411      404334 :          idata = idata + 1
   29412      404334 :          data_tmp = full_data(idata)
   29413      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29414      404334 :          data_tmp = IAND(data_tmp, mask_left(27))
   29415      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29416      404334 :          ipack = ipack + 1
   29417      404334 :          packed_data(ipack) = pack_tmp
   29418      404334 :          data_tmp = full_data(idata)
   29419      404334 :          pack_tmp = ISHFT(data_tmp, 52)
   29420      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29421      404334 :          idata = idata + 1
   29422      404334 :          data_tmp = full_data(idata)
   29423      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29424      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29425      404334 :          pack_tmp = ISHFT(pack_tmp, -13)
   29426      404334 :          idata = idata + 1
   29427      404334 :          data_tmp = full_data(idata)
   29428      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29429      404334 :          data_tmp = IAND(data_tmp, mask_left(13))
   29430      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29431      404334 :          ipack = ipack + 1
   29432      404334 :          packed_data(ipack) = pack_tmp
   29433      404334 :          data_tmp = full_data(idata)
   29434      404334 :          pack_tmp = ISHFT(data_tmp, 38)
   29435      404334 :          pack_tmp = ISHFT(pack_tmp, -38)
   29436      404334 :          idata = idata + 1
   29437      404334 :          data_tmp = full_data(idata)
   29438      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29439      404334 :          data_tmp = IAND(data_tmp, mask_left(38))
   29440      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29441      404334 :          ipack = ipack + 1
   29442      404334 :          packed_data(ipack) = pack_tmp
   29443      404334 :          data_tmp = full_data(idata)
   29444      404334 :          pack_tmp = ISHFT(data_tmp, 63)
   29445      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29446      404334 :          idata = idata + 1
   29447      404334 :          data_tmp = full_data(idata)
   29448      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29449      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29450      404334 :          pack_tmp = ISHFT(pack_tmp, -24)
   29451      404334 :          idata = idata + 1
   29452      404334 :          data_tmp = full_data(idata)
   29453      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29454      404334 :          data_tmp = IAND(data_tmp, mask_left(24))
   29455      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29456      404334 :          ipack = ipack + 1
   29457      404334 :          packed_data(ipack) = pack_tmp
   29458      404334 :          data_tmp = full_data(idata)
   29459      404334 :          pack_tmp = ISHFT(data_tmp, 49)
   29460      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29461      404334 :          idata = idata + 1
   29462      404334 :          data_tmp = full_data(idata)
   29463      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29464      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29465      404334 :          pack_tmp = ISHFT(pack_tmp, -10)
   29466      404334 :          idata = idata + 1
   29467      404334 :          data_tmp = full_data(idata)
   29468      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29469      404334 :          data_tmp = IAND(data_tmp, mask_left(10))
   29470      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29471      404334 :          ipack = ipack + 1
   29472      404334 :          packed_data(ipack) = pack_tmp
   29473      404334 :          data_tmp = full_data(idata)
   29474      404334 :          pack_tmp = ISHFT(data_tmp, 35)
   29475      404334 :          pack_tmp = ISHFT(pack_tmp, -35)
   29476      404334 :          idata = idata + 1
   29477      404334 :          data_tmp = full_data(idata)
   29478      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29479      404334 :          data_tmp = IAND(data_tmp, mask_left(35))
   29480      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29481      404334 :          ipack = ipack + 1
   29482      404334 :          packed_data(ipack) = pack_tmp
   29483      404334 :          data_tmp = full_data(idata)
   29484      404334 :          pack_tmp = ISHFT(data_tmp, 60)
   29485      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29486      404334 :          idata = idata + 1
   29487      404334 :          data_tmp = full_data(idata)
   29488      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29489      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29490      404334 :          pack_tmp = ISHFT(pack_tmp, -21)
   29491      404334 :          idata = idata + 1
   29492      404334 :          data_tmp = full_data(idata)
   29493      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29494      404334 :          data_tmp = IAND(data_tmp, mask_left(21))
   29495      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29496      404334 :          ipack = ipack + 1
   29497      404334 :          packed_data(ipack) = pack_tmp
   29498      404334 :          data_tmp = full_data(idata)
   29499      404334 :          pack_tmp = ISHFT(data_tmp, 46)
   29500      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29501      404334 :          idata = idata + 1
   29502      404334 :          data_tmp = full_data(idata)
   29503      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29504      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29505      404334 :          pack_tmp = ISHFT(pack_tmp, -7)
   29506      404334 :          idata = idata + 1
   29507      404334 :          data_tmp = full_data(idata)
   29508      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29509      404334 :          data_tmp = IAND(data_tmp, mask_left(7))
   29510      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29511      404334 :          ipack = ipack + 1
   29512      404334 :          packed_data(ipack) = pack_tmp
   29513      404334 :          data_tmp = full_data(idata)
   29514      404334 :          pack_tmp = ISHFT(data_tmp, 32)
   29515      404334 :          pack_tmp = ISHFT(pack_tmp, -32)
   29516      404334 :          idata = idata + 1
   29517      404334 :          data_tmp = full_data(idata)
   29518      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29519      404334 :          data_tmp = IAND(data_tmp, mask_left(32))
   29520      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29521      404334 :          ipack = ipack + 1
   29522      404334 :          packed_data(ipack) = pack_tmp
   29523      404334 :          data_tmp = full_data(idata)
   29524      404334 :          pack_tmp = ISHFT(data_tmp, 57)
   29525      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29526      404334 :          idata = idata + 1
   29527      404334 :          data_tmp = full_data(idata)
   29528      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29529      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29530      404334 :          pack_tmp = ISHFT(pack_tmp, -18)
   29531      404334 :          idata = idata + 1
   29532      404334 :          data_tmp = full_data(idata)
   29533      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29534      404334 :          data_tmp = IAND(data_tmp, mask_left(18))
   29535      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29536      404334 :          ipack = ipack + 1
   29537      404334 :          packed_data(ipack) = pack_tmp
   29538      404334 :          data_tmp = full_data(idata)
   29539      404334 :          pack_tmp = ISHFT(data_tmp, 43)
   29540      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29541      404334 :          idata = idata + 1
   29542      404334 :          data_tmp = full_data(idata)
   29543      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29544      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29545      404334 :          pack_tmp = ISHFT(pack_tmp, -4)
   29546      404334 :          idata = idata + 1
   29547      404334 :          data_tmp = full_data(idata)
   29548      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29549      404334 :          data_tmp = IAND(data_tmp, mask_left(4))
   29550      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29551      404334 :          ipack = ipack + 1
   29552      404334 :          packed_data(ipack) = pack_tmp
   29553      404334 :          data_tmp = full_data(idata)
   29554      404334 :          pack_tmp = ISHFT(data_tmp, 29)
   29555      404334 :          pack_tmp = ISHFT(pack_tmp, -29)
   29556      404334 :          idata = idata + 1
   29557      404334 :          data_tmp = full_data(idata)
   29558      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29559      404334 :          data_tmp = IAND(data_tmp, mask_left(29))
   29560      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29561      404334 :          ipack = ipack + 1
   29562      404334 :          packed_data(ipack) = pack_tmp
   29563      404334 :          data_tmp = full_data(idata)
   29564      404334 :          pack_tmp = ISHFT(data_tmp, 54)
   29565      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29566      404334 :          idata = idata + 1
   29567      404334 :          data_tmp = full_data(idata)
   29568      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29569      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29570      404334 :          pack_tmp = ISHFT(pack_tmp, -15)
   29571      404334 :          idata = idata + 1
   29572      404334 :          data_tmp = full_data(idata)
   29573      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29574      404334 :          data_tmp = IAND(data_tmp, mask_left(15))
   29575      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29576      404334 :          ipack = ipack + 1
   29577      404334 :          packed_data(ipack) = pack_tmp
   29578      404334 :          data_tmp = full_data(idata)
   29579      404334 :          pack_tmp = ISHFT(data_tmp, 40)
   29580      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29581      404334 :          idata = idata + 1
   29582      404334 :          data_tmp = full_data(idata)
   29583      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29584      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29585      404334 :          pack_tmp = ISHFT(pack_tmp, -1)
   29586      404334 :          idata = idata + 1
   29587      404334 :          data_tmp = full_data(idata)
   29588      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29589      404334 :          data_tmp = IAND(data_tmp, mask_left(1))
   29590      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29591      404334 :          ipack = ipack + 1
   29592      404334 :          packed_data(ipack) = pack_tmp
   29593      404334 :          data_tmp = full_data(idata)
   29594      404334 :          pack_tmp = ISHFT(data_tmp, 26)
   29595      404334 :          pack_tmp = ISHFT(pack_tmp, -26)
   29596      404334 :          idata = idata + 1
   29597      404334 :          data_tmp = full_data(idata)
   29598      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29599      404334 :          data_tmp = IAND(data_tmp, mask_left(26))
   29600      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29601      404334 :          ipack = ipack + 1
   29602      404334 :          packed_data(ipack) = pack_tmp
   29603      404334 :          data_tmp = full_data(idata)
   29604      404334 :          pack_tmp = ISHFT(data_tmp, 51)
   29605      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29606      404334 :          idata = idata + 1
   29607      404334 :          data_tmp = full_data(idata)
   29608      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29609      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29610      404334 :          pack_tmp = ISHFT(pack_tmp, -12)
   29611      404334 :          idata = idata + 1
   29612      404334 :          data_tmp = full_data(idata)
   29613      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29614      404334 :          data_tmp = IAND(data_tmp, mask_left(12))
   29615      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29616      404334 :          ipack = ipack + 1
   29617      404334 :          packed_data(ipack) = pack_tmp
   29618      404334 :          data_tmp = full_data(idata)
   29619      404334 :          pack_tmp = ISHFT(data_tmp, 37)
   29620      404334 :          pack_tmp = ISHFT(pack_tmp, -37)
   29621      404334 :          idata = idata + 1
   29622      404334 :          data_tmp = full_data(idata)
   29623      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29624      404334 :          data_tmp = IAND(data_tmp, mask_left(37))
   29625      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29626      404334 :          ipack = ipack + 1
   29627      404334 :          packed_data(ipack) = pack_tmp
   29628      404334 :          data_tmp = full_data(idata)
   29629      404334 :          pack_tmp = ISHFT(data_tmp, 62)
   29630      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29631      404334 :          idata = idata + 1
   29632      404334 :          data_tmp = full_data(idata)
   29633      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29634      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29635      404334 :          pack_tmp = ISHFT(pack_tmp, -23)
   29636      404334 :          idata = idata + 1
   29637      404334 :          data_tmp = full_data(idata)
   29638      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29639      404334 :          data_tmp = IAND(data_tmp, mask_left(23))
   29640      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29641      404334 :          ipack = ipack + 1
   29642      404334 :          packed_data(ipack) = pack_tmp
   29643      404334 :          data_tmp = full_data(idata)
   29644      404334 :          pack_tmp = ISHFT(data_tmp, 48)
   29645      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29646      404334 :          idata = idata + 1
   29647      404334 :          data_tmp = full_data(idata)
   29648      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29649      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29650      404334 :          pack_tmp = ISHFT(pack_tmp, -9)
   29651      404334 :          idata = idata + 1
   29652      404334 :          data_tmp = full_data(idata)
   29653      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29654      404334 :          data_tmp = IAND(data_tmp, mask_left(9))
   29655      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29656      404334 :          ipack = ipack + 1
   29657      404334 :          packed_data(ipack) = pack_tmp
   29658      404334 :          data_tmp = full_data(idata)
   29659      404334 :          pack_tmp = ISHFT(data_tmp, 34)
   29660      404334 :          pack_tmp = ISHFT(pack_tmp, -34)
   29661      404334 :          idata = idata + 1
   29662      404334 :          data_tmp = full_data(idata)
   29663      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29664      404334 :          data_tmp = IAND(data_tmp, mask_left(34))
   29665      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29666      404334 :          ipack = ipack + 1
   29667      404334 :          packed_data(ipack) = pack_tmp
   29668      404334 :          data_tmp = full_data(idata)
   29669      404334 :          pack_tmp = ISHFT(data_tmp, 59)
   29670      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29671      404334 :          idata = idata + 1
   29672      404334 :          data_tmp = full_data(idata)
   29673      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29674      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29675      404334 :          pack_tmp = ISHFT(pack_tmp, -20)
   29676      404334 :          idata = idata + 1
   29677      404334 :          data_tmp = full_data(idata)
   29678      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29679      404334 :          data_tmp = IAND(data_tmp, mask_left(20))
   29680      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29681      404334 :          ipack = ipack + 1
   29682      404334 :          packed_data(ipack) = pack_tmp
   29683      404334 :          data_tmp = full_data(idata)
   29684      404334 :          pack_tmp = ISHFT(data_tmp, 45)
   29685      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29686      404334 :          idata = idata + 1
   29687      404334 :          data_tmp = full_data(idata)
   29688      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29689      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29690      404334 :          pack_tmp = ISHFT(pack_tmp, -6)
   29691      404334 :          idata = idata + 1
   29692      404334 :          data_tmp = full_data(idata)
   29693      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29694      404334 :          data_tmp = IAND(data_tmp, mask_left(6))
   29695      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29696      404334 :          ipack = ipack + 1
   29697      404334 :          packed_data(ipack) = pack_tmp
   29698      404334 :          data_tmp = full_data(idata)
   29699      404334 :          pack_tmp = ISHFT(data_tmp, 31)
   29700      404334 :          pack_tmp = ISHFT(pack_tmp, -31)
   29701      404334 :          idata = idata + 1
   29702      404334 :          data_tmp = full_data(idata)
   29703      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29704      404334 :          data_tmp = IAND(data_tmp, mask_left(31))
   29705      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29706      404334 :          ipack = ipack + 1
   29707      404334 :          packed_data(ipack) = pack_tmp
   29708      404334 :          data_tmp = full_data(idata)
   29709      404334 :          pack_tmp = ISHFT(data_tmp, 56)
   29710      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29711      404334 :          idata = idata + 1
   29712      404334 :          data_tmp = full_data(idata)
   29713      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29714      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29715      404334 :          pack_tmp = ISHFT(pack_tmp, -17)
   29716      404334 :          idata = idata + 1
   29717      404334 :          data_tmp = full_data(idata)
   29718      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29719      404334 :          data_tmp = IAND(data_tmp, mask_left(17))
   29720      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29721      404334 :          ipack = ipack + 1
   29722      404334 :          packed_data(ipack) = pack_tmp
   29723      404334 :          data_tmp = full_data(idata)
   29724      404334 :          pack_tmp = ISHFT(data_tmp, 42)
   29725      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29726      404334 :          idata = idata + 1
   29727      404334 :          data_tmp = full_data(idata)
   29728      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29729      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29730      404334 :          pack_tmp = ISHFT(pack_tmp, -3)
   29731      404334 :          idata = idata + 1
   29732      404334 :          data_tmp = full_data(idata)
   29733      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29734      404334 :          data_tmp = IAND(data_tmp, mask_left(3))
   29735      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29736      404334 :          ipack = ipack + 1
   29737      404334 :          packed_data(ipack) = pack_tmp
   29738      404334 :          data_tmp = full_data(idata)
   29739      404334 :          pack_tmp = ISHFT(data_tmp, 28)
   29740      404334 :          pack_tmp = ISHFT(pack_tmp, -28)
   29741      404334 :          idata = idata + 1
   29742      404334 :          data_tmp = full_data(idata)
   29743      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29744      404334 :          data_tmp = IAND(data_tmp, mask_left(28))
   29745      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29746      404334 :          ipack = ipack + 1
   29747      404334 :          packed_data(ipack) = pack_tmp
   29748      404334 :          data_tmp = full_data(idata)
   29749      404334 :          pack_tmp = ISHFT(data_tmp, 53)
   29750      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29751      404334 :          idata = idata + 1
   29752      404334 :          data_tmp = full_data(idata)
   29753      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29754      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29755      404334 :          pack_tmp = ISHFT(pack_tmp, -14)
   29756      404334 :          idata = idata + 1
   29757      404334 :          data_tmp = full_data(idata)
   29758      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29759      404334 :          data_tmp = IAND(data_tmp, mask_left(14))
   29760      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29761      404334 :          ipack = ipack + 1
   29762      404334 :          packed_data(ipack) = pack_tmp
   29763      404334 :          data_tmp = full_data(idata)
   29764      404334 :          pack_tmp = ISHFT(data_tmp, 39)
   29765      404334 :          pack_tmp = ISHFT(pack_tmp, -39)
   29766      404334 :          idata = idata + 1
   29767      404334 :          data_tmp = full_data(idata)
   29768      404334 :          data_tmp = ISHFT(data_tmp, 25)
   29769      404334 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29770             :          pack_tmp = ISHFT(pack_tmp, 0)
   29771      404334 :          pack_tmp = ISHFT(pack_tmp, 0)
   29772      404334 :          ipack = ipack + 1
   29773      404338 :          packed_data(ipack) = pack_tmp
   29774             :       END DO
   29775       27483 :       IF (Ndata_rep < Ndata) THEN
   29776        4164 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29777             :       END IF
   29778       27483 :    END SUBROUTINE ints2bits_39
   29779             : 
   29780             : ! **************************************************************************************************
   29781             : !> \brief ...
   29782             : !> \param Ndata ...
   29783             : !> \param packed_data ...
   29784             : !> \param full_data ...
   29785             : ! **************************************************************************************************
   29786      122873 :    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      122873 :       ipack = 0
   29797      122873 :       idata = 0
   29798      122873 :       pack_tmp = 0
   29799      122873 :       Ndata_rep = (Ndata/64)*64
   29800      122873 :       DO kdata = 1, Ndata_rep, 64
   29801     1753349 :          idata = idata + 1
   29802     1753349 :          data_tmp = ISHFT(pack_tmp, 39)
   29803     1753349 :          ipack = ipack + 1
   29804     1753349 :          pack_tmp = packed_data(ipack)
   29805     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   29806     1753349 :          pack_tmp = ISHFT(pack_tmp, -39)
   29807     1753349 :          idata = idata + 1
   29808     1753349 :          data_tmp = ISHFT(pack_tmp, 14)
   29809     1753349 :          ipack = ipack + 1
   29810     1753349 :          pack_tmp = packed_data(ipack)
   29811     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29812     1753349 :          pack_tmp = ISHFT(pack_tmp, -14)
   29813     1753349 :          idata = idata + 1
   29814     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29815     1753349 :          full_data(idata) = data_tmp
   29816     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29817     1753349 :          idata = idata + 1
   29818     1753349 :          data_tmp = ISHFT(pack_tmp, 28)
   29819     1753349 :          ipack = ipack + 1
   29820     1753349 :          pack_tmp = packed_data(ipack)
   29821     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29822     1753349 :          pack_tmp = ISHFT(pack_tmp, -28)
   29823     1753349 :          idata = idata + 1
   29824     1753349 :          data_tmp = ISHFT(pack_tmp, 3)
   29825     1753349 :          ipack = ipack + 1
   29826     1753349 :          pack_tmp = packed_data(ipack)
   29827     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   29828     1753349 :          pack_tmp = ISHFT(pack_tmp, -3)
   29829     1753349 :          idata = idata + 1
   29830     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29831     1753349 :          full_data(idata) = data_tmp
   29832     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29833     1753349 :          idata = idata + 1
   29834     1753349 :          data_tmp = ISHFT(pack_tmp, 17)
   29835     1753349 :          ipack = ipack + 1
   29836     1753349 :          pack_tmp = packed_data(ipack)
   29837     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   29838     1753349 :          pack_tmp = ISHFT(pack_tmp, -17)
   29839     1753349 :          idata = idata + 1
   29840     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29841     1753349 :          full_data(idata) = data_tmp
   29842     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29843     1753349 :          idata = idata + 1
   29844     1753349 :          data_tmp = ISHFT(pack_tmp, 31)
   29845     1753349 :          ipack = ipack + 1
   29846     1753349 :          pack_tmp = packed_data(ipack)
   29847     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   29848     1753349 :          pack_tmp = ISHFT(pack_tmp, -31)
   29849     1753349 :          idata = idata + 1
   29850     1753349 :          data_tmp = ISHFT(pack_tmp, 6)
   29851     1753349 :          ipack = ipack + 1
   29852     1753349 :          pack_tmp = packed_data(ipack)
   29853     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29854     1753349 :          pack_tmp = ISHFT(pack_tmp, -6)
   29855     1753349 :          idata = idata + 1
   29856     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29857     1753349 :          full_data(idata) = data_tmp
   29858     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29859     1753349 :          idata = idata + 1
   29860     1753349 :          data_tmp = ISHFT(pack_tmp, 20)
   29861     1753349 :          ipack = ipack + 1
   29862     1753349 :          pack_tmp = packed_data(ipack)
   29863     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29864     1753349 :          pack_tmp = ISHFT(pack_tmp, -20)
   29865     1753349 :          idata = idata + 1
   29866     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29867     1753349 :          full_data(idata) = data_tmp
   29868     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29869     1753349 :          idata = idata + 1
   29870     1753349 :          data_tmp = ISHFT(pack_tmp, 34)
   29871     1753349 :          ipack = ipack + 1
   29872     1753349 :          pack_tmp = packed_data(ipack)
   29873     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29874     1753349 :          pack_tmp = ISHFT(pack_tmp, -34)
   29875     1753349 :          idata = idata + 1
   29876     1753349 :          data_tmp = ISHFT(pack_tmp, 9)
   29877     1753349 :          ipack = ipack + 1
   29878     1753349 :          pack_tmp = packed_data(ipack)
   29879     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   29880     1753349 :          pack_tmp = ISHFT(pack_tmp, -9)
   29881     1753349 :          idata = idata + 1
   29882     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29883     1753349 :          full_data(idata) = data_tmp
   29884     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29885     1753349 :          idata = idata + 1
   29886     1753349 :          data_tmp = ISHFT(pack_tmp, 23)
   29887     1753349 :          ipack = ipack + 1
   29888     1753349 :          pack_tmp = packed_data(ipack)
   29889     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   29890     1753349 :          pack_tmp = ISHFT(pack_tmp, -23)
   29891     1753349 :          idata = idata + 1
   29892     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29893     1753349 :          full_data(idata) = data_tmp
   29894     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29895     1753349 :          idata = idata + 1
   29896     1753349 :          data_tmp = ISHFT(pack_tmp, 37)
   29897     1753349 :          ipack = ipack + 1
   29898     1753349 :          pack_tmp = packed_data(ipack)
   29899     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   29900     1753349 :          pack_tmp = ISHFT(pack_tmp, -37)
   29901     1753349 :          idata = idata + 1
   29902     1753349 :          data_tmp = ISHFT(pack_tmp, 12)
   29903     1753349 :          ipack = ipack + 1
   29904     1753349 :          pack_tmp = packed_data(ipack)
   29905     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29906     1753349 :          pack_tmp = ISHFT(pack_tmp, -12)
   29907     1753349 :          idata = idata + 1
   29908     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29909     1753349 :          full_data(idata) = data_tmp
   29910     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29911     1753349 :          idata = idata + 1
   29912     1753349 :          data_tmp = ISHFT(pack_tmp, 26)
   29913     1753349 :          ipack = ipack + 1
   29914     1753349 :          pack_tmp = packed_data(ipack)
   29915     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29916     1753349 :          pack_tmp = ISHFT(pack_tmp, -26)
   29917     1753349 :          idata = idata + 1
   29918     1753349 :          data_tmp = ISHFT(pack_tmp, 1)
   29919     1753349 :          ipack = ipack + 1
   29920     1753349 :          pack_tmp = packed_data(ipack)
   29921     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   29922     1753349 :          pack_tmp = ISHFT(pack_tmp, -1)
   29923     1753349 :          idata = idata + 1
   29924     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29925     1753349 :          full_data(idata) = data_tmp
   29926     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29927     1753349 :          idata = idata + 1
   29928     1753349 :          data_tmp = ISHFT(pack_tmp, 15)
   29929     1753349 :          ipack = ipack + 1
   29930     1753349 :          pack_tmp = packed_data(ipack)
   29931     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   29932     1753349 :          pack_tmp = ISHFT(pack_tmp, -15)
   29933     1753349 :          idata = idata + 1
   29934     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29935     1753349 :          full_data(idata) = data_tmp
   29936     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29937     1753349 :          idata = idata + 1
   29938     1753349 :          data_tmp = ISHFT(pack_tmp, 29)
   29939     1753349 :          ipack = ipack + 1
   29940     1753349 :          pack_tmp = packed_data(ipack)
   29941     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   29942     1753349 :          pack_tmp = ISHFT(pack_tmp, -29)
   29943     1753349 :          idata = idata + 1
   29944     1753349 :          data_tmp = ISHFT(pack_tmp, 4)
   29945     1753349 :          ipack = ipack + 1
   29946     1753349 :          pack_tmp = packed_data(ipack)
   29947     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29948     1753349 :          pack_tmp = ISHFT(pack_tmp, -4)
   29949     1753349 :          idata = idata + 1
   29950     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29951     1753349 :          full_data(idata) = data_tmp
   29952     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29953     1753349 :          idata = idata + 1
   29954     1753349 :          data_tmp = ISHFT(pack_tmp, 18)
   29955     1753349 :          ipack = ipack + 1
   29956     1753349 :          pack_tmp = packed_data(ipack)
   29957     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29958     1753349 :          pack_tmp = ISHFT(pack_tmp, -18)
   29959     1753349 :          idata = idata + 1
   29960     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29961     1753349 :          full_data(idata) = data_tmp
   29962     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29963     1753349 :          idata = idata + 1
   29964     1753349 :          data_tmp = ISHFT(pack_tmp, 32)
   29965     1753349 :          ipack = ipack + 1
   29966     1753349 :          pack_tmp = packed_data(ipack)
   29967     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29968     1753349 :          pack_tmp = ISHFT(pack_tmp, -32)
   29969     1753349 :          idata = idata + 1
   29970     1753349 :          data_tmp = ISHFT(pack_tmp, 7)
   29971     1753349 :          ipack = ipack + 1
   29972     1753349 :          pack_tmp = packed_data(ipack)
   29973     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   29974     1753349 :          pack_tmp = ISHFT(pack_tmp, -7)
   29975     1753349 :          idata = idata + 1
   29976     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29977     1753349 :          full_data(idata) = data_tmp
   29978     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29979     1753349 :          idata = idata + 1
   29980     1753349 :          data_tmp = ISHFT(pack_tmp, 21)
   29981     1753349 :          ipack = ipack + 1
   29982     1753349 :          pack_tmp = packed_data(ipack)
   29983     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   29984     1753349 :          pack_tmp = ISHFT(pack_tmp, -21)
   29985     1753349 :          idata = idata + 1
   29986     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29987     1753349 :          full_data(idata) = data_tmp
   29988     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29989     1753349 :          idata = idata + 1
   29990     1753349 :          data_tmp = ISHFT(pack_tmp, 35)
   29991     1753349 :          ipack = ipack + 1
   29992     1753349 :          pack_tmp = packed_data(ipack)
   29993     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   29994     1753349 :          pack_tmp = ISHFT(pack_tmp, -35)
   29995     1753349 :          idata = idata + 1
   29996     1753349 :          data_tmp = ISHFT(pack_tmp, 10)
   29997     1753349 :          ipack = ipack + 1
   29998     1753349 :          pack_tmp = packed_data(ipack)
   29999     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   30000     1753349 :          pack_tmp = ISHFT(pack_tmp, -10)
   30001     1753349 :          idata = idata + 1
   30002     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30003     1753349 :          full_data(idata) = data_tmp
   30004     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30005     1753349 :          idata = idata + 1
   30006     1753349 :          data_tmp = ISHFT(pack_tmp, 24)
   30007     1753349 :          ipack = ipack + 1
   30008     1753349 :          pack_tmp = packed_data(ipack)
   30009     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30010     1753349 :          pack_tmp = ISHFT(pack_tmp, -24)
   30011     1753349 :          idata = idata + 1
   30012     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30013     1753349 :          full_data(idata) = data_tmp
   30014     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30015     1753349 :          idata = idata + 1
   30016     1753349 :          data_tmp = ISHFT(pack_tmp, 38)
   30017     1753349 :          ipack = ipack + 1
   30018     1753349 :          pack_tmp = packed_data(ipack)
   30019     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   30020     1753349 :          pack_tmp = ISHFT(pack_tmp, -38)
   30021     1753349 :          idata = idata + 1
   30022     1753349 :          data_tmp = ISHFT(pack_tmp, 13)
   30023     1753349 :          ipack = ipack + 1
   30024     1753349 :          pack_tmp = packed_data(ipack)
   30025     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   30026     1753349 :          pack_tmp = ISHFT(pack_tmp, -13)
   30027     1753349 :          idata = idata + 1
   30028     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30029     1753349 :          full_data(idata) = data_tmp
   30030     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30031     1753349 :          idata = idata + 1
   30032     1753349 :          data_tmp = ISHFT(pack_tmp, 27)
   30033     1753349 :          ipack = ipack + 1
   30034     1753349 :          pack_tmp = packed_data(ipack)
   30035     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   30036     1753349 :          pack_tmp = ISHFT(pack_tmp, -27)
   30037     1753349 :          idata = idata + 1
   30038     1753349 :          data_tmp = ISHFT(pack_tmp, 2)
   30039     1753349 :          ipack = ipack + 1
   30040     1753349 :          pack_tmp = packed_data(ipack)
   30041     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   30042     1753349 :          pack_tmp = ISHFT(pack_tmp, -2)
   30043     1753349 :          idata = idata + 1
   30044     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30045     1753349 :          full_data(idata) = data_tmp
   30046     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30047     1753349 :          idata = idata + 1
   30048     1753349 :          data_tmp = ISHFT(pack_tmp, 16)
   30049     1753349 :          ipack = ipack + 1
   30050     1753349 :          pack_tmp = packed_data(ipack)
   30051     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30052     1753349 :          pack_tmp = ISHFT(pack_tmp, -16)
   30053     1753349 :          idata = idata + 1
   30054     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30055     1753349 :          full_data(idata) = data_tmp
   30056     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30057     1753349 :          idata = idata + 1
   30058     1753349 :          data_tmp = ISHFT(pack_tmp, 30)
   30059     1753349 :          ipack = ipack + 1
   30060     1753349 :          pack_tmp = packed_data(ipack)
   30061     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   30062     1753349 :          pack_tmp = ISHFT(pack_tmp, -30)
   30063     1753349 :          idata = idata + 1
   30064     1753349 :          data_tmp = ISHFT(pack_tmp, 5)
   30065     1753349 :          ipack = ipack + 1
   30066     1753349 :          pack_tmp = packed_data(ipack)
   30067     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   30068     1753349 :          pack_tmp = ISHFT(pack_tmp, -5)
   30069     1753349 :          idata = idata + 1
   30070     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30071     1753349 :          full_data(idata) = data_tmp
   30072     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30073     1753349 :          idata = idata + 1
   30074     1753349 :          data_tmp = ISHFT(pack_tmp, 19)
   30075     1753349 :          ipack = ipack + 1
   30076     1753349 :          pack_tmp = packed_data(ipack)
   30077     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   30078     1753349 :          pack_tmp = ISHFT(pack_tmp, -19)
   30079     1753349 :          idata = idata + 1
   30080     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30081     1753349 :          full_data(idata) = data_tmp
   30082     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30083     1753349 :          idata = idata + 1
   30084     1753349 :          data_tmp = ISHFT(pack_tmp, 33)
   30085     1753349 :          ipack = ipack + 1
   30086     1753349 :          pack_tmp = packed_data(ipack)
   30087     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   30088     1753349 :          pack_tmp = ISHFT(pack_tmp, -33)
   30089     1753349 :          idata = idata + 1
   30090     1753349 :          data_tmp = ISHFT(pack_tmp, 8)
   30091     1753349 :          ipack = ipack + 1
   30092     1753349 :          pack_tmp = packed_data(ipack)
   30093     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30094     1753349 :          pack_tmp = ISHFT(pack_tmp, -8)
   30095     1753349 :          idata = idata + 1
   30096     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30097     1753349 :          full_data(idata) = data_tmp
   30098     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30099     1753349 :          idata = idata + 1
   30100     1753349 :          data_tmp = ISHFT(pack_tmp, 22)
   30101     1753349 :          ipack = ipack + 1
   30102     1753349 :          pack_tmp = packed_data(ipack)
   30103     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   30104     1753349 :          pack_tmp = ISHFT(pack_tmp, -22)
   30105     1753349 :          idata = idata + 1
   30106     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30107     1753349 :          full_data(idata) = data_tmp
   30108     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30109     1753349 :          idata = idata + 1
   30110     1753349 :          data_tmp = ISHFT(pack_tmp, 36)
   30111     1753349 :          ipack = ipack + 1
   30112     1753349 :          pack_tmp = packed_data(ipack)
   30113     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   30114     1753349 :          pack_tmp = ISHFT(pack_tmp, -36)
   30115     1753349 :          idata = idata + 1
   30116     1753349 :          data_tmp = ISHFT(pack_tmp, 11)
   30117     1753349 :          ipack = ipack + 1
   30118     1753349 :          pack_tmp = packed_data(ipack)
   30119     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   30120     1753349 :          pack_tmp = ISHFT(pack_tmp, -11)
   30121     1753349 :          idata = idata + 1
   30122     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30123     1753349 :          full_data(idata) = data_tmp
   30124     1753349 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30125     1753349 :          idata = idata + 1
   30126     1753349 :          data_tmp = ISHFT(pack_tmp, 25)
   30127     1753349 :          ipack = ipack + 1
   30128     1753349 :          pack_tmp = packed_data(ipack)
   30129     1753349 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   30130     1753349 :          pack_tmp = ISHFT(pack_tmp, -25)
   30131     1753349 :          idata = idata + 1
   30132     1753349 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30133     1753349 :          full_data(idata) = data_tmp
   30134     1753393 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30135             :       END DO
   30136      122873 :       IF (Ndata_rep < Ndata) THEN
   30137       25014 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30138             :       END IF
   30139      122873 :    END SUBROUTINE bits2ints_39
   30140             : 
   30141             : ! **************************************************************************************************
   30142             : !> \brief ...
   30143             : !> \param Ndata ...
   30144             : !> \param packed_data ...
   30145             : !> \param full_data ...
   30146             : ! **************************************************************************************************
   30147       26101 :    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       26101 :       idata = 0
   30158       26101 :       ipack = 0
   30159       26101 :       Ndata_rep = (Ndata/64)*64
   30160       26101 :       DO kdata = 1, Ndata_rep, 64
   30161      393040 :          pack_tmp = 0
   30162      393040 :          idata = idata + 1
   30163      393040 :          data_tmp = full_data(idata)
   30164      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30165      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30166      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30167      393040 :          idata = idata + 1
   30168      393040 :          data_tmp = full_data(idata)
   30169      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30170      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30171      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30172      393040 :          ipack = ipack + 1
   30173      393040 :          packed_data(ipack) = pack_tmp
   30174      393040 :          data_tmp = full_data(idata)
   30175      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30176      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30177      393040 :          idata = idata + 1
   30178      393040 :          data_tmp = full_data(idata)
   30179      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30180      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30181      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30182      393040 :          idata = idata + 1
   30183      393040 :          data_tmp = full_data(idata)
   30184      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30185      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30186      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30187      393040 :          ipack = ipack + 1
   30188      393040 :          packed_data(ipack) = pack_tmp
   30189      393040 :          data_tmp = full_data(idata)
   30190      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30191      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30192      393040 :          idata = idata + 1
   30193      393040 :          data_tmp = full_data(idata)
   30194      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30195      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30196      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30197      393040 :          ipack = ipack + 1
   30198      393040 :          packed_data(ipack) = pack_tmp
   30199      393040 :          data_tmp = full_data(idata)
   30200      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30201      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30202      393040 :          idata = idata + 1
   30203      393040 :          data_tmp = full_data(idata)
   30204      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30205      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30206      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30207      393040 :          idata = idata + 1
   30208      393040 :          data_tmp = full_data(idata)
   30209      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30210      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30211      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30212      393040 :          ipack = ipack + 1
   30213      393040 :          packed_data(ipack) = pack_tmp
   30214      393040 :          data_tmp = full_data(idata)
   30215      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30216      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30217      393040 :          idata = idata + 1
   30218      393040 :          data_tmp = full_data(idata)
   30219      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30220      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30221      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30222      393040 :          idata = idata + 1
   30223      393040 :          data_tmp = full_data(idata)
   30224      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30225      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30226      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30227      393040 :          ipack = ipack + 1
   30228      393040 :          packed_data(ipack) = pack_tmp
   30229      393040 :          data_tmp = full_data(idata)
   30230      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30231      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30232      393040 :          idata = idata + 1
   30233      393040 :          data_tmp = full_data(idata)
   30234      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30235      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30236      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30237      393040 :          ipack = ipack + 1
   30238      393040 :          packed_data(ipack) = pack_tmp
   30239      393040 :          data_tmp = full_data(idata)
   30240      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30241      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30242      393040 :          idata = idata + 1
   30243      393040 :          data_tmp = full_data(idata)
   30244      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30245      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30246      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30247      393040 :          idata = idata + 1
   30248      393040 :          data_tmp = full_data(idata)
   30249      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30250      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30251      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30252      393040 :          ipack = ipack + 1
   30253      393040 :          packed_data(ipack) = pack_tmp
   30254      393040 :          data_tmp = full_data(idata)
   30255      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30256      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30257      393040 :          idata = idata + 1
   30258      393040 :          data_tmp = full_data(idata)
   30259      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30260      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30261      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30262      393040 :          ipack = ipack + 1
   30263      393040 :          packed_data(ipack) = pack_tmp
   30264      393040 :          data_tmp = full_data(idata)
   30265      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30266      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30267      393040 :          idata = idata + 1
   30268      393040 :          data_tmp = full_data(idata)
   30269      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30270      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30271      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30272      393040 :          idata = idata + 1
   30273      393040 :          data_tmp = full_data(idata)
   30274      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30275      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30276      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30277      393040 :          ipack = ipack + 1
   30278      393040 :          packed_data(ipack) = pack_tmp
   30279      393040 :          data_tmp = full_data(idata)
   30280      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30281      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30282      393040 :          idata = idata + 1
   30283      393040 :          data_tmp = full_data(idata)
   30284      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30285      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30286      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30287      393040 :          idata = idata + 1
   30288      393040 :          data_tmp = full_data(idata)
   30289      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30290      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30291      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30292      393040 :          ipack = ipack + 1
   30293      393040 :          packed_data(ipack) = pack_tmp
   30294      393040 :          data_tmp = full_data(idata)
   30295      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30296      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30297      393040 :          idata = idata + 1
   30298      393040 :          data_tmp = full_data(idata)
   30299      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30300      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30301      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30302      393040 :          ipack = ipack + 1
   30303      393040 :          packed_data(ipack) = pack_tmp
   30304      393040 :          data_tmp = full_data(idata)
   30305      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30306      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30307      393040 :          idata = idata + 1
   30308      393040 :          data_tmp = full_data(idata)
   30309      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30310      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30311      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30312      393040 :          idata = idata + 1
   30313      393040 :          data_tmp = full_data(idata)
   30314      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30315      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30316      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30317      393040 :          ipack = ipack + 1
   30318      393040 :          packed_data(ipack) = pack_tmp
   30319      393040 :          data_tmp = full_data(idata)
   30320      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30321      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30322      393040 :          idata = idata + 1
   30323      393040 :          data_tmp = full_data(idata)
   30324      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30325      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30326      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30327      393040 :          ipack = ipack + 1
   30328      393040 :          packed_data(ipack) = pack_tmp
   30329      393040 :          data_tmp = full_data(idata)
   30330      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30331      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30332      393040 :          idata = idata + 1
   30333      393040 :          data_tmp = full_data(idata)
   30334      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30335      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30336      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30337      393040 :          idata = idata + 1
   30338      393040 :          data_tmp = full_data(idata)
   30339      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30340      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30341      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30342      393040 :          ipack = ipack + 1
   30343      393040 :          packed_data(ipack) = pack_tmp
   30344      393040 :          data_tmp = full_data(idata)
   30345      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30346      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30347      393040 :          idata = idata + 1
   30348      393040 :          data_tmp = full_data(idata)
   30349      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30350      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30351      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30352      393040 :          idata = idata + 1
   30353      393040 :          data_tmp = full_data(idata)
   30354      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30355      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30356      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30357      393040 :          ipack = ipack + 1
   30358      393040 :          packed_data(ipack) = pack_tmp
   30359      393040 :          data_tmp = full_data(idata)
   30360      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30361      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30362      393040 :          idata = idata + 1
   30363      393040 :          data_tmp = full_data(idata)
   30364      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30365      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30366      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30367      393040 :          ipack = ipack + 1
   30368      393040 :          packed_data(ipack) = pack_tmp
   30369      393040 :          data_tmp = full_data(idata)
   30370      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30371      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30372      393040 :          idata = idata + 1
   30373      393040 :          data_tmp = full_data(idata)
   30374      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30375      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30376      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30377      393040 :          idata = idata + 1
   30378      393040 :          data_tmp = full_data(idata)
   30379      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30380      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30381      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30382      393040 :          ipack = ipack + 1
   30383      393040 :          packed_data(ipack) = pack_tmp
   30384      393040 :          data_tmp = full_data(idata)
   30385      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30386      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30387      393040 :          idata = idata + 1
   30388      393040 :          data_tmp = full_data(idata)
   30389      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30390      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30391      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30392      393040 :          ipack = ipack + 1
   30393      393040 :          packed_data(ipack) = pack_tmp
   30394      393040 :          data_tmp = full_data(idata)
   30395      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30396      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30397      393040 :          idata = idata + 1
   30398      393040 :          data_tmp = full_data(idata)
   30399      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30400      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30401      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30402      393040 :          idata = idata + 1
   30403      393040 :          data_tmp = full_data(idata)
   30404      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30405      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30406      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30407      393040 :          ipack = ipack + 1
   30408      393040 :          packed_data(ipack) = pack_tmp
   30409      393040 :          data_tmp = full_data(idata)
   30410      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30411      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30412      393040 :          idata = idata + 1
   30413      393040 :          data_tmp = full_data(idata)
   30414      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30415      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30416      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30417      393040 :          idata = idata + 1
   30418      393040 :          data_tmp = full_data(idata)
   30419      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30420      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30421      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30422      393040 :          ipack = ipack + 1
   30423      393040 :          packed_data(ipack) = pack_tmp
   30424      393040 :          data_tmp = full_data(idata)
   30425      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30426      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30427      393040 :          idata = idata + 1
   30428      393040 :          data_tmp = full_data(idata)
   30429      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30430      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30431      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30432      393040 :          ipack = ipack + 1
   30433      393040 :          packed_data(ipack) = pack_tmp
   30434      393040 :          data_tmp = full_data(idata)
   30435      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30436      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30437      393040 :          idata = idata + 1
   30438      393040 :          data_tmp = full_data(idata)
   30439      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30440      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30441      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30442      393040 :          idata = idata + 1
   30443      393040 :          data_tmp = full_data(idata)
   30444      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30445      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30446      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30447      393040 :          ipack = ipack + 1
   30448      393040 :          packed_data(ipack) = pack_tmp
   30449      393040 :          data_tmp = full_data(idata)
   30450      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30451      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30452      393040 :          idata = idata + 1
   30453      393040 :          data_tmp = full_data(idata)
   30454      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30455      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30456      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30457      393040 :          ipack = ipack + 1
   30458      393040 :          packed_data(ipack) = pack_tmp
   30459      393040 :          data_tmp = full_data(idata)
   30460      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30461      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30462      393040 :          idata = idata + 1
   30463      393040 :          data_tmp = full_data(idata)
   30464      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30465      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30466      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30467      393040 :          idata = idata + 1
   30468      393040 :          data_tmp = full_data(idata)
   30469      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30470      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30471      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30472      393040 :          ipack = ipack + 1
   30473      393040 :          packed_data(ipack) = pack_tmp
   30474      393040 :          data_tmp = full_data(idata)
   30475      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30476      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30477      393040 :          idata = idata + 1
   30478      393040 :          data_tmp = full_data(idata)
   30479      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30480      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30481      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30482      393040 :          idata = idata + 1
   30483      393040 :          data_tmp = full_data(idata)
   30484      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30485      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30486      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30487      393040 :          ipack = ipack + 1
   30488      393040 :          packed_data(ipack) = pack_tmp
   30489      393040 :          data_tmp = full_data(idata)
   30490      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30491      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30492      393040 :          idata = idata + 1
   30493      393040 :          data_tmp = full_data(idata)
   30494      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30495      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30496      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30497      393040 :          ipack = ipack + 1
   30498      393040 :          packed_data(ipack) = pack_tmp
   30499      393040 :          data_tmp = full_data(idata)
   30500      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30501      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30502      393040 :          idata = idata + 1
   30503      393040 :          data_tmp = full_data(idata)
   30504      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30505      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30506      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30507      393040 :          idata = idata + 1
   30508      393040 :          data_tmp = full_data(idata)
   30509      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30510      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30511      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30512      393040 :          ipack = ipack + 1
   30513      393040 :          packed_data(ipack) = pack_tmp
   30514      393040 :          data_tmp = full_data(idata)
   30515      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30516      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30517      393040 :          idata = idata + 1
   30518      393040 :          data_tmp = full_data(idata)
   30519      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30520      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30521      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30522      393040 :          ipack = ipack + 1
   30523      393040 :          packed_data(ipack) = pack_tmp
   30524      393040 :          data_tmp = full_data(idata)
   30525      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30526      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30527      393040 :          idata = idata + 1
   30528      393040 :          data_tmp = full_data(idata)
   30529      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30530      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30531      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30532      393040 :          idata = idata + 1
   30533      393040 :          data_tmp = full_data(idata)
   30534      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30535      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30536      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30537      393040 :          ipack = ipack + 1
   30538      393040 :          packed_data(ipack) = pack_tmp
   30539      393040 :          data_tmp = full_data(idata)
   30540      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30541      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30542      393040 :          idata = idata + 1
   30543      393040 :          data_tmp = full_data(idata)
   30544      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30545      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30546      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30547      393040 :          idata = idata + 1
   30548      393040 :          data_tmp = full_data(idata)
   30549      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30550      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30551      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30552      393040 :          ipack = ipack + 1
   30553      393040 :          packed_data(ipack) = pack_tmp
   30554      393040 :          data_tmp = full_data(idata)
   30555      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30556      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30557      393040 :          idata = idata + 1
   30558      393040 :          data_tmp = full_data(idata)
   30559      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30560      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30561      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30562      393040 :          ipack = ipack + 1
   30563      393040 :          packed_data(ipack) = pack_tmp
   30564      393040 :          data_tmp = full_data(idata)
   30565      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30566      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30567      393040 :          idata = idata + 1
   30568      393040 :          data_tmp = full_data(idata)
   30569      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30570      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30571      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30572      393040 :          idata = idata + 1
   30573      393040 :          data_tmp = full_data(idata)
   30574      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30575      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30576      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30577      393040 :          ipack = ipack + 1
   30578      393040 :          packed_data(ipack) = pack_tmp
   30579      393040 :          data_tmp = full_data(idata)
   30580      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30581      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30582      393040 :          idata = idata + 1
   30583      393040 :          data_tmp = full_data(idata)
   30584      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30585      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30586      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30587      393040 :          ipack = ipack + 1
   30588      393040 :          packed_data(ipack) = pack_tmp
   30589      393040 :          data_tmp = full_data(idata)
   30590      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30591      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30592      393040 :          idata = idata + 1
   30593      393040 :          data_tmp = full_data(idata)
   30594      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30595      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30596      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30597      393040 :          idata = idata + 1
   30598      393040 :          data_tmp = full_data(idata)
   30599      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30600      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30601      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30602      393040 :          ipack = ipack + 1
   30603      393040 :          packed_data(ipack) = pack_tmp
   30604      393040 :          data_tmp = full_data(idata)
   30605      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30606      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30607      393040 :          idata = idata + 1
   30608      393040 :          data_tmp = full_data(idata)
   30609      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30610      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30611      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30612      393040 :          idata = idata + 1
   30613      393040 :          data_tmp = full_data(idata)
   30614      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30615      393040 :          data_tmp = IAND(data_tmp, mask_left(0))
   30616      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30617      393040 :          ipack = ipack + 1
   30618      393040 :          packed_data(ipack) = pack_tmp
   30619      393040 :          data_tmp = full_data(idata)
   30620      393040 :          pack_tmp = ISHFT(data_tmp, 24)
   30621      393040 :          pack_tmp = ISHFT(pack_tmp, -24)
   30622      393040 :          idata = idata + 1
   30623      393040 :          data_tmp = full_data(idata)
   30624      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30625      393040 :          data_tmp = IAND(data_tmp, mask_left(24))
   30626      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30627      393040 :          ipack = ipack + 1
   30628      393040 :          packed_data(ipack) = pack_tmp
   30629      393040 :          data_tmp = full_data(idata)
   30630      393040 :          pack_tmp = ISHFT(data_tmp, 48)
   30631      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30632      393040 :          idata = idata + 1
   30633      393040 :          data_tmp = full_data(idata)
   30634      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30635      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30636      393040 :          pack_tmp = ISHFT(pack_tmp, -8)
   30637      393040 :          idata = idata + 1
   30638      393040 :          data_tmp = full_data(idata)
   30639      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30640      393040 :          data_tmp = IAND(data_tmp, mask_left(8))
   30641      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30642      393040 :          ipack = ipack + 1
   30643      393040 :          packed_data(ipack) = pack_tmp
   30644      393040 :          data_tmp = full_data(idata)
   30645      393040 :          pack_tmp = ISHFT(data_tmp, 32)
   30646      393040 :          pack_tmp = ISHFT(pack_tmp, -32)
   30647      393040 :          idata = idata + 1
   30648      393040 :          data_tmp = full_data(idata)
   30649      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30650      393040 :          data_tmp = IAND(data_tmp, mask_left(32))
   30651      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30652      393040 :          ipack = ipack + 1
   30653      393040 :          packed_data(ipack) = pack_tmp
   30654      393040 :          data_tmp = full_data(idata)
   30655      393040 :          pack_tmp = ISHFT(data_tmp, 56)
   30656      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30657      393040 :          idata = idata + 1
   30658      393040 :          data_tmp = full_data(idata)
   30659      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30660      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30661      393040 :          pack_tmp = ISHFT(pack_tmp, -16)
   30662      393040 :          idata = idata + 1
   30663      393040 :          data_tmp = full_data(idata)
   30664      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30665      393040 :          data_tmp = IAND(data_tmp, mask_left(16))
   30666      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30667      393040 :          ipack = ipack + 1
   30668      393040 :          packed_data(ipack) = pack_tmp
   30669      393040 :          data_tmp = full_data(idata)
   30670      393040 :          pack_tmp = ISHFT(data_tmp, 40)
   30671      393040 :          pack_tmp = ISHFT(pack_tmp, -40)
   30672      393040 :          idata = idata + 1
   30673      393040 :          data_tmp = full_data(idata)
   30674      393040 :          data_tmp = ISHFT(data_tmp, 24)
   30675      393040 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30676             :          pack_tmp = ISHFT(pack_tmp, 0)
   30677      393040 :          pack_tmp = ISHFT(pack_tmp, 0)
   30678      393040 :          ipack = ipack + 1
   30679      393063 :          packed_data(ipack) = pack_tmp
   30680             :       END DO
   30681       26101 :       IF (Ndata_rep < Ndata) THEN
   30682        2880 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30683             :       END IF
   30684       26101 :    END SUBROUTINE ints2bits_40
   30685             : 
   30686             : ! **************************************************************************************************
   30687             : !> \brief ...
   30688             : !> \param Ndata ...
   30689             : !> \param packed_data ...
   30690             : !> \param full_data ...
   30691             : ! **************************************************************************************************
   30692      124308 :    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      124308 :       ipack = 0
   30703      124308 :       idata = 0
   30704      124308 :       pack_tmp = 0
   30705      124308 :       Ndata_rep = (Ndata/64)*64
   30706      124308 :       DO kdata = 1, Ndata_rep, 64
   30707     1774182 :          idata = idata + 1
   30708     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30709     1774182 :          ipack = ipack + 1
   30710     1774182 :          pack_tmp = packed_data(ipack)
   30711     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30712     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30713     1774182 :          idata = idata + 1
   30714     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30715     1774182 :          ipack = ipack + 1
   30716     1774182 :          pack_tmp = packed_data(ipack)
   30717     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30718     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30719     1774182 :          idata = idata + 1
   30720     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30721     1774182 :          full_data(idata) = data_tmp
   30722     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30723     1774182 :          idata = idata + 1
   30724     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30725     1774182 :          ipack = ipack + 1
   30726     1774182 :          pack_tmp = packed_data(ipack)
   30727     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30728     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30729     1774182 :          idata = idata + 1
   30730     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30731     1774182 :          ipack = ipack + 1
   30732     1774182 :          pack_tmp = packed_data(ipack)
   30733     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30734     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30735     1774182 :          idata = idata + 1
   30736     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30737     1774182 :          full_data(idata) = data_tmp
   30738     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30739     1774182 :          idata = idata + 1
   30740     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30741     1774182 :          ipack = ipack + 1
   30742     1774182 :          pack_tmp = packed_data(ipack)
   30743     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30744     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30745     1774182 :          idata = idata + 1
   30746     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30747     1774182 :          full_data(idata) = data_tmp
   30748     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30749     1774182 :          idata = idata + 1
   30750     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30751     1774182 :          ipack = ipack + 1
   30752     1774182 :          pack_tmp = packed_data(ipack)
   30753     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30754     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30755     1774182 :          idata = idata + 1
   30756     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30757     1774182 :          ipack = ipack + 1
   30758     1774182 :          pack_tmp = packed_data(ipack)
   30759     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30760     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30761     1774182 :          idata = idata + 1
   30762     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30763     1774182 :          full_data(idata) = data_tmp
   30764     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30765     1774182 :          idata = idata + 1
   30766     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30767     1774182 :          ipack = ipack + 1
   30768     1774182 :          pack_tmp = packed_data(ipack)
   30769     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30770     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30771     1774182 :          idata = idata + 1
   30772     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30773     1774182 :          ipack = ipack + 1
   30774     1774182 :          pack_tmp = packed_data(ipack)
   30775     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30776     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30777     1774182 :          idata = idata + 1
   30778     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30779     1774182 :          full_data(idata) = data_tmp
   30780     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30781     1774182 :          idata = idata + 1
   30782     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30783     1774182 :          ipack = ipack + 1
   30784     1774182 :          pack_tmp = packed_data(ipack)
   30785     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30786     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30787     1774182 :          idata = idata + 1
   30788     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30789     1774182 :          full_data(idata) = data_tmp
   30790     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30791     1774182 :          idata = idata + 1
   30792     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30793     1774182 :          ipack = ipack + 1
   30794     1774182 :          pack_tmp = packed_data(ipack)
   30795     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30796     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30797     1774182 :          idata = idata + 1
   30798     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30799     1774182 :          ipack = ipack + 1
   30800     1774182 :          pack_tmp = packed_data(ipack)
   30801     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30802     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30803     1774182 :          idata = idata + 1
   30804     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30805     1774182 :          full_data(idata) = data_tmp
   30806     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30807     1774182 :          idata = idata + 1
   30808     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30809     1774182 :          ipack = ipack + 1
   30810     1774182 :          pack_tmp = packed_data(ipack)
   30811     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30812     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30813     1774182 :          idata = idata + 1
   30814     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30815     1774182 :          ipack = ipack + 1
   30816     1774182 :          pack_tmp = packed_data(ipack)
   30817     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30818     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30819     1774182 :          idata = idata + 1
   30820     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30821     1774182 :          full_data(idata) = data_tmp
   30822     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30823     1774182 :          idata = idata + 1
   30824     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30825     1774182 :          ipack = ipack + 1
   30826     1774182 :          pack_tmp = packed_data(ipack)
   30827     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30828     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30829     1774182 :          idata = idata + 1
   30830     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30831     1774182 :          full_data(idata) = data_tmp
   30832     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30833     1774182 :          idata = idata + 1
   30834     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30835     1774182 :          ipack = ipack + 1
   30836     1774182 :          pack_tmp = packed_data(ipack)
   30837     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30838     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30839     1774182 :          idata = idata + 1
   30840     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30841     1774182 :          ipack = ipack + 1
   30842     1774182 :          pack_tmp = packed_data(ipack)
   30843     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30844     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30845     1774182 :          idata = idata + 1
   30846     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30847     1774182 :          full_data(idata) = data_tmp
   30848     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30849     1774182 :          idata = idata + 1
   30850     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30851     1774182 :          ipack = ipack + 1
   30852     1774182 :          pack_tmp = packed_data(ipack)
   30853     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30854     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30855     1774182 :          idata = idata + 1
   30856     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30857     1774182 :          ipack = ipack + 1
   30858     1774182 :          pack_tmp = packed_data(ipack)
   30859     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30860     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30861     1774182 :          idata = idata + 1
   30862     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30863     1774182 :          full_data(idata) = data_tmp
   30864     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30865     1774182 :          idata = idata + 1
   30866     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30867     1774182 :          ipack = ipack + 1
   30868     1774182 :          pack_tmp = packed_data(ipack)
   30869     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30870     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30871     1774182 :          idata = idata + 1
   30872     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30873     1774182 :          full_data(idata) = data_tmp
   30874     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30875     1774182 :          idata = idata + 1
   30876     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30877     1774182 :          ipack = ipack + 1
   30878     1774182 :          pack_tmp = packed_data(ipack)
   30879     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30880     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30881     1774182 :          idata = idata + 1
   30882     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30883     1774182 :          ipack = ipack + 1
   30884     1774182 :          pack_tmp = packed_data(ipack)
   30885     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30886     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30887     1774182 :          idata = idata + 1
   30888     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30889     1774182 :          full_data(idata) = data_tmp
   30890     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30891     1774182 :          idata = idata + 1
   30892     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30893     1774182 :          ipack = ipack + 1
   30894     1774182 :          pack_tmp = packed_data(ipack)
   30895     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30896     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30897     1774182 :          idata = idata + 1
   30898     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30899     1774182 :          ipack = ipack + 1
   30900     1774182 :          pack_tmp = packed_data(ipack)
   30901     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30902     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30903     1774182 :          idata = idata + 1
   30904     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30905     1774182 :          full_data(idata) = data_tmp
   30906     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30907     1774182 :          idata = idata + 1
   30908     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30909     1774182 :          ipack = ipack + 1
   30910     1774182 :          pack_tmp = packed_data(ipack)
   30911     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30912     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30913     1774182 :          idata = idata + 1
   30914     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30915     1774182 :          full_data(idata) = data_tmp
   30916     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30917     1774182 :          idata = idata + 1
   30918     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30919     1774182 :          ipack = ipack + 1
   30920     1774182 :          pack_tmp = packed_data(ipack)
   30921     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30922     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30923     1774182 :          idata = idata + 1
   30924     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30925     1774182 :          ipack = ipack + 1
   30926     1774182 :          pack_tmp = packed_data(ipack)
   30927     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30928     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30929     1774182 :          idata = idata + 1
   30930     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30931     1774182 :          full_data(idata) = data_tmp
   30932     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30933     1774182 :          idata = idata + 1
   30934     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30935     1774182 :          ipack = ipack + 1
   30936     1774182 :          pack_tmp = packed_data(ipack)
   30937     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30938     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30939     1774182 :          idata = idata + 1
   30940     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30941     1774182 :          ipack = ipack + 1
   30942     1774182 :          pack_tmp = packed_data(ipack)
   30943     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30944     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30945     1774182 :          idata = idata + 1
   30946     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30947     1774182 :          full_data(idata) = data_tmp
   30948     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30949     1774182 :          idata = idata + 1
   30950     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30951     1774182 :          ipack = ipack + 1
   30952     1774182 :          pack_tmp = packed_data(ipack)
   30953     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30954     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30955     1774182 :          idata = idata + 1
   30956     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30957     1774182 :          full_data(idata) = data_tmp
   30958     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30959     1774182 :          idata = idata + 1
   30960     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   30961     1774182 :          ipack = ipack + 1
   30962     1774182 :          pack_tmp = packed_data(ipack)
   30963     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30964     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   30965     1774182 :          idata = idata + 1
   30966     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   30967     1774182 :          ipack = ipack + 1
   30968     1774182 :          pack_tmp = packed_data(ipack)
   30969     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30970     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   30971     1774182 :          idata = idata + 1
   30972     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30973     1774182 :          full_data(idata) = data_tmp
   30974     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30975     1774182 :          idata = idata + 1
   30976     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   30977     1774182 :          ipack = ipack + 1
   30978     1774182 :          pack_tmp = packed_data(ipack)
   30979     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30980     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   30981     1774182 :          idata = idata + 1
   30982     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   30983     1774182 :          ipack = ipack + 1
   30984     1774182 :          pack_tmp = packed_data(ipack)
   30985     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30986     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   30987     1774182 :          idata = idata + 1
   30988     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30989     1774182 :          full_data(idata) = data_tmp
   30990     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30991     1774182 :          idata = idata + 1
   30992     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   30993     1774182 :          ipack = ipack + 1
   30994     1774182 :          pack_tmp = packed_data(ipack)
   30995     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30996     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   30997     1774182 :          idata = idata + 1
   30998     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30999     1774182 :          full_data(idata) = data_tmp
   31000     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31001     1774182 :          idata = idata + 1
   31002     1774182 :          data_tmp = ISHFT(pack_tmp, 40)
   31003     1774182 :          ipack = ipack + 1
   31004     1774182 :          pack_tmp = packed_data(ipack)
   31005     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31006     1774182 :          pack_tmp = ISHFT(pack_tmp, -40)
   31007     1774182 :          idata = idata + 1
   31008     1774182 :          data_tmp = ISHFT(pack_tmp, 16)
   31009     1774182 :          ipack = ipack + 1
   31010     1774182 :          pack_tmp = packed_data(ipack)
   31011     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31012     1774182 :          pack_tmp = ISHFT(pack_tmp, -16)
   31013     1774182 :          idata = idata + 1
   31014     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31015     1774182 :          full_data(idata) = data_tmp
   31016     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31017     1774182 :          idata = idata + 1
   31018     1774182 :          data_tmp = ISHFT(pack_tmp, 32)
   31019     1774182 :          ipack = ipack + 1
   31020     1774182 :          pack_tmp = packed_data(ipack)
   31021     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31022     1774182 :          pack_tmp = ISHFT(pack_tmp, -32)
   31023     1774182 :          idata = idata + 1
   31024     1774182 :          data_tmp = ISHFT(pack_tmp, 8)
   31025     1774182 :          ipack = ipack + 1
   31026     1774182 :          pack_tmp = packed_data(ipack)
   31027     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31028     1774182 :          pack_tmp = ISHFT(pack_tmp, -8)
   31029     1774182 :          idata = idata + 1
   31030     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31031     1774182 :          full_data(idata) = data_tmp
   31032     1774182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31033     1774182 :          idata = idata + 1
   31034     1774182 :          data_tmp = ISHFT(pack_tmp, 24)
   31035     1774182 :          ipack = ipack + 1
   31036     1774182 :          pack_tmp = packed_data(ipack)
   31037     1774182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31038     1774182 :          pack_tmp = ISHFT(pack_tmp, -24)
   31039     1774182 :          idata = idata + 1
   31040     1774182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31041     1774182 :          full_data(idata) = data_tmp
   31042     1774482 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31043             :       END DO
   31044      124308 :       IF (Ndata_rep < Ndata) THEN
   31045       25140 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31046             :       END IF
   31047      124308 :    END SUBROUTINE bits2ints_40
   31048             : 
   31049             : ! **************************************************************************************************
   31050             : !> \brief ...
   31051             : !> \param Ndata ...
   31052             : !> \param packed_data ...
   31053             : !> \param full_data ...
   31054             : ! **************************************************************************************************
   31055       25546 :    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       25546 :       idata = 0
   31066       25546 :       ipack = 0
   31067       25546 :       Ndata_rep = (Ndata/64)*64
   31068       25546 :       DO kdata = 1, Ndata_rep, 64
   31069      388029 :          pack_tmp = 0
   31070      388029 :          idata = idata + 1
   31071      388029 :          data_tmp = full_data(idata)
   31072      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31073      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31074      388029 :          pack_tmp = ISHFT(pack_tmp, -23)
   31075      388029 :          idata = idata + 1
   31076      388029 :          data_tmp = full_data(idata)
   31077      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31078      388029 :          data_tmp = IAND(data_tmp, mask_left(23))
   31079      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31080      388029 :          ipack = ipack + 1
   31081      388029 :          packed_data(ipack) = pack_tmp
   31082      388029 :          data_tmp = full_data(idata)
   31083      388029 :          pack_tmp = ISHFT(data_tmp, 46)
   31084      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31085      388029 :          idata = idata + 1
   31086      388029 :          data_tmp = full_data(idata)
   31087      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31088      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31089      388029 :          pack_tmp = ISHFT(pack_tmp, -5)
   31090      388029 :          idata = idata + 1
   31091      388029 :          data_tmp = full_data(idata)
   31092      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31093      388029 :          data_tmp = IAND(data_tmp, mask_left(5))
   31094      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31095      388029 :          ipack = ipack + 1
   31096      388029 :          packed_data(ipack) = pack_tmp
   31097      388029 :          data_tmp = full_data(idata)
   31098      388029 :          pack_tmp = ISHFT(data_tmp, 28)
   31099      388029 :          pack_tmp = ISHFT(pack_tmp, -28)
   31100      388029 :          idata = idata + 1
   31101      388029 :          data_tmp = full_data(idata)
   31102      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31103      388029 :          data_tmp = IAND(data_tmp, mask_left(28))
   31104      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31105      388029 :          ipack = ipack + 1
   31106      388029 :          packed_data(ipack) = pack_tmp
   31107      388029 :          data_tmp = full_data(idata)
   31108      388029 :          pack_tmp = ISHFT(data_tmp, 51)
   31109      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31110      388029 :          idata = idata + 1
   31111      388029 :          data_tmp = full_data(idata)
   31112      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31113      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31114      388029 :          pack_tmp = ISHFT(pack_tmp, -10)
   31115      388029 :          idata = idata + 1
   31116      388029 :          data_tmp = full_data(idata)
   31117      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31118      388029 :          data_tmp = IAND(data_tmp, mask_left(10))
   31119      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31120      388029 :          ipack = ipack + 1
   31121      388029 :          packed_data(ipack) = pack_tmp
   31122      388029 :          data_tmp = full_data(idata)
   31123      388029 :          pack_tmp = ISHFT(data_tmp, 33)
   31124      388029 :          pack_tmp = ISHFT(pack_tmp, -33)
   31125      388029 :          idata = idata + 1
   31126      388029 :          data_tmp = full_data(idata)
   31127      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31128      388029 :          data_tmp = IAND(data_tmp, mask_left(33))
   31129      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31130      388029 :          ipack = ipack + 1
   31131      388029 :          packed_data(ipack) = pack_tmp
   31132      388029 :          data_tmp = full_data(idata)
   31133      388029 :          pack_tmp = ISHFT(data_tmp, 56)
   31134      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31135      388029 :          idata = idata + 1
   31136      388029 :          data_tmp = full_data(idata)
   31137      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31138      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31139      388029 :          pack_tmp = ISHFT(pack_tmp, -15)
   31140      388029 :          idata = idata + 1
   31141      388029 :          data_tmp = full_data(idata)
   31142      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31143      388029 :          data_tmp = IAND(data_tmp, mask_left(15))
   31144      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31145      388029 :          ipack = ipack + 1
   31146      388029 :          packed_data(ipack) = pack_tmp
   31147      388029 :          data_tmp = full_data(idata)
   31148      388029 :          pack_tmp = ISHFT(data_tmp, 38)
   31149      388029 :          pack_tmp = ISHFT(pack_tmp, -38)
   31150      388029 :          idata = idata + 1
   31151      388029 :          data_tmp = full_data(idata)
   31152      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31153      388029 :          data_tmp = IAND(data_tmp, mask_left(38))
   31154      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31155      388029 :          ipack = ipack + 1
   31156      388029 :          packed_data(ipack) = pack_tmp
   31157      388029 :          data_tmp = full_data(idata)
   31158      388029 :          pack_tmp = ISHFT(data_tmp, 61)
   31159      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31160      388029 :          idata = idata + 1
   31161      388029 :          data_tmp = full_data(idata)
   31162      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31163      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31164      388029 :          pack_tmp = ISHFT(pack_tmp, -20)
   31165      388029 :          idata = idata + 1
   31166      388029 :          data_tmp = full_data(idata)
   31167      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31168      388029 :          data_tmp = IAND(data_tmp, mask_left(20))
   31169      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31170      388029 :          ipack = ipack + 1
   31171      388029 :          packed_data(ipack) = pack_tmp
   31172      388029 :          data_tmp = full_data(idata)
   31173      388029 :          pack_tmp = ISHFT(data_tmp, 43)
   31174      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31175      388029 :          idata = idata + 1
   31176      388029 :          data_tmp = full_data(idata)
   31177      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31178      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31179      388029 :          pack_tmp = ISHFT(pack_tmp, -2)
   31180      388029 :          idata = idata + 1
   31181      388029 :          data_tmp = full_data(idata)
   31182      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31183      388029 :          data_tmp = IAND(data_tmp, mask_left(2))
   31184      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31185      388029 :          ipack = ipack + 1
   31186      388029 :          packed_data(ipack) = pack_tmp
   31187      388029 :          data_tmp = full_data(idata)
   31188      388029 :          pack_tmp = ISHFT(data_tmp, 25)
   31189      388029 :          pack_tmp = ISHFT(pack_tmp, -25)
   31190      388029 :          idata = idata + 1
   31191      388029 :          data_tmp = full_data(idata)
   31192      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31193      388029 :          data_tmp = IAND(data_tmp, mask_left(25))
   31194      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31195      388029 :          ipack = ipack + 1
   31196      388029 :          packed_data(ipack) = pack_tmp
   31197      388029 :          data_tmp = full_data(idata)
   31198      388029 :          pack_tmp = ISHFT(data_tmp, 48)
   31199      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31200      388029 :          idata = idata + 1
   31201      388029 :          data_tmp = full_data(idata)
   31202      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31203      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31204      388029 :          pack_tmp = ISHFT(pack_tmp, -7)
   31205      388029 :          idata = idata + 1
   31206      388029 :          data_tmp = full_data(idata)
   31207      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31208      388029 :          data_tmp = IAND(data_tmp, mask_left(7))
   31209      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31210      388029 :          ipack = ipack + 1
   31211      388029 :          packed_data(ipack) = pack_tmp
   31212      388029 :          data_tmp = full_data(idata)
   31213      388029 :          pack_tmp = ISHFT(data_tmp, 30)
   31214      388029 :          pack_tmp = ISHFT(pack_tmp, -30)
   31215      388029 :          idata = idata + 1
   31216      388029 :          data_tmp = full_data(idata)
   31217      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31218      388029 :          data_tmp = IAND(data_tmp, mask_left(30))
   31219      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31220      388029 :          ipack = ipack + 1
   31221      388029 :          packed_data(ipack) = pack_tmp
   31222      388029 :          data_tmp = full_data(idata)
   31223      388029 :          pack_tmp = ISHFT(data_tmp, 53)
   31224      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31225      388029 :          idata = idata + 1
   31226      388029 :          data_tmp = full_data(idata)
   31227      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31228      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31229      388029 :          pack_tmp = ISHFT(pack_tmp, -12)
   31230      388029 :          idata = idata + 1
   31231      388029 :          data_tmp = full_data(idata)
   31232      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31233      388029 :          data_tmp = IAND(data_tmp, mask_left(12))
   31234      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31235      388029 :          ipack = ipack + 1
   31236      388029 :          packed_data(ipack) = pack_tmp
   31237      388029 :          data_tmp = full_data(idata)
   31238      388029 :          pack_tmp = ISHFT(data_tmp, 35)
   31239      388029 :          pack_tmp = ISHFT(pack_tmp, -35)
   31240      388029 :          idata = idata + 1
   31241      388029 :          data_tmp = full_data(idata)
   31242      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31243      388029 :          data_tmp = IAND(data_tmp, mask_left(35))
   31244      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31245      388029 :          ipack = ipack + 1
   31246      388029 :          packed_data(ipack) = pack_tmp
   31247      388029 :          data_tmp = full_data(idata)
   31248      388029 :          pack_tmp = ISHFT(data_tmp, 58)
   31249      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31250      388029 :          idata = idata + 1
   31251      388029 :          data_tmp = full_data(idata)
   31252      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31253      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31254      388029 :          pack_tmp = ISHFT(pack_tmp, -17)
   31255      388029 :          idata = idata + 1
   31256      388029 :          data_tmp = full_data(idata)
   31257      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31258      388029 :          data_tmp = IAND(data_tmp, mask_left(17))
   31259      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31260      388029 :          ipack = ipack + 1
   31261      388029 :          packed_data(ipack) = pack_tmp
   31262      388029 :          data_tmp = full_data(idata)
   31263      388029 :          pack_tmp = ISHFT(data_tmp, 40)
   31264      388029 :          pack_tmp = ISHFT(pack_tmp, -40)
   31265      388029 :          idata = idata + 1
   31266      388029 :          data_tmp = full_data(idata)
   31267      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31268      388029 :          data_tmp = IAND(data_tmp, mask_left(40))
   31269      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31270      388029 :          ipack = ipack + 1
   31271      388029 :          packed_data(ipack) = pack_tmp
   31272      388029 :          data_tmp = full_data(idata)
   31273      388029 :          pack_tmp = ISHFT(data_tmp, 63)
   31274      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31275      388029 :          idata = idata + 1
   31276      388029 :          data_tmp = full_data(idata)
   31277      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31278      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31279      388029 :          pack_tmp = ISHFT(pack_tmp, -22)
   31280      388029 :          idata = idata + 1
   31281      388029 :          data_tmp = full_data(idata)
   31282      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31283      388029 :          data_tmp = IAND(data_tmp, mask_left(22))
   31284      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31285      388029 :          ipack = ipack + 1
   31286      388029 :          packed_data(ipack) = pack_tmp
   31287      388029 :          data_tmp = full_data(idata)
   31288      388029 :          pack_tmp = ISHFT(data_tmp, 45)
   31289      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31290      388029 :          idata = idata + 1
   31291      388029 :          data_tmp = full_data(idata)
   31292      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31293      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31294      388029 :          pack_tmp = ISHFT(pack_tmp, -4)
   31295      388029 :          idata = idata + 1
   31296      388029 :          data_tmp = full_data(idata)
   31297      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31298      388029 :          data_tmp = IAND(data_tmp, mask_left(4))
   31299      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31300      388029 :          ipack = ipack + 1
   31301      388029 :          packed_data(ipack) = pack_tmp
   31302      388029 :          data_tmp = full_data(idata)
   31303      388029 :          pack_tmp = ISHFT(data_tmp, 27)
   31304      388029 :          pack_tmp = ISHFT(pack_tmp, -27)
   31305      388029 :          idata = idata + 1
   31306      388029 :          data_tmp = full_data(idata)
   31307      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31308      388029 :          data_tmp = IAND(data_tmp, mask_left(27))
   31309      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31310      388029 :          ipack = ipack + 1
   31311      388029 :          packed_data(ipack) = pack_tmp
   31312      388029 :          data_tmp = full_data(idata)
   31313      388029 :          pack_tmp = ISHFT(data_tmp, 50)
   31314      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31315      388029 :          idata = idata + 1
   31316      388029 :          data_tmp = full_data(idata)
   31317      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31318      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31319      388029 :          pack_tmp = ISHFT(pack_tmp, -9)
   31320      388029 :          idata = idata + 1
   31321      388029 :          data_tmp = full_data(idata)
   31322      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31323      388029 :          data_tmp = IAND(data_tmp, mask_left(9))
   31324      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31325      388029 :          ipack = ipack + 1
   31326      388029 :          packed_data(ipack) = pack_tmp
   31327      388029 :          data_tmp = full_data(idata)
   31328      388029 :          pack_tmp = ISHFT(data_tmp, 32)
   31329      388029 :          pack_tmp = ISHFT(pack_tmp, -32)
   31330      388029 :          idata = idata + 1
   31331      388029 :          data_tmp = full_data(idata)
   31332      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31333      388029 :          data_tmp = IAND(data_tmp, mask_left(32))
   31334      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31335      388029 :          ipack = ipack + 1
   31336      388029 :          packed_data(ipack) = pack_tmp
   31337      388029 :          data_tmp = full_data(idata)
   31338      388029 :          pack_tmp = ISHFT(data_tmp, 55)
   31339      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31340      388029 :          idata = idata + 1
   31341      388029 :          data_tmp = full_data(idata)
   31342      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31343      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31344      388029 :          pack_tmp = ISHFT(pack_tmp, -14)
   31345      388029 :          idata = idata + 1
   31346      388029 :          data_tmp = full_data(idata)
   31347      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31348      388029 :          data_tmp = IAND(data_tmp, mask_left(14))
   31349      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31350      388029 :          ipack = ipack + 1
   31351      388029 :          packed_data(ipack) = pack_tmp
   31352      388029 :          data_tmp = full_data(idata)
   31353      388029 :          pack_tmp = ISHFT(data_tmp, 37)
   31354      388029 :          pack_tmp = ISHFT(pack_tmp, -37)
   31355      388029 :          idata = idata + 1
   31356      388029 :          data_tmp = full_data(idata)
   31357      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31358      388029 :          data_tmp = IAND(data_tmp, mask_left(37))
   31359      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31360      388029 :          ipack = ipack + 1
   31361      388029 :          packed_data(ipack) = pack_tmp
   31362      388029 :          data_tmp = full_data(idata)
   31363      388029 :          pack_tmp = ISHFT(data_tmp, 60)
   31364      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31365      388029 :          idata = idata + 1
   31366      388029 :          data_tmp = full_data(idata)
   31367      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31368      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31369      388029 :          pack_tmp = ISHFT(pack_tmp, -19)
   31370      388029 :          idata = idata + 1
   31371      388029 :          data_tmp = full_data(idata)
   31372      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31373      388029 :          data_tmp = IAND(data_tmp, mask_left(19))
   31374      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31375      388029 :          ipack = ipack + 1
   31376      388029 :          packed_data(ipack) = pack_tmp
   31377      388029 :          data_tmp = full_data(idata)
   31378      388029 :          pack_tmp = ISHFT(data_tmp, 42)
   31379      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31380      388029 :          idata = idata + 1
   31381      388029 :          data_tmp = full_data(idata)
   31382      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31383      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31384      388029 :          pack_tmp = ISHFT(pack_tmp, -1)
   31385      388029 :          idata = idata + 1
   31386      388029 :          data_tmp = full_data(idata)
   31387      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31388      388029 :          data_tmp = IAND(data_tmp, mask_left(1))
   31389      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31390      388029 :          ipack = ipack + 1
   31391      388029 :          packed_data(ipack) = pack_tmp
   31392      388029 :          data_tmp = full_data(idata)
   31393      388029 :          pack_tmp = ISHFT(data_tmp, 24)
   31394      388029 :          pack_tmp = ISHFT(pack_tmp, -24)
   31395      388029 :          idata = idata + 1
   31396      388029 :          data_tmp = full_data(idata)
   31397      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31398      388029 :          data_tmp = IAND(data_tmp, mask_left(24))
   31399      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31400      388029 :          ipack = ipack + 1
   31401      388029 :          packed_data(ipack) = pack_tmp
   31402      388029 :          data_tmp = full_data(idata)
   31403      388029 :          pack_tmp = ISHFT(data_tmp, 47)
   31404      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31405      388029 :          idata = idata + 1
   31406      388029 :          data_tmp = full_data(idata)
   31407      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31408      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31409      388029 :          pack_tmp = ISHFT(pack_tmp, -6)
   31410      388029 :          idata = idata + 1
   31411      388029 :          data_tmp = full_data(idata)
   31412      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31413      388029 :          data_tmp = IAND(data_tmp, mask_left(6))
   31414      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31415      388029 :          ipack = ipack + 1
   31416      388029 :          packed_data(ipack) = pack_tmp
   31417      388029 :          data_tmp = full_data(idata)
   31418      388029 :          pack_tmp = ISHFT(data_tmp, 29)
   31419      388029 :          pack_tmp = ISHFT(pack_tmp, -29)
   31420      388029 :          idata = idata + 1
   31421      388029 :          data_tmp = full_data(idata)
   31422      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31423      388029 :          data_tmp = IAND(data_tmp, mask_left(29))
   31424      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31425      388029 :          ipack = ipack + 1
   31426      388029 :          packed_data(ipack) = pack_tmp
   31427      388029 :          data_tmp = full_data(idata)
   31428      388029 :          pack_tmp = ISHFT(data_tmp, 52)
   31429      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31430      388029 :          idata = idata + 1
   31431      388029 :          data_tmp = full_data(idata)
   31432      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31433      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31434      388029 :          pack_tmp = ISHFT(pack_tmp, -11)
   31435      388029 :          idata = idata + 1
   31436      388029 :          data_tmp = full_data(idata)
   31437      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31438      388029 :          data_tmp = IAND(data_tmp, mask_left(11))
   31439      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31440      388029 :          ipack = ipack + 1
   31441      388029 :          packed_data(ipack) = pack_tmp
   31442      388029 :          data_tmp = full_data(idata)
   31443      388029 :          pack_tmp = ISHFT(data_tmp, 34)
   31444      388029 :          pack_tmp = ISHFT(pack_tmp, -34)
   31445      388029 :          idata = idata + 1
   31446      388029 :          data_tmp = full_data(idata)
   31447      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31448      388029 :          data_tmp = IAND(data_tmp, mask_left(34))
   31449      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31450      388029 :          ipack = ipack + 1
   31451      388029 :          packed_data(ipack) = pack_tmp
   31452      388029 :          data_tmp = full_data(idata)
   31453      388029 :          pack_tmp = ISHFT(data_tmp, 57)
   31454      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31455      388029 :          idata = idata + 1
   31456      388029 :          data_tmp = full_data(idata)
   31457      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31458      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31459      388029 :          pack_tmp = ISHFT(pack_tmp, -16)
   31460      388029 :          idata = idata + 1
   31461      388029 :          data_tmp = full_data(idata)
   31462      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31463      388029 :          data_tmp = IAND(data_tmp, mask_left(16))
   31464      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31465      388029 :          ipack = ipack + 1
   31466      388029 :          packed_data(ipack) = pack_tmp
   31467      388029 :          data_tmp = full_data(idata)
   31468      388029 :          pack_tmp = ISHFT(data_tmp, 39)
   31469      388029 :          pack_tmp = ISHFT(pack_tmp, -39)
   31470      388029 :          idata = idata + 1
   31471      388029 :          data_tmp = full_data(idata)
   31472      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31473      388029 :          data_tmp = IAND(data_tmp, mask_left(39))
   31474      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31475      388029 :          ipack = ipack + 1
   31476      388029 :          packed_data(ipack) = pack_tmp
   31477      388029 :          data_tmp = full_data(idata)
   31478      388029 :          pack_tmp = ISHFT(data_tmp, 62)
   31479      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31480      388029 :          idata = idata + 1
   31481      388029 :          data_tmp = full_data(idata)
   31482      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31483      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31484      388029 :          pack_tmp = ISHFT(pack_tmp, -21)
   31485      388029 :          idata = idata + 1
   31486      388029 :          data_tmp = full_data(idata)
   31487      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31488      388029 :          data_tmp = IAND(data_tmp, mask_left(21))
   31489      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31490      388029 :          ipack = ipack + 1
   31491      388029 :          packed_data(ipack) = pack_tmp
   31492      388029 :          data_tmp = full_data(idata)
   31493      388029 :          pack_tmp = ISHFT(data_tmp, 44)
   31494      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31495      388029 :          idata = idata + 1
   31496      388029 :          data_tmp = full_data(idata)
   31497      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31498      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31499      388029 :          pack_tmp = ISHFT(pack_tmp, -3)
   31500      388029 :          idata = idata + 1
   31501      388029 :          data_tmp = full_data(idata)
   31502      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31503      388029 :          data_tmp = IAND(data_tmp, mask_left(3))
   31504      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31505      388029 :          ipack = ipack + 1
   31506      388029 :          packed_data(ipack) = pack_tmp
   31507      388029 :          data_tmp = full_data(idata)
   31508      388029 :          pack_tmp = ISHFT(data_tmp, 26)
   31509      388029 :          pack_tmp = ISHFT(pack_tmp, -26)
   31510      388029 :          idata = idata + 1
   31511      388029 :          data_tmp = full_data(idata)
   31512      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31513      388029 :          data_tmp = IAND(data_tmp, mask_left(26))
   31514      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31515      388029 :          ipack = ipack + 1
   31516      388029 :          packed_data(ipack) = pack_tmp
   31517      388029 :          data_tmp = full_data(idata)
   31518      388029 :          pack_tmp = ISHFT(data_tmp, 49)
   31519      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31520      388029 :          idata = idata + 1
   31521      388029 :          data_tmp = full_data(idata)
   31522      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31523      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31524      388029 :          pack_tmp = ISHFT(pack_tmp, -8)
   31525      388029 :          idata = idata + 1
   31526      388029 :          data_tmp = full_data(idata)
   31527      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31528      388029 :          data_tmp = IAND(data_tmp, mask_left(8))
   31529      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31530      388029 :          ipack = ipack + 1
   31531      388029 :          packed_data(ipack) = pack_tmp
   31532      388029 :          data_tmp = full_data(idata)
   31533      388029 :          pack_tmp = ISHFT(data_tmp, 31)
   31534      388029 :          pack_tmp = ISHFT(pack_tmp, -31)
   31535      388029 :          idata = idata + 1
   31536      388029 :          data_tmp = full_data(idata)
   31537      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31538      388029 :          data_tmp = IAND(data_tmp, mask_left(31))
   31539      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31540      388029 :          ipack = ipack + 1
   31541      388029 :          packed_data(ipack) = pack_tmp
   31542      388029 :          data_tmp = full_data(idata)
   31543      388029 :          pack_tmp = ISHFT(data_tmp, 54)
   31544      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31545      388029 :          idata = idata + 1
   31546      388029 :          data_tmp = full_data(idata)
   31547      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31548      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31549      388029 :          pack_tmp = ISHFT(pack_tmp, -13)
   31550      388029 :          idata = idata + 1
   31551      388029 :          data_tmp = full_data(idata)
   31552      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31553      388029 :          data_tmp = IAND(data_tmp, mask_left(13))
   31554      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31555      388029 :          ipack = ipack + 1
   31556      388029 :          packed_data(ipack) = pack_tmp
   31557      388029 :          data_tmp = full_data(idata)
   31558      388029 :          pack_tmp = ISHFT(data_tmp, 36)
   31559      388029 :          pack_tmp = ISHFT(pack_tmp, -36)
   31560      388029 :          idata = idata + 1
   31561      388029 :          data_tmp = full_data(idata)
   31562      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31563      388029 :          data_tmp = IAND(data_tmp, mask_left(36))
   31564      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31565      388029 :          ipack = ipack + 1
   31566      388029 :          packed_data(ipack) = pack_tmp
   31567      388029 :          data_tmp = full_data(idata)
   31568      388029 :          pack_tmp = ISHFT(data_tmp, 59)
   31569      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31570      388029 :          idata = idata + 1
   31571      388029 :          data_tmp = full_data(idata)
   31572      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31573      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31574      388029 :          pack_tmp = ISHFT(pack_tmp, -18)
   31575      388029 :          idata = idata + 1
   31576      388029 :          data_tmp = full_data(idata)
   31577      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31578      388029 :          data_tmp = IAND(data_tmp, mask_left(18))
   31579      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31580      388029 :          ipack = ipack + 1
   31581      388029 :          packed_data(ipack) = pack_tmp
   31582      388029 :          data_tmp = full_data(idata)
   31583      388029 :          pack_tmp = ISHFT(data_tmp, 41)
   31584      388029 :          pack_tmp = ISHFT(pack_tmp, -41)
   31585      388029 :          idata = idata + 1
   31586      388029 :          data_tmp = full_data(idata)
   31587      388029 :          data_tmp = ISHFT(data_tmp, 23)
   31588      388029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31589             :          pack_tmp = ISHFT(pack_tmp, 0)
   31590      388029 :          pack_tmp = ISHFT(pack_tmp, 0)
   31591      388029 :          ipack = ipack + 1
   31592      388077 :          packed_data(ipack) = pack_tmp
   31593             :       END DO
   31594       25546 :       IF (Ndata_rep < Ndata) THEN
   31595        2406 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31596             :       END IF
   31597       25546 :    END SUBROUTINE ints2bits_41
   31598             : 
   31599             : ! **************************************************************************************************
   31600             : !> \brief ...
   31601             : !> \param Ndata ...
   31602             : !> \param packed_data ...
   31603             : !> \param full_data ...
   31604             : ! **************************************************************************************************
   31605      124938 :    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      124938 :       ipack = 0
   31616      124938 :       idata = 0
   31617      124938 :       pack_tmp = 0
   31618      124938 :       Ndata_rep = (Ndata/64)*64
   31619      124938 :       DO kdata = 1, Ndata_rep, 64
   31620     1778138 :          idata = idata + 1
   31621     1778138 :          data_tmp = ISHFT(pack_tmp, 41)
   31622     1778138 :          ipack = ipack + 1
   31623     1778138 :          pack_tmp = packed_data(ipack)
   31624     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   31625     1778138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31626     1778138 :          idata = idata + 1
   31627     1778138 :          data_tmp = ISHFT(pack_tmp, 18)
   31628     1778138 :          ipack = ipack + 1
   31629     1778138 :          pack_tmp = packed_data(ipack)
   31630     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   31631     1778138 :          pack_tmp = ISHFT(pack_tmp, -18)
   31632     1778138 :          idata = idata + 1
   31633     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31634     1778138 :          full_data(idata) = data_tmp
   31635     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31636     1778138 :          idata = idata + 1
   31637     1778138 :          data_tmp = ISHFT(pack_tmp, 36)
   31638     1778138 :          ipack = ipack + 1
   31639     1778138 :          pack_tmp = packed_data(ipack)
   31640     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   31641     1778138 :          pack_tmp = ISHFT(pack_tmp, -36)
   31642     1778138 :          idata = idata + 1
   31643     1778138 :          data_tmp = ISHFT(pack_tmp, 13)
   31644     1778138 :          ipack = ipack + 1
   31645     1778138 :          pack_tmp = packed_data(ipack)
   31646     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   31647     1778138 :          pack_tmp = ISHFT(pack_tmp, -13)
   31648     1778138 :          idata = idata + 1
   31649     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31650     1778138 :          full_data(idata) = data_tmp
   31651     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31652     1778138 :          idata = idata + 1
   31653     1778138 :          data_tmp = ISHFT(pack_tmp, 31)
   31654     1778138 :          ipack = ipack + 1
   31655     1778138 :          pack_tmp = packed_data(ipack)
   31656     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   31657     1778138 :          pack_tmp = ISHFT(pack_tmp, -31)
   31658     1778138 :          idata = idata + 1
   31659     1778138 :          data_tmp = ISHFT(pack_tmp, 8)
   31660     1778138 :          ipack = ipack + 1
   31661     1778138 :          pack_tmp = packed_data(ipack)
   31662     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31663     1778138 :          pack_tmp = ISHFT(pack_tmp, -8)
   31664     1778138 :          idata = idata + 1
   31665     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31666     1778138 :          full_data(idata) = data_tmp
   31667     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31668     1778138 :          idata = idata + 1
   31669     1778138 :          data_tmp = ISHFT(pack_tmp, 26)
   31670     1778138 :          ipack = ipack + 1
   31671     1778138 :          pack_tmp = packed_data(ipack)
   31672     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   31673     1778138 :          pack_tmp = ISHFT(pack_tmp, -26)
   31674     1778138 :          idata = idata + 1
   31675     1778138 :          data_tmp = ISHFT(pack_tmp, 3)
   31676     1778138 :          ipack = ipack + 1
   31677     1778138 :          pack_tmp = packed_data(ipack)
   31678     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   31679     1778138 :          pack_tmp = ISHFT(pack_tmp, -3)
   31680     1778138 :          idata = idata + 1
   31681     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31682     1778138 :          full_data(idata) = data_tmp
   31683     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31684     1778138 :          idata = idata + 1
   31685     1778138 :          data_tmp = ISHFT(pack_tmp, 21)
   31686     1778138 :          ipack = ipack + 1
   31687     1778138 :          pack_tmp = packed_data(ipack)
   31688     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   31689     1778138 :          pack_tmp = ISHFT(pack_tmp, -21)
   31690     1778138 :          idata = idata + 1
   31691     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31692     1778138 :          full_data(idata) = data_tmp
   31693     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31694     1778138 :          idata = idata + 1
   31695     1778138 :          data_tmp = ISHFT(pack_tmp, 39)
   31696     1778138 :          ipack = ipack + 1
   31697     1778138 :          pack_tmp = packed_data(ipack)
   31698     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   31699     1778138 :          pack_tmp = ISHFT(pack_tmp, -39)
   31700     1778138 :          idata = idata + 1
   31701     1778138 :          data_tmp = ISHFT(pack_tmp, 16)
   31702     1778138 :          ipack = ipack + 1
   31703     1778138 :          pack_tmp = packed_data(ipack)
   31704     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31705     1778138 :          pack_tmp = ISHFT(pack_tmp, -16)
   31706     1778138 :          idata = idata + 1
   31707     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31708     1778138 :          full_data(idata) = data_tmp
   31709     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31710     1778138 :          idata = idata + 1
   31711     1778138 :          data_tmp = ISHFT(pack_tmp, 34)
   31712     1778138 :          ipack = ipack + 1
   31713     1778138 :          pack_tmp = packed_data(ipack)
   31714     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   31715     1778138 :          pack_tmp = ISHFT(pack_tmp, -34)
   31716     1778138 :          idata = idata + 1
   31717     1778138 :          data_tmp = ISHFT(pack_tmp, 11)
   31718     1778138 :          ipack = ipack + 1
   31719     1778138 :          pack_tmp = packed_data(ipack)
   31720     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   31721     1778138 :          pack_tmp = ISHFT(pack_tmp, -11)
   31722     1778138 :          idata = idata + 1
   31723     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31724     1778138 :          full_data(idata) = data_tmp
   31725     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31726     1778138 :          idata = idata + 1
   31727     1778138 :          data_tmp = ISHFT(pack_tmp, 29)
   31728     1778138 :          ipack = ipack + 1
   31729     1778138 :          pack_tmp = packed_data(ipack)
   31730     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   31731     1778138 :          pack_tmp = ISHFT(pack_tmp, -29)
   31732     1778138 :          idata = idata + 1
   31733     1778138 :          data_tmp = ISHFT(pack_tmp, 6)
   31734     1778138 :          ipack = ipack + 1
   31735     1778138 :          pack_tmp = packed_data(ipack)
   31736     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   31737     1778138 :          pack_tmp = ISHFT(pack_tmp, -6)
   31738     1778138 :          idata = idata + 1
   31739     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31740     1778138 :          full_data(idata) = data_tmp
   31741     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31742     1778138 :          idata = idata + 1
   31743     1778138 :          data_tmp = ISHFT(pack_tmp, 24)
   31744     1778138 :          ipack = ipack + 1
   31745     1778138 :          pack_tmp = packed_data(ipack)
   31746     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31747     1778138 :          pack_tmp = ISHFT(pack_tmp, -24)
   31748     1778138 :          idata = idata + 1
   31749     1778138 :          data_tmp = ISHFT(pack_tmp, 1)
   31750     1778138 :          ipack = ipack + 1
   31751     1778138 :          pack_tmp = packed_data(ipack)
   31752     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   31753     1778138 :          pack_tmp = ISHFT(pack_tmp, -1)
   31754     1778138 :          idata = idata + 1
   31755     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31756     1778138 :          full_data(idata) = data_tmp
   31757     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31758     1778138 :          idata = idata + 1
   31759     1778138 :          data_tmp = ISHFT(pack_tmp, 19)
   31760     1778138 :          ipack = ipack + 1
   31761     1778138 :          pack_tmp = packed_data(ipack)
   31762     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   31763     1778138 :          pack_tmp = ISHFT(pack_tmp, -19)
   31764     1778138 :          idata = idata + 1
   31765     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31766     1778138 :          full_data(idata) = data_tmp
   31767     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31768     1778138 :          idata = idata + 1
   31769     1778138 :          data_tmp = ISHFT(pack_tmp, 37)
   31770     1778138 :          ipack = ipack + 1
   31771     1778138 :          pack_tmp = packed_data(ipack)
   31772     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   31773     1778138 :          pack_tmp = ISHFT(pack_tmp, -37)
   31774     1778138 :          idata = idata + 1
   31775     1778138 :          data_tmp = ISHFT(pack_tmp, 14)
   31776     1778138 :          ipack = ipack + 1
   31777     1778138 :          pack_tmp = packed_data(ipack)
   31778     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   31779     1778138 :          pack_tmp = ISHFT(pack_tmp, -14)
   31780     1778138 :          idata = idata + 1
   31781     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31782     1778138 :          full_data(idata) = data_tmp
   31783     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31784     1778138 :          idata = idata + 1
   31785     1778138 :          data_tmp = ISHFT(pack_tmp, 32)
   31786     1778138 :          ipack = ipack + 1
   31787     1778138 :          pack_tmp = packed_data(ipack)
   31788     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31789     1778138 :          pack_tmp = ISHFT(pack_tmp, -32)
   31790     1778138 :          idata = idata + 1
   31791     1778138 :          data_tmp = ISHFT(pack_tmp, 9)
   31792     1778138 :          ipack = ipack + 1
   31793     1778138 :          pack_tmp = packed_data(ipack)
   31794     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   31795     1778138 :          pack_tmp = ISHFT(pack_tmp, -9)
   31796     1778138 :          idata = idata + 1
   31797     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31798     1778138 :          full_data(idata) = data_tmp
   31799     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31800     1778138 :          idata = idata + 1
   31801     1778138 :          data_tmp = ISHFT(pack_tmp, 27)
   31802     1778138 :          ipack = ipack + 1
   31803     1778138 :          pack_tmp = packed_data(ipack)
   31804     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   31805     1778138 :          pack_tmp = ISHFT(pack_tmp, -27)
   31806     1778138 :          idata = idata + 1
   31807     1778138 :          data_tmp = ISHFT(pack_tmp, 4)
   31808     1778138 :          ipack = ipack + 1
   31809     1778138 :          pack_tmp = packed_data(ipack)
   31810     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   31811     1778138 :          pack_tmp = ISHFT(pack_tmp, -4)
   31812     1778138 :          idata = idata + 1
   31813     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31814     1778138 :          full_data(idata) = data_tmp
   31815     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31816     1778138 :          idata = idata + 1
   31817     1778138 :          data_tmp = ISHFT(pack_tmp, 22)
   31818     1778138 :          ipack = ipack + 1
   31819     1778138 :          pack_tmp = packed_data(ipack)
   31820     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   31821     1778138 :          pack_tmp = ISHFT(pack_tmp, -22)
   31822     1778138 :          idata = idata + 1
   31823     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31824     1778138 :          full_data(idata) = data_tmp
   31825     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31826     1778138 :          idata = idata + 1
   31827     1778138 :          data_tmp = ISHFT(pack_tmp, 40)
   31828     1778138 :          ipack = ipack + 1
   31829     1778138 :          pack_tmp = packed_data(ipack)
   31830     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31831     1778138 :          pack_tmp = ISHFT(pack_tmp, -40)
   31832     1778138 :          idata = idata + 1
   31833     1778138 :          data_tmp = ISHFT(pack_tmp, 17)
   31834     1778138 :          ipack = ipack + 1
   31835     1778138 :          pack_tmp = packed_data(ipack)
   31836     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   31837     1778138 :          pack_tmp = ISHFT(pack_tmp, -17)
   31838     1778138 :          idata = idata + 1
   31839     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31840     1778138 :          full_data(idata) = data_tmp
   31841     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31842     1778138 :          idata = idata + 1
   31843     1778138 :          data_tmp = ISHFT(pack_tmp, 35)
   31844     1778138 :          ipack = ipack + 1
   31845     1778138 :          pack_tmp = packed_data(ipack)
   31846     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   31847     1778138 :          pack_tmp = ISHFT(pack_tmp, -35)
   31848     1778138 :          idata = idata + 1
   31849     1778138 :          data_tmp = ISHFT(pack_tmp, 12)
   31850     1778138 :          ipack = ipack + 1
   31851     1778138 :          pack_tmp = packed_data(ipack)
   31852     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   31853     1778138 :          pack_tmp = ISHFT(pack_tmp, -12)
   31854     1778138 :          idata = idata + 1
   31855     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31856     1778138 :          full_data(idata) = data_tmp
   31857     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31858     1778138 :          idata = idata + 1
   31859     1778138 :          data_tmp = ISHFT(pack_tmp, 30)
   31860     1778138 :          ipack = ipack + 1
   31861     1778138 :          pack_tmp = packed_data(ipack)
   31862     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   31863     1778138 :          pack_tmp = ISHFT(pack_tmp, -30)
   31864     1778138 :          idata = idata + 1
   31865     1778138 :          data_tmp = ISHFT(pack_tmp, 7)
   31866     1778138 :          ipack = ipack + 1
   31867     1778138 :          pack_tmp = packed_data(ipack)
   31868     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   31869     1778138 :          pack_tmp = ISHFT(pack_tmp, -7)
   31870     1778138 :          idata = idata + 1
   31871     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31872     1778138 :          full_data(idata) = data_tmp
   31873     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31874     1778138 :          idata = idata + 1
   31875     1778138 :          data_tmp = ISHFT(pack_tmp, 25)
   31876     1778138 :          ipack = ipack + 1
   31877     1778138 :          pack_tmp = packed_data(ipack)
   31878     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   31879     1778138 :          pack_tmp = ISHFT(pack_tmp, -25)
   31880     1778138 :          idata = idata + 1
   31881     1778138 :          data_tmp = ISHFT(pack_tmp, 2)
   31882     1778138 :          ipack = ipack + 1
   31883     1778138 :          pack_tmp = packed_data(ipack)
   31884     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   31885     1778138 :          pack_tmp = ISHFT(pack_tmp, -2)
   31886     1778138 :          idata = idata + 1
   31887     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31888     1778138 :          full_data(idata) = data_tmp
   31889     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31890     1778138 :          idata = idata + 1
   31891     1778138 :          data_tmp = ISHFT(pack_tmp, 20)
   31892     1778138 :          ipack = ipack + 1
   31893     1778138 :          pack_tmp = packed_data(ipack)
   31894     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   31895     1778138 :          pack_tmp = ISHFT(pack_tmp, -20)
   31896     1778138 :          idata = idata + 1
   31897     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31898     1778138 :          full_data(idata) = data_tmp
   31899     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31900     1778138 :          idata = idata + 1
   31901     1778138 :          data_tmp = ISHFT(pack_tmp, 38)
   31902     1778138 :          ipack = ipack + 1
   31903     1778138 :          pack_tmp = packed_data(ipack)
   31904     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   31905     1778138 :          pack_tmp = ISHFT(pack_tmp, -38)
   31906     1778138 :          idata = idata + 1
   31907     1778138 :          data_tmp = ISHFT(pack_tmp, 15)
   31908     1778138 :          ipack = ipack + 1
   31909     1778138 :          pack_tmp = packed_data(ipack)
   31910     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   31911     1778138 :          pack_tmp = ISHFT(pack_tmp, -15)
   31912     1778138 :          idata = idata + 1
   31913     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31914     1778138 :          full_data(idata) = data_tmp
   31915     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31916     1778138 :          idata = idata + 1
   31917     1778138 :          data_tmp = ISHFT(pack_tmp, 33)
   31918     1778138 :          ipack = ipack + 1
   31919     1778138 :          pack_tmp = packed_data(ipack)
   31920     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   31921     1778138 :          pack_tmp = ISHFT(pack_tmp, -33)
   31922     1778138 :          idata = idata + 1
   31923     1778138 :          data_tmp = ISHFT(pack_tmp, 10)
   31924     1778138 :          ipack = ipack + 1
   31925     1778138 :          pack_tmp = packed_data(ipack)
   31926     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   31927     1778138 :          pack_tmp = ISHFT(pack_tmp, -10)
   31928     1778138 :          idata = idata + 1
   31929     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31930     1778138 :          full_data(idata) = data_tmp
   31931     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31932     1778138 :          idata = idata + 1
   31933     1778138 :          data_tmp = ISHFT(pack_tmp, 28)
   31934     1778138 :          ipack = ipack + 1
   31935     1778138 :          pack_tmp = packed_data(ipack)
   31936     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   31937     1778138 :          pack_tmp = ISHFT(pack_tmp, -28)
   31938     1778138 :          idata = idata + 1
   31939     1778138 :          data_tmp = ISHFT(pack_tmp, 5)
   31940     1778138 :          ipack = ipack + 1
   31941     1778138 :          pack_tmp = packed_data(ipack)
   31942     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   31943     1778138 :          pack_tmp = ISHFT(pack_tmp, -5)
   31944     1778138 :          idata = idata + 1
   31945     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31946     1778138 :          full_data(idata) = data_tmp
   31947     1778138 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31948     1778138 :          idata = idata + 1
   31949     1778138 :          data_tmp = ISHFT(pack_tmp, 23)
   31950     1778138 :          ipack = ipack + 1
   31951     1778138 :          pack_tmp = packed_data(ipack)
   31952     1778138 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   31953     1778138 :          pack_tmp = ISHFT(pack_tmp, -23)
   31954     1778138 :          idata = idata + 1
   31955     1778138 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31956     1778138 :          full_data(idata) = data_tmp
   31957     1778528 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31958             :       END DO
   31959      124938 :       IF (Ndata_rep < Ndata) THEN
   31960       25740 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31961             :       END IF
   31962      124938 :    END SUBROUTINE bits2ints_41
   31963             : 
   31964             : ! **************************************************************************************************
   31965             : !> \brief ...
   31966             : !> \param Ndata ...
   31967             : !> \param packed_data ...
   31968             : !> \param full_data ...
   31969             : ! **************************************************************************************************
   31970       24209 :    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       24209 :       idata = 0
   31981       24209 :       ipack = 0
   31982       24209 :       Ndata_rep = (Ndata/64)*64
   31983       24209 :       DO kdata = 1, Ndata_rep, 64
   31984      375580 :          pack_tmp = 0
   31985      375580 :          idata = idata + 1
   31986      375580 :          data_tmp = full_data(idata)
   31987      375580 :          data_tmp = ISHFT(data_tmp, 22)
   31988      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31989      375580 :          pack_tmp = ISHFT(pack_tmp, -22)
   31990      375580 :          idata = idata + 1
   31991      375580 :          data_tmp = full_data(idata)
   31992      375580 :          data_tmp = ISHFT(data_tmp, 22)
   31993      375580 :          data_tmp = IAND(data_tmp, mask_left(22))
   31994      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31995      375580 :          ipack = ipack + 1
   31996      375580 :          packed_data(ipack) = pack_tmp
   31997      375580 :          data_tmp = full_data(idata)
   31998      375580 :          pack_tmp = ISHFT(data_tmp, 44)
   31999      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32000      375580 :          idata = idata + 1
   32001      375580 :          data_tmp = full_data(idata)
   32002      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32003      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32004      375580 :          pack_tmp = ISHFT(pack_tmp, -2)
   32005      375580 :          idata = idata + 1
   32006      375580 :          data_tmp = full_data(idata)
   32007      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32008      375580 :          data_tmp = IAND(data_tmp, mask_left(2))
   32009      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32010      375580 :          ipack = ipack + 1
   32011      375580 :          packed_data(ipack) = pack_tmp
   32012      375580 :          data_tmp = full_data(idata)
   32013      375580 :          pack_tmp = ISHFT(data_tmp, 24)
   32014      375580 :          pack_tmp = ISHFT(pack_tmp, -24)
   32015      375580 :          idata = idata + 1
   32016      375580 :          data_tmp = full_data(idata)
   32017      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32018      375580 :          data_tmp = IAND(data_tmp, mask_left(24))
   32019      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32020      375580 :          ipack = ipack + 1
   32021      375580 :          packed_data(ipack) = pack_tmp
   32022      375580 :          data_tmp = full_data(idata)
   32023      375580 :          pack_tmp = ISHFT(data_tmp, 46)
   32024      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32025      375580 :          idata = idata + 1
   32026      375580 :          data_tmp = full_data(idata)
   32027      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32028      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32029      375580 :          pack_tmp = ISHFT(pack_tmp, -4)
   32030      375580 :          idata = idata + 1
   32031      375580 :          data_tmp = full_data(idata)
   32032      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32033      375580 :          data_tmp = IAND(data_tmp, mask_left(4))
   32034      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32035      375580 :          ipack = ipack + 1
   32036      375580 :          packed_data(ipack) = pack_tmp
   32037      375580 :          data_tmp = full_data(idata)
   32038      375580 :          pack_tmp = ISHFT(data_tmp, 26)
   32039      375580 :          pack_tmp = ISHFT(pack_tmp, -26)
   32040      375580 :          idata = idata + 1
   32041      375580 :          data_tmp = full_data(idata)
   32042      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32043      375580 :          data_tmp = IAND(data_tmp, mask_left(26))
   32044      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32045      375580 :          ipack = ipack + 1
   32046      375580 :          packed_data(ipack) = pack_tmp
   32047      375580 :          data_tmp = full_data(idata)
   32048      375580 :          pack_tmp = ISHFT(data_tmp, 48)
   32049      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32050      375580 :          idata = idata + 1
   32051      375580 :          data_tmp = full_data(idata)
   32052      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32053      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32054      375580 :          pack_tmp = ISHFT(pack_tmp, -6)
   32055      375580 :          idata = idata + 1
   32056      375580 :          data_tmp = full_data(idata)
   32057      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32058      375580 :          data_tmp = IAND(data_tmp, mask_left(6))
   32059      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32060      375580 :          ipack = ipack + 1
   32061      375580 :          packed_data(ipack) = pack_tmp
   32062      375580 :          data_tmp = full_data(idata)
   32063      375580 :          pack_tmp = ISHFT(data_tmp, 28)
   32064      375580 :          pack_tmp = ISHFT(pack_tmp, -28)
   32065      375580 :          idata = idata + 1
   32066      375580 :          data_tmp = full_data(idata)
   32067      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32068      375580 :          data_tmp = IAND(data_tmp, mask_left(28))
   32069      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32070      375580 :          ipack = ipack + 1
   32071      375580 :          packed_data(ipack) = pack_tmp
   32072      375580 :          data_tmp = full_data(idata)
   32073      375580 :          pack_tmp = ISHFT(data_tmp, 50)
   32074      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32075      375580 :          idata = idata + 1
   32076      375580 :          data_tmp = full_data(idata)
   32077      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32078      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32079      375580 :          pack_tmp = ISHFT(pack_tmp, -8)
   32080      375580 :          idata = idata + 1
   32081      375580 :          data_tmp = full_data(idata)
   32082      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32083      375580 :          data_tmp = IAND(data_tmp, mask_left(8))
   32084      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32085      375580 :          ipack = ipack + 1
   32086      375580 :          packed_data(ipack) = pack_tmp
   32087      375580 :          data_tmp = full_data(idata)
   32088      375580 :          pack_tmp = ISHFT(data_tmp, 30)
   32089      375580 :          pack_tmp = ISHFT(pack_tmp, -30)
   32090      375580 :          idata = idata + 1
   32091      375580 :          data_tmp = full_data(idata)
   32092      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32093      375580 :          data_tmp = IAND(data_tmp, mask_left(30))
   32094      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32095      375580 :          ipack = ipack + 1
   32096      375580 :          packed_data(ipack) = pack_tmp
   32097      375580 :          data_tmp = full_data(idata)
   32098      375580 :          pack_tmp = ISHFT(data_tmp, 52)
   32099      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32100      375580 :          idata = idata + 1
   32101      375580 :          data_tmp = full_data(idata)
   32102      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32103      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32104      375580 :          pack_tmp = ISHFT(pack_tmp, -10)
   32105      375580 :          idata = idata + 1
   32106      375580 :          data_tmp = full_data(idata)
   32107      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32108      375580 :          data_tmp = IAND(data_tmp, mask_left(10))
   32109      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32110      375580 :          ipack = ipack + 1
   32111      375580 :          packed_data(ipack) = pack_tmp
   32112      375580 :          data_tmp = full_data(idata)
   32113      375580 :          pack_tmp = ISHFT(data_tmp, 32)
   32114      375580 :          pack_tmp = ISHFT(pack_tmp, -32)
   32115      375580 :          idata = idata + 1
   32116      375580 :          data_tmp = full_data(idata)
   32117      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32118      375580 :          data_tmp = IAND(data_tmp, mask_left(32))
   32119      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32120      375580 :          ipack = ipack + 1
   32121      375580 :          packed_data(ipack) = pack_tmp
   32122      375580 :          data_tmp = full_data(idata)
   32123      375580 :          pack_tmp = ISHFT(data_tmp, 54)
   32124      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32125      375580 :          idata = idata + 1
   32126      375580 :          data_tmp = full_data(idata)
   32127      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32128      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32129      375580 :          pack_tmp = ISHFT(pack_tmp, -12)
   32130      375580 :          idata = idata + 1
   32131      375580 :          data_tmp = full_data(idata)
   32132      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32133      375580 :          data_tmp = IAND(data_tmp, mask_left(12))
   32134      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32135      375580 :          ipack = ipack + 1
   32136      375580 :          packed_data(ipack) = pack_tmp
   32137      375580 :          data_tmp = full_data(idata)
   32138      375580 :          pack_tmp = ISHFT(data_tmp, 34)
   32139      375580 :          pack_tmp = ISHFT(pack_tmp, -34)
   32140      375580 :          idata = idata + 1
   32141      375580 :          data_tmp = full_data(idata)
   32142      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32143      375580 :          data_tmp = IAND(data_tmp, mask_left(34))
   32144      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32145      375580 :          ipack = ipack + 1
   32146      375580 :          packed_data(ipack) = pack_tmp
   32147      375580 :          data_tmp = full_data(idata)
   32148      375580 :          pack_tmp = ISHFT(data_tmp, 56)
   32149      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32150      375580 :          idata = idata + 1
   32151      375580 :          data_tmp = full_data(idata)
   32152      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32153      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32154      375580 :          pack_tmp = ISHFT(pack_tmp, -14)
   32155      375580 :          idata = idata + 1
   32156      375580 :          data_tmp = full_data(idata)
   32157      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32158      375580 :          data_tmp = IAND(data_tmp, mask_left(14))
   32159      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32160      375580 :          ipack = ipack + 1
   32161      375580 :          packed_data(ipack) = pack_tmp
   32162      375580 :          data_tmp = full_data(idata)
   32163      375580 :          pack_tmp = ISHFT(data_tmp, 36)
   32164      375580 :          pack_tmp = ISHFT(pack_tmp, -36)
   32165      375580 :          idata = idata + 1
   32166      375580 :          data_tmp = full_data(idata)
   32167      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32168      375580 :          data_tmp = IAND(data_tmp, mask_left(36))
   32169      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32170      375580 :          ipack = ipack + 1
   32171      375580 :          packed_data(ipack) = pack_tmp
   32172      375580 :          data_tmp = full_data(idata)
   32173      375580 :          pack_tmp = ISHFT(data_tmp, 58)
   32174      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32175      375580 :          idata = idata + 1
   32176      375580 :          data_tmp = full_data(idata)
   32177      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32178      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32179      375580 :          pack_tmp = ISHFT(pack_tmp, -16)
   32180      375580 :          idata = idata + 1
   32181      375580 :          data_tmp = full_data(idata)
   32182      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32183      375580 :          data_tmp = IAND(data_tmp, mask_left(16))
   32184      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32185      375580 :          ipack = ipack + 1
   32186      375580 :          packed_data(ipack) = pack_tmp
   32187      375580 :          data_tmp = full_data(idata)
   32188      375580 :          pack_tmp = ISHFT(data_tmp, 38)
   32189      375580 :          pack_tmp = ISHFT(pack_tmp, -38)
   32190      375580 :          idata = idata + 1
   32191      375580 :          data_tmp = full_data(idata)
   32192      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32193      375580 :          data_tmp = IAND(data_tmp, mask_left(38))
   32194      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32195      375580 :          ipack = ipack + 1
   32196      375580 :          packed_data(ipack) = pack_tmp
   32197      375580 :          data_tmp = full_data(idata)
   32198      375580 :          pack_tmp = ISHFT(data_tmp, 60)
   32199      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32200      375580 :          idata = idata + 1
   32201      375580 :          data_tmp = full_data(idata)
   32202      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32203      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32204      375580 :          pack_tmp = ISHFT(pack_tmp, -18)
   32205      375580 :          idata = idata + 1
   32206      375580 :          data_tmp = full_data(idata)
   32207      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32208      375580 :          data_tmp = IAND(data_tmp, mask_left(18))
   32209      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32210      375580 :          ipack = ipack + 1
   32211      375580 :          packed_data(ipack) = pack_tmp
   32212      375580 :          data_tmp = full_data(idata)
   32213      375580 :          pack_tmp = ISHFT(data_tmp, 40)
   32214      375580 :          pack_tmp = ISHFT(pack_tmp, -40)
   32215      375580 :          idata = idata + 1
   32216      375580 :          data_tmp = full_data(idata)
   32217      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32218      375580 :          data_tmp = IAND(data_tmp, mask_left(40))
   32219      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32220      375580 :          ipack = ipack + 1
   32221      375580 :          packed_data(ipack) = pack_tmp
   32222      375580 :          data_tmp = full_data(idata)
   32223      375580 :          pack_tmp = ISHFT(data_tmp, 62)
   32224      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32225      375580 :          idata = idata + 1
   32226      375580 :          data_tmp = full_data(idata)
   32227      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32228      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32229      375580 :          pack_tmp = ISHFT(pack_tmp, -20)
   32230      375580 :          idata = idata + 1
   32231      375580 :          data_tmp = full_data(idata)
   32232      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32233      375580 :          data_tmp = IAND(data_tmp, mask_left(20))
   32234      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32235      375580 :          ipack = ipack + 1
   32236      375580 :          packed_data(ipack) = pack_tmp
   32237      375580 :          data_tmp = full_data(idata)
   32238      375580 :          pack_tmp = ISHFT(data_tmp, 42)
   32239      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32240      375580 :          idata = idata + 1
   32241      375580 :          data_tmp = full_data(idata)
   32242      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32243      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32244      375580 :          pack_tmp = ISHFT(pack_tmp, 0)
   32245      375580 :          idata = idata + 1
   32246      375580 :          data_tmp = full_data(idata)
   32247      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32248      375580 :          data_tmp = IAND(data_tmp, mask_left(0))
   32249      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32250      375580 :          ipack = ipack + 1
   32251      375580 :          packed_data(ipack) = pack_tmp
   32252      375580 :          data_tmp = full_data(idata)
   32253      375580 :          pack_tmp = ISHFT(data_tmp, 22)
   32254      375580 :          pack_tmp = ISHFT(pack_tmp, -22)
   32255      375580 :          idata = idata + 1
   32256      375580 :          data_tmp = full_data(idata)
   32257      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32258      375580 :          data_tmp = IAND(data_tmp, mask_left(22))
   32259      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32260      375580 :          ipack = ipack + 1
   32261      375580 :          packed_data(ipack) = pack_tmp
   32262      375580 :          data_tmp = full_data(idata)
   32263      375580 :          pack_tmp = ISHFT(data_tmp, 44)
   32264      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32265      375580 :          idata = idata + 1
   32266      375580 :          data_tmp = full_data(idata)
   32267      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32268      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32269      375580 :          pack_tmp = ISHFT(pack_tmp, -2)
   32270      375580 :          idata = idata + 1
   32271      375580 :          data_tmp = full_data(idata)
   32272      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32273      375580 :          data_tmp = IAND(data_tmp, mask_left(2))
   32274      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32275      375580 :          ipack = ipack + 1
   32276      375580 :          packed_data(ipack) = pack_tmp
   32277      375580 :          data_tmp = full_data(idata)
   32278      375580 :          pack_tmp = ISHFT(data_tmp, 24)
   32279      375580 :          pack_tmp = ISHFT(pack_tmp, -24)
   32280      375580 :          idata = idata + 1
   32281      375580 :          data_tmp = full_data(idata)
   32282      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32283      375580 :          data_tmp = IAND(data_tmp, mask_left(24))
   32284      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32285      375580 :          ipack = ipack + 1
   32286      375580 :          packed_data(ipack) = pack_tmp
   32287      375580 :          data_tmp = full_data(idata)
   32288      375580 :          pack_tmp = ISHFT(data_tmp, 46)
   32289      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32290      375580 :          idata = idata + 1
   32291      375580 :          data_tmp = full_data(idata)
   32292      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32293      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32294      375580 :          pack_tmp = ISHFT(pack_tmp, -4)
   32295      375580 :          idata = idata + 1
   32296      375580 :          data_tmp = full_data(idata)
   32297      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32298      375580 :          data_tmp = IAND(data_tmp, mask_left(4))
   32299      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32300      375580 :          ipack = ipack + 1
   32301      375580 :          packed_data(ipack) = pack_tmp
   32302      375580 :          data_tmp = full_data(idata)
   32303      375580 :          pack_tmp = ISHFT(data_tmp, 26)
   32304      375580 :          pack_tmp = ISHFT(pack_tmp, -26)
   32305      375580 :          idata = idata + 1
   32306      375580 :          data_tmp = full_data(idata)
   32307      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32308      375580 :          data_tmp = IAND(data_tmp, mask_left(26))
   32309      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32310      375580 :          ipack = ipack + 1
   32311      375580 :          packed_data(ipack) = pack_tmp
   32312      375580 :          data_tmp = full_data(idata)
   32313      375580 :          pack_tmp = ISHFT(data_tmp, 48)
   32314      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32315      375580 :          idata = idata + 1
   32316      375580 :          data_tmp = full_data(idata)
   32317      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32318      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32319      375580 :          pack_tmp = ISHFT(pack_tmp, -6)
   32320      375580 :          idata = idata + 1
   32321      375580 :          data_tmp = full_data(idata)
   32322      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32323      375580 :          data_tmp = IAND(data_tmp, mask_left(6))
   32324      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32325      375580 :          ipack = ipack + 1
   32326      375580 :          packed_data(ipack) = pack_tmp
   32327      375580 :          data_tmp = full_data(idata)
   32328      375580 :          pack_tmp = ISHFT(data_tmp, 28)
   32329      375580 :          pack_tmp = ISHFT(pack_tmp, -28)
   32330      375580 :          idata = idata + 1
   32331      375580 :          data_tmp = full_data(idata)
   32332      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32333      375580 :          data_tmp = IAND(data_tmp, mask_left(28))
   32334      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32335      375580 :          ipack = ipack + 1
   32336      375580 :          packed_data(ipack) = pack_tmp
   32337      375580 :          data_tmp = full_data(idata)
   32338      375580 :          pack_tmp = ISHFT(data_tmp, 50)
   32339      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32340      375580 :          idata = idata + 1
   32341      375580 :          data_tmp = full_data(idata)
   32342      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32343      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32344      375580 :          pack_tmp = ISHFT(pack_tmp, -8)
   32345      375580 :          idata = idata + 1
   32346      375580 :          data_tmp = full_data(idata)
   32347      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32348      375580 :          data_tmp = IAND(data_tmp, mask_left(8))
   32349      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32350      375580 :          ipack = ipack + 1
   32351      375580 :          packed_data(ipack) = pack_tmp
   32352      375580 :          data_tmp = full_data(idata)
   32353      375580 :          pack_tmp = ISHFT(data_tmp, 30)
   32354      375580 :          pack_tmp = ISHFT(pack_tmp, -30)
   32355      375580 :          idata = idata + 1
   32356      375580 :          data_tmp = full_data(idata)
   32357      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32358      375580 :          data_tmp = IAND(data_tmp, mask_left(30))
   32359      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32360      375580 :          ipack = ipack + 1
   32361      375580 :          packed_data(ipack) = pack_tmp
   32362      375580 :          data_tmp = full_data(idata)
   32363      375580 :          pack_tmp = ISHFT(data_tmp, 52)
   32364      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32365      375580 :          idata = idata + 1
   32366      375580 :          data_tmp = full_data(idata)
   32367      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32368      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32369      375580 :          pack_tmp = ISHFT(pack_tmp, -10)
   32370      375580 :          idata = idata + 1
   32371      375580 :          data_tmp = full_data(idata)
   32372      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32373      375580 :          data_tmp = IAND(data_tmp, mask_left(10))
   32374      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32375      375580 :          ipack = ipack + 1
   32376      375580 :          packed_data(ipack) = pack_tmp
   32377      375580 :          data_tmp = full_data(idata)
   32378      375580 :          pack_tmp = ISHFT(data_tmp, 32)
   32379      375580 :          pack_tmp = ISHFT(pack_tmp, -32)
   32380      375580 :          idata = idata + 1
   32381      375580 :          data_tmp = full_data(idata)
   32382      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32383      375580 :          data_tmp = IAND(data_tmp, mask_left(32))
   32384      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32385      375580 :          ipack = ipack + 1
   32386      375580 :          packed_data(ipack) = pack_tmp
   32387      375580 :          data_tmp = full_data(idata)
   32388      375580 :          pack_tmp = ISHFT(data_tmp, 54)
   32389      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32390      375580 :          idata = idata + 1
   32391      375580 :          data_tmp = full_data(idata)
   32392      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32393      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32394      375580 :          pack_tmp = ISHFT(pack_tmp, -12)
   32395      375580 :          idata = idata + 1
   32396      375580 :          data_tmp = full_data(idata)
   32397      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32398      375580 :          data_tmp = IAND(data_tmp, mask_left(12))
   32399      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32400      375580 :          ipack = ipack + 1
   32401      375580 :          packed_data(ipack) = pack_tmp
   32402      375580 :          data_tmp = full_data(idata)
   32403      375580 :          pack_tmp = ISHFT(data_tmp, 34)
   32404      375580 :          pack_tmp = ISHFT(pack_tmp, -34)
   32405      375580 :          idata = idata + 1
   32406      375580 :          data_tmp = full_data(idata)
   32407      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32408      375580 :          data_tmp = IAND(data_tmp, mask_left(34))
   32409      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32410      375580 :          ipack = ipack + 1
   32411      375580 :          packed_data(ipack) = pack_tmp
   32412      375580 :          data_tmp = full_data(idata)
   32413      375580 :          pack_tmp = ISHFT(data_tmp, 56)
   32414      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32415      375580 :          idata = idata + 1
   32416      375580 :          data_tmp = full_data(idata)
   32417      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32418      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32419      375580 :          pack_tmp = ISHFT(pack_tmp, -14)
   32420      375580 :          idata = idata + 1
   32421      375580 :          data_tmp = full_data(idata)
   32422      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32423      375580 :          data_tmp = IAND(data_tmp, mask_left(14))
   32424      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32425      375580 :          ipack = ipack + 1
   32426      375580 :          packed_data(ipack) = pack_tmp
   32427      375580 :          data_tmp = full_data(idata)
   32428      375580 :          pack_tmp = ISHFT(data_tmp, 36)
   32429      375580 :          pack_tmp = ISHFT(pack_tmp, -36)
   32430      375580 :          idata = idata + 1
   32431      375580 :          data_tmp = full_data(idata)
   32432      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32433      375580 :          data_tmp = IAND(data_tmp, mask_left(36))
   32434      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32435      375580 :          ipack = ipack + 1
   32436      375580 :          packed_data(ipack) = pack_tmp
   32437      375580 :          data_tmp = full_data(idata)
   32438      375580 :          pack_tmp = ISHFT(data_tmp, 58)
   32439      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32440      375580 :          idata = idata + 1
   32441      375580 :          data_tmp = full_data(idata)
   32442      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32443      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32444      375580 :          pack_tmp = ISHFT(pack_tmp, -16)
   32445      375580 :          idata = idata + 1
   32446      375580 :          data_tmp = full_data(idata)
   32447      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32448      375580 :          data_tmp = IAND(data_tmp, mask_left(16))
   32449      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32450      375580 :          ipack = ipack + 1
   32451      375580 :          packed_data(ipack) = pack_tmp
   32452      375580 :          data_tmp = full_data(idata)
   32453      375580 :          pack_tmp = ISHFT(data_tmp, 38)
   32454      375580 :          pack_tmp = ISHFT(pack_tmp, -38)
   32455      375580 :          idata = idata + 1
   32456      375580 :          data_tmp = full_data(idata)
   32457      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32458      375580 :          data_tmp = IAND(data_tmp, mask_left(38))
   32459      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32460      375580 :          ipack = ipack + 1
   32461      375580 :          packed_data(ipack) = pack_tmp
   32462      375580 :          data_tmp = full_data(idata)
   32463      375580 :          pack_tmp = ISHFT(data_tmp, 60)
   32464      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32465      375580 :          idata = idata + 1
   32466      375580 :          data_tmp = full_data(idata)
   32467      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32468      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32469      375580 :          pack_tmp = ISHFT(pack_tmp, -18)
   32470      375580 :          idata = idata + 1
   32471      375580 :          data_tmp = full_data(idata)
   32472      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32473      375580 :          data_tmp = IAND(data_tmp, mask_left(18))
   32474      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32475      375580 :          ipack = ipack + 1
   32476      375580 :          packed_data(ipack) = pack_tmp
   32477      375580 :          data_tmp = full_data(idata)
   32478      375580 :          pack_tmp = ISHFT(data_tmp, 40)
   32479      375580 :          pack_tmp = ISHFT(pack_tmp, -40)
   32480      375580 :          idata = idata + 1
   32481      375580 :          data_tmp = full_data(idata)
   32482      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32483      375580 :          data_tmp = IAND(data_tmp, mask_left(40))
   32484      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32485      375580 :          ipack = ipack + 1
   32486      375580 :          packed_data(ipack) = pack_tmp
   32487      375580 :          data_tmp = full_data(idata)
   32488      375580 :          pack_tmp = ISHFT(data_tmp, 62)
   32489      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32490      375580 :          idata = idata + 1
   32491      375580 :          data_tmp = full_data(idata)
   32492      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32493      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32494      375580 :          pack_tmp = ISHFT(pack_tmp, -20)
   32495      375580 :          idata = idata + 1
   32496      375580 :          data_tmp = full_data(idata)
   32497      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32498      375580 :          data_tmp = IAND(data_tmp, mask_left(20))
   32499      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32500      375580 :          ipack = ipack + 1
   32501      375580 :          packed_data(ipack) = pack_tmp
   32502      375580 :          data_tmp = full_data(idata)
   32503      375580 :          pack_tmp = ISHFT(data_tmp, 42)
   32504      375580 :          pack_tmp = ISHFT(pack_tmp, -42)
   32505      375580 :          idata = idata + 1
   32506      375580 :          data_tmp = full_data(idata)
   32507      375580 :          data_tmp = ISHFT(data_tmp, 22)
   32508      375580 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32509             :          pack_tmp = ISHFT(pack_tmp, 0)
   32510      375580 :          pack_tmp = ISHFT(pack_tmp, 0)
   32511      375580 :          ipack = ipack + 1
   32512      375663 :          packed_data(ipack) = pack_tmp
   32513             :       END DO
   32514       24209 :       IF (Ndata_rep < Ndata) THEN
   32515        1384 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32516             :       END IF
   32517       24209 :    END SUBROUTINE ints2bits_42
   32518             : 
   32519             : ! **************************************************************************************************
   32520             : !> \brief ...
   32521             : !> \param Ndata ...
   32522             : !> \param packed_data ...
   32523             : !> \param full_data ...
   32524             : ! **************************************************************************************************
   32525      113950 :    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      113950 :       ipack = 0
   32536      113950 :       idata = 0
   32537      113950 :       pack_tmp = 0
   32538      113950 :       Ndata_rep = (Ndata/64)*64
   32539      113950 :       DO kdata = 1, Ndata_rep, 64
   32540     1679941 :          idata = idata + 1
   32541     1679941 :          data_tmp = ISHFT(pack_tmp, 42)
   32542     1679941 :          ipack = ipack + 1
   32543     1679941 :          pack_tmp = packed_data(ipack)
   32544     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32545     1679941 :          pack_tmp = ISHFT(pack_tmp, -42)
   32546     1679941 :          idata = idata + 1
   32547     1679941 :          data_tmp = ISHFT(pack_tmp, 20)
   32548     1679941 :          ipack = ipack + 1
   32549     1679941 :          pack_tmp = packed_data(ipack)
   32550     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32551     1679941 :          pack_tmp = ISHFT(pack_tmp, -20)
   32552     1679941 :          idata = idata + 1
   32553     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32554     1679941 :          full_data(idata) = data_tmp
   32555     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32556     1679941 :          idata = idata + 1
   32557     1679941 :          data_tmp = ISHFT(pack_tmp, 40)
   32558     1679941 :          ipack = ipack + 1
   32559     1679941 :          pack_tmp = packed_data(ipack)
   32560     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32561     1679941 :          pack_tmp = ISHFT(pack_tmp, -40)
   32562     1679941 :          idata = idata + 1
   32563     1679941 :          data_tmp = ISHFT(pack_tmp, 18)
   32564     1679941 :          ipack = ipack + 1
   32565     1679941 :          pack_tmp = packed_data(ipack)
   32566     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32567     1679941 :          pack_tmp = ISHFT(pack_tmp, -18)
   32568     1679941 :          idata = idata + 1
   32569     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32570     1679941 :          full_data(idata) = data_tmp
   32571     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32572     1679941 :          idata = idata + 1
   32573     1679941 :          data_tmp = ISHFT(pack_tmp, 38)
   32574     1679941 :          ipack = ipack + 1
   32575     1679941 :          pack_tmp = packed_data(ipack)
   32576     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32577     1679941 :          pack_tmp = ISHFT(pack_tmp, -38)
   32578     1679941 :          idata = idata + 1
   32579     1679941 :          data_tmp = ISHFT(pack_tmp, 16)
   32580     1679941 :          ipack = ipack + 1
   32581     1679941 :          pack_tmp = packed_data(ipack)
   32582     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32583     1679941 :          pack_tmp = ISHFT(pack_tmp, -16)
   32584     1679941 :          idata = idata + 1
   32585     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32586     1679941 :          full_data(idata) = data_tmp
   32587     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32588     1679941 :          idata = idata + 1
   32589     1679941 :          data_tmp = ISHFT(pack_tmp, 36)
   32590     1679941 :          ipack = ipack + 1
   32591     1679941 :          pack_tmp = packed_data(ipack)
   32592     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32593     1679941 :          pack_tmp = ISHFT(pack_tmp, -36)
   32594     1679941 :          idata = idata + 1
   32595     1679941 :          data_tmp = ISHFT(pack_tmp, 14)
   32596     1679941 :          ipack = ipack + 1
   32597     1679941 :          pack_tmp = packed_data(ipack)
   32598     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32599     1679941 :          pack_tmp = ISHFT(pack_tmp, -14)
   32600     1679941 :          idata = idata + 1
   32601     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32602     1679941 :          full_data(idata) = data_tmp
   32603     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32604     1679941 :          idata = idata + 1
   32605     1679941 :          data_tmp = ISHFT(pack_tmp, 34)
   32606     1679941 :          ipack = ipack + 1
   32607     1679941 :          pack_tmp = packed_data(ipack)
   32608     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32609     1679941 :          pack_tmp = ISHFT(pack_tmp, -34)
   32610     1679941 :          idata = idata + 1
   32611     1679941 :          data_tmp = ISHFT(pack_tmp, 12)
   32612     1679941 :          ipack = ipack + 1
   32613     1679941 :          pack_tmp = packed_data(ipack)
   32614     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32615     1679941 :          pack_tmp = ISHFT(pack_tmp, -12)
   32616     1679941 :          idata = idata + 1
   32617     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32618     1679941 :          full_data(idata) = data_tmp
   32619     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32620     1679941 :          idata = idata + 1
   32621     1679941 :          data_tmp = ISHFT(pack_tmp, 32)
   32622     1679941 :          ipack = ipack + 1
   32623     1679941 :          pack_tmp = packed_data(ipack)
   32624     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32625     1679941 :          pack_tmp = ISHFT(pack_tmp, -32)
   32626     1679941 :          idata = idata + 1
   32627     1679941 :          data_tmp = ISHFT(pack_tmp, 10)
   32628     1679941 :          ipack = ipack + 1
   32629     1679941 :          pack_tmp = packed_data(ipack)
   32630     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32631     1679941 :          pack_tmp = ISHFT(pack_tmp, -10)
   32632     1679941 :          idata = idata + 1
   32633     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32634     1679941 :          full_data(idata) = data_tmp
   32635     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32636     1679941 :          idata = idata + 1
   32637     1679941 :          data_tmp = ISHFT(pack_tmp, 30)
   32638     1679941 :          ipack = ipack + 1
   32639     1679941 :          pack_tmp = packed_data(ipack)
   32640     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32641     1679941 :          pack_tmp = ISHFT(pack_tmp, -30)
   32642     1679941 :          idata = idata + 1
   32643     1679941 :          data_tmp = ISHFT(pack_tmp, 8)
   32644     1679941 :          ipack = ipack + 1
   32645     1679941 :          pack_tmp = packed_data(ipack)
   32646     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32647     1679941 :          pack_tmp = ISHFT(pack_tmp, -8)
   32648     1679941 :          idata = idata + 1
   32649     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32650     1679941 :          full_data(idata) = data_tmp
   32651     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32652     1679941 :          idata = idata + 1
   32653     1679941 :          data_tmp = ISHFT(pack_tmp, 28)
   32654     1679941 :          ipack = ipack + 1
   32655     1679941 :          pack_tmp = packed_data(ipack)
   32656     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32657     1679941 :          pack_tmp = ISHFT(pack_tmp, -28)
   32658     1679941 :          idata = idata + 1
   32659     1679941 :          data_tmp = ISHFT(pack_tmp, 6)
   32660     1679941 :          ipack = ipack + 1
   32661     1679941 :          pack_tmp = packed_data(ipack)
   32662     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32663     1679941 :          pack_tmp = ISHFT(pack_tmp, -6)
   32664     1679941 :          idata = idata + 1
   32665     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32666     1679941 :          full_data(idata) = data_tmp
   32667     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32668     1679941 :          idata = idata + 1
   32669     1679941 :          data_tmp = ISHFT(pack_tmp, 26)
   32670     1679941 :          ipack = ipack + 1
   32671     1679941 :          pack_tmp = packed_data(ipack)
   32672     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32673     1679941 :          pack_tmp = ISHFT(pack_tmp, -26)
   32674     1679941 :          idata = idata + 1
   32675     1679941 :          data_tmp = ISHFT(pack_tmp, 4)
   32676     1679941 :          ipack = ipack + 1
   32677     1679941 :          pack_tmp = packed_data(ipack)
   32678     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32679     1679941 :          pack_tmp = ISHFT(pack_tmp, -4)
   32680     1679941 :          idata = idata + 1
   32681     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32682     1679941 :          full_data(idata) = data_tmp
   32683     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32684     1679941 :          idata = idata + 1
   32685     1679941 :          data_tmp = ISHFT(pack_tmp, 24)
   32686     1679941 :          ipack = ipack + 1
   32687     1679941 :          pack_tmp = packed_data(ipack)
   32688     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32689     1679941 :          pack_tmp = ISHFT(pack_tmp, -24)
   32690     1679941 :          idata = idata + 1
   32691     1679941 :          data_tmp = ISHFT(pack_tmp, 2)
   32692     1679941 :          ipack = ipack + 1
   32693     1679941 :          pack_tmp = packed_data(ipack)
   32694     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32695     1679941 :          pack_tmp = ISHFT(pack_tmp, -2)
   32696     1679941 :          idata = idata + 1
   32697     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32698     1679941 :          full_data(idata) = data_tmp
   32699     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32700     1679941 :          idata = idata + 1
   32701     1679941 :          data_tmp = ISHFT(pack_tmp, 22)
   32702     1679941 :          ipack = ipack + 1
   32703     1679941 :          pack_tmp = packed_data(ipack)
   32704     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32705     1679941 :          pack_tmp = ISHFT(pack_tmp, -22)
   32706     1679941 :          idata = idata + 1
   32707     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32708     1679941 :          full_data(idata) = data_tmp
   32709     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32710     1679941 :          idata = idata + 1
   32711     1679941 :          data_tmp = ISHFT(pack_tmp, 42)
   32712     1679941 :          ipack = ipack + 1
   32713     1679941 :          pack_tmp = packed_data(ipack)
   32714     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32715     1679941 :          pack_tmp = ISHFT(pack_tmp, -42)
   32716     1679941 :          idata = idata + 1
   32717     1679941 :          data_tmp = ISHFT(pack_tmp, 20)
   32718     1679941 :          ipack = ipack + 1
   32719     1679941 :          pack_tmp = packed_data(ipack)
   32720     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32721     1679941 :          pack_tmp = ISHFT(pack_tmp, -20)
   32722     1679941 :          idata = idata + 1
   32723     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32724     1679941 :          full_data(idata) = data_tmp
   32725     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32726     1679941 :          idata = idata + 1
   32727     1679941 :          data_tmp = ISHFT(pack_tmp, 40)
   32728     1679941 :          ipack = ipack + 1
   32729     1679941 :          pack_tmp = packed_data(ipack)
   32730     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32731     1679941 :          pack_tmp = ISHFT(pack_tmp, -40)
   32732     1679941 :          idata = idata + 1
   32733     1679941 :          data_tmp = ISHFT(pack_tmp, 18)
   32734     1679941 :          ipack = ipack + 1
   32735     1679941 :          pack_tmp = packed_data(ipack)
   32736     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32737     1679941 :          pack_tmp = ISHFT(pack_tmp, -18)
   32738     1679941 :          idata = idata + 1
   32739     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32740     1679941 :          full_data(idata) = data_tmp
   32741     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32742     1679941 :          idata = idata + 1
   32743     1679941 :          data_tmp = ISHFT(pack_tmp, 38)
   32744     1679941 :          ipack = ipack + 1
   32745     1679941 :          pack_tmp = packed_data(ipack)
   32746     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32747     1679941 :          pack_tmp = ISHFT(pack_tmp, -38)
   32748     1679941 :          idata = idata + 1
   32749     1679941 :          data_tmp = ISHFT(pack_tmp, 16)
   32750     1679941 :          ipack = ipack + 1
   32751     1679941 :          pack_tmp = packed_data(ipack)
   32752     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32753     1679941 :          pack_tmp = ISHFT(pack_tmp, -16)
   32754     1679941 :          idata = idata + 1
   32755     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32756     1679941 :          full_data(idata) = data_tmp
   32757     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32758     1679941 :          idata = idata + 1
   32759     1679941 :          data_tmp = ISHFT(pack_tmp, 36)
   32760     1679941 :          ipack = ipack + 1
   32761     1679941 :          pack_tmp = packed_data(ipack)
   32762     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32763     1679941 :          pack_tmp = ISHFT(pack_tmp, -36)
   32764     1679941 :          idata = idata + 1
   32765     1679941 :          data_tmp = ISHFT(pack_tmp, 14)
   32766     1679941 :          ipack = ipack + 1
   32767     1679941 :          pack_tmp = packed_data(ipack)
   32768     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32769     1679941 :          pack_tmp = ISHFT(pack_tmp, -14)
   32770     1679941 :          idata = idata + 1
   32771     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32772     1679941 :          full_data(idata) = data_tmp
   32773     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32774     1679941 :          idata = idata + 1
   32775     1679941 :          data_tmp = ISHFT(pack_tmp, 34)
   32776     1679941 :          ipack = ipack + 1
   32777     1679941 :          pack_tmp = packed_data(ipack)
   32778     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32779     1679941 :          pack_tmp = ISHFT(pack_tmp, -34)
   32780     1679941 :          idata = idata + 1
   32781     1679941 :          data_tmp = ISHFT(pack_tmp, 12)
   32782     1679941 :          ipack = ipack + 1
   32783     1679941 :          pack_tmp = packed_data(ipack)
   32784     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32785     1679941 :          pack_tmp = ISHFT(pack_tmp, -12)
   32786     1679941 :          idata = idata + 1
   32787     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32788     1679941 :          full_data(idata) = data_tmp
   32789     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32790     1679941 :          idata = idata + 1
   32791     1679941 :          data_tmp = ISHFT(pack_tmp, 32)
   32792     1679941 :          ipack = ipack + 1
   32793     1679941 :          pack_tmp = packed_data(ipack)
   32794     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32795     1679941 :          pack_tmp = ISHFT(pack_tmp, -32)
   32796     1679941 :          idata = idata + 1
   32797     1679941 :          data_tmp = ISHFT(pack_tmp, 10)
   32798     1679941 :          ipack = ipack + 1
   32799     1679941 :          pack_tmp = packed_data(ipack)
   32800     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32801     1679941 :          pack_tmp = ISHFT(pack_tmp, -10)
   32802     1679941 :          idata = idata + 1
   32803     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32804     1679941 :          full_data(idata) = data_tmp
   32805     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32806     1679941 :          idata = idata + 1
   32807     1679941 :          data_tmp = ISHFT(pack_tmp, 30)
   32808     1679941 :          ipack = ipack + 1
   32809     1679941 :          pack_tmp = packed_data(ipack)
   32810     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32811     1679941 :          pack_tmp = ISHFT(pack_tmp, -30)
   32812     1679941 :          idata = idata + 1
   32813     1679941 :          data_tmp = ISHFT(pack_tmp, 8)
   32814     1679941 :          ipack = ipack + 1
   32815     1679941 :          pack_tmp = packed_data(ipack)
   32816     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32817     1679941 :          pack_tmp = ISHFT(pack_tmp, -8)
   32818     1679941 :          idata = idata + 1
   32819     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32820     1679941 :          full_data(idata) = data_tmp
   32821     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32822     1679941 :          idata = idata + 1
   32823     1679941 :          data_tmp = ISHFT(pack_tmp, 28)
   32824     1679941 :          ipack = ipack + 1
   32825     1679941 :          pack_tmp = packed_data(ipack)
   32826     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32827     1679941 :          pack_tmp = ISHFT(pack_tmp, -28)
   32828     1679941 :          idata = idata + 1
   32829     1679941 :          data_tmp = ISHFT(pack_tmp, 6)
   32830     1679941 :          ipack = ipack + 1
   32831     1679941 :          pack_tmp = packed_data(ipack)
   32832     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32833     1679941 :          pack_tmp = ISHFT(pack_tmp, -6)
   32834     1679941 :          idata = idata + 1
   32835     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32836     1679941 :          full_data(idata) = data_tmp
   32837     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32838     1679941 :          idata = idata + 1
   32839     1679941 :          data_tmp = ISHFT(pack_tmp, 26)
   32840     1679941 :          ipack = ipack + 1
   32841     1679941 :          pack_tmp = packed_data(ipack)
   32842     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32843     1679941 :          pack_tmp = ISHFT(pack_tmp, -26)
   32844     1679941 :          idata = idata + 1
   32845     1679941 :          data_tmp = ISHFT(pack_tmp, 4)
   32846     1679941 :          ipack = ipack + 1
   32847     1679941 :          pack_tmp = packed_data(ipack)
   32848     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32849     1679941 :          pack_tmp = ISHFT(pack_tmp, -4)
   32850     1679941 :          idata = idata + 1
   32851     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32852     1679941 :          full_data(idata) = data_tmp
   32853     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32854     1679941 :          idata = idata + 1
   32855     1679941 :          data_tmp = ISHFT(pack_tmp, 24)
   32856     1679941 :          ipack = ipack + 1
   32857     1679941 :          pack_tmp = packed_data(ipack)
   32858     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32859     1679941 :          pack_tmp = ISHFT(pack_tmp, -24)
   32860     1679941 :          idata = idata + 1
   32861     1679941 :          data_tmp = ISHFT(pack_tmp, 2)
   32862     1679941 :          ipack = ipack + 1
   32863     1679941 :          pack_tmp = packed_data(ipack)
   32864     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32865     1679941 :          pack_tmp = ISHFT(pack_tmp, -2)
   32866     1679941 :          idata = idata + 1
   32867     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32868     1679941 :          full_data(idata) = data_tmp
   32869     1679941 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32870     1679941 :          idata = idata + 1
   32871     1679941 :          data_tmp = ISHFT(pack_tmp, 22)
   32872     1679941 :          ipack = ipack + 1
   32873     1679941 :          pack_tmp = packed_data(ipack)
   32874     1679941 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32875     1679941 :          pack_tmp = ISHFT(pack_tmp, -22)
   32876     1679941 :          idata = idata + 1
   32877     1679941 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32878     1679941 :          full_data(idata) = data_tmp
   32879     1681456 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32880             :       END DO
   32881      113950 :       IF (Ndata_rep < Ndata) THEN
   32882       16854 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32883             :       END IF
   32884      113950 :    END SUBROUTINE bits2ints_42
   32885             : 
   32886             : ! **************************************************************************************************
   32887             : !> \brief ...
   32888             : !> \param Ndata ...
   32889             : !> \param packed_data ...
   32890             : !> \param full_data ...
   32891             : ! **************************************************************************************************
   32892       24901 :    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       24901 :       idata = 0
   32903       24901 :       ipack = 0
   32904       24901 :       Ndata_rep = (Ndata/64)*64
   32905       24901 :       DO kdata = 1, Ndata_rep, 64
   32906      380362 :          pack_tmp = 0
   32907      380362 :          idata = idata + 1
   32908      380362 :          data_tmp = full_data(idata)
   32909      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32910      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32911      380362 :          pack_tmp = ISHFT(pack_tmp, -21)
   32912      380362 :          idata = idata + 1
   32913      380362 :          data_tmp = full_data(idata)
   32914      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32915      380362 :          data_tmp = IAND(data_tmp, mask_left(21))
   32916      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32917      380362 :          ipack = ipack + 1
   32918      380362 :          packed_data(ipack) = pack_tmp
   32919      380362 :          data_tmp = full_data(idata)
   32920      380362 :          pack_tmp = ISHFT(data_tmp, 42)
   32921      380362 :          pack_tmp = ISHFT(pack_tmp, -42)
   32922      380362 :          idata = idata + 1
   32923      380362 :          data_tmp = full_data(idata)
   32924      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32925      380362 :          data_tmp = IAND(data_tmp, mask_left(42))
   32926      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32927      380362 :          ipack = ipack + 1
   32928      380362 :          packed_data(ipack) = pack_tmp
   32929      380362 :          data_tmp = full_data(idata)
   32930      380362 :          pack_tmp = ISHFT(data_tmp, 63)
   32931      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   32932      380362 :          idata = idata + 1
   32933      380362 :          data_tmp = full_data(idata)
   32934      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32935      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32936      380362 :          pack_tmp = ISHFT(pack_tmp, -20)
   32937      380362 :          idata = idata + 1
   32938      380362 :          data_tmp = full_data(idata)
   32939      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32940      380362 :          data_tmp = IAND(data_tmp, mask_left(20))
   32941      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32942      380362 :          ipack = ipack + 1
   32943      380362 :          packed_data(ipack) = pack_tmp
   32944      380362 :          data_tmp = full_data(idata)
   32945      380362 :          pack_tmp = ISHFT(data_tmp, 41)
   32946      380362 :          pack_tmp = ISHFT(pack_tmp, -41)
   32947      380362 :          idata = idata + 1
   32948      380362 :          data_tmp = full_data(idata)
   32949      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32950      380362 :          data_tmp = IAND(data_tmp, mask_left(41))
   32951      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32952      380362 :          ipack = ipack + 1
   32953      380362 :          packed_data(ipack) = pack_tmp
   32954      380362 :          data_tmp = full_data(idata)
   32955      380362 :          pack_tmp = ISHFT(data_tmp, 62)
   32956      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   32957      380362 :          idata = idata + 1
   32958      380362 :          data_tmp = full_data(idata)
   32959      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32960      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32961      380362 :          pack_tmp = ISHFT(pack_tmp, -19)
   32962      380362 :          idata = idata + 1
   32963      380362 :          data_tmp = full_data(idata)
   32964      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32965      380362 :          data_tmp = IAND(data_tmp, mask_left(19))
   32966      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32967      380362 :          ipack = ipack + 1
   32968      380362 :          packed_data(ipack) = pack_tmp
   32969      380362 :          data_tmp = full_data(idata)
   32970      380362 :          pack_tmp = ISHFT(data_tmp, 40)
   32971      380362 :          pack_tmp = ISHFT(pack_tmp, -40)
   32972      380362 :          idata = idata + 1
   32973      380362 :          data_tmp = full_data(idata)
   32974      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32975      380362 :          data_tmp = IAND(data_tmp, mask_left(40))
   32976      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32977      380362 :          ipack = ipack + 1
   32978      380362 :          packed_data(ipack) = pack_tmp
   32979      380362 :          data_tmp = full_data(idata)
   32980      380362 :          pack_tmp = ISHFT(data_tmp, 61)
   32981      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   32982      380362 :          idata = idata + 1
   32983      380362 :          data_tmp = full_data(idata)
   32984      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32985      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32986      380362 :          pack_tmp = ISHFT(pack_tmp, -18)
   32987      380362 :          idata = idata + 1
   32988      380362 :          data_tmp = full_data(idata)
   32989      380362 :          data_tmp = ISHFT(data_tmp, 21)
   32990      380362 :          data_tmp = IAND(data_tmp, mask_left(18))
   32991      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32992      380362 :          ipack = ipack + 1
   32993      380362 :          packed_data(ipack) = pack_tmp
   32994      380362 :          data_tmp = full_data(idata)
   32995      380362 :          pack_tmp = ISHFT(data_tmp, 39)
   32996      380362 :          pack_tmp = ISHFT(pack_tmp, -39)
   32997      380362 :          idata = idata + 1
   32998      380362 :          data_tmp = full_data(idata)
   32999      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33000      380362 :          data_tmp = IAND(data_tmp, mask_left(39))
   33001      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33002      380362 :          ipack = ipack + 1
   33003      380362 :          packed_data(ipack) = pack_tmp
   33004      380362 :          data_tmp = full_data(idata)
   33005      380362 :          pack_tmp = ISHFT(data_tmp, 60)
   33006      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33007      380362 :          idata = idata + 1
   33008      380362 :          data_tmp = full_data(idata)
   33009      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33010      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33011      380362 :          pack_tmp = ISHFT(pack_tmp, -17)
   33012      380362 :          idata = idata + 1
   33013      380362 :          data_tmp = full_data(idata)
   33014      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33015      380362 :          data_tmp = IAND(data_tmp, mask_left(17))
   33016      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33017      380362 :          ipack = ipack + 1
   33018      380362 :          packed_data(ipack) = pack_tmp
   33019      380362 :          data_tmp = full_data(idata)
   33020      380362 :          pack_tmp = ISHFT(data_tmp, 38)
   33021      380362 :          pack_tmp = ISHFT(pack_tmp, -38)
   33022      380362 :          idata = idata + 1
   33023      380362 :          data_tmp = full_data(idata)
   33024      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33025      380362 :          data_tmp = IAND(data_tmp, mask_left(38))
   33026      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33027      380362 :          ipack = ipack + 1
   33028      380362 :          packed_data(ipack) = pack_tmp
   33029      380362 :          data_tmp = full_data(idata)
   33030      380362 :          pack_tmp = ISHFT(data_tmp, 59)
   33031      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33032      380362 :          idata = idata + 1
   33033      380362 :          data_tmp = full_data(idata)
   33034      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33035      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33036      380362 :          pack_tmp = ISHFT(pack_tmp, -16)
   33037      380362 :          idata = idata + 1
   33038      380362 :          data_tmp = full_data(idata)
   33039      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33040      380362 :          data_tmp = IAND(data_tmp, mask_left(16))
   33041      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33042      380362 :          ipack = ipack + 1
   33043      380362 :          packed_data(ipack) = pack_tmp
   33044      380362 :          data_tmp = full_data(idata)
   33045      380362 :          pack_tmp = ISHFT(data_tmp, 37)
   33046      380362 :          pack_tmp = ISHFT(pack_tmp, -37)
   33047      380362 :          idata = idata + 1
   33048      380362 :          data_tmp = full_data(idata)
   33049      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33050      380362 :          data_tmp = IAND(data_tmp, mask_left(37))
   33051      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33052      380362 :          ipack = ipack + 1
   33053      380362 :          packed_data(ipack) = pack_tmp
   33054      380362 :          data_tmp = full_data(idata)
   33055      380362 :          pack_tmp = ISHFT(data_tmp, 58)
   33056      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33057      380362 :          idata = idata + 1
   33058      380362 :          data_tmp = full_data(idata)
   33059      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33060      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33061      380362 :          pack_tmp = ISHFT(pack_tmp, -15)
   33062      380362 :          idata = idata + 1
   33063      380362 :          data_tmp = full_data(idata)
   33064      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33065      380362 :          data_tmp = IAND(data_tmp, mask_left(15))
   33066      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33067      380362 :          ipack = ipack + 1
   33068      380362 :          packed_data(ipack) = pack_tmp
   33069      380362 :          data_tmp = full_data(idata)
   33070      380362 :          pack_tmp = ISHFT(data_tmp, 36)
   33071      380362 :          pack_tmp = ISHFT(pack_tmp, -36)
   33072      380362 :          idata = idata + 1
   33073      380362 :          data_tmp = full_data(idata)
   33074      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33075      380362 :          data_tmp = IAND(data_tmp, mask_left(36))
   33076      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33077      380362 :          ipack = ipack + 1
   33078      380362 :          packed_data(ipack) = pack_tmp
   33079      380362 :          data_tmp = full_data(idata)
   33080      380362 :          pack_tmp = ISHFT(data_tmp, 57)
   33081      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33082      380362 :          idata = idata + 1
   33083      380362 :          data_tmp = full_data(idata)
   33084      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33085      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33086      380362 :          pack_tmp = ISHFT(pack_tmp, -14)
   33087      380362 :          idata = idata + 1
   33088      380362 :          data_tmp = full_data(idata)
   33089      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33090      380362 :          data_tmp = IAND(data_tmp, mask_left(14))
   33091      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33092      380362 :          ipack = ipack + 1
   33093      380362 :          packed_data(ipack) = pack_tmp
   33094      380362 :          data_tmp = full_data(idata)
   33095      380362 :          pack_tmp = ISHFT(data_tmp, 35)
   33096      380362 :          pack_tmp = ISHFT(pack_tmp, -35)
   33097      380362 :          idata = idata + 1
   33098      380362 :          data_tmp = full_data(idata)
   33099      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33100      380362 :          data_tmp = IAND(data_tmp, mask_left(35))
   33101      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33102      380362 :          ipack = ipack + 1
   33103      380362 :          packed_data(ipack) = pack_tmp
   33104      380362 :          data_tmp = full_data(idata)
   33105      380362 :          pack_tmp = ISHFT(data_tmp, 56)
   33106      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33107      380362 :          idata = idata + 1
   33108      380362 :          data_tmp = full_data(idata)
   33109      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33110      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33111      380362 :          pack_tmp = ISHFT(pack_tmp, -13)
   33112      380362 :          idata = idata + 1
   33113      380362 :          data_tmp = full_data(idata)
   33114      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33115      380362 :          data_tmp = IAND(data_tmp, mask_left(13))
   33116      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33117      380362 :          ipack = ipack + 1
   33118      380362 :          packed_data(ipack) = pack_tmp
   33119      380362 :          data_tmp = full_data(idata)
   33120      380362 :          pack_tmp = ISHFT(data_tmp, 34)
   33121      380362 :          pack_tmp = ISHFT(pack_tmp, -34)
   33122      380362 :          idata = idata + 1
   33123      380362 :          data_tmp = full_data(idata)
   33124      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33125      380362 :          data_tmp = IAND(data_tmp, mask_left(34))
   33126      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33127      380362 :          ipack = ipack + 1
   33128      380362 :          packed_data(ipack) = pack_tmp
   33129      380362 :          data_tmp = full_data(idata)
   33130      380362 :          pack_tmp = ISHFT(data_tmp, 55)
   33131      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33132      380362 :          idata = idata + 1
   33133      380362 :          data_tmp = full_data(idata)
   33134      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33135      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33136      380362 :          pack_tmp = ISHFT(pack_tmp, -12)
   33137      380362 :          idata = idata + 1
   33138      380362 :          data_tmp = full_data(idata)
   33139      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33140      380362 :          data_tmp = IAND(data_tmp, mask_left(12))
   33141      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33142      380362 :          ipack = ipack + 1
   33143      380362 :          packed_data(ipack) = pack_tmp
   33144      380362 :          data_tmp = full_data(idata)
   33145      380362 :          pack_tmp = ISHFT(data_tmp, 33)
   33146      380362 :          pack_tmp = ISHFT(pack_tmp, -33)
   33147      380362 :          idata = idata + 1
   33148      380362 :          data_tmp = full_data(idata)
   33149      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33150      380362 :          data_tmp = IAND(data_tmp, mask_left(33))
   33151      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33152      380362 :          ipack = ipack + 1
   33153      380362 :          packed_data(ipack) = pack_tmp
   33154      380362 :          data_tmp = full_data(idata)
   33155      380362 :          pack_tmp = ISHFT(data_tmp, 54)
   33156      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33157      380362 :          idata = idata + 1
   33158      380362 :          data_tmp = full_data(idata)
   33159      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33160      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33161      380362 :          pack_tmp = ISHFT(pack_tmp, -11)
   33162      380362 :          idata = idata + 1
   33163      380362 :          data_tmp = full_data(idata)
   33164      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33165      380362 :          data_tmp = IAND(data_tmp, mask_left(11))
   33166      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33167      380362 :          ipack = ipack + 1
   33168      380362 :          packed_data(ipack) = pack_tmp
   33169      380362 :          data_tmp = full_data(idata)
   33170      380362 :          pack_tmp = ISHFT(data_tmp, 32)
   33171      380362 :          pack_tmp = ISHFT(pack_tmp, -32)
   33172      380362 :          idata = idata + 1
   33173      380362 :          data_tmp = full_data(idata)
   33174      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33175      380362 :          data_tmp = IAND(data_tmp, mask_left(32))
   33176      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33177      380362 :          ipack = ipack + 1
   33178      380362 :          packed_data(ipack) = pack_tmp
   33179      380362 :          data_tmp = full_data(idata)
   33180      380362 :          pack_tmp = ISHFT(data_tmp, 53)
   33181      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33182      380362 :          idata = idata + 1
   33183      380362 :          data_tmp = full_data(idata)
   33184      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33185      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33186      380362 :          pack_tmp = ISHFT(pack_tmp, -10)
   33187      380362 :          idata = idata + 1
   33188      380362 :          data_tmp = full_data(idata)
   33189      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33190      380362 :          data_tmp = IAND(data_tmp, mask_left(10))
   33191      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33192      380362 :          ipack = ipack + 1
   33193      380362 :          packed_data(ipack) = pack_tmp
   33194      380362 :          data_tmp = full_data(idata)
   33195      380362 :          pack_tmp = ISHFT(data_tmp, 31)
   33196      380362 :          pack_tmp = ISHFT(pack_tmp, -31)
   33197      380362 :          idata = idata + 1
   33198      380362 :          data_tmp = full_data(idata)
   33199      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33200      380362 :          data_tmp = IAND(data_tmp, mask_left(31))
   33201      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33202      380362 :          ipack = ipack + 1
   33203      380362 :          packed_data(ipack) = pack_tmp
   33204      380362 :          data_tmp = full_data(idata)
   33205      380362 :          pack_tmp = ISHFT(data_tmp, 52)
   33206      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33207      380362 :          idata = idata + 1
   33208      380362 :          data_tmp = full_data(idata)
   33209      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33210      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33211      380362 :          pack_tmp = ISHFT(pack_tmp, -9)
   33212      380362 :          idata = idata + 1
   33213      380362 :          data_tmp = full_data(idata)
   33214      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33215      380362 :          data_tmp = IAND(data_tmp, mask_left(9))
   33216      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33217      380362 :          ipack = ipack + 1
   33218      380362 :          packed_data(ipack) = pack_tmp
   33219      380362 :          data_tmp = full_data(idata)
   33220      380362 :          pack_tmp = ISHFT(data_tmp, 30)
   33221      380362 :          pack_tmp = ISHFT(pack_tmp, -30)
   33222      380362 :          idata = idata + 1
   33223      380362 :          data_tmp = full_data(idata)
   33224      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33225      380362 :          data_tmp = IAND(data_tmp, mask_left(30))
   33226      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33227      380362 :          ipack = ipack + 1
   33228      380362 :          packed_data(ipack) = pack_tmp
   33229      380362 :          data_tmp = full_data(idata)
   33230      380362 :          pack_tmp = ISHFT(data_tmp, 51)
   33231      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33232      380362 :          idata = idata + 1
   33233      380362 :          data_tmp = full_data(idata)
   33234      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33235      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33236      380362 :          pack_tmp = ISHFT(pack_tmp, -8)
   33237      380362 :          idata = idata + 1
   33238      380362 :          data_tmp = full_data(idata)
   33239      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33240      380362 :          data_tmp = IAND(data_tmp, mask_left(8))
   33241      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33242      380362 :          ipack = ipack + 1
   33243      380362 :          packed_data(ipack) = pack_tmp
   33244      380362 :          data_tmp = full_data(idata)
   33245      380362 :          pack_tmp = ISHFT(data_tmp, 29)
   33246      380362 :          pack_tmp = ISHFT(pack_tmp, -29)
   33247      380362 :          idata = idata + 1
   33248      380362 :          data_tmp = full_data(idata)
   33249      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33250      380362 :          data_tmp = IAND(data_tmp, mask_left(29))
   33251      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33252      380362 :          ipack = ipack + 1
   33253      380362 :          packed_data(ipack) = pack_tmp
   33254      380362 :          data_tmp = full_data(idata)
   33255      380362 :          pack_tmp = ISHFT(data_tmp, 50)
   33256      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33257      380362 :          idata = idata + 1
   33258      380362 :          data_tmp = full_data(idata)
   33259      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33260      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33261      380362 :          pack_tmp = ISHFT(pack_tmp, -7)
   33262      380362 :          idata = idata + 1
   33263      380362 :          data_tmp = full_data(idata)
   33264      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33265      380362 :          data_tmp = IAND(data_tmp, mask_left(7))
   33266      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33267      380362 :          ipack = ipack + 1
   33268      380362 :          packed_data(ipack) = pack_tmp
   33269      380362 :          data_tmp = full_data(idata)
   33270      380362 :          pack_tmp = ISHFT(data_tmp, 28)
   33271      380362 :          pack_tmp = ISHFT(pack_tmp, -28)
   33272      380362 :          idata = idata + 1
   33273      380362 :          data_tmp = full_data(idata)
   33274      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33275      380362 :          data_tmp = IAND(data_tmp, mask_left(28))
   33276      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33277      380362 :          ipack = ipack + 1
   33278      380362 :          packed_data(ipack) = pack_tmp
   33279      380362 :          data_tmp = full_data(idata)
   33280      380362 :          pack_tmp = ISHFT(data_tmp, 49)
   33281      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33282      380362 :          idata = idata + 1
   33283      380362 :          data_tmp = full_data(idata)
   33284      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33285      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33286      380362 :          pack_tmp = ISHFT(pack_tmp, -6)
   33287      380362 :          idata = idata + 1
   33288      380362 :          data_tmp = full_data(idata)
   33289      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33290      380362 :          data_tmp = IAND(data_tmp, mask_left(6))
   33291      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33292      380362 :          ipack = ipack + 1
   33293      380362 :          packed_data(ipack) = pack_tmp
   33294      380362 :          data_tmp = full_data(idata)
   33295      380362 :          pack_tmp = ISHFT(data_tmp, 27)
   33296      380362 :          pack_tmp = ISHFT(pack_tmp, -27)
   33297      380362 :          idata = idata + 1
   33298      380362 :          data_tmp = full_data(idata)
   33299      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33300      380362 :          data_tmp = IAND(data_tmp, mask_left(27))
   33301      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33302      380362 :          ipack = ipack + 1
   33303      380362 :          packed_data(ipack) = pack_tmp
   33304      380362 :          data_tmp = full_data(idata)
   33305      380362 :          pack_tmp = ISHFT(data_tmp, 48)
   33306      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33307      380362 :          idata = idata + 1
   33308      380362 :          data_tmp = full_data(idata)
   33309      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33310      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33311      380362 :          pack_tmp = ISHFT(pack_tmp, -5)
   33312      380362 :          idata = idata + 1
   33313      380362 :          data_tmp = full_data(idata)
   33314      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33315      380362 :          data_tmp = IAND(data_tmp, mask_left(5))
   33316      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33317      380362 :          ipack = ipack + 1
   33318      380362 :          packed_data(ipack) = pack_tmp
   33319      380362 :          data_tmp = full_data(idata)
   33320      380362 :          pack_tmp = ISHFT(data_tmp, 26)
   33321      380362 :          pack_tmp = ISHFT(pack_tmp, -26)
   33322      380362 :          idata = idata + 1
   33323      380362 :          data_tmp = full_data(idata)
   33324      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33325      380362 :          data_tmp = IAND(data_tmp, mask_left(26))
   33326      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33327      380362 :          ipack = ipack + 1
   33328      380362 :          packed_data(ipack) = pack_tmp
   33329      380362 :          data_tmp = full_data(idata)
   33330      380362 :          pack_tmp = ISHFT(data_tmp, 47)
   33331      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33332      380362 :          idata = idata + 1
   33333      380362 :          data_tmp = full_data(idata)
   33334      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33335      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33336      380362 :          pack_tmp = ISHFT(pack_tmp, -4)
   33337      380362 :          idata = idata + 1
   33338      380362 :          data_tmp = full_data(idata)
   33339      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33340      380362 :          data_tmp = IAND(data_tmp, mask_left(4))
   33341      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33342      380362 :          ipack = ipack + 1
   33343      380362 :          packed_data(ipack) = pack_tmp
   33344      380362 :          data_tmp = full_data(idata)
   33345      380362 :          pack_tmp = ISHFT(data_tmp, 25)
   33346      380362 :          pack_tmp = ISHFT(pack_tmp, -25)
   33347      380362 :          idata = idata + 1
   33348      380362 :          data_tmp = full_data(idata)
   33349      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33350      380362 :          data_tmp = IAND(data_tmp, mask_left(25))
   33351      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33352      380362 :          ipack = ipack + 1
   33353      380362 :          packed_data(ipack) = pack_tmp
   33354      380362 :          data_tmp = full_data(idata)
   33355      380362 :          pack_tmp = ISHFT(data_tmp, 46)
   33356      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33357      380362 :          idata = idata + 1
   33358      380362 :          data_tmp = full_data(idata)
   33359      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33360      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33361      380362 :          pack_tmp = ISHFT(pack_tmp, -3)
   33362      380362 :          idata = idata + 1
   33363      380362 :          data_tmp = full_data(idata)
   33364      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33365      380362 :          data_tmp = IAND(data_tmp, mask_left(3))
   33366      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33367      380362 :          ipack = ipack + 1
   33368      380362 :          packed_data(ipack) = pack_tmp
   33369      380362 :          data_tmp = full_data(idata)
   33370      380362 :          pack_tmp = ISHFT(data_tmp, 24)
   33371      380362 :          pack_tmp = ISHFT(pack_tmp, -24)
   33372      380362 :          idata = idata + 1
   33373      380362 :          data_tmp = full_data(idata)
   33374      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33375      380362 :          data_tmp = IAND(data_tmp, mask_left(24))
   33376      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33377      380362 :          ipack = ipack + 1
   33378      380362 :          packed_data(ipack) = pack_tmp
   33379      380362 :          data_tmp = full_data(idata)
   33380      380362 :          pack_tmp = ISHFT(data_tmp, 45)
   33381      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33382      380362 :          idata = idata + 1
   33383      380362 :          data_tmp = full_data(idata)
   33384      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33385      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33386      380362 :          pack_tmp = ISHFT(pack_tmp, -2)
   33387      380362 :          idata = idata + 1
   33388      380362 :          data_tmp = full_data(idata)
   33389      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33390      380362 :          data_tmp = IAND(data_tmp, mask_left(2))
   33391      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33392      380362 :          ipack = ipack + 1
   33393      380362 :          packed_data(ipack) = pack_tmp
   33394      380362 :          data_tmp = full_data(idata)
   33395      380362 :          pack_tmp = ISHFT(data_tmp, 23)
   33396      380362 :          pack_tmp = ISHFT(pack_tmp, -23)
   33397      380362 :          idata = idata + 1
   33398      380362 :          data_tmp = full_data(idata)
   33399      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33400      380362 :          data_tmp = IAND(data_tmp, mask_left(23))
   33401      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33402      380362 :          ipack = ipack + 1
   33403      380362 :          packed_data(ipack) = pack_tmp
   33404      380362 :          data_tmp = full_data(idata)
   33405      380362 :          pack_tmp = ISHFT(data_tmp, 44)
   33406      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33407      380362 :          idata = idata + 1
   33408      380362 :          data_tmp = full_data(idata)
   33409      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33410      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33411      380362 :          pack_tmp = ISHFT(pack_tmp, -1)
   33412      380362 :          idata = idata + 1
   33413      380362 :          data_tmp = full_data(idata)
   33414      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33415      380362 :          data_tmp = IAND(data_tmp, mask_left(1))
   33416      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33417      380362 :          ipack = ipack + 1
   33418      380362 :          packed_data(ipack) = pack_tmp
   33419      380362 :          data_tmp = full_data(idata)
   33420      380362 :          pack_tmp = ISHFT(data_tmp, 22)
   33421      380362 :          pack_tmp = ISHFT(pack_tmp, -22)
   33422      380362 :          idata = idata + 1
   33423      380362 :          data_tmp = full_data(idata)
   33424      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33425      380362 :          data_tmp = IAND(data_tmp, mask_left(22))
   33426      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33427      380362 :          ipack = ipack + 1
   33428      380362 :          packed_data(ipack) = pack_tmp
   33429      380362 :          data_tmp = full_data(idata)
   33430      380362 :          pack_tmp = ISHFT(data_tmp, 43)
   33431      380362 :          pack_tmp = ISHFT(pack_tmp, -43)
   33432      380362 :          idata = idata + 1
   33433      380362 :          data_tmp = full_data(idata)
   33434      380362 :          data_tmp = ISHFT(data_tmp, 21)
   33435      380362 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33436             :          pack_tmp = ISHFT(pack_tmp, 0)
   33437      380362 :          pack_tmp = ISHFT(pack_tmp, 0)
   33438      380362 :          ipack = ipack + 1
   33439      380609 :          packed_data(ipack) = pack_tmp
   33440             :       END DO
   33441       24901 :       IF (Ndata_rep < Ndata) THEN
   33442        2124 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33443             :       END IF
   33444       24901 :    END SUBROUTINE ints2bits_43
   33445             : 
   33446             : ! **************************************************************************************************
   33447             : !> \brief ...
   33448             : !> \param Ndata ...
   33449             : !> \param packed_data ...
   33450             : !> \param full_data ...
   33451             : ! **************************************************************************************************
   33452      112865 :    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      112865 :       ipack = 0
   33463      112865 :       idata = 0
   33464      112865 :       pack_tmp = 0
   33465      112865 :       Ndata_rep = (Ndata/64)*64
   33466      112865 :       DO kdata = 1, Ndata_rep, 64
   33467     1657464 :          idata = idata + 1
   33468     1657464 :          data_tmp = ISHFT(pack_tmp, 43)
   33469     1657464 :          ipack = ipack + 1
   33470     1657464 :          pack_tmp = packed_data(ipack)
   33471     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   33472     1657464 :          pack_tmp = ISHFT(pack_tmp, -43)
   33473     1657464 :          idata = idata + 1
   33474     1657464 :          data_tmp = ISHFT(pack_tmp, 22)
   33475     1657464 :          ipack = ipack + 1
   33476     1657464 :          pack_tmp = packed_data(ipack)
   33477     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   33478     1657464 :          pack_tmp = ISHFT(pack_tmp, -22)
   33479     1657464 :          idata = idata + 1
   33480     1657464 :          data_tmp = ISHFT(pack_tmp, 1)
   33481     1657464 :          ipack = ipack + 1
   33482     1657464 :          pack_tmp = packed_data(ipack)
   33483     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   33484     1657464 :          pack_tmp = ISHFT(pack_tmp, -1)
   33485     1657464 :          idata = idata + 1
   33486     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33487     1657464 :          full_data(idata) = data_tmp
   33488     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33489     1657464 :          idata = idata + 1
   33490     1657464 :          data_tmp = ISHFT(pack_tmp, 23)
   33491     1657464 :          ipack = ipack + 1
   33492     1657464 :          pack_tmp = packed_data(ipack)
   33493     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   33494     1657464 :          pack_tmp = ISHFT(pack_tmp, -23)
   33495     1657464 :          idata = idata + 1
   33496     1657464 :          data_tmp = ISHFT(pack_tmp, 2)
   33497     1657464 :          ipack = ipack + 1
   33498     1657464 :          pack_tmp = packed_data(ipack)
   33499     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   33500     1657464 :          pack_tmp = ISHFT(pack_tmp, -2)
   33501     1657464 :          idata = idata + 1
   33502     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33503     1657464 :          full_data(idata) = data_tmp
   33504     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33505     1657464 :          idata = idata + 1
   33506     1657464 :          data_tmp = ISHFT(pack_tmp, 24)
   33507     1657464 :          ipack = ipack + 1
   33508     1657464 :          pack_tmp = packed_data(ipack)
   33509     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   33510     1657464 :          pack_tmp = ISHFT(pack_tmp, -24)
   33511     1657464 :          idata = idata + 1
   33512     1657464 :          data_tmp = ISHFT(pack_tmp, 3)
   33513     1657464 :          ipack = ipack + 1
   33514     1657464 :          pack_tmp = packed_data(ipack)
   33515     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   33516     1657464 :          pack_tmp = ISHFT(pack_tmp, -3)
   33517     1657464 :          idata = idata + 1
   33518     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33519     1657464 :          full_data(idata) = data_tmp
   33520     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33521     1657464 :          idata = idata + 1
   33522     1657464 :          data_tmp = ISHFT(pack_tmp, 25)
   33523     1657464 :          ipack = ipack + 1
   33524     1657464 :          pack_tmp = packed_data(ipack)
   33525     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   33526     1657464 :          pack_tmp = ISHFT(pack_tmp, -25)
   33527     1657464 :          idata = idata + 1
   33528     1657464 :          data_tmp = ISHFT(pack_tmp, 4)
   33529     1657464 :          ipack = ipack + 1
   33530     1657464 :          pack_tmp = packed_data(ipack)
   33531     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   33532     1657464 :          pack_tmp = ISHFT(pack_tmp, -4)
   33533     1657464 :          idata = idata + 1
   33534     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33535     1657464 :          full_data(idata) = data_tmp
   33536     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33537     1657464 :          idata = idata + 1
   33538     1657464 :          data_tmp = ISHFT(pack_tmp, 26)
   33539     1657464 :          ipack = ipack + 1
   33540     1657464 :          pack_tmp = packed_data(ipack)
   33541     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   33542     1657464 :          pack_tmp = ISHFT(pack_tmp, -26)
   33543     1657464 :          idata = idata + 1
   33544     1657464 :          data_tmp = ISHFT(pack_tmp, 5)
   33545     1657464 :          ipack = ipack + 1
   33546     1657464 :          pack_tmp = packed_data(ipack)
   33547     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   33548     1657464 :          pack_tmp = ISHFT(pack_tmp, -5)
   33549     1657464 :          idata = idata + 1
   33550     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33551     1657464 :          full_data(idata) = data_tmp
   33552     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33553     1657464 :          idata = idata + 1
   33554     1657464 :          data_tmp = ISHFT(pack_tmp, 27)
   33555     1657464 :          ipack = ipack + 1
   33556     1657464 :          pack_tmp = packed_data(ipack)
   33557     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   33558     1657464 :          pack_tmp = ISHFT(pack_tmp, -27)
   33559     1657464 :          idata = idata + 1
   33560     1657464 :          data_tmp = ISHFT(pack_tmp, 6)
   33561     1657464 :          ipack = ipack + 1
   33562     1657464 :          pack_tmp = packed_data(ipack)
   33563     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   33564     1657464 :          pack_tmp = ISHFT(pack_tmp, -6)
   33565     1657464 :          idata = idata + 1
   33566     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33567     1657464 :          full_data(idata) = data_tmp
   33568     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33569     1657464 :          idata = idata + 1
   33570     1657464 :          data_tmp = ISHFT(pack_tmp, 28)
   33571     1657464 :          ipack = ipack + 1
   33572     1657464 :          pack_tmp = packed_data(ipack)
   33573     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   33574     1657464 :          pack_tmp = ISHFT(pack_tmp, -28)
   33575     1657464 :          idata = idata + 1
   33576     1657464 :          data_tmp = ISHFT(pack_tmp, 7)
   33577     1657464 :          ipack = ipack + 1
   33578     1657464 :          pack_tmp = packed_data(ipack)
   33579     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   33580     1657464 :          pack_tmp = ISHFT(pack_tmp, -7)
   33581     1657464 :          idata = idata + 1
   33582     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33583     1657464 :          full_data(idata) = data_tmp
   33584     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33585     1657464 :          idata = idata + 1
   33586     1657464 :          data_tmp = ISHFT(pack_tmp, 29)
   33587     1657464 :          ipack = ipack + 1
   33588     1657464 :          pack_tmp = packed_data(ipack)
   33589     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   33590     1657464 :          pack_tmp = ISHFT(pack_tmp, -29)
   33591     1657464 :          idata = idata + 1
   33592     1657464 :          data_tmp = ISHFT(pack_tmp, 8)
   33593     1657464 :          ipack = ipack + 1
   33594     1657464 :          pack_tmp = packed_data(ipack)
   33595     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   33596     1657464 :          pack_tmp = ISHFT(pack_tmp, -8)
   33597     1657464 :          idata = idata + 1
   33598     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33599     1657464 :          full_data(idata) = data_tmp
   33600     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33601     1657464 :          idata = idata + 1
   33602     1657464 :          data_tmp = ISHFT(pack_tmp, 30)
   33603     1657464 :          ipack = ipack + 1
   33604     1657464 :          pack_tmp = packed_data(ipack)
   33605     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   33606     1657464 :          pack_tmp = ISHFT(pack_tmp, -30)
   33607     1657464 :          idata = idata + 1
   33608     1657464 :          data_tmp = ISHFT(pack_tmp, 9)
   33609     1657464 :          ipack = ipack + 1
   33610     1657464 :          pack_tmp = packed_data(ipack)
   33611     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   33612     1657464 :          pack_tmp = ISHFT(pack_tmp, -9)
   33613     1657464 :          idata = idata + 1
   33614     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33615     1657464 :          full_data(idata) = data_tmp
   33616     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33617     1657464 :          idata = idata + 1
   33618     1657464 :          data_tmp = ISHFT(pack_tmp, 31)
   33619     1657464 :          ipack = ipack + 1
   33620     1657464 :          pack_tmp = packed_data(ipack)
   33621     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   33622     1657464 :          pack_tmp = ISHFT(pack_tmp, -31)
   33623     1657464 :          idata = idata + 1
   33624     1657464 :          data_tmp = ISHFT(pack_tmp, 10)
   33625     1657464 :          ipack = ipack + 1
   33626     1657464 :          pack_tmp = packed_data(ipack)
   33627     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   33628     1657464 :          pack_tmp = ISHFT(pack_tmp, -10)
   33629     1657464 :          idata = idata + 1
   33630     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33631     1657464 :          full_data(idata) = data_tmp
   33632     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33633     1657464 :          idata = idata + 1
   33634     1657464 :          data_tmp = ISHFT(pack_tmp, 32)
   33635     1657464 :          ipack = ipack + 1
   33636     1657464 :          pack_tmp = packed_data(ipack)
   33637     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   33638     1657464 :          pack_tmp = ISHFT(pack_tmp, -32)
   33639     1657464 :          idata = idata + 1
   33640     1657464 :          data_tmp = ISHFT(pack_tmp, 11)
   33641     1657464 :          ipack = ipack + 1
   33642     1657464 :          pack_tmp = packed_data(ipack)
   33643     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   33644     1657464 :          pack_tmp = ISHFT(pack_tmp, -11)
   33645     1657464 :          idata = idata + 1
   33646     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33647     1657464 :          full_data(idata) = data_tmp
   33648     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33649     1657464 :          idata = idata + 1
   33650     1657464 :          data_tmp = ISHFT(pack_tmp, 33)
   33651     1657464 :          ipack = ipack + 1
   33652     1657464 :          pack_tmp = packed_data(ipack)
   33653     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   33654     1657464 :          pack_tmp = ISHFT(pack_tmp, -33)
   33655     1657464 :          idata = idata + 1
   33656     1657464 :          data_tmp = ISHFT(pack_tmp, 12)
   33657     1657464 :          ipack = ipack + 1
   33658     1657464 :          pack_tmp = packed_data(ipack)
   33659     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   33660     1657464 :          pack_tmp = ISHFT(pack_tmp, -12)
   33661     1657464 :          idata = idata + 1
   33662     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33663     1657464 :          full_data(idata) = data_tmp
   33664     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33665     1657464 :          idata = idata + 1
   33666     1657464 :          data_tmp = ISHFT(pack_tmp, 34)
   33667     1657464 :          ipack = ipack + 1
   33668     1657464 :          pack_tmp = packed_data(ipack)
   33669     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   33670     1657464 :          pack_tmp = ISHFT(pack_tmp, -34)
   33671     1657464 :          idata = idata + 1
   33672     1657464 :          data_tmp = ISHFT(pack_tmp, 13)
   33673     1657464 :          ipack = ipack + 1
   33674     1657464 :          pack_tmp = packed_data(ipack)
   33675     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   33676     1657464 :          pack_tmp = ISHFT(pack_tmp, -13)
   33677     1657464 :          idata = idata + 1
   33678     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33679     1657464 :          full_data(idata) = data_tmp
   33680     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33681     1657464 :          idata = idata + 1
   33682     1657464 :          data_tmp = ISHFT(pack_tmp, 35)
   33683     1657464 :          ipack = ipack + 1
   33684     1657464 :          pack_tmp = packed_data(ipack)
   33685     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   33686     1657464 :          pack_tmp = ISHFT(pack_tmp, -35)
   33687     1657464 :          idata = idata + 1
   33688     1657464 :          data_tmp = ISHFT(pack_tmp, 14)
   33689     1657464 :          ipack = ipack + 1
   33690     1657464 :          pack_tmp = packed_data(ipack)
   33691     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   33692     1657464 :          pack_tmp = ISHFT(pack_tmp, -14)
   33693     1657464 :          idata = idata + 1
   33694     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33695     1657464 :          full_data(idata) = data_tmp
   33696     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33697     1657464 :          idata = idata + 1
   33698     1657464 :          data_tmp = ISHFT(pack_tmp, 36)
   33699     1657464 :          ipack = ipack + 1
   33700     1657464 :          pack_tmp = packed_data(ipack)
   33701     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   33702     1657464 :          pack_tmp = ISHFT(pack_tmp, -36)
   33703     1657464 :          idata = idata + 1
   33704     1657464 :          data_tmp = ISHFT(pack_tmp, 15)
   33705     1657464 :          ipack = ipack + 1
   33706     1657464 :          pack_tmp = packed_data(ipack)
   33707     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   33708     1657464 :          pack_tmp = ISHFT(pack_tmp, -15)
   33709     1657464 :          idata = idata + 1
   33710     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33711     1657464 :          full_data(idata) = data_tmp
   33712     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33713     1657464 :          idata = idata + 1
   33714     1657464 :          data_tmp = ISHFT(pack_tmp, 37)
   33715     1657464 :          ipack = ipack + 1
   33716     1657464 :          pack_tmp = packed_data(ipack)
   33717     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   33718     1657464 :          pack_tmp = ISHFT(pack_tmp, -37)
   33719     1657464 :          idata = idata + 1
   33720     1657464 :          data_tmp = ISHFT(pack_tmp, 16)
   33721     1657464 :          ipack = ipack + 1
   33722     1657464 :          pack_tmp = packed_data(ipack)
   33723     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   33724     1657464 :          pack_tmp = ISHFT(pack_tmp, -16)
   33725     1657464 :          idata = idata + 1
   33726     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33727     1657464 :          full_data(idata) = data_tmp
   33728     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33729     1657464 :          idata = idata + 1
   33730     1657464 :          data_tmp = ISHFT(pack_tmp, 38)
   33731     1657464 :          ipack = ipack + 1
   33732     1657464 :          pack_tmp = packed_data(ipack)
   33733     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   33734     1657464 :          pack_tmp = ISHFT(pack_tmp, -38)
   33735     1657464 :          idata = idata + 1
   33736     1657464 :          data_tmp = ISHFT(pack_tmp, 17)
   33737     1657464 :          ipack = ipack + 1
   33738     1657464 :          pack_tmp = packed_data(ipack)
   33739     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   33740     1657464 :          pack_tmp = ISHFT(pack_tmp, -17)
   33741     1657464 :          idata = idata + 1
   33742     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33743     1657464 :          full_data(idata) = data_tmp
   33744     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33745     1657464 :          idata = idata + 1
   33746     1657464 :          data_tmp = ISHFT(pack_tmp, 39)
   33747     1657464 :          ipack = ipack + 1
   33748     1657464 :          pack_tmp = packed_data(ipack)
   33749     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   33750     1657464 :          pack_tmp = ISHFT(pack_tmp, -39)
   33751     1657464 :          idata = idata + 1
   33752     1657464 :          data_tmp = ISHFT(pack_tmp, 18)
   33753     1657464 :          ipack = ipack + 1
   33754     1657464 :          pack_tmp = packed_data(ipack)
   33755     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   33756     1657464 :          pack_tmp = ISHFT(pack_tmp, -18)
   33757     1657464 :          idata = idata + 1
   33758     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33759     1657464 :          full_data(idata) = data_tmp
   33760     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33761     1657464 :          idata = idata + 1
   33762     1657464 :          data_tmp = ISHFT(pack_tmp, 40)
   33763     1657464 :          ipack = ipack + 1
   33764     1657464 :          pack_tmp = packed_data(ipack)
   33765     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   33766     1657464 :          pack_tmp = ISHFT(pack_tmp, -40)
   33767     1657464 :          idata = idata + 1
   33768     1657464 :          data_tmp = ISHFT(pack_tmp, 19)
   33769     1657464 :          ipack = ipack + 1
   33770     1657464 :          pack_tmp = packed_data(ipack)
   33771     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   33772     1657464 :          pack_tmp = ISHFT(pack_tmp, -19)
   33773     1657464 :          idata = idata + 1
   33774     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33775     1657464 :          full_data(idata) = data_tmp
   33776     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33777     1657464 :          idata = idata + 1
   33778     1657464 :          data_tmp = ISHFT(pack_tmp, 41)
   33779     1657464 :          ipack = ipack + 1
   33780     1657464 :          pack_tmp = packed_data(ipack)
   33781     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   33782     1657464 :          pack_tmp = ISHFT(pack_tmp, -41)
   33783     1657464 :          idata = idata + 1
   33784     1657464 :          data_tmp = ISHFT(pack_tmp, 20)
   33785     1657464 :          ipack = ipack + 1
   33786     1657464 :          pack_tmp = packed_data(ipack)
   33787     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   33788     1657464 :          pack_tmp = ISHFT(pack_tmp, -20)
   33789     1657464 :          idata = idata + 1
   33790     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33791     1657464 :          full_data(idata) = data_tmp
   33792     1657464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33793     1657464 :          idata = idata + 1
   33794     1657464 :          data_tmp = ISHFT(pack_tmp, 42)
   33795     1657464 :          ipack = ipack + 1
   33796     1657464 :          pack_tmp = packed_data(ipack)
   33797     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   33798     1657464 :          pack_tmp = ISHFT(pack_tmp, -42)
   33799     1657464 :          idata = idata + 1
   33800     1657464 :          data_tmp = ISHFT(pack_tmp, 21)
   33801     1657464 :          ipack = ipack + 1
   33802     1657464 :          pack_tmp = packed_data(ipack)
   33803     1657464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   33804     1657464 :          pack_tmp = ISHFT(pack_tmp, -21)
   33805     1657464 :          idata = idata + 1
   33806     1657464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33807     1657464 :          full_data(idata) = data_tmp
   33808     1659777 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33809             :       END DO
   33810      112865 :       IF (Ndata_rep < Ndata) THEN
   33811       17456 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33812             :       END IF
   33813      112865 :    END SUBROUTINE bits2ints_43
   33814             : 
   33815             : ! **************************************************************************************************
   33816             : !> \brief ...
   33817             : !> \param Ndata ...
   33818             : !> \param packed_data ...
   33819             : !> \param full_data ...
   33820             : ! **************************************************************************************************
   33821       26593 :    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       26593 :       idata = 0
   33832       26593 :       ipack = 0
   33833       26593 :       Ndata_rep = (Ndata/64)*64
   33834       26593 :       DO kdata = 1, Ndata_rep, 64
   33835      394140 :          pack_tmp = 0
   33836      394140 :          idata = idata + 1
   33837      394140 :          data_tmp = full_data(idata)
   33838      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33839      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33840      394140 :          pack_tmp = ISHFT(pack_tmp, -20)
   33841      394140 :          idata = idata + 1
   33842      394140 :          data_tmp = full_data(idata)
   33843      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33844      394140 :          data_tmp = IAND(data_tmp, mask_left(20))
   33845      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33846      394140 :          ipack = ipack + 1
   33847      394140 :          packed_data(ipack) = pack_tmp
   33848      394140 :          data_tmp = full_data(idata)
   33849      394140 :          pack_tmp = ISHFT(data_tmp, 40)
   33850      394140 :          pack_tmp = ISHFT(pack_tmp, -40)
   33851      394140 :          idata = idata + 1
   33852      394140 :          data_tmp = full_data(idata)
   33853      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33854      394140 :          data_tmp = IAND(data_tmp, mask_left(40))
   33855      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33856      394140 :          ipack = ipack + 1
   33857      394140 :          packed_data(ipack) = pack_tmp
   33858      394140 :          data_tmp = full_data(idata)
   33859      394140 :          pack_tmp = ISHFT(data_tmp, 60)
   33860      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33861      394140 :          idata = idata + 1
   33862      394140 :          data_tmp = full_data(idata)
   33863      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33864      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33865      394140 :          pack_tmp = ISHFT(pack_tmp, -16)
   33866      394140 :          idata = idata + 1
   33867      394140 :          data_tmp = full_data(idata)
   33868      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33869      394140 :          data_tmp = IAND(data_tmp, mask_left(16))
   33870      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33871      394140 :          ipack = ipack + 1
   33872      394140 :          packed_data(ipack) = pack_tmp
   33873      394140 :          data_tmp = full_data(idata)
   33874      394140 :          pack_tmp = ISHFT(data_tmp, 36)
   33875      394140 :          pack_tmp = ISHFT(pack_tmp, -36)
   33876      394140 :          idata = idata + 1
   33877      394140 :          data_tmp = full_data(idata)
   33878      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33879      394140 :          data_tmp = IAND(data_tmp, mask_left(36))
   33880      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33881      394140 :          ipack = ipack + 1
   33882      394140 :          packed_data(ipack) = pack_tmp
   33883      394140 :          data_tmp = full_data(idata)
   33884      394140 :          pack_tmp = ISHFT(data_tmp, 56)
   33885      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33886      394140 :          idata = idata + 1
   33887      394140 :          data_tmp = full_data(idata)
   33888      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33889      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33890      394140 :          pack_tmp = ISHFT(pack_tmp, -12)
   33891      394140 :          idata = idata + 1
   33892      394140 :          data_tmp = full_data(idata)
   33893      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33894      394140 :          data_tmp = IAND(data_tmp, mask_left(12))
   33895      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33896      394140 :          ipack = ipack + 1
   33897      394140 :          packed_data(ipack) = pack_tmp
   33898      394140 :          data_tmp = full_data(idata)
   33899      394140 :          pack_tmp = ISHFT(data_tmp, 32)
   33900      394140 :          pack_tmp = ISHFT(pack_tmp, -32)
   33901      394140 :          idata = idata + 1
   33902      394140 :          data_tmp = full_data(idata)
   33903      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33904      394140 :          data_tmp = IAND(data_tmp, mask_left(32))
   33905      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33906      394140 :          ipack = ipack + 1
   33907      394140 :          packed_data(ipack) = pack_tmp
   33908      394140 :          data_tmp = full_data(idata)
   33909      394140 :          pack_tmp = ISHFT(data_tmp, 52)
   33910      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33911      394140 :          idata = idata + 1
   33912      394140 :          data_tmp = full_data(idata)
   33913      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33914      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33915      394140 :          pack_tmp = ISHFT(pack_tmp, -8)
   33916      394140 :          idata = idata + 1
   33917      394140 :          data_tmp = full_data(idata)
   33918      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33919      394140 :          data_tmp = IAND(data_tmp, mask_left(8))
   33920      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33921      394140 :          ipack = ipack + 1
   33922      394140 :          packed_data(ipack) = pack_tmp
   33923      394140 :          data_tmp = full_data(idata)
   33924      394140 :          pack_tmp = ISHFT(data_tmp, 28)
   33925      394140 :          pack_tmp = ISHFT(pack_tmp, -28)
   33926      394140 :          idata = idata + 1
   33927      394140 :          data_tmp = full_data(idata)
   33928      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33929      394140 :          data_tmp = IAND(data_tmp, mask_left(28))
   33930      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33931      394140 :          ipack = ipack + 1
   33932      394140 :          packed_data(ipack) = pack_tmp
   33933      394140 :          data_tmp = full_data(idata)
   33934      394140 :          pack_tmp = ISHFT(data_tmp, 48)
   33935      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33936      394140 :          idata = idata + 1
   33937      394140 :          data_tmp = full_data(idata)
   33938      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33939      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33940      394140 :          pack_tmp = ISHFT(pack_tmp, -4)
   33941      394140 :          idata = idata + 1
   33942      394140 :          data_tmp = full_data(idata)
   33943      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33944      394140 :          data_tmp = IAND(data_tmp, mask_left(4))
   33945      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33946      394140 :          ipack = ipack + 1
   33947      394140 :          packed_data(ipack) = pack_tmp
   33948      394140 :          data_tmp = full_data(idata)
   33949      394140 :          pack_tmp = ISHFT(data_tmp, 24)
   33950      394140 :          pack_tmp = ISHFT(pack_tmp, -24)
   33951      394140 :          idata = idata + 1
   33952      394140 :          data_tmp = full_data(idata)
   33953      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33954      394140 :          data_tmp = IAND(data_tmp, mask_left(24))
   33955      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33956      394140 :          ipack = ipack + 1
   33957      394140 :          packed_data(ipack) = pack_tmp
   33958      394140 :          data_tmp = full_data(idata)
   33959      394140 :          pack_tmp = ISHFT(data_tmp, 44)
   33960      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33961      394140 :          idata = idata + 1
   33962      394140 :          data_tmp = full_data(idata)
   33963      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33964      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33965      394140 :          pack_tmp = ISHFT(pack_tmp, 0)
   33966      394140 :          idata = idata + 1
   33967      394140 :          data_tmp = full_data(idata)
   33968      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33969      394140 :          data_tmp = IAND(data_tmp, mask_left(0))
   33970      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33971      394140 :          ipack = ipack + 1
   33972      394140 :          packed_data(ipack) = pack_tmp
   33973      394140 :          data_tmp = full_data(idata)
   33974      394140 :          pack_tmp = ISHFT(data_tmp, 20)
   33975      394140 :          pack_tmp = ISHFT(pack_tmp, -20)
   33976      394140 :          idata = idata + 1
   33977      394140 :          data_tmp = full_data(idata)
   33978      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33979      394140 :          data_tmp = IAND(data_tmp, mask_left(20))
   33980      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33981      394140 :          ipack = ipack + 1
   33982      394140 :          packed_data(ipack) = pack_tmp
   33983      394140 :          data_tmp = full_data(idata)
   33984      394140 :          pack_tmp = ISHFT(data_tmp, 40)
   33985      394140 :          pack_tmp = ISHFT(pack_tmp, -40)
   33986      394140 :          idata = idata + 1
   33987      394140 :          data_tmp = full_data(idata)
   33988      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33989      394140 :          data_tmp = IAND(data_tmp, mask_left(40))
   33990      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33991      394140 :          ipack = ipack + 1
   33992      394140 :          packed_data(ipack) = pack_tmp
   33993      394140 :          data_tmp = full_data(idata)
   33994      394140 :          pack_tmp = ISHFT(data_tmp, 60)
   33995      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   33996      394140 :          idata = idata + 1
   33997      394140 :          data_tmp = full_data(idata)
   33998      394140 :          data_tmp = ISHFT(data_tmp, 20)
   33999      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34000      394140 :          pack_tmp = ISHFT(pack_tmp, -16)
   34001      394140 :          idata = idata + 1
   34002      394140 :          data_tmp = full_data(idata)
   34003      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34004      394140 :          data_tmp = IAND(data_tmp, mask_left(16))
   34005      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34006      394140 :          ipack = ipack + 1
   34007      394140 :          packed_data(ipack) = pack_tmp
   34008      394140 :          data_tmp = full_data(idata)
   34009      394140 :          pack_tmp = ISHFT(data_tmp, 36)
   34010      394140 :          pack_tmp = ISHFT(pack_tmp, -36)
   34011      394140 :          idata = idata + 1
   34012      394140 :          data_tmp = full_data(idata)
   34013      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34014      394140 :          data_tmp = IAND(data_tmp, mask_left(36))
   34015      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34016      394140 :          ipack = ipack + 1
   34017      394140 :          packed_data(ipack) = pack_tmp
   34018      394140 :          data_tmp = full_data(idata)
   34019      394140 :          pack_tmp = ISHFT(data_tmp, 56)
   34020      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34021      394140 :          idata = idata + 1
   34022      394140 :          data_tmp = full_data(idata)
   34023      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34024      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34025      394140 :          pack_tmp = ISHFT(pack_tmp, -12)
   34026      394140 :          idata = idata + 1
   34027      394140 :          data_tmp = full_data(idata)
   34028      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34029      394140 :          data_tmp = IAND(data_tmp, mask_left(12))
   34030      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34031      394140 :          ipack = ipack + 1
   34032      394140 :          packed_data(ipack) = pack_tmp
   34033      394140 :          data_tmp = full_data(idata)
   34034      394140 :          pack_tmp = ISHFT(data_tmp, 32)
   34035      394140 :          pack_tmp = ISHFT(pack_tmp, -32)
   34036      394140 :          idata = idata + 1
   34037      394140 :          data_tmp = full_data(idata)
   34038      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34039      394140 :          data_tmp = IAND(data_tmp, mask_left(32))
   34040      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34041      394140 :          ipack = ipack + 1
   34042      394140 :          packed_data(ipack) = pack_tmp
   34043      394140 :          data_tmp = full_data(idata)
   34044      394140 :          pack_tmp = ISHFT(data_tmp, 52)
   34045      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34046      394140 :          idata = idata + 1
   34047      394140 :          data_tmp = full_data(idata)
   34048      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34049      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34050      394140 :          pack_tmp = ISHFT(pack_tmp, -8)
   34051      394140 :          idata = idata + 1
   34052      394140 :          data_tmp = full_data(idata)
   34053      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34054      394140 :          data_tmp = IAND(data_tmp, mask_left(8))
   34055      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34056      394140 :          ipack = ipack + 1
   34057      394140 :          packed_data(ipack) = pack_tmp
   34058      394140 :          data_tmp = full_data(idata)
   34059      394140 :          pack_tmp = ISHFT(data_tmp, 28)
   34060      394140 :          pack_tmp = ISHFT(pack_tmp, -28)
   34061      394140 :          idata = idata + 1
   34062      394140 :          data_tmp = full_data(idata)
   34063      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34064      394140 :          data_tmp = IAND(data_tmp, mask_left(28))
   34065      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34066      394140 :          ipack = ipack + 1
   34067      394140 :          packed_data(ipack) = pack_tmp
   34068      394140 :          data_tmp = full_data(idata)
   34069      394140 :          pack_tmp = ISHFT(data_tmp, 48)
   34070      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34071      394140 :          idata = idata + 1
   34072      394140 :          data_tmp = full_data(idata)
   34073      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34074      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34075      394140 :          pack_tmp = ISHFT(pack_tmp, -4)
   34076      394140 :          idata = idata + 1
   34077      394140 :          data_tmp = full_data(idata)
   34078      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34079      394140 :          data_tmp = IAND(data_tmp, mask_left(4))
   34080      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34081      394140 :          ipack = ipack + 1
   34082      394140 :          packed_data(ipack) = pack_tmp
   34083      394140 :          data_tmp = full_data(idata)
   34084      394140 :          pack_tmp = ISHFT(data_tmp, 24)
   34085      394140 :          pack_tmp = ISHFT(pack_tmp, -24)
   34086      394140 :          idata = idata + 1
   34087      394140 :          data_tmp = full_data(idata)
   34088      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34089      394140 :          data_tmp = IAND(data_tmp, mask_left(24))
   34090      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34091      394140 :          ipack = ipack + 1
   34092      394140 :          packed_data(ipack) = pack_tmp
   34093      394140 :          data_tmp = full_data(idata)
   34094      394140 :          pack_tmp = ISHFT(data_tmp, 44)
   34095      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34096      394140 :          idata = idata + 1
   34097      394140 :          data_tmp = full_data(idata)
   34098      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34099      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34100      394140 :          pack_tmp = ISHFT(pack_tmp, 0)
   34101      394140 :          idata = idata + 1
   34102      394140 :          data_tmp = full_data(idata)
   34103      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34104      394140 :          data_tmp = IAND(data_tmp, mask_left(0))
   34105      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34106      394140 :          ipack = ipack + 1
   34107      394140 :          packed_data(ipack) = pack_tmp
   34108      394140 :          data_tmp = full_data(idata)
   34109      394140 :          pack_tmp = ISHFT(data_tmp, 20)
   34110      394140 :          pack_tmp = ISHFT(pack_tmp, -20)
   34111      394140 :          idata = idata + 1
   34112      394140 :          data_tmp = full_data(idata)
   34113      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34114      394140 :          data_tmp = IAND(data_tmp, mask_left(20))
   34115      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34116      394140 :          ipack = ipack + 1
   34117      394140 :          packed_data(ipack) = pack_tmp
   34118      394140 :          data_tmp = full_data(idata)
   34119      394140 :          pack_tmp = ISHFT(data_tmp, 40)
   34120      394140 :          pack_tmp = ISHFT(pack_tmp, -40)
   34121      394140 :          idata = idata + 1
   34122      394140 :          data_tmp = full_data(idata)
   34123      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34124      394140 :          data_tmp = IAND(data_tmp, mask_left(40))
   34125      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34126      394140 :          ipack = ipack + 1
   34127      394140 :          packed_data(ipack) = pack_tmp
   34128      394140 :          data_tmp = full_data(idata)
   34129      394140 :          pack_tmp = ISHFT(data_tmp, 60)
   34130      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34131      394140 :          idata = idata + 1
   34132      394140 :          data_tmp = full_data(idata)
   34133      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34134      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34135      394140 :          pack_tmp = ISHFT(pack_tmp, -16)
   34136      394140 :          idata = idata + 1
   34137      394140 :          data_tmp = full_data(idata)
   34138      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34139      394140 :          data_tmp = IAND(data_tmp, mask_left(16))
   34140      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34141      394140 :          ipack = ipack + 1
   34142      394140 :          packed_data(ipack) = pack_tmp
   34143      394140 :          data_tmp = full_data(idata)
   34144      394140 :          pack_tmp = ISHFT(data_tmp, 36)
   34145      394140 :          pack_tmp = ISHFT(pack_tmp, -36)
   34146      394140 :          idata = idata + 1
   34147      394140 :          data_tmp = full_data(idata)
   34148      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34149      394140 :          data_tmp = IAND(data_tmp, mask_left(36))
   34150      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34151      394140 :          ipack = ipack + 1
   34152      394140 :          packed_data(ipack) = pack_tmp
   34153      394140 :          data_tmp = full_data(idata)
   34154      394140 :          pack_tmp = ISHFT(data_tmp, 56)
   34155      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34156      394140 :          idata = idata + 1
   34157      394140 :          data_tmp = full_data(idata)
   34158      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34159      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34160      394140 :          pack_tmp = ISHFT(pack_tmp, -12)
   34161      394140 :          idata = idata + 1
   34162      394140 :          data_tmp = full_data(idata)
   34163      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34164      394140 :          data_tmp = IAND(data_tmp, mask_left(12))
   34165      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34166      394140 :          ipack = ipack + 1
   34167      394140 :          packed_data(ipack) = pack_tmp
   34168      394140 :          data_tmp = full_data(idata)
   34169      394140 :          pack_tmp = ISHFT(data_tmp, 32)
   34170      394140 :          pack_tmp = ISHFT(pack_tmp, -32)
   34171      394140 :          idata = idata + 1
   34172      394140 :          data_tmp = full_data(idata)
   34173      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34174      394140 :          data_tmp = IAND(data_tmp, mask_left(32))
   34175      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34176      394140 :          ipack = ipack + 1
   34177      394140 :          packed_data(ipack) = pack_tmp
   34178      394140 :          data_tmp = full_data(idata)
   34179      394140 :          pack_tmp = ISHFT(data_tmp, 52)
   34180      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34181      394140 :          idata = idata + 1
   34182      394140 :          data_tmp = full_data(idata)
   34183      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34184      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34185      394140 :          pack_tmp = ISHFT(pack_tmp, -8)
   34186      394140 :          idata = idata + 1
   34187      394140 :          data_tmp = full_data(idata)
   34188      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34189      394140 :          data_tmp = IAND(data_tmp, mask_left(8))
   34190      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34191      394140 :          ipack = ipack + 1
   34192      394140 :          packed_data(ipack) = pack_tmp
   34193      394140 :          data_tmp = full_data(idata)
   34194      394140 :          pack_tmp = ISHFT(data_tmp, 28)
   34195      394140 :          pack_tmp = ISHFT(pack_tmp, -28)
   34196      394140 :          idata = idata + 1
   34197      394140 :          data_tmp = full_data(idata)
   34198      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34199      394140 :          data_tmp = IAND(data_tmp, mask_left(28))
   34200      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34201      394140 :          ipack = ipack + 1
   34202      394140 :          packed_data(ipack) = pack_tmp
   34203      394140 :          data_tmp = full_data(idata)
   34204      394140 :          pack_tmp = ISHFT(data_tmp, 48)
   34205      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34206      394140 :          idata = idata + 1
   34207      394140 :          data_tmp = full_data(idata)
   34208      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34209      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34210      394140 :          pack_tmp = ISHFT(pack_tmp, -4)
   34211      394140 :          idata = idata + 1
   34212      394140 :          data_tmp = full_data(idata)
   34213      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34214      394140 :          data_tmp = IAND(data_tmp, mask_left(4))
   34215      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34216      394140 :          ipack = ipack + 1
   34217      394140 :          packed_data(ipack) = pack_tmp
   34218      394140 :          data_tmp = full_data(idata)
   34219      394140 :          pack_tmp = ISHFT(data_tmp, 24)
   34220      394140 :          pack_tmp = ISHFT(pack_tmp, -24)
   34221      394140 :          idata = idata + 1
   34222      394140 :          data_tmp = full_data(idata)
   34223      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34224      394140 :          data_tmp = IAND(data_tmp, mask_left(24))
   34225      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34226      394140 :          ipack = ipack + 1
   34227      394140 :          packed_data(ipack) = pack_tmp
   34228      394140 :          data_tmp = full_data(idata)
   34229      394140 :          pack_tmp = ISHFT(data_tmp, 44)
   34230      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34231      394140 :          idata = idata + 1
   34232      394140 :          data_tmp = full_data(idata)
   34233      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34234      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34235      394140 :          pack_tmp = ISHFT(pack_tmp, 0)
   34236      394140 :          idata = idata + 1
   34237      394140 :          data_tmp = full_data(idata)
   34238      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34239      394140 :          data_tmp = IAND(data_tmp, mask_left(0))
   34240      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34241      394140 :          ipack = ipack + 1
   34242      394140 :          packed_data(ipack) = pack_tmp
   34243      394140 :          data_tmp = full_data(idata)
   34244      394140 :          pack_tmp = ISHFT(data_tmp, 20)
   34245      394140 :          pack_tmp = ISHFT(pack_tmp, -20)
   34246      394140 :          idata = idata + 1
   34247      394140 :          data_tmp = full_data(idata)
   34248      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34249      394140 :          data_tmp = IAND(data_tmp, mask_left(20))
   34250      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34251      394140 :          ipack = ipack + 1
   34252      394140 :          packed_data(ipack) = pack_tmp
   34253      394140 :          data_tmp = full_data(idata)
   34254      394140 :          pack_tmp = ISHFT(data_tmp, 40)
   34255      394140 :          pack_tmp = ISHFT(pack_tmp, -40)
   34256      394140 :          idata = idata + 1
   34257      394140 :          data_tmp = full_data(idata)
   34258      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34259      394140 :          data_tmp = IAND(data_tmp, mask_left(40))
   34260      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34261      394140 :          ipack = ipack + 1
   34262      394140 :          packed_data(ipack) = pack_tmp
   34263      394140 :          data_tmp = full_data(idata)
   34264      394140 :          pack_tmp = ISHFT(data_tmp, 60)
   34265      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34266      394140 :          idata = idata + 1
   34267      394140 :          data_tmp = full_data(idata)
   34268      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34269      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34270      394140 :          pack_tmp = ISHFT(pack_tmp, -16)
   34271      394140 :          idata = idata + 1
   34272      394140 :          data_tmp = full_data(idata)
   34273      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34274      394140 :          data_tmp = IAND(data_tmp, mask_left(16))
   34275      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34276      394140 :          ipack = ipack + 1
   34277      394140 :          packed_data(ipack) = pack_tmp
   34278      394140 :          data_tmp = full_data(idata)
   34279      394140 :          pack_tmp = ISHFT(data_tmp, 36)
   34280      394140 :          pack_tmp = ISHFT(pack_tmp, -36)
   34281      394140 :          idata = idata + 1
   34282      394140 :          data_tmp = full_data(idata)
   34283      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34284      394140 :          data_tmp = IAND(data_tmp, mask_left(36))
   34285      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34286      394140 :          ipack = ipack + 1
   34287      394140 :          packed_data(ipack) = pack_tmp
   34288      394140 :          data_tmp = full_data(idata)
   34289      394140 :          pack_tmp = ISHFT(data_tmp, 56)
   34290      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34291      394140 :          idata = idata + 1
   34292      394140 :          data_tmp = full_data(idata)
   34293      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34294      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34295      394140 :          pack_tmp = ISHFT(pack_tmp, -12)
   34296      394140 :          idata = idata + 1
   34297      394140 :          data_tmp = full_data(idata)
   34298      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34299      394140 :          data_tmp = IAND(data_tmp, mask_left(12))
   34300      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34301      394140 :          ipack = ipack + 1
   34302      394140 :          packed_data(ipack) = pack_tmp
   34303      394140 :          data_tmp = full_data(idata)
   34304      394140 :          pack_tmp = ISHFT(data_tmp, 32)
   34305      394140 :          pack_tmp = ISHFT(pack_tmp, -32)
   34306      394140 :          idata = idata + 1
   34307      394140 :          data_tmp = full_data(idata)
   34308      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34309      394140 :          data_tmp = IAND(data_tmp, mask_left(32))
   34310      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34311      394140 :          ipack = ipack + 1
   34312      394140 :          packed_data(ipack) = pack_tmp
   34313      394140 :          data_tmp = full_data(idata)
   34314      394140 :          pack_tmp = ISHFT(data_tmp, 52)
   34315      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34316      394140 :          idata = idata + 1
   34317      394140 :          data_tmp = full_data(idata)
   34318      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34319      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34320      394140 :          pack_tmp = ISHFT(pack_tmp, -8)
   34321      394140 :          idata = idata + 1
   34322      394140 :          data_tmp = full_data(idata)
   34323      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34324      394140 :          data_tmp = IAND(data_tmp, mask_left(8))
   34325      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34326      394140 :          ipack = ipack + 1
   34327      394140 :          packed_data(ipack) = pack_tmp
   34328      394140 :          data_tmp = full_data(idata)
   34329      394140 :          pack_tmp = ISHFT(data_tmp, 28)
   34330      394140 :          pack_tmp = ISHFT(pack_tmp, -28)
   34331      394140 :          idata = idata + 1
   34332      394140 :          data_tmp = full_data(idata)
   34333      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34334      394140 :          data_tmp = IAND(data_tmp, mask_left(28))
   34335      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34336      394140 :          ipack = ipack + 1
   34337      394140 :          packed_data(ipack) = pack_tmp
   34338      394140 :          data_tmp = full_data(idata)
   34339      394140 :          pack_tmp = ISHFT(data_tmp, 48)
   34340      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34341      394140 :          idata = idata + 1
   34342      394140 :          data_tmp = full_data(idata)
   34343      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34344      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34345      394140 :          pack_tmp = ISHFT(pack_tmp, -4)
   34346      394140 :          idata = idata + 1
   34347      394140 :          data_tmp = full_data(idata)
   34348      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34349      394140 :          data_tmp = IAND(data_tmp, mask_left(4))
   34350      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34351      394140 :          ipack = ipack + 1
   34352      394140 :          packed_data(ipack) = pack_tmp
   34353      394140 :          data_tmp = full_data(idata)
   34354      394140 :          pack_tmp = ISHFT(data_tmp, 24)
   34355      394140 :          pack_tmp = ISHFT(pack_tmp, -24)
   34356      394140 :          idata = idata + 1
   34357      394140 :          data_tmp = full_data(idata)
   34358      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34359      394140 :          data_tmp = IAND(data_tmp, mask_left(24))
   34360      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34361      394140 :          ipack = ipack + 1
   34362      394140 :          packed_data(ipack) = pack_tmp
   34363      394140 :          data_tmp = full_data(idata)
   34364      394140 :          pack_tmp = ISHFT(data_tmp, 44)
   34365      394140 :          pack_tmp = ISHFT(pack_tmp, -44)
   34366      394140 :          idata = idata + 1
   34367      394140 :          data_tmp = full_data(idata)
   34368      394140 :          data_tmp = ISHFT(data_tmp, 20)
   34369      394140 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34370             :          pack_tmp = ISHFT(pack_tmp, 0)
   34371      394140 :          pack_tmp = ISHFT(pack_tmp, 0)
   34372      394140 :          ipack = ipack + 1
   34373      394153 :          packed_data(ipack) = pack_tmp
   34374             :       END DO
   34375       26593 :       IF (Ndata_rep < Ndata) THEN
   34376        3688 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34377             :       END IF
   34378       26593 :    END SUBROUTINE ints2bits_44
   34379             : 
   34380             : ! **************************************************************************************************
   34381             : !> \brief ...
   34382             : !> \param Ndata ...
   34383             : !> \param packed_data ...
   34384             : !> \param full_data ...
   34385             : ! **************************************************************************************************
   34386      121343 :    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      121343 :       ipack = 0
   34397      121343 :       idata = 0
   34398      121343 :       pack_tmp = 0
   34399      121343 :       Ndata_rep = (Ndata/64)*64
   34400      121343 :       DO kdata = 1, Ndata_rep, 64
   34401     1732660 :          idata = idata + 1
   34402     1732660 :          data_tmp = ISHFT(pack_tmp, 44)
   34403     1732660 :          ipack = ipack + 1
   34404     1732660 :          pack_tmp = packed_data(ipack)
   34405     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34406     1732660 :          pack_tmp = ISHFT(pack_tmp, -44)
   34407     1732660 :          idata = idata + 1
   34408     1732660 :          data_tmp = ISHFT(pack_tmp, 24)
   34409     1732660 :          ipack = ipack + 1
   34410     1732660 :          pack_tmp = packed_data(ipack)
   34411     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34412     1732660 :          pack_tmp = ISHFT(pack_tmp, -24)
   34413     1732660 :          idata = idata + 1
   34414     1732660 :          data_tmp = ISHFT(pack_tmp, 4)
   34415     1732660 :          ipack = ipack + 1
   34416     1732660 :          pack_tmp = packed_data(ipack)
   34417     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34418     1732660 :          pack_tmp = ISHFT(pack_tmp, -4)
   34419     1732660 :          idata = idata + 1
   34420     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34421     1732660 :          full_data(idata) = data_tmp
   34422     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34423     1732660 :          idata = idata + 1
   34424     1732660 :          data_tmp = ISHFT(pack_tmp, 28)
   34425     1732660 :          ipack = ipack + 1
   34426     1732660 :          pack_tmp = packed_data(ipack)
   34427     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34428     1732660 :          pack_tmp = ISHFT(pack_tmp, -28)
   34429     1732660 :          idata = idata + 1
   34430     1732660 :          data_tmp = ISHFT(pack_tmp, 8)
   34431     1732660 :          ipack = ipack + 1
   34432     1732660 :          pack_tmp = packed_data(ipack)
   34433     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34434     1732660 :          pack_tmp = ISHFT(pack_tmp, -8)
   34435     1732660 :          idata = idata + 1
   34436     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34437     1732660 :          full_data(idata) = data_tmp
   34438     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34439     1732660 :          idata = idata + 1
   34440     1732660 :          data_tmp = ISHFT(pack_tmp, 32)
   34441     1732660 :          ipack = ipack + 1
   34442     1732660 :          pack_tmp = packed_data(ipack)
   34443     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34444     1732660 :          pack_tmp = ISHFT(pack_tmp, -32)
   34445     1732660 :          idata = idata + 1
   34446     1732660 :          data_tmp = ISHFT(pack_tmp, 12)
   34447     1732660 :          ipack = ipack + 1
   34448     1732660 :          pack_tmp = packed_data(ipack)
   34449     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34450     1732660 :          pack_tmp = ISHFT(pack_tmp, -12)
   34451     1732660 :          idata = idata + 1
   34452     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34453     1732660 :          full_data(idata) = data_tmp
   34454     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34455     1732660 :          idata = idata + 1
   34456     1732660 :          data_tmp = ISHFT(pack_tmp, 36)
   34457     1732660 :          ipack = ipack + 1
   34458     1732660 :          pack_tmp = packed_data(ipack)
   34459     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34460     1732660 :          pack_tmp = ISHFT(pack_tmp, -36)
   34461     1732660 :          idata = idata + 1
   34462     1732660 :          data_tmp = ISHFT(pack_tmp, 16)
   34463     1732660 :          ipack = ipack + 1
   34464     1732660 :          pack_tmp = packed_data(ipack)
   34465     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34466     1732660 :          pack_tmp = ISHFT(pack_tmp, -16)
   34467     1732660 :          idata = idata + 1
   34468     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34469     1732660 :          full_data(idata) = data_tmp
   34470     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34471     1732660 :          idata = idata + 1
   34472     1732660 :          data_tmp = ISHFT(pack_tmp, 40)
   34473     1732660 :          ipack = ipack + 1
   34474     1732660 :          pack_tmp = packed_data(ipack)
   34475     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34476     1732660 :          pack_tmp = ISHFT(pack_tmp, -40)
   34477     1732660 :          idata = idata + 1
   34478     1732660 :          data_tmp = ISHFT(pack_tmp, 20)
   34479     1732660 :          ipack = ipack + 1
   34480     1732660 :          pack_tmp = packed_data(ipack)
   34481     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34482     1732660 :          pack_tmp = ISHFT(pack_tmp, -20)
   34483     1732660 :          idata = idata + 1
   34484     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34485     1732660 :          full_data(idata) = data_tmp
   34486     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34487     1732660 :          idata = idata + 1
   34488     1732660 :          data_tmp = ISHFT(pack_tmp, 44)
   34489     1732660 :          ipack = ipack + 1
   34490     1732660 :          pack_tmp = packed_data(ipack)
   34491     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34492     1732660 :          pack_tmp = ISHFT(pack_tmp, -44)
   34493     1732660 :          idata = idata + 1
   34494     1732660 :          data_tmp = ISHFT(pack_tmp, 24)
   34495     1732660 :          ipack = ipack + 1
   34496     1732660 :          pack_tmp = packed_data(ipack)
   34497     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34498     1732660 :          pack_tmp = ISHFT(pack_tmp, -24)
   34499     1732660 :          idata = idata + 1
   34500     1732660 :          data_tmp = ISHFT(pack_tmp, 4)
   34501     1732660 :          ipack = ipack + 1
   34502     1732660 :          pack_tmp = packed_data(ipack)
   34503     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34504     1732660 :          pack_tmp = ISHFT(pack_tmp, -4)
   34505     1732660 :          idata = idata + 1
   34506     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34507     1732660 :          full_data(idata) = data_tmp
   34508     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34509     1732660 :          idata = idata + 1
   34510     1732660 :          data_tmp = ISHFT(pack_tmp, 28)
   34511     1732660 :          ipack = ipack + 1
   34512     1732660 :          pack_tmp = packed_data(ipack)
   34513     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34514     1732660 :          pack_tmp = ISHFT(pack_tmp, -28)
   34515     1732660 :          idata = idata + 1
   34516     1732660 :          data_tmp = ISHFT(pack_tmp, 8)
   34517     1732660 :          ipack = ipack + 1
   34518     1732660 :          pack_tmp = packed_data(ipack)
   34519     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34520     1732660 :          pack_tmp = ISHFT(pack_tmp, -8)
   34521     1732660 :          idata = idata + 1
   34522     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34523     1732660 :          full_data(idata) = data_tmp
   34524     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34525     1732660 :          idata = idata + 1
   34526     1732660 :          data_tmp = ISHFT(pack_tmp, 32)
   34527     1732660 :          ipack = ipack + 1
   34528     1732660 :          pack_tmp = packed_data(ipack)
   34529     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34530     1732660 :          pack_tmp = ISHFT(pack_tmp, -32)
   34531     1732660 :          idata = idata + 1
   34532     1732660 :          data_tmp = ISHFT(pack_tmp, 12)
   34533     1732660 :          ipack = ipack + 1
   34534     1732660 :          pack_tmp = packed_data(ipack)
   34535     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34536     1732660 :          pack_tmp = ISHFT(pack_tmp, -12)
   34537     1732660 :          idata = idata + 1
   34538     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34539     1732660 :          full_data(idata) = data_tmp
   34540     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34541     1732660 :          idata = idata + 1
   34542     1732660 :          data_tmp = ISHFT(pack_tmp, 36)
   34543     1732660 :          ipack = ipack + 1
   34544     1732660 :          pack_tmp = packed_data(ipack)
   34545     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34546     1732660 :          pack_tmp = ISHFT(pack_tmp, -36)
   34547     1732660 :          idata = idata + 1
   34548     1732660 :          data_tmp = ISHFT(pack_tmp, 16)
   34549     1732660 :          ipack = ipack + 1
   34550     1732660 :          pack_tmp = packed_data(ipack)
   34551     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34552     1732660 :          pack_tmp = ISHFT(pack_tmp, -16)
   34553     1732660 :          idata = idata + 1
   34554     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34555     1732660 :          full_data(idata) = data_tmp
   34556     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34557     1732660 :          idata = idata + 1
   34558     1732660 :          data_tmp = ISHFT(pack_tmp, 40)
   34559     1732660 :          ipack = ipack + 1
   34560     1732660 :          pack_tmp = packed_data(ipack)
   34561     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34562     1732660 :          pack_tmp = ISHFT(pack_tmp, -40)
   34563     1732660 :          idata = idata + 1
   34564     1732660 :          data_tmp = ISHFT(pack_tmp, 20)
   34565     1732660 :          ipack = ipack + 1
   34566     1732660 :          pack_tmp = packed_data(ipack)
   34567     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34568     1732660 :          pack_tmp = ISHFT(pack_tmp, -20)
   34569     1732660 :          idata = idata + 1
   34570     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34571     1732660 :          full_data(idata) = data_tmp
   34572     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34573     1732660 :          idata = idata + 1
   34574     1732660 :          data_tmp = ISHFT(pack_tmp, 44)
   34575     1732660 :          ipack = ipack + 1
   34576     1732660 :          pack_tmp = packed_data(ipack)
   34577     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34578     1732660 :          pack_tmp = ISHFT(pack_tmp, -44)
   34579     1732660 :          idata = idata + 1
   34580     1732660 :          data_tmp = ISHFT(pack_tmp, 24)
   34581     1732660 :          ipack = ipack + 1
   34582     1732660 :          pack_tmp = packed_data(ipack)
   34583     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34584     1732660 :          pack_tmp = ISHFT(pack_tmp, -24)
   34585     1732660 :          idata = idata + 1
   34586     1732660 :          data_tmp = ISHFT(pack_tmp, 4)
   34587     1732660 :          ipack = ipack + 1
   34588     1732660 :          pack_tmp = packed_data(ipack)
   34589     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34590     1732660 :          pack_tmp = ISHFT(pack_tmp, -4)
   34591     1732660 :          idata = idata + 1
   34592     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34593     1732660 :          full_data(idata) = data_tmp
   34594     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34595     1732660 :          idata = idata + 1
   34596     1732660 :          data_tmp = ISHFT(pack_tmp, 28)
   34597     1732660 :          ipack = ipack + 1
   34598     1732660 :          pack_tmp = packed_data(ipack)
   34599     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34600     1732660 :          pack_tmp = ISHFT(pack_tmp, -28)
   34601     1732660 :          idata = idata + 1
   34602     1732660 :          data_tmp = ISHFT(pack_tmp, 8)
   34603     1732660 :          ipack = ipack + 1
   34604     1732660 :          pack_tmp = packed_data(ipack)
   34605     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34606     1732660 :          pack_tmp = ISHFT(pack_tmp, -8)
   34607     1732660 :          idata = idata + 1
   34608     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34609     1732660 :          full_data(idata) = data_tmp
   34610     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34611     1732660 :          idata = idata + 1
   34612     1732660 :          data_tmp = ISHFT(pack_tmp, 32)
   34613     1732660 :          ipack = ipack + 1
   34614     1732660 :          pack_tmp = packed_data(ipack)
   34615     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34616     1732660 :          pack_tmp = ISHFT(pack_tmp, -32)
   34617     1732660 :          idata = idata + 1
   34618     1732660 :          data_tmp = ISHFT(pack_tmp, 12)
   34619     1732660 :          ipack = ipack + 1
   34620     1732660 :          pack_tmp = packed_data(ipack)
   34621     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34622     1732660 :          pack_tmp = ISHFT(pack_tmp, -12)
   34623     1732660 :          idata = idata + 1
   34624     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34625     1732660 :          full_data(idata) = data_tmp
   34626     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34627     1732660 :          idata = idata + 1
   34628     1732660 :          data_tmp = ISHFT(pack_tmp, 36)
   34629     1732660 :          ipack = ipack + 1
   34630     1732660 :          pack_tmp = packed_data(ipack)
   34631     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34632     1732660 :          pack_tmp = ISHFT(pack_tmp, -36)
   34633     1732660 :          idata = idata + 1
   34634     1732660 :          data_tmp = ISHFT(pack_tmp, 16)
   34635     1732660 :          ipack = ipack + 1
   34636     1732660 :          pack_tmp = packed_data(ipack)
   34637     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34638     1732660 :          pack_tmp = ISHFT(pack_tmp, -16)
   34639     1732660 :          idata = idata + 1
   34640     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34641     1732660 :          full_data(idata) = data_tmp
   34642     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34643     1732660 :          idata = idata + 1
   34644     1732660 :          data_tmp = ISHFT(pack_tmp, 40)
   34645     1732660 :          ipack = ipack + 1
   34646     1732660 :          pack_tmp = packed_data(ipack)
   34647     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34648     1732660 :          pack_tmp = ISHFT(pack_tmp, -40)
   34649     1732660 :          idata = idata + 1
   34650     1732660 :          data_tmp = ISHFT(pack_tmp, 20)
   34651     1732660 :          ipack = ipack + 1
   34652     1732660 :          pack_tmp = packed_data(ipack)
   34653     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34654     1732660 :          pack_tmp = ISHFT(pack_tmp, -20)
   34655     1732660 :          idata = idata + 1
   34656     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34657     1732660 :          full_data(idata) = data_tmp
   34658     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34659     1732660 :          idata = idata + 1
   34660     1732660 :          data_tmp = ISHFT(pack_tmp, 44)
   34661     1732660 :          ipack = ipack + 1
   34662     1732660 :          pack_tmp = packed_data(ipack)
   34663     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34664     1732660 :          pack_tmp = ISHFT(pack_tmp, -44)
   34665     1732660 :          idata = idata + 1
   34666     1732660 :          data_tmp = ISHFT(pack_tmp, 24)
   34667     1732660 :          ipack = ipack + 1
   34668     1732660 :          pack_tmp = packed_data(ipack)
   34669     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34670     1732660 :          pack_tmp = ISHFT(pack_tmp, -24)
   34671     1732660 :          idata = idata + 1
   34672     1732660 :          data_tmp = ISHFT(pack_tmp, 4)
   34673     1732660 :          ipack = ipack + 1
   34674     1732660 :          pack_tmp = packed_data(ipack)
   34675     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34676     1732660 :          pack_tmp = ISHFT(pack_tmp, -4)
   34677     1732660 :          idata = idata + 1
   34678     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34679     1732660 :          full_data(idata) = data_tmp
   34680     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34681     1732660 :          idata = idata + 1
   34682     1732660 :          data_tmp = ISHFT(pack_tmp, 28)
   34683     1732660 :          ipack = ipack + 1
   34684     1732660 :          pack_tmp = packed_data(ipack)
   34685     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34686     1732660 :          pack_tmp = ISHFT(pack_tmp, -28)
   34687     1732660 :          idata = idata + 1
   34688     1732660 :          data_tmp = ISHFT(pack_tmp, 8)
   34689     1732660 :          ipack = ipack + 1
   34690     1732660 :          pack_tmp = packed_data(ipack)
   34691     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34692     1732660 :          pack_tmp = ISHFT(pack_tmp, -8)
   34693     1732660 :          idata = idata + 1
   34694     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34695     1732660 :          full_data(idata) = data_tmp
   34696     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34697     1732660 :          idata = idata + 1
   34698     1732660 :          data_tmp = ISHFT(pack_tmp, 32)
   34699     1732660 :          ipack = ipack + 1
   34700     1732660 :          pack_tmp = packed_data(ipack)
   34701     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34702     1732660 :          pack_tmp = ISHFT(pack_tmp, -32)
   34703     1732660 :          idata = idata + 1
   34704     1732660 :          data_tmp = ISHFT(pack_tmp, 12)
   34705     1732660 :          ipack = ipack + 1
   34706     1732660 :          pack_tmp = packed_data(ipack)
   34707     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34708     1732660 :          pack_tmp = ISHFT(pack_tmp, -12)
   34709     1732660 :          idata = idata + 1
   34710     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34711     1732660 :          full_data(idata) = data_tmp
   34712     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34713     1732660 :          idata = idata + 1
   34714     1732660 :          data_tmp = ISHFT(pack_tmp, 36)
   34715     1732660 :          ipack = ipack + 1
   34716     1732660 :          pack_tmp = packed_data(ipack)
   34717     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34718     1732660 :          pack_tmp = ISHFT(pack_tmp, -36)
   34719     1732660 :          idata = idata + 1
   34720     1732660 :          data_tmp = ISHFT(pack_tmp, 16)
   34721     1732660 :          ipack = ipack + 1
   34722     1732660 :          pack_tmp = packed_data(ipack)
   34723     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34724     1732660 :          pack_tmp = ISHFT(pack_tmp, -16)
   34725     1732660 :          idata = idata + 1
   34726     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34727     1732660 :          full_data(idata) = data_tmp
   34728     1732660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34729     1732660 :          idata = idata + 1
   34730     1732660 :          data_tmp = ISHFT(pack_tmp, 40)
   34731     1732660 :          ipack = ipack + 1
   34732     1732660 :          pack_tmp = packed_data(ipack)
   34733     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34734     1732660 :          pack_tmp = ISHFT(pack_tmp, -40)
   34735     1732660 :          idata = idata + 1
   34736     1732660 :          data_tmp = ISHFT(pack_tmp, 20)
   34737     1732660 :          ipack = ipack + 1
   34738     1732660 :          pack_tmp = packed_data(ipack)
   34739     1732660 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34740     1732660 :          pack_tmp = ISHFT(pack_tmp, -20)
   34741     1732660 :          idata = idata + 1
   34742     1732660 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34743     1732660 :          full_data(idata) = data_tmp
   34744     1732912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34745             :       END DO
   34746      121343 :       IF (Ndata_rep < Ndata) THEN
   34747       24568 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34748             :       END IF
   34749      121343 :    END SUBROUTINE bits2ints_44
   34750             : 
   34751             : ! **************************************************************************************************
   34752             : !> \brief ...
   34753             : !> \param Ndata ...
   34754             : !> \param packed_data ...
   34755             : !> \param full_data ...
   34756             : ! **************************************************************************************************
   34757       28203 :    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       28203 :       idata = 0
   34768       28203 :       ipack = 0
   34769       28203 :       Ndata_rep = (Ndata/64)*64
   34770       28203 :       DO kdata = 1, Ndata_rep, 64
   34771      408442 :          pack_tmp = 0
   34772      408442 :          idata = idata + 1
   34773      408442 :          data_tmp = full_data(idata)
   34774      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34775      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34776      408442 :          pack_tmp = ISHFT(pack_tmp, -19)
   34777      408442 :          idata = idata + 1
   34778      408442 :          data_tmp = full_data(idata)
   34779      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34780      408442 :          data_tmp = IAND(data_tmp, mask_left(19))
   34781      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34782      408442 :          ipack = ipack + 1
   34783      408442 :          packed_data(ipack) = pack_tmp
   34784      408442 :          data_tmp = full_data(idata)
   34785      408442 :          pack_tmp = ISHFT(data_tmp, 38)
   34786      408442 :          pack_tmp = ISHFT(pack_tmp, -38)
   34787      408442 :          idata = idata + 1
   34788      408442 :          data_tmp = full_data(idata)
   34789      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34790      408442 :          data_tmp = IAND(data_tmp, mask_left(38))
   34791      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34792      408442 :          ipack = ipack + 1
   34793      408442 :          packed_data(ipack) = pack_tmp
   34794      408442 :          data_tmp = full_data(idata)
   34795      408442 :          pack_tmp = ISHFT(data_tmp, 57)
   34796      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34797      408442 :          idata = idata + 1
   34798      408442 :          data_tmp = full_data(idata)
   34799      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34800      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34801      408442 :          pack_tmp = ISHFT(pack_tmp, -12)
   34802      408442 :          idata = idata + 1
   34803      408442 :          data_tmp = full_data(idata)
   34804      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34805      408442 :          data_tmp = IAND(data_tmp, mask_left(12))
   34806      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34807      408442 :          ipack = ipack + 1
   34808      408442 :          packed_data(ipack) = pack_tmp
   34809      408442 :          data_tmp = full_data(idata)
   34810      408442 :          pack_tmp = ISHFT(data_tmp, 31)
   34811      408442 :          pack_tmp = ISHFT(pack_tmp, -31)
   34812      408442 :          idata = idata + 1
   34813      408442 :          data_tmp = full_data(idata)
   34814      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34815      408442 :          data_tmp = IAND(data_tmp, mask_left(31))
   34816      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34817      408442 :          ipack = ipack + 1
   34818      408442 :          packed_data(ipack) = pack_tmp
   34819      408442 :          data_tmp = full_data(idata)
   34820      408442 :          pack_tmp = ISHFT(data_tmp, 50)
   34821      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34822      408442 :          idata = idata + 1
   34823      408442 :          data_tmp = full_data(idata)
   34824      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34825      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34826      408442 :          pack_tmp = ISHFT(pack_tmp, -5)
   34827      408442 :          idata = idata + 1
   34828      408442 :          data_tmp = full_data(idata)
   34829      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34830      408442 :          data_tmp = IAND(data_tmp, mask_left(5))
   34831      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34832      408442 :          ipack = ipack + 1
   34833      408442 :          packed_data(ipack) = pack_tmp
   34834      408442 :          data_tmp = full_data(idata)
   34835      408442 :          pack_tmp = ISHFT(data_tmp, 24)
   34836      408442 :          pack_tmp = ISHFT(pack_tmp, -24)
   34837      408442 :          idata = idata + 1
   34838      408442 :          data_tmp = full_data(idata)
   34839      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34840      408442 :          data_tmp = IAND(data_tmp, mask_left(24))
   34841      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34842      408442 :          ipack = ipack + 1
   34843      408442 :          packed_data(ipack) = pack_tmp
   34844      408442 :          data_tmp = full_data(idata)
   34845      408442 :          pack_tmp = ISHFT(data_tmp, 43)
   34846      408442 :          pack_tmp = ISHFT(pack_tmp, -43)
   34847      408442 :          idata = idata + 1
   34848      408442 :          data_tmp = full_data(idata)
   34849      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34850      408442 :          data_tmp = IAND(data_tmp, mask_left(43))
   34851      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34852      408442 :          ipack = ipack + 1
   34853      408442 :          packed_data(ipack) = pack_tmp
   34854      408442 :          data_tmp = full_data(idata)
   34855      408442 :          pack_tmp = ISHFT(data_tmp, 62)
   34856      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34857      408442 :          idata = idata + 1
   34858      408442 :          data_tmp = full_data(idata)
   34859      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34860      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34861      408442 :          pack_tmp = ISHFT(pack_tmp, -17)
   34862      408442 :          idata = idata + 1
   34863      408442 :          data_tmp = full_data(idata)
   34864      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34865      408442 :          data_tmp = IAND(data_tmp, mask_left(17))
   34866      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34867      408442 :          ipack = ipack + 1
   34868      408442 :          packed_data(ipack) = pack_tmp
   34869      408442 :          data_tmp = full_data(idata)
   34870      408442 :          pack_tmp = ISHFT(data_tmp, 36)
   34871      408442 :          pack_tmp = ISHFT(pack_tmp, -36)
   34872      408442 :          idata = idata + 1
   34873      408442 :          data_tmp = full_data(idata)
   34874      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34875      408442 :          data_tmp = IAND(data_tmp, mask_left(36))
   34876      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34877      408442 :          ipack = ipack + 1
   34878      408442 :          packed_data(ipack) = pack_tmp
   34879      408442 :          data_tmp = full_data(idata)
   34880      408442 :          pack_tmp = ISHFT(data_tmp, 55)
   34881      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34882      408442 :          idata = idata + 1
   34883      408442 :          data_tmp = full_data(idata)
   34884      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34885      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34886      408442 :          pack_tmp = ISHFT(pack_tmp, -10)
   34887      408442 :          idata = idata + 1
   34888      408442 :          data_tmp = full_data(idata)
   34889      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34890      408442 :          data_tmp = IAND(data_tmp, mask_left(10))
   34891      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34892      408442 :          ipack = ipack + 1
   34893      408442 :          packed_data(ipack) = pack_tmp
   34894      408442 :          data_tmp = full_data(idata)
   34895      408442 :          pack_tmp = ISHFT(data_tmp, 29)
   34896      408442 :          pack_tmp = ISHFT(pack_tmp, -29)
   34897      408442 :          idata = idata + 1
   34898      408442 :          data_tmp = full_data(idata)
   34899      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34900      408442 :          data_tmp = IAND(data_tmp, mask_left(29))
   34901      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34902      408442 :          ipack = ipack + 1
   34903      408442 :          packed_data(ipack) = pack_tmp
   34904      408442 :          data_tmp = full_data(idata)
   34905      408442 :          pack_tmp = ISHFT(data_tmp, 48)
   34906      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34907      408442 :          idata = idata + 1
   34908      408442 :          data_tmp = full_data(idata)
   34909      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34910      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34911      408442 :          pack_tmp = ISHFT(pack_tmp, -3)
   34912      408442 :          idata = idata + 1
   34913      408442 :          data_tmp = full_data(idata)
   34914      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34915      408442 :          data_tmp = IAND(data_tmp, mask_left(3))
   34916      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34917      408442 :          ipack = ipack + 1
   34918      408442 :          packed_data(ipack) = pack_tmp
   34919      408442 :          data_tmp = full_data(idata)
   34920      408442 :          pack_tmp = ISHFT(data_tmp, 22)
   34921      408442 :          pack_tmp = ISHFT(pack_tmp, -22)
   34922      408442 :          idata = idata + 1
   34923      408442 :          data_tmp = full_data(idata)
   34924      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34925      408442 :          data_tmp = IAND(data_tmp, mask_left(22))
   34926      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34927      408442 :          ipack = ipack + 1
   34928      408442 :          packed_data(ipack) = pack_tmp
   34929      408442 :          data_tmp = full_data(idata)
   34930      408442 :          pack_tmp = ISHFT(data_tmp, 41)
   34931      408442 :          pack_tmp = ISHFT(pack_tmp, -41)
   34932      408442 :          idata = idata + 1
   34933      408442 :          data_tmp = full_data(idata)
   34934      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34935      408442 :          data_tmp = IAND(data_tmp, mask_left(41))
   34936      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34937      408442 :          ipack = ipack + 1
   34938      408442 :          packed_data(ipack) = pack_tmp
   34939      408442 :          data_tmp = full_data(idata)
   34940      408442 :          pack_tmp = ISHFT(data_tmp, 60)
   34941      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34942      408442 :          idata = idata + 1
   34943      408442 :          data_tmp = full_data(idata)
   34944      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34945      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34946      408442 :          pack_tmp = ISHFT(pack_tmp, -15)
   34947      408442 :          idata = idata + 1
   34948      408442 :          data_tmp = full_data(idata)
   34949      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34950      408442 :          data_tmp = IAND(data_tmp, mask_left(15))
   34951      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34952      408442 :          ipack = ipack + 1
   34953      408442 :          packed_data(ipack) = pack_tmp
   34954      408442 :          data_tmp = full_data(idata)
   34955      408442 :          pack_tmp = ISHFT(data_tmp, 34)
   34956      408442 :          pack_tmp = ISHFT(pack_tmp, -34)
   34957      408442 :          idata = idata + 1
   34958      408442 :          data_tmp = full_data(idata)
   34959      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34960      408442 :          data_tmp = IAND(data_tmp, mask_left(34))
   34961      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34962      408442 :          ipack = ipack + 1
   34963      408442 :          packed_data(ipack) = pack_tmp
   34964      408442 :          data_tmp = full_data(idata)
   34965      408442 :          pack_tmp = ISHFT(data_tmp, 53)
   34966      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34967      408442 :          idata = idata + 1
   34968      408442 :          data_tmp = full_data(idata)
   34969      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34970      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34971      408442 :          pack_tmp = ISHFT(pack_tmp, -8)
   34972      408442 :          idata = idata + 1
   34973      408442 :          data_tmp = full_data(idata)
   34974      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34975      408442 :          data_tmp = IAND(data_tmp, mask_left(8))
   34976      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34977      408442 :          ipack = ipack + 1
   34978      408442 :          packed_data(ipack) = pack_tmp
   34979      408442 :          data_tmp = full_data(idata)
   34980      408442 :          pack_tmp = ISHFT(data_tmp, 27)
   34981      408442 :          pack_tmp = ISHFT(pack_tmp, -27)
   34982      408442 :          idata = idata + 1
   34983      408442 :          data_tmp = full_data(idata)
   34984      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34985      408442 :          data_tmp = IAND(data_tmp, mask_left(27))
   34986      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34987      408442 :          ipack = ipack + 1
   34988      408442 :          packed_data(ipack) = pack_tmp
   34989      408442 :          data_tmp = full_data(idata)
   34990      408442 :          pack_tmp = ISHFT(data_tmp, 46)
   34991      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   34992      408442 :          idata = idata + 1
   34993      408442 :          data_tmp = full_data(idata)
   34994      408442 :          data_tmp = ISHFT(data_tmp, 19)
   34995      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34996      408442 :          pack_tmp = ISHFT(pack_tmp, -1)
   34997      408442 :          idata = idata + 1
   34998      408442 :          data_tmp = full_data(idata)
   34999      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35000      408442 :          data_tmp = IAND(data_tmp, mask_left(1))
   35001      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35002      408442 :          ipack = ipack + 1
   35003      408442 :          packed_data(ipack) = pack_tmp
   35004      408442 :          data_tmp = full_data(idata)
   35005      408442 :          pack_tmp = ISHFT(data_tmp, 20)
   35006      408442 :          pack_tmp = ISHFT(pack_tmp, -20)
   35007      408442 :          idata = idata + 1
   35008      408442 :          data_tmp = full_data(idata)
   35009      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35010      408442 :          data_tmp = IAND(data_tmp, mask_left(20))
   35011      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35012      408442 :          ipack = ipack + 1
   35013      408442 :          packed_data(ipack) = pack_tmp
   35014      408442 :          data_tmp = full_data(idata)
   35015      408442 :          pack_tmp = ISHFT(data_tmp, 39)
   35016      408442 :          pack_tmp = ISHFT(pack_tmp, -39)
   35017      408442 :          idata = idata + 1
   35018      408442 :          data_tmp = full_data(idata)
   35019      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35020      408442 :          data_tmp = IAND(data_tmp, mask_left(39))
   35021      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35022      408442 :          ipack = ipack + 1
   35023      408442 :          packed_data(ipack) = pack_tmp
   35024      408442 :          data_tmp = full_data(idata)
   35025      408442 :          pack_tmp = ISHFT(data_tmp, 58)
   35026      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35027      408442 :          idata = idata + 1
   35028      408442 :          data_tmp = full_data(idata)
   35029      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35030      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35031      408442 :          pack_tmp = ISHFT(pack_tmp, -13)
   35032      408442 :          idata = idata + 1
   35033      408442 :          data_tmp = full_data(idata)
   35034      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35035      408442 :          data_tmp = IAND(data_tmp, mask_left(13))
   35036      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35037      408442 :          ipack = ipack + 1
   35038      408442 :          packed_data(ipack) = pack_tmp
   35039      408442 :          data_tmp = full_data(idata)
   35040      408442 :          pack_tmp = ISHFT(data_tmp, 32)
   35041      408442 :          pack_tmp = ISHFT(pack_tmp, -32)
   35042      408442 :          idata = idata + 1
   35043      408442 :          data_tmp = full_data(idata)
   35044      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35045      408442 :          data_tmp = IAND(data_tmp, mask_left(32))
   35046      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35047      408442 :          ipack = ipack + 1
   35048      408442 :          packed_data(ipack) = pack_tmp
   35049      408442 :          data_tmp = full_data(idata)
   35050      408442 :          pack_tmp = ISHFT(data_tmp, 51)
   35051      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35052      408442 :          idata = idata + 1
   35053      408442 :          data_tmp = full_data(idata)
   35054      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35055      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35056      408442 :          pack_tmp = ISHFT(pack_tmp, -6)
   35057      408442 :          idata = idata + 1
   35058      408442 :          data_tmp = full_data(idata)
   35059      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35060      408442 :          data_tmp = IAND(data_tmp, mask_left(6))
   35061      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35062      408442 :          ipack = ipack + 1
   35063      408442 :          packed_data(ipack) = pack_tmp
   35064      408442 :          data_tmp = full_data(idata)
   35065      408442 :          pack_tmp = ISHFT(data_tmp, 25)
   35066      408442 :          pack_tmp = ISHFT(pack_tmp, -25)
   35067      408442 :          idata = idata + 1
   35068      408442 :          data_tmp = full_data(idata)
   35069      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35070      408442 :          data_tmp = IAND(data_tmp, mask_left(25))
   35071      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35072      408442 :          ipack = ipack + 1
   35073      408442 :          packed_data(ipack) = pack_tmp
   35074      408442 :          data_tmp = full_data(idata)
   35075      408442 :          pack_tmp = ISHFT(data_tmp, 44)
   35076      408442 :          pack_tmp = ISHFT(pack_tmp, -44)
   35077      408442 :          idata = idata + 1
   35078      408442 :          data_tmp = full_data(idata)
   35079      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35080      408442 :          data_tmp = IAND(data_tmp, mask_left(44))
   35081      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35082      408442 :          ipack = ipack + 1
   35083      408442 :          packed_data(ipack) = pack_tmp
   35084      408442 :          data_tmp = full_data(idata)
   35085      408442 :          pack_tmp = ISHFT(data_tmp, 63)
   35086      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35087      408442 :          idata = idata + 1
   35088      408442 :          data_tmp = full_data(idata)
   35089      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35090      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35091      408442 :          pack_tmp = ISHFT(pack_tmp, -18)
   35092      408442 :          idata = idata + 1
   35093      408442 :          data_tmp = full_data(idata)
   35094      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35095      408442 :          data_tmp = IAND(data_tmp, mask_left(18))
   35096      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35097      408442 :          ipack = ipack + 1
   35098      408442 :          packed_data(ipack) = pack_tmp
   35099      408442 :          data_tmp = full_data(idata)
   35100      408442 :          pack_tmp = ISHFT(data_tmp, 37)
   35101      408442 :          pack_tmp = ISHFT(pack_tmp, -37)
   35102      408442 :          idata = idata + 1
   35103      408442 :          data_tmp = full_data(idata)
   35104      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35105      408442 :          data_tmp = IAND(data_tmp, mask_left(37))
   35106      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35107      408442 :          ipack = ipack + 1
   35108      408442 :          packed_data(ipack) = pack_tmp
   35109      408442 :          data_tmp = full_data(idata)
   35110      408442 :          pack_tmp = ISHFT(data_tmp, 56)
   35111      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35112      408442 :          idata = idata + 1
   35113      408442 :          data_tmp = full_data(idata)
   35114      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35115      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35116      408442 :          pack_tmp = ISHFT(pack_tmp, -11)
   35117      408442 :          idata = idata + 1
   35118      408442 :          data_tmp = full_data(idata)
   35119      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35120      408442 :          data_tmp = IAND(data_tmp, mask_left(11))
   35121      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35122      408442 :          ipack = ipack + 1
   35123      408442 :          packed_data(ipack) = pack_tmp
   35124      408442 :          data_tmp = full_data(idata)
   35125      408442 :          pack_tmp = ISHFT(data_tmp, 30)
   35126      408442 :          pack_tmp = ISHFT(pack_tmp, -30)
   35127      408442 :          idata = idata + 1
   35128      408442 :          data_tmp = full_data(idata)
   35129      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35130      408442 :          data_tmp = IAND(data_tmp, mask_left(30))
   35131      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35132      408442 :          ipack = ipack + 1
   35133      408442 :          packed_data(ipack) = pack_tmp
   35134      408442 :          data_tmp = full_data(idata)
   35135      408442 :          pack_tmp = ISHFT(data_tmp, 49)
   35136      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35137      408442 :          idata = idata + 1
   35138      408442 :          data_tmp = full_data(idata)
   35139      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35140      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35141      408442 :          pack_tmp = ISHFT(pack_tmp, -4)
   35142      408442 :          idata = idata + 1
   35143      408442 :          data_tmp = full_data(idata)
   35144      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35145      408442 :          data_tmp = IAND(data_tmp, mask_left(4))
   35146      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35147      408442 :          ipack = ipack + 1
   35148      408442 :          packed_data(ipack) = pack_tmp
   35149      408442 :          data_tmp = full_data(idata)
   35150      408442 :          pack_tmp = ISHFT(data_tmp, 23)
   35151      408442 :          pack_tmp = ISHFT(pack_tmp, -23)
   35152      408442 :          idata = idata + 1
   35153      408442 :          data_tmp = full_data(idata)
   35154      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35155      408442 :          data_tmp = IAND(data_tmp, mask_left(23))
   35156      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35157      408442 :          ipack = ipack + 1
   35158      408442 :          packed_data(ipack) = pack_tmp
   35159      408442 :          data_tmp = full_data(idata)
   35160      408442 :          pack_tmp = ISHFT(data_tmp, 42)
   35161      408442 :          pack_tmp = ISHFT(pack_tmp, -42)
   35162      408442 :          idata = idata + 1
   35163      408442 :          data_tmp = full_data(idata)
   35164      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35165      408442 :          data_tmp = IAND(data_tmp, mask_left(42))
   35166      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35167      408442 :          ipack = ipack + 1
   35168      408442 :          packed_data(ipack) = pack_tmp
   35169      408442 :          data_tmp = full_data(idata)
   35170      408442 :          pack_tmp = ISHFT(data_tmp, 61)
   35171      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35172      408442 :          idata = idata + 1
   35173      408442 :          data_tmp = full_data(idata)
   35174      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35175      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35176      408442 :          pack_tmp = ISHFT(pack_tmp, -16)
   35177      408442 :          idata = idata + 1
   35178      408442 :          data_tmp = full_data(idata)
   35179      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35180      408442 :          data_tmp = IAND(data_tmp, mask_left(16))
   35181      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35182      408442 :          ipack = ipack + 1
   35183      408442 :          packed_data(ipack) = pack_tmp
   35184      408442 :          data_tmp = full_data(idata)
   35185      408442 :          pack_tmp = ISHFT(data_tmp, 35)
   35186      408442 :          pack_tmp = ISHFT(pack_tmp, -35)
   35187      408442 :          idata = idata + 1
   35188      408442 :          data_tmp = full_data(idata)
   35189      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35190      408442 :          data_tmp = IAND(data_tmp, mask_left(35))
   35191      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35192      408442 :          ipack = ipack + 1
   35193      408442 :          packed_data(ipack) = pack_tmp
   35194      408442 :          data_tmp = full_data(idata)
   35195      408442 :          pack_tmp = ISHFT(data_tmp, 54)
   35196      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35197      408442 :          idata = idata + 1
   35198      408442 :          data_tmp = full_data(idata)
   35199      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35200      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35201      408442 :          pack_tmp = ISHFT(pack_tmp, -9)
   35202      408442 :          idata = idata + 1
   35203      408442 :          data_tmp = full_data(idata)
   35204      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35205      408442 :          data_tmp = IAND(data_tmp, mask_left(9))
   35206      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35207      408442 :          ipack = ipack + 1
   35208      408442 :          packed_data(ipack) = pack_tmp
   35209      408442 :          data_tmp = full_data(idata)
   35210      408442 :          pack_tmp = ISHFT(data_tmp, 28)
   35211      408442 :          pack_tmp = ISHFT(pack_tmp, -28)
   35212      408442 :          idata = idata + 1
   35213      408442 :          data_tmp = full_data(idata)
   35214      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35215      408442 :          data_tmp = IAND(data_tmp, mask_left(28))
   35216      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35217      408442 :          ipack = ipack + 1
   35218      408442 :          packed_data(ipack) = pack_tmp
   35219      408442 :          data_tmp = full_data(idata)
   35220      408442 :          pack_tmp = ISHFT(data_tmp, 47)
   35221      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35222      408442 :          idata = idata + 1
   35223      408442 :          data_tmp = full_data(idata)
   35224      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35225      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35226      408442 :          pack_tmp = ISHFT(pack_tmp, -2)
   35227      408442 :          idata = idata + 1
   35228      408442 :          data_tmp = full_data(idata)
   35229      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35230      408442 :          data_tmp = IAND(data_tmp, mask_left(2))
   35231      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35232      408442 :          ipack = ipack + 1
   35233      408442 :          packed_data(ipack) = pack_tmp
   35234      408442 :          data_tmp = full_data(idata)
   35235      408442 :          pack_tmp = ISHFT(data_tmp, 21)
   35236      408442 :          pack_tmp = ISHFT(pack_tmp, -21)
   35237      408442 :          idata = idata + 1
   35238      408442 :          data_tmp = full_data(idata)
   35239      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35240      408442 :          data_tmp = IAND(data_tmp, mask_left(21))
   35241      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35242      408442 :          ipack = ipack + 1
   35243      408442 :          packed_data(ipack) = pack_tmp
   35244      408442 :          data_tmp = full_data(idata)
   35245      408442 :          pack_tmp = ISHFT(data_tmp, 40)
   35246      408442 :          pack_tmp = ISHFT(pack_tmp, -40)
   35247      408442 :          idata = idata + 1
   35248      408442 :          data_tmp = full_data(idata)
   35249      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35250      408442 :          data_tmp = IAND(data_tmp, mask_left(40))
   35251      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35252      408442 :          ipack = ipack + 1
   35253      408442 :          packed_data(ipack) = pack_tmp
   35254      408442 :          data_tmp = full_data(idata)
   35255      408442 :          pack_tmp = ISHFT(data_tmp, 59)
   35256      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35257      408442 :          idata = idata + 1
   35258      408442 :          data_tmp = full_data(idata)
   35259      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35260      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35261      408442 :          pack_tmp = ISHFT(pack_tmp, -14)
   35262      408442 :          idata = idata + 1
   35263      408442 :          data_tmp = full_data(idata)
   35264      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35265      408442 :          data_tmp = IAND(data_tmp, mask_left(14))
   35266      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35267      408442 :          ipack = ipack + 1
   35268      408442 :          packed_data(ipack) = pack_tmp
   35269      408442 :          data_tmp = full_data(idata)
   35270      408442 :          pack_tmp = ISHFT(data_tmp, 33)
   35271      408442 :          pack_tmp = ISHFT(pack_tmp, -33)
   35272      408442 :          idata = idata + 1
   35273      408442 :          data_tmp = full_data(idata)
   35274      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35275      408442 :          data_tmp = IAND(data_tmp, mask_left(33))
   35276      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35277      408442 :          ipack = ipack + 1
   35278      408442 :          packed_data(ipack) = pack_tmp
   35279      408442 :          data_tmp = full_data(idata)
   35280      408442 :          pack_tmp = ISHFT(data_tmp, 52)
   35281      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35282      408442 :          idata = idata + 1
   35283      408442 :          data_tmp = full_data(idata)
   35284      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35285      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35286      408442 :          pack_tmp = ISHFT(pack_tmp, -7)
   35287      408442 :          idata = idata + 1
   35288      408442 :          data_tmp = full_data(idata)
   35289      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35290      408442 :          data_tmp = IAND(data_tmp, mask_left(7))
   35291      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35292      408442 :          ipack = ipack + 1
   35293      408442 :          packed_data(ipack) = pack_tmp
   35294      408442 :          data_tmp = full_data(idata)
   35295      408442 :          pack_tmp = ISHFT(data_tmp, 26)
   35296      408442 :          pack_tmp = ISHFT(pack_tmp, -26)
   35297      408442 :          idata = idata + 1
   35298      408442 :          data_tmp = full_data(idata)
   35299      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35300      408442 :          data_tmp = IAND(data_tmp, mask_left(26))
   35301      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35302      408442 :          ipack = ipack + 1
   35303      408442 :          packed_data(ipack) = pack_tmp
   35304      408442 :          data_tmp = full_data(idata)
   35305      408442 :          pack_tmp = ISHFT(data_tmp, 45)
   35306      408442 :          pack_tmp = ISHFT(pack_tmp, -45)
   35307      408442 :          idata = idata + 1
   35308      408442 :          data_tmp = full_data(idata)
   35309      408442 :          data_tmp = ISHFT(data_tmp, 19)
   35310      408442 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35311             :          pack_tmp = ISHFT(pack_tmp, 0)
   35312      408442 :          pack_tmp = ISHFT(pack_tmp, 0)
   35313      408442 :          ipack = ipack + 1
   35314      408493 :          packed_data(ipack) = pack_tmp
   35315             :       END DO
   35316       28203 :       IF (Ndata_rep < Ndata) THEN
   35317        5036 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35318             :       END IF
   35319       28203 :    END SUBROUTINE ints2bits_45
   35320             : 
   35321             : ! **************************************************************************************************
   35322             : !> \brief ...
   35323             : !> \param Ndata ...
   35324             : !> \param packed_data ...
   35325             : !> \param full_data ...
   35326             : ! **************************************************************************************************
   35327      130319 :    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      130319 :       ipack = 0
   35338      130319 :       idata = 0
   35339      130319 :       pack_tmp = 0
   35340      130319 :       Ndata_rep = (Ndata/64)*64
   35341      130319 :       DO kdata = 1, Ndata_rep, 64
   35342     1814668 :          idata = idata + 1
   35343     1814668 :          data_tmp = ISHFT(pack_tmp, 45)
   35344     1814668 :          ipack = ipack + 1
   35345     1814668 :          pack_tmp = packed_data(ipack)
   35346     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   35347     1814668 :          pack_tmp = ISHFT(pack_tmp, -45)
   35348     1814668 :          idata = idata + 1
   35349     1814668 :          data_tmp = ISHFT(pack_tmp, 26)
   35350     1814668 :          ipack = ipack + 1
   35351     1814668 :          pack_tmp = packed_data(ipack)
   35352     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   35353     1814668 :          pack_tmp = ISHFT(pack_tmp, -26)
   35354     1814668 :          idata = idata + 1
   35355     1814668 :          data_tmp = ISHFT(pack_tmp, 7)
   35356     1814668 :          ipack = ipack + 1
   35357     1814668 :          pack_tmp = packed_data(ipack)
   35358     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   35359     1814668 :          pack_tmp = ISHFT(pack_tmp, -7)
   35360     1814668 :          idata = idata + 1
   35361     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35362     1814668 :          full_data(idata) = data_tmp
   35363     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35364     1814668 :          idata = idata + 1
   35365     1814668 :          data_tmp = ISHFT(pack_tmp, 33)
   35366     1814668 :          ipack = ipack + 1
   35367     1814668 :          pack_tmp = packed_data(ipack)
   35368     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   35369     1814668 :          pack_tmp = ISHFT(pack_tmp, -33)
   35370     1814668 :          idata = idata + 1
   35371     1814668 :          data_tmp = ISHFT(pack_tmp, 14)
   35372     1814668 :          ipack = ipack + 1
   35373     1814668 :          pack_tmp = packed_data(ipack)
   35374     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   35375     1814668 :          pack_tmp = ISHFT(pack_tmp, -14)
   35376     1814668 :          idata = idata + 1
   35377     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35378     1814668 :          full_data(idata) = data_tmp
   35379     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35380     1814668 :          idata = idata + 1
   35381     1814668 :          data_tmp = ISHFT(pack_tmp, 40)
   35382     1814668 :          ipack = ipack + 1
   35383     1814668 :          pack_tmp = packed_data(ipack)
   35384     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   35385     1814668 :          pack_tmp = ISHFT(pack_tmp, -40)
   35386     1814668 :          idata = idata + 1
   35387     1814668 :          data_tmp = ISHFT(pack_tmp, 21)
   35388     1814668 :          ipack = ipack + 1
   35389     1814668 :          pack_tmp = packed_data(ipack)
   35390     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   35391     1814668 :          pack_tmp = ISHFT(pack_tmp, -21)
   35392     1814668 :          idata = idata + 1
   35393     1814668 :          data_tmp = ISHFT(pack_tmp, 2)
   35394     1814668 :          ipack = ipack + 1
   35395     1814668 :          pack_tmp = packed_data(ipack)
   35396     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   35397     1814668 :          pack_tmp = ISHFT(pack_tmp, -2)
   35398     1814668 :          idata = idata + 1
   35399     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35400     1814668 :          full_data(idata) = data_tmp
   35401     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35402     1814668 :          idata = idata + 1
   35403     1814668 :          data_tmp = ISHFT(pack_tmp, 28)
   35404     1814668 :          ipack = ipack + 1
   35405     1814668 :          pack_tmp = packed_data(ipack)
   35406     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   35407     1814668 :          pack_tmp = ISHFT(pack_tmp, -28)
   35408     1814668 :          idata = idata + 1
   35409     1814668 :          data_tmp = ISHFT(pack_tmp, 9)
   35410     1814668 :          ipack = ipack + 1
   35411     1814668 :          pack_tmp = packed_data(ipack)
   35412     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   35413     1814668 :          pack_tmp = ISHFT(pack_tmp, -9)
   35414     1814668 :          idata = idata + 1
   35415     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35416     1814668 :          full_data(idata) = data_tmp
   35417     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35418     1814668 :          idata = idata + 1
   35419     1814668 :          data_tmp = ISHFT(pack_tmp, 35)
   35420     1814668 :          ipack = ipack + 1
   35421     1814668 :          pack_tmp = packed_data(ipack)
   35422     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   35423     1814668 :          pack_tmp = ISHFT(pack_tmp, -35)
   35424     1814668 :          idata = idata + 1
   35425     1814668 :          data_tmp = ISHFT(pack_tmp, 16)
   35426     1814668 :          ipack = ipack + 1
   35427     1814668 :          pack_tmp = packed_data(ipack)
   35428     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   35429     1814668 :          pack_tmp = ISHFT(pack_tmp, -16)
   35430     1814668 :          idata = idata + 1
   35431     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35432     1814668 :          full_data(idata) = data_tmp
   35433     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35434     1814668 :          idata = idata + 1
   35435     1814668 :          data_tmp = ISHFT(pack_tmp, 42)
   35436     1814668 :          ipack = ipack + 1
   35437     1814668 :          pack_tmp = packed_data(ipack)
   35438     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   35439     1814668 :          pack_tmp = ISHFT(pack_tmp, -42)
   35440     1814668 :          idata = idata + 1
   35441     1814668 :          data_tmp = ISHFT(pack_tmp, 23)
   35442     1814668 :          ipack = ipack + 1
   35443     1814668 :          pack_tmp = packed_data(ipack)
   35444     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   35445     1814668 :          pack_tmp = ISHFT(pack_tmp, -23)
   35446     1814668 :          idata = idata + 1
   35447     1814668 :          data_tmp = ISHFT(pack_tmp, 4)
   35448     1814668 :          ipack = ipack + 1
   35449     1814668 :          pack_tmp = packed_data(ipack)
   35450     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   35451     1814668 :          pack_tmp = ISHFT(pack_tmp, -4)
   35452     1814668 :          idata = idata + 1
   35453     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35454     1814668 :          full_data(idata) = data_tmp
   35455     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35456     1814668 :          idata = idata + 1
   35457     1814668 :          data_tmp = ISHFT(pack_tmp, 30)
   35458     1814668 :          ipack = ipack + 1
   35459     1814668 :          pack_tmp = packed_data(ipack)
   35460     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   35461     1814668 :          pack_tmp = ISHFT(pack_tmp, -30)
   35462     1814668 :          idata = idata + 1
   35463     1814668 :          data_tmp = ISHFT(pack_tmp, 11)
   35464     1814668 :          ipack = ipack + 1
   35465     1814668 :          pack_tmp = packed_data(ipack)
   35466     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   35467     1814668 :          pack_tmp = ISHFT(pack_tmp, -11)
   35468     1814668 :          idata = idata + 1
   35469     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35470     1814668 :          full_data(idata) = data_tmp
   35471     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35472     1814668 :          idata = idata + 1
   35473     1814668 :          data_tmp = ISHFT(pack_tmp, 37)
   35474     1814668 :          ipack = ipack + 1
   35475     1814668 :          pack_tmp = packed_data(ipack)
   35476     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   35477     1814668 :          pack_tmp = ISHFT(pack_tmp, -37)
   35478     1814668 :          idata = idata + 1
   35479     1814668 :          data_tmp = ISHFT(pack_tmp, 18)
   35480     1814668 :          ipack = ipack + 1
   35481     1814668 :          pack_tmp = packed_data(ipack)
   35482     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   35483     1814668 :          pack_tmp = ISHFT(pack_tmp, -18)
   35484     1814668 :          idata = idata + 1
   35485     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35486     1814668 :          full_data(idata) = data_tmp
   35487     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35488     1814668 :          idata = idata + 1
   35489     1814668 :          data_tmp = ISHFT(pack_tmp, 44)
   35490     1814668 :          ipack = ipack + 1
   35491     1814668 :          pack_tmp = packed_data(ipack)
   35492     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   35493     1814668 :          pack_tmp = ISHFT(pack_tmp, -44)
   35494     1814668 :          idata = idata + 1
   35495     1814668 :          data_tmp = ISHFT(pack_tmp, 25)
   35496     1814668 :          ipack = ipack + 1
   35497     1814668 :          pack_tmp = packed_data(ipack)
   35498     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   35499     1814668 :          pack_tmp = ISHFT(pack_tmp, -25)
   35500     1814668 :          idata = idata + 1
   35501     1814668 :          data_tmp = ISHFT(pack_tmp, 6)
   35502     1814668 :          ipack = ipack + 1
   35503     1814668 :          pack_tmp = packed_data(ipack)
   35504     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   35505     1814668 :          pack_tmp = ISHFT(pack_tmp, -6)
   35506     1814668 :          idata = idata + 1
   35507     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35508     1814668 :          full_data(idata) = data_tmp
   35509     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35510     1814668 :          idata = idata + 1
   35511     1814668 :          data_tmp = ISHFT(pack_tmp, 32)
   35512     1814668 :          ipack = ipack + 1
   35513     1814668 :          pack_tmp = packed_data(ipack)
   35514     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   35515     1814668 :          pack_tmp = ISHFT(pack_tmp, -32)
   35516     1814668 :          idata = idata + 1
   35517     1814668 :          data_tmp = ISHFT(pack_tmp, 13)
   35518     1814668 :          ipack = ipack + 1
   35519     1814668 :          pack_tmp = packed_data(ipack)
   35520     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   35521     1814668 :          pack_tmp = ISHFT(pack_tmp, -13)
   35522     1814668 :          idata = idata + 1
   35523     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35524     1814668 :          full_data(idata) = data_tmp
   35525     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35526     1814668 :          idata = idata + 1
   35527     1814668 :          data_tmp = ISHFT(pack_tmp, 39)
   35528     1814668 :          ipack = ipack + 1
   35529     1814668 :          pack_tmp = packed_data(ipack)
   35530     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   35531     1814668 :          pack_tmp = ISHFT(pack_tmp, -39)
   35532     1814668 :          idata = idata + 1
   35533     1814668 :          data_tmp = ISHFT(pack_tmp, 20)
   35534     1814668 :          ipack = ipack + 1
   35535     1814668 :          pack_tmp = packed_data(ipack)
   35536     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   35537     1814668 :          pack_tmp = ISHFT(pack_tmp, -20)
   35538     1814668 :          idata = idata + 1
   35539     1814668 :          data_tmp = ISHFT(pack_tmp, 1)
   35540     1814668 :          ipack = ipack + 1
   35541     1814668 :          pack_tmp = packed_data(ipack)
   35542     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   35543     1814668 :          pack_tmp = ISHFT(pack_tmp, -1)
   35544     1814668 :          idata = idata + 1
   35545     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35546     1814668 :          full_data(idata) = data_tmp
   35547     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35548     1814668 :          idata = idata + 1
   35549     1814668 :          data_tmp = ISHFT(pack_tmp, 27)
   35550     1814668 :          ipack = ipack + 1
   35551     1814668 :          pack_tmp = packed_data(ipack)
   35552     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   35553     1814668 :          pack_tmp = ISHFT(pack_tmp, -27)
   35554     1814668 :          idata = idata + 1
   35555     1814668 :          data_tmp = ISHFT(pack_tmp, 8)
   35556     1814668 :          ipack = ipack + 1
   35557     1814668 :          pack_tmp = packed_data(ipack)
   35558     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   35559     1814668 :          pack_tmp = ISHFT(pack_tmp, -8)
   35560     1814668 :          idata = idata + 1
   35561     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35562     1814668 :          full_data(idata) = data_tmp
   35563     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35564     1814668 :          idata = idata + 1
   35565     1814668 :          data_tmp = ISHFT(pack_tmp, 34)
   35566     1814668 :          ipack = ipack + 1
   35567     1814668 :          pack_tmp = packed_data(ipack)
   35568     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   35569     1814668 :          pack_tmp = ISHFT(pack_tmp, -34)
   35570     1814668 :          idata = idata + 1
   35571     1814668 :          data_tmp = ISHFT(pack_tmp, 15)
   35572     1814668 :          ipack = ipack + 1
   35573     1814668 :          pack_tmp = packed_data(ipack)
   35574     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   35575     1814668 :          pack_tmp = ISHFT(pack_tmp, -15)
   35576     1814668 :          idata = idata + 1
   35577     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35578     1814668 :          full_data(idata) = data_tmp
   35579     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35580     1814668 :          idata = idata + 1
   35581     1814668 :          data_tmp = ISHFT(pack_tmp, 41)
   35582     1814668 :          ipack = ipack + 1
   35583     1814668 :          pack_tmp = packed_data(ipack)
   35584     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   35585     1814668 :          pack_tmp = ISHFT(pack_tmp, -41)
   35586     1814668 :          idata = idata + 1
   35587     1814668 :          data_tmp = ISHFT(pack_tmp, 22)
   35588     1814668 :          ipack = ipack + 1
   35589     1814668 :          pack_tmp = packed_data(ipack)
   35590     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   35591     1814668 :          pack_tmp = ISHFT(pack_tmp, -22)
   35592     1814668 :          idata = idata + 1
   35593     1814668 :          data_tmp = ISHFT(pack_tmp, 3)
   35594     1814668 :          ipack = ipack + 1
   35595     1814668 :          pack_tmp = packed_data(ipack)
   35596     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   35597     1814668 :          pack_tmp = ISHFT(pack_tmp, -3)
   35598     1814668 :          idata = idata + 1
   35599     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35600     1814668 :          full_data(idata) = data_tmp
   35601     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35602     1814668 :          idata = idata + 1
   35603     1814668 :          data_tmp = ISHFT(pack_tmp, 29)
   35604     1814668 :          ipack = ipack + 1
   35605     1814668 :          pack_tmp = packed_data(ipack)
   35606     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   35607     1814668 :          pack_tmp = ISHFT(pack_tmp, -29)
   35608     1814668 :          idata = idata + 1
   35609     1814668 :          data_tmp = ISHFT(pack_tmp, 10)
   35610     1814668 :          ipack = ipack + 1
   35611     1814668 :          pack_tmp = packed_data(ipack)
   35612     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   35613     1814668 :          pack_tmp = ISHFT(pack_tmp, -10)
   35614     1814668 :          idata = idata + 1
   35615     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35616     1814668 :          full_data(idata) = data_tmp
   35617     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35618     1814668 :          idata = idata + 1
   35619     1814668 :          data_tmp = ISHFT(pack_tmp, 36)
   35620     1814668 :          ipack = ipack + 1
   35621     1814668 :          pack_tmp = packed_data(ipack)
   35622     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   35623     1814668 :          pack_tmp = ISHFT(pack_tmp, -36)
   35624     1814668 :          idata = idata + 1
   35625     1814668 :          data_tmp = ISHFT(pack_tmp, 17)
   35626     1814668 :          ipack = ipack + 1
   35627     1814668 :          pack_tmp = packed_data(ipack)
   35628     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   35629     1814668 :          pack_tmp = ISHFT(pack_tmp, -17)
   35630     1814668 :          idata = idata + 1
   35631     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35632     1814668 :          full_data(idata) = data_tmp
   35633     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35634     1814668 :          idata = idata + 1
   35635     1814668 :          data_tmp = ISHFT(pack_tmp, 43)
   35636     1814668 :          ipack = ipack + 1
   35637     1814668 :          pack_tmp = packed_data(ipack)
   35638     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   35639     1814668 :          pack_tmp = ISHFT(pack_tmp, -43)
   35640     1814668 :          idata = idata + 1
   35641     1814668 :          data_tmp = ISHFT(pack_tmp, 24)
   35642     1814668 :          ipack = ipack + 1
   35643     1814668 :          pack_tmp = packed_data(ipack)
   35644     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   35645     1814668 :          pack_tmp = ISHFT(pack_tmp, -24)
   35646     1814668 :          idata = idata + 1
   35647     1814668 :          data_tmp = ISHFT(pack_tmp, 5)
   35648     1814668 :          ipack = ipack + 1
   35649     1814668 :          pack_tmp = packed_data(ipack)
   35650     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   35651     1814668 :          pack_tmp = ISHFT(pack_tmp, -5)
   35652     1814668 :          idata = idata + 1
   35653     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35654     1814668 :          full_data(idata) = data_tmp
   35655     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35656     1814668 :          idata = idata + 1
   35657     1814668 :          data_tmp = ISHFT(pack_tmp, 31)
   35658     1814668 :          ipack = ipack + 1
   35659     1814668 :          pack_tmp = packed_data(ipack)
   35660     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   35661     1814668 :          pack_tmp = ISHFT(pack_tmp, -31)
   35662     1814668 :          idata = idata + 1
   35663     1814668 :          data_tmp = ISHFT(pack_tmp, 12)
   35664     1814668 :          ipack = ipack + 1
   35665     1814668 :          pack_tmp = packed_data(ipack)
   35666     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   35667     1814668 :          pack_tmp = ISHFT(pack_tmp, -12)
   35668     1814668 :          idata = idata + 1
   35669     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35670     1814668 :          full_data(idata) = data_tmp
   35671     1814668 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35672     1814668 :          idata = idata + 1
   35673     1814668 :          data_tmp = ISHFT(pack_tmp, 38)
   35674     1814668 :          ipack = ipack + 1
   35675     1814668 :          pack_tmp = packed_data(ipack)
   35676     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   35677     1814668 :          pack_tmp = ISHFT(pack_tmp, -38)
   35678     1814668 :          idata = idata + 1
   35679     1814668 :          data_tmp = ISHFT(pack_tmp, 19)
   35680     1814668 :          ipack = ipack + 1
   35681     1814668 :          pack_tmp = packed_data(ipack)
   35682     1814668 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   35683     1814668 :          pack_tmp = ISHFT(pack_tmp, -19)
   35684     1814668 :          idata = idata + 1
   35685     1814668 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35686     1814668 :          full_data(idata) = data_tmp
   35687     1815644 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35688             :       END DO
   35689      130319 :       IF (Ndata_rep < Ndata) THEN
   35690       31816 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35691             :       END IF
   35692      130319 :    END SUBROUTINE bits2ints_45
   35693             : 
   35694             : ! **************************************************************************************************
   35695             : !> \brief ...
   35696             : !> \param Ndata ...
   35697             : !> \param packed_data ...
   35698             : !> \param full_data ...
   35699             : ! **************************************************************************************************
   35700       27754 :    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       27754 :       idata = 0
   35711       27754 :       ipack = 0
   35712       27754 :       Ndata_rep = (Ndata/64)*64
   35713       27754 :       DO kdata = 1, Ndata_rep, 64
   35714      403737 :          pack_tmp = 0
   35715      403737 :          idata = idata + 1
   35716      403737 :          data_tmp = full_data(idata)
   35717      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35718      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35719      403737 :          pack_tmp = ISHFT(pack_tmp, -18)
   35720      403737 :          idata = idata + 1
   35721      403737 :          data_tmp = full_data(idata)
   35722      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35723      403737 :          data_tmp = IAND(data_tmp, mask_left(18))
   35724      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35725      403737 :          ipack = ipack + 1
   35726      403737 :          packed_data(ipack) = pack_tmp
   35727      403737 :          data_tmp = full_data(idata)
   35728      403737 :          pack_tmp = ISHFT(data_tmp, 36)
   35729      403737 :          pack_tmp = ISHFT(pack_tmp, -36)
   35730      403737 :          idata = idata + 1
   35731      403737 :          data_tmp = full_data(idata)
   35732      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35733      403737 :          data_tmp = IAND(data_tmp, mask_left(36))
   35734      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35735      403737 :          ipack = ipack + 1
   35736      403737 :          packed_data(ipack) = pack_tmp
   35737      403737 :          data_tmp = full_data(idata)
   35738      403737 :          pack_tmp = ISHFT(data_tmp, 54)
   35739      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35740      403737 :          idata = idata + 1
   35741      403737 :          data_tmp = full_data(idata)
   35742      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35743      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35744      403737 :          pack_tmp = ISHFT(pack_tmp, -8)
   35745      403737 :          idata = idata + 1
   35746      403737 :          data_tmp = full_data(idata)
   35747      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35748      403737 :          data_tmp = IAND(data_tmp, mask_left(8))
   35749      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35750      403737 :          ipack = ipack + 1
   35751      403737 :          packed_data(ipack) = pack_tmp
   35752      403737 :          data_tmp = full_data(idata)
   35753      403737 :          pack_tmp = ISHFT(data_tmp, 26)
   35754      403737 :          pack_tmp = ISHFT(pack_tmp, -26)
   35755      403737 :          idata = idata + 1
   35756      403737 :          data_tmp = full_data(idata)
   35757      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35758      403737 :          data_tmp = IAND(data_tmp, mask_left(26))
   35759      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35760      403737 :          ipack = ipack + 1
   35761      403737 :          packed_data(ipack) = pack_tmp
   35762      403737 :          data_tmp = full_data(idata)
   35763      403737 :          pack_tmp = ISHFT(data_tmp, 44)
   35764      403737 :          pack_tmp = ISHFT(pack_tmp, -44)
   35765      403737 :          idata = idata + 1
   35766      403737 :          data_tmp = full_data(idata)
   35767      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35768      403737 :          data_tmp = IAND(data_tmp, mask_left(44))
   35769      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35770      403737 :          ipack = ipack + 1
   35771      403737 :          packed_data(ipack) = pack_tmp
   35772      403737 :          data_tmp = full_data(idata)
   35773      403737 :          pack_tmp = ISHFT(data_tmp, 62)
   35774      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35775      403737 :          idata = idata + 1
   35776      403737 :          data_tmp = full_data(idata)
   35777      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35778      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35779      403737 :          pack_tmp = ISHFT(pack_tmp, -16)
   35780      403737 :          idata = idata + 1
   35781      403737 :          data_tmp = full_data(idata)
   35782      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35783      403737 :          data_tmp = IAND(data_tmp, mask_left(16))
   35784      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35785      403737 :          ipack = ipack + 1
   35786      403737 :          packed_data(ipack) = pack_tmp
   35787      403737 :          data_tmp = full_data(idata)
   35788      403737 :          pack_tmp = ISHFT(data_tmp, 34)
   35789      403737 :          pack_tmp = ISHFT(pack_tmp, -34)
   35790      403737 :          idata = idata + 1
   35791      403737 :          data_tmp = full_data(idata)
   35792      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35793      403737 :          data_tmp = IAND(data_tmp, mask_left(34))
   35794      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35795      403737 :          ipack = ipack + 1
   35796      403737 :          packed_data(ipack) = pack_tmp
   35797      403737 :          data_tmp = full_data(idata)
   35798      403737 :          pack_tmp = ISHFT(data_tmp, 52)
   35799      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35800      403737 :          idata = idata + 1
   35801      403737 :          data_tmp = full_data(idata)
   35802      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35803      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35804      403737 :          pack_tmp = ISHFT(pack_tmp, -6)
   35805      403737 :          idata = idata + 1
   35806      403737 :          data_tmp = full_data(idata)
   35807      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35808      403737 :          data_tmp = IAND(data_tmp, mask_left(6))
   35809      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35810      403737 :          ipack = ipack + 1
   35811      403737 :          packed_data(ipack) = pack_tmp
   35812      403737 :          data_tmp = full_data(idata)
   35813      403737 :          pack_tmp = ISHFT(data_tmp, 24)
   35814      403737 :          pack_tmp = ISHFT(pack_tmp, -24)
   35815      403737 :          idata = idata + 1
   35816      403737 :          data_tmp = full_data(idata)
   35817      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35818      403737 :          data_tmp = IAND(data_tmp, mask_left(24))
   35819      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35820      403737 :          ipack = ipack + 1
   35821      403737 :          packed_data(ipack) = pack_tmp
   35822      403737 :          data_tmp = full_data(idata)
   35823      403737 :          pack_tmp = ISHFT(data_tmp, 42)
   35824      403737 :          pack_tmp = ISHFT(pack_tmp, -42)
   35825      403737 :          idata = idata + 1
   35826      403737 :          data_tmp = full_data(idata)
   35827      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35828      403737 :          data_tmp = IAND(data_tmp, mask_left(42))
   35829      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35830      403737 :          ipack = ipack + 1
   35831      403737 :          packed_data(ipack) = pack_tmp
   35832      403737 :          data_tmp = full_data(idata)
   35833      403737 :          pack_tmp = ISHFT(data_tmp, 60)
   35834      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35835      403737 :          idata = idata + 1
   35836      403737 :          data_tmp = full_data(idata)
   35837      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35838      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35839      403737 :          pack_tmp = ISHFT(pack_tmp, -14)
   35840      403737 :          idata = idata + 1
   35841      403737 :          data_tmp = full_data(idata)
   35842      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35843      403737 :          data_tmp = IAND(data_tmp, mask_left(14))
   35844      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35845      403737 :          ipack = ipack + 1
   35846      403737 :          packed_data(ipack) = pack_tmp
   35847      403737 :          data_tmp = full_data(idata)
   35848      403737 :          pack_tmp = ISHFT(data_tmp, 32)
   35849      403737 :          pack_tmp = ISHFT(pack_tmp, -32)
   35850      403737 :          idata = idata + 1
   35851      403737 :          data_tmp = full_data(idata)
   35852      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35853      403737 :          data_tmp = IAND(data_tmp, mask_left(32))
   35854      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35855      403737 :          ipack = ipack + 1
   35856      403737 :          packed_data(ipack) = pack_tmp
   35857      403737 :          data_tmp = full_data(idata)
   35858      403737 :          pack_tmp = ISHFT(data_tmp, 50)
   35859      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35860      403737 :          idata = idata + 1
   35861      403737 :          data_tmp = full_data(idata)
   35862      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35863      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35864      403737 :          pack_tmp = ISHFT(pack_tmp, -4)
   35865      403737 :          idata = idata + 1
   35866      403737 :          data_tmp = full_data(idata)
   35867      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35868      403737 :          data_tmp = IAND(data_tmp, mask_left(4))
   35869      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35870      403737 :          ipack = ipack + 1
   35871      403737 :          packed_data(ipack) = pack_tmp
   35872      403737 :          data_tmp = full_data(idata)
   35873      403737 :          pack_tmp = ISHFT(data_tmp, 22)
   35874      403737 :          pack_tmp = ISHFT(pack_tmp, -22)
   35875      403737 :          idata = idata + 1
   35876      403737 :          data_tmp = full_data(idata)
   35877      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35878      403737 :          data_tmp = IAND(data_tmp, mask_left(22))
   35879      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35880      403737 :          ipack = ipack + 1
   35881      403737 :          packed_data(ipack) = pack_tmp
   35882      403737 :          data_tmp = full_data(idata)
   35883      403737 :          pack_tmp = ISHFT(data_tmp, 40)
   35884      403737 :          pack_tmp = ISHFT(pack_tmp, -40)
   35885      403737 :          idata = idata + 1
   35886      403737 :          data_tmp = full_data(idata)
   35887      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35888      403737 :          data_tmp = IAND(data_tmp, mask_left(40))
   35889      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35890      403737 :          ipack = ipack + 1
   35891      403737 :          packed_data(ipack) = pack_tmp
   35892      403737 :          data_tmp = full_data(idata)
   35893      403737 :          pack_tmp = ISHFT(data_tmp, 58)
   35894      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35895      403737 :          idata = idata + 1
   35896      403737 :          data_tmp = full_data(idata)
   35897      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35898      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35899      403737 :          pack_tmp = ISHFT(pack_tmp, -12)
   35900      403737 :          idata = idata + 1
   35901      403737 :          data_tmp = full_data(idata)
   35902      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35903      403737 :          data_tmp = IAND(data_tmp, mask_left(12))
   35904      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35905      403737 :          ipack = ipack + 1
   35906      403737 :          packed_data(ipack) = pack_tmp
   35907      403737 :          data_tmp = full_data(idata)
   35908      403737 :          pack_tmp = ISHFT(data_tmp, 30)
   35909      403737 :          pack_tmp = ISHFT(pack_tmp, -30)
   35910      403737 :          idata = idata + 1
   35911      403737 :          data_tmp = full_data(idata)
   35912      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35913      403737 :          data_tmp = IAND(data_tmp, mask_left(30))
   35914      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35915      403737 :          ipack = ipack + 1
   35916      403737 :          packed_data(ipack) = pack_tmp
   35917      403737 :          data_tmp = full_data(idata)
   35918      403737 :          pack_tmp = ISHFT(data_tmp, 48)
   35919      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35920      403737 :          idata = idata + 1
   35921      403737 :          data_tmp = full_data(idata)
   35922      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35923      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35924      403737 :          pack_tmp = ISHFT(pack_tmp, -2)
   35925      403737 :          idata = idata + 1
   35926      403737 :          data_tmp = full_data(idata)
   35927      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35928      403737 :          data_tmp = IAND(data_tmp, mask_left(2))
   35929      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35930      403737 :          ipack = ipack + 1
   35931      403737 :          packed_data(ipack) = pack_tmp
   35932      403737 :          data_tmp = full_data(idata)
   35933      403737 :          pack_tmp = ISHFT(data_tmp, 20)
   35934      403737 :          pack_tmp = ISHFT(pack_tmp, -20)
   35935      403737 :          idata = idata + 1
   35936      403737 :          data_tmp = full_data(idata)
   35937      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35938      403737 :          data_tmp = IAND(data_tmp, mask_left(20))
   35939      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35940      403737 :          ipack = ipack + 1
   35941      403737 :          packed_data(ipack) = pack_tmp
   35942      403737 :          data_tmp = full_data(idata)
   35943      403737 :          pack_tmp = ISHFT(data_tmp, 38)
   35944      403737 :          pack_tmp = ISHFT(pack_tmp, -38)
   35945      403737 :          idata = idata + 1
   35946      403737 :          data_tmp = full_data(idata)
   35947      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35948      403737 :          data_tmp = IAND(data_tmp, mask_left(38))
   35949      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35950      403737 :          ipack = ipack + 1
   35951      403737 :          packed_data(ipack) = pack_tmp
   35952      403737 :          data_tmp = full_data(idata)
   35953      403737 :          pack_tmp = ISHFT(data_tmp, 56)
   35954      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35955      403737 :          idata = idata + 1
   35956      403737 :          data_tmp = full_data(idata)
   35957      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35958      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35959      403737 :          pack_tmp = ISHFT(pack_tmp, -10)
   35960      403737 :          idata = idata + 1
   35961      403737 :          data_tmp = full_data(idata)
   35962      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35963      403737 :          data_tmp = IAND(data_tmp, mask_left(10))
   35964      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35965      403737 :          ipack = ipack + 1
   35966      403737 :          packed_data(ipack) = pack_tmp
   35967      403737 :          data_tmp = full_data(idata)
   35968      403737 :          pack_tmp = ISHFT(data_tmp, 28)
   35969      403737 :          pack_tmp = ISHFT(pack_tmp, -28)
   35970      403737 :          idata = idata + 1
   35971      403737 :          data_tmp = full_data(idata)
   35972      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35973      403737 :          data_tmp = IAND(data_tmp, mask_left(28))
   35974      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35975      403737 :          ipack = ipack + 1
   35976      403737 :          packed_data(ipack) = pack_tmp
   35977      403737 :          data_tmp = full_data(idata)
   35978      403737 :          pack_tmp = ISHFT(data_tmp, 46)
   35979      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   35980      403737 :          idata = idata + 1
   35981      403737 :          data_tmp = full_data(idata)
   35982      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35983      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35984      403737 :          pack_tmp = ISHFT(pack_tmp, 0)
   35985      403737 :          idata = idata + 1
   35986      403737 :          data_tmp = full_data(idata)
   35987      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35988      403737 :          data_tmp = IAND(data_tmp, mask_left(0))
   35989      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35990      403737 :          ipack = ipack + 1
   35991      403737 :          packed_data(ipack) = pack_tmp
   35992      403737 :          data_tmp = full_data(idata)
   35993      403737 :          pack_tmp = ISHFT(data_tmp, 18)
   35994      403737 :          pack_tmp = ISHFT(pack_tmp, -18)
   35995      403737 :          idata = idata + 1
   35996      403737 :          data_tmp = full_data(idata)
   35997      403737 :          data_tmp = ISHFT(data_tmp, 18)
   35998      403737 :          data_tmp = IAND(data_tmp, mask_left(18))
   35999      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36000      403737 :          ipack = ipack + 1
   36001      403737 :          packed_data(ipack) = pack_tmp
   36002      403737 :          data_tmp = full_data(idata)
   36003      403737 :          pack_tmp = ISHFT(data_tmp, 36)
   36004      403737 :          pack_tmp = ISHFT(pack_tmp, -36)
   36005      403737 :          idata = idata + 1
   36006      403737 :          data_tmp = full_data(idata)
   36007      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36008      403737 :          data_tmp = IAND(data_tmp, mask_left(36))
   36009      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36010      403737 :          ipack = ipack + 1
   36011      403737 :          packed_data(ipack) = pack_tmp
   36012      403737 :          data_tmp = full_data(idata)
   36013      403737 :          pack_tmp = ISHFT(data_tmp, 54)
   36014      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36015      403737 :          idata = idata + 1
   36016      403737 :          data_tmp = full_data(idata)
   36017      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36018      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36019      403737 :          pack_tmp = ISHFT(pack_tmp, -8)
   36020      403737 :          idata = idata + 1
   36021      403737 :          data_tmp = full_data(idata)
   36022      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36023      403737 :          data_tmp = IAND(data_tmp, mask_left(8))
   36024      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36025      403737 :          ipack = ipack + 1
   36026      403737 :          packed_data(ipack) = pack_tmp
   36027      403737 :          data_tmp = full_data(idata)
   36028      403737 :          pack_tmp = ISHFT(data_tmp, 26)
   36029      403737 :          pack_tmp = ISHFT(pack_tmp, -26)
   36030      403737 :          idata = idata + 1
   36031      403737 :          data_tmp = full_data(idata)
   36032      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36033      403737 :          data_tmp = IAND(data_tmp, mask_left(26))
   36034      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36035      403737 :          ipack = ipack + 1
   36036      403737 :          packed_data(ipack) = pack_tmp
   36037      403737 :          data_tmp = full_data(idata)
   36038      403737 :          pack_tmp = ISHFT(data_tmp, 44)
   36039      403737 :          pack_tmp = ISHFT(pack_tmp, -44)
   36040      403737 :          idata = idata + 1
   36041      403737 :          data_tmp = full_data(idata)
   36042      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36043      403737 :          data_tmp = IAND(data_tmp, mask_left(44))
   36044      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36045      403737 :          ipack = ipack + 1
   36046      403737 :          packed_data(ipack) = pack_tmp
   36047      403737 :          data_tmp = full_data(idata)
   36048      403737 :          pack_tmp = ISHFT(data_tmp, 62)
   36049      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36050      403737 :          idata = idata + 1
   36051      403737 :          data_tmp = full_data(idata)
   36052      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36053      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36054      403737 :          pack_tmp = ISHFT(pack_tmp, -16)
   36055      403737 :          idata = idata + 1
   36056      403737 :          data_tmp = full_data(idata)
   36057      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36058      403737 :          data_tmp = IAND(data_tmp, mask_left(16))
   36059      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36060      403737 :          ipack = ipack + 1
   36061      403737 :          packed_data(ipack) = pack_tmp
   36062      403737 :          data_tmp = full_data(idata)
   36063      403737 :          pack_tmp = ISHFT(data_tmp, 34)
   36064      403737 :          pack_tmp = ISHFT(pack_tmp, -34)
   36065      403737 :          idata = idata + 1
   36066      403737 :          data_tmp = full_data(idata)
   36067      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36068      403737 :          data_tmp = IAND(data_tmp, mask_left(34))
   36069      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36070      403737 :          ipack = ipack + 1
   36071      403737 :          packed_data(ipack) = pack_tmp
   36072      403737 :          data_tmp = full_data(idata)
   36073      403737 :          pack_tmp = ISHFT(data_tmp, 52)
   36074      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36075      403737 :          idata = idata + 1
   36076      403737 :          data_tmp = full_data(idata)
   36077      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36078      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36079      403737 :          pack_tmp = ISHFT(pack_tmp, -6)
   36080      403737 :          idata = idata + 1
   36081      403737 :          data_tmp = full_data(idata)
   36082      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36083      403737 :          data_tmp = IAND(data_tmp, mask_left(6))
   36084      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36085      403737 :          ipack = ipack + 1
   36086      403737 :          packed_data(ipack) = pack_tmp
   36087      403737 :          data_tmp = full_data(idata)
   36088      403737 :          pack_tmp = ISHFT(data_tmp, 24)
   36089      403737 :          pack_tmp = ISHFT(pack_tmp, -24)
   36090      403737 :          idata = idata + 1
   36091      403737 :          data_tmp = full_data(idata)
   36092      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36093      403737 :          data_tmp = IAND(data_tmp, mask_left(24))
   36094      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36095      403737 :          ipack = ipack + 1
   36096      403737 :          packed_data(ipack) = pack_tmp
   36097      403737 :          data_tmp = full_data(idata)
   36098      403737 :          pack_tmp = ISHFT(data_tmp, 42)
   36099      403737 :          pack_tmp = ISHFT(pack_tmp, -42)
   36100      403737 :          idata = idata + 1
   36101      403737 :          data_tmp = full_data(idata)
   36102      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36103      403737 :          data_tmp = IAND(data_tmp, mask_left(42))
   36104      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36105      403737 :          ipack = ipack + 1
   36106      403737 :          packed_data(ipack) = pack_tmp
   36107      403737 :          data_tmp = full_data(idata)
   36108      403737 :          pack_tmp = ISHFT(data_tmp, 60)
   36109      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36110      403737 :          idata = idata + 1
   36111      403737 :          data_tmp = full_data(idata)
   36112      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36113      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36114      403737 :          pack_tmp = ISHFT(pack_tmp, -14)
   36115      403737 :          idata = idata + 1
   36116      403737 :          data_tmp = full_data(idata)
   36117      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36118      403737 :          data_tmp = IAND(data_tmp, mask_left(14))
   36119      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36120      403737 :          ipack = ipack + 1
   36121      403737 :          packed_data(ipack) = pack_tmp
   36122      403737 :          data_tmp = full_data(idata)
   36123      403737 :          pack_tmp = ISHFT(data_tmp, 32)
   36124      403737 :          pack_tmp = ISHFT(pack_tmp, -32)
   36125      403737 :          idata = idata + 1
   36126      403737 :          data_tmp = full_data(idata)
   36127      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36128      403737 :          data_tmp = IAND(data_tmp, mask_left(32))
   36129      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36130      403737 :          ipack = ipack + 1
   36131      403737 :          packed_data(ipack) = pack_tmp
   36132      403737 :          data_tmp = full_data(idata)
   36133      403737 :          pack_tmp = ISHFT(data_tmp, 50)
   36134      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36135      403737 :          idata = idata + 1
   36136      403737 :          data_tmp = full_data(idata)
   36137      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36138      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36139      403737 :          pack_tmp = ISHFT(pack_tmp, -4)
   36140      403737 :          idata = idata + 1
   36141      403737 :          data_tmp = full_data(idata)
   36142      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36143      403737 :          data_tmp = IAND(data_tmp, mask_left(4))
   36144      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36145      403737 :          ipack = ipack + 1
   36146      403737 :          packed_data(ipack) = pack_tmp
   36147      403737 :          data_tmp = full_data(idata)
   36148      403737 :          pack_tmp = ISHFT(data_tmp, 22)
   36149      403737 :          pack_tmp = ISHFT(pack_tmp, -22)
   36150      403737 :          idata = idata + 1
   36151      403737 :          data_tmp = full_data(idata)
   36152      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36153      403737 :          data_tmp = IAND(data_tmp, mask_left(22))
   36154      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36155      403737 :          ipack = ipack + 1
   36156      403737 :          packed_data(ipack) = pack_tmp
   36157      403737 :          data_tmp = full_data(idata)
   36158      403737 :          pack_tmp = ISHFT(data_tmp, 40)
   36159      403737 :          pack_tmp = ISHFT(pack_tmp, -40)
   36160      403737 :          idata = idata + 1
   36161      403737 :          data_tmp = full_data(idata)
   36162      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36163      403737 :          data_tmp = IAND(data_tmp, mask_left(40))
   36164      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36165      403737 :          ipack = ipack + 1
   36166      403737 :          packed_data(ipack) = pack_tmp
   36167      403737 :          data_tmp = full_data(idata)
   36168      403737 :          pack_tmp = ISHFT(data_tmp, 58)
   36169      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36170      403737 :          idata = idata + 1
   36171      403737 :          data_tmp = full_data(idata)
   36172      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36173      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36174      403737 :          pack_tmp = ISHFT(pack_tmp, -12)
   36175      403737 :          idata = idata + 1
   36176      403737 :          data_tmp = full_data(idata)
   36177      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36178      403737 :          data_tmp = IAND(data_tmp, mask_left(12))
   36179      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36180      403737 :          ipack = ipack + 1
   36181      403737 :          packed_data(ipack) = pack_tmp
   36182      403737 :          data_tmp = full_data(idata)
   36183      403737 :          pack_tmp = ISHFT(data_tmp, 30)
   36184      403737 :          pack_tmp = ISHFT(pack_tmp, -30)
   36185      403737 :          idata = idata + 1
   36186      403737 :          data_tmp = full_data(idata)
   36187      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36188      403737 :          data_tmp = IAND(data_tmp, mask_left(30))
   36189      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36190      403737 :          ipack = ipack + 1
   36191      403737 :          packed_data(ipack) = pack_tmp
   36192      403737 :          data_tmp = full_data(idata)
   36193      403737 :          pack_tmp = ISHFT(data_tmp, 48)
   36194      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36195      403737 :          idata = idata + 1
   36196      403737 :          data_tmp = full_data(idata)
   36197      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36198      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36199      403737 :          pack_tmp = ISHFT(pack_tmp, -2)
   36200      403737 :          idata = idata + 1
   36201      403737 :          data_tmp = full_data(idata)
   36202      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36203      403737 :          data_tmp = IAND(data_tmp, mask_left(2))
   36204      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36205      403737 :          ipack = ipack + 1
   36206      403737 :          packed_data(ipack) = pack_tmp
   36207      403737 :          data_tmp = full_data(idata)
   36208      403737 :          pack_tmp = ISHFT(data_tmp, 20)
   36209      403737 :          pack_tmp = ISHFT(pack_tmp, -20)
   36210      403737 :          idata = idata + 1
   36211      403737 :          data_tmp = full_data(idata)
   36212      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36213      403737 :          data_tmp = IAND(data_tmp, mask_left(20))
   36214      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36215      403737 :          ipack = ipack + 1
   36216      403737 :          packed_data(ipack) = pack_tmp
   36217      403737 :          data_tmp = full_data(idata)
   36218      403737 :          pack_tmp = ISHFT(data_tmp, 38)
   36219      403737 :          pack_tmp = ISHFT(pack_tmp, -38)
   36220      403737 :          idata = idata + 1
   36221      403737 :          data_tmp = full_data(idata)
   36222      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36223      403737 :          data_tmp = IAND(data_tmp, mask_left(38))
   36224      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36225      403737 :          ipack = ipack + 1
   36226      403737 :          packed_data(ipack) = pack_tmp
   36227      403737 :          data_tmp = full_data(idata)
   36228      403737 :          pack_tmp = ISHFT(data_tmp, 56)
   36229      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36230      403737 :          idata = idata + 1
   36231      403737 :          data_tmp = full_data(idata)
   36232      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36233      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36234      403737 :          pack_tmp = ISHFT(pack_tmp, -10)
   36235      403737 :          idata = idata + 1
   36236      403737 :          data_tmp = full_data(idata)
   36237      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36238      403737 :          data_tmp = IAND(data_tmp, mask_left(10))
   36239      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36240      403737 :          ipack = ipack + 1
   36241      403737 :          packed_data(ipack) = pack_tmp
   36242      403737 :          data_tmp = full_data(idata)
   36243      403737 :          pack_tmp = ISHFT(data_tmp, 28)
   36244      403737 :          pack_tmp = ISHFT(pack_tmp, -28)
   36245      403737 :          idata = idata + 1
   36246      403737 :          data_tmp = full_data(idata)
   36247      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36248      403737 :          data_tmp = IAND(data_tmp, mask_left(28))
   36249      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36250      403737 :          ipack = ipack + 1
   36251      403737 :          packed_data(ipack) = pack_tmp
   36252      403737 :          data_tmp = full_data(idata)
   36253      403737 :          pack_tmp = ISHFT(data_tmp, 46)
   36254      403737 :          pack_tmp = ISHFT(pack_tmp, -46)
   36255      403737 :          idata = idata + 1
   36256      403737 :          data_tmp = full_data(idata)
   36257      403737 :          data_tmp = ISHFT(data_tmp, 18)
   36258      403737 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36259             :          pack_tmp = ISHFT(pack_tmp, 0)
   36260      403737 :          pack_tmp = ISHFT(pack_tmp, 0)
   36261      403737 :          ipack = ipack + 1
   36262      403782 :          packed_data(ipack) = pack_tmp
   36263             :       END DO
   36264       27754 :       IF (Ndata_rep < Ndata) THEN
   36265        4622 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36266             :       END IF
   36267       27754 :    END SUBROUTINE ints2bits_46
   36268             : 
   36269             : ! **************************************************************************************************
   36270             : !> \brief ...
   36271             : !> \param Ndata ...
   36272             : !> \param packed_data ...
   36273             : !> \param full_data ...
   36274             : ! **************************************************************************************************
   36275      117956 :    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      117956 :       ipack = 0
   36286      117956 :       idata = 0
   36287      117956 :       pack_tmp = 0
   36288      117956 :       Ndata_rep = (Ndata/64)*64
   36289      117956 :       DO kdata = 1, Ndata_rep, 64
   36290     1699863 :          idata = idata + 1
   36291     1699863 :          data_tmp = ISHFT(pack_tmp, 46)
   36292     1699863 :          ipack = ipack + 1
   36293     1699863 :          pack_tmp = packed_data(ipack)
   36294     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36295     1699863 :          pack_tmp = ISHFT(pack_tmp, -46)
   36296     1699863 :          idata = idata + 1
   36297     1699863 :          data_tmp = ISHFT(pack_tmp, 28)
   36298     1699863 :          ipack = ipack + 1
   36299     1699863 :          pack_tmp = packed_data(ipack)
   36300     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36301     1699863 :          pack_tmp = ISHFT(pack_tmp, -28)
   36302     1699863 :          idata = idata + 1
   36303     1699863 :          data_tmp = ISHFT(pack_tmp, 10)
   36304     1699863 :          ipack = ipack + 1
   36305     1699863 :          pack_tmp = packed_data(ipack)
   36306     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36307     1699863 :          pack_tmp = ISHFT(pack_tmp, -10)
   36308     1699863 :          idata = idata + 1
   36309     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36310     1699863 :          full_data(idata) = data_tmp
   36311     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36312     1699863 :          idata = idata + 1
   36313     1699863 :          data_tmp = ISHFT(pack_tmp, 38)
   36314     1699863 :          ipack = ipack + 1
   36315     1699863 :          pack_tmp = packed_data(ipack)
   36316     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36317     1699863 :          pack_tmp = ISHFT(pack_tmp, -38)
   36318     1699863 :          idata = idata + 1
   36319     1699863 :          data_tmp = ISHFT(pack_tmp, 20)
   36320     1699863 :          ipack = ipack + 1
   36321     1699863 :          pack_tmp = packed_data(ipack)
   36322     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36323     1699863 :          pack_tmp = ISHFT(pack_tmp, -20)
   36324     1699863 :          idata = idata + 1
   36325     1699863 :          data_tmp = ISHFT(pack_tmp, 2)
   36326     1699863 :          ipack = ipack + 1
   36327     1699863 :          pack_tmp = packed_data(ipack)
   36328     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36329     1699863 :          pack_tmp = ISHFT(pack_tmp, -2)
   36330     1699863 :          idata = idata + 1
   36331     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36332     1699863 :          full_data(idata) = data_tmp
   36333     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36334     1699863 :          idata = idata + 1
   36335     1699863 :          data_tmp = ISHFT(pack_tmp, 30)
   36336     1699863 :          ipack = ipack + 1
   36337     1699863 :          pack_tmp = packed_data(ipack)
   36338     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36339     1699863 :          pack_tmp = ISHFT(pack_tmp, -30)
   36340     1699863 :          idata = idata + 1
   36341     1699863 :          data_tmp = ISHFT(pack_tmp, 12)
   36342     1699863 :          ipack = ipack + 1
   36343     1699863 :          pack_tmp = packed_data(ipack)
   36344     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36345     1699863 :          pack_tmp = ISHFT(pack_tmp, -12)
   36346     1699863 :          idata = idata + 1
   36347     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36348     1699863 :          full_data(idata) = data_tmp
   36349     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36350     1699863 :          idata = idata + 1
   36351     1699863 :          data_tmp = ISHFT(pack_tmp, 40)
   36352     1699863 :          ipack = ipack + 1
   36353     1699863 :          pack_tmp = packed_data(ipack)
   36354     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36355     1699863 :          pack_tmp = ISHFT(pack_tmp, -40)
   36356     1699863 :          idata = idata + 1
   36357     1699863 :          data_tmp = ISHFT(pack_tmp, 22)
   36358     1699863 :          ipack = ipack + 1
   36359     1699863 :          pack_tmp = packed_data(ipack)
   36360     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36361     1699863 :          pack_tmp = ISHFT(pack_tmp, -22)
   36362     1699863 :          idata = idata + 1
   36363     1699863 :          data_tmp = ISHFT(pack_tmp, 4)
   36364     1699863 :          ipack = ipack + 1
   36365     1699863 :          pack_tmp = packed_data(ipack)
   36366     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36367     1699863 :          pack_tmp = ISHFT(pack_tmp, -4)
   36368     1699863 :          idata = idata + 1
   36369     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36370     1699863 :          full_data(idata) = data_tmp
   36371     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36372     1699863 :          idata = idata + 1
   36373     1699863 :          data_tmp = ISHFT(pack_tmp, 32)
   36374     1699863 :          ipack = ipack + 1
   36375     1699863 :          pack_tmp = packed_data(ipack)
   36376     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36377     1699863 :          pack_tmp = ISHFT(pack_tmp, -32)
   36378     1699863 :          idata = idata + 1
   36379     1699863 :          data_tmp = ISHFT(pack_tmp, 14)
   36380     1699863 :          ipack = ipack + 1
   36381     1699863 :          pack_tmp = packed_data(ipack)
   36382     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36383     1699863 :          pack_tmp = ISHFT(pack_tmp, -14)
   36384     1699863 :          idata = idata + 1
   36385     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36386     1699863 :          full_data(idata) = data_tmp
   36387     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36388     1699863 :          idata = idata + 1
   36389     1699863 :          data_tmp = ISHFT(pack_tmp, 42)
   36390     1699863 :          ipack = ipack + 1
   36391     1699863 :          pack_tmp = packed_data(ipack)
   36392     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36393     1699863 :          pack_tmp = ISHFT(pack_tmp, -42)
   36394     1699863 :          idata = idata + 1
   36395     1699863 :          data_tmp = ISHFT(pack_tmp, 24)
   36396     1699863 :          ipack = ipack + 1
   36397     1699863 :          pack_tmp = packed_data(ipack)
   36398     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36399     1699863 :          pack_tmp = ISHFT(pack_tmp, -24)
   36400     1699863 :          idata = idata + 1
   36401     1699863 :          data_tmp = ISHFT(pack_tmp, 6)
   36402     1699863 :          ipack = ipack + 1
   36403     1699863 :          pack_tmp = packed_data(ipack)
   36404     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36405     1699863 :          pack_tmp = ISHFT(pack_tmp, -6)
   36406     1699863 :          idata = idata + 1
   36407     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36408     1699863 :          full_data(idata) = data_tmp
   36409     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36410     1699863 :          idata = idata + 1
   36411     1699863 :          data_tmp = ISHFT(pack_tmp, 34)
   36412     1699863 :          ipack = ipack + 1
   36413     1699863 :          pack_tmp = packed_data(ipack)
   36414     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36415     1699863 :          pack_tmp = ISHFT(pack_tmp, -34)
   36416     1699863 :          idata = idata + 1
   36417     1699863 :          data_tmp = ISHFT(pack_tmp, 16)
   36418     1699863 :          ipack = ipack + 1
   36419     1699863 :          pack_tmp = packed_data(ipack)
   36420     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36421     1699863 :          pack_tmp = ISHFT(pack_tmp, -16)
   36422     1699863 :          idata = idata + 1
   36423     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36424     1699863 :          full_data(idata) = data_tmp
   36425     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36426     1699863 :          idata = idata + 1
   36427     1699863 :          data_tmp = ISHFT(pack_tmp, 44)
   36428     1699863 :          ipack = ipack + 1
   36429     1699863 :          pack_tmp = packed_data(ipack)
   36430     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36431     1699863 :          pack_tmp = ISHFT(pack_tmp, -44)
   36432     1699863 :          idata = idata + 1
   36433     1699863 :          data_tmp = ISHFT(pack_tmp, 26)
   36434     1699863 :          ipack = ipack + 1
   36435     1699863 :          pack_tmp = packed_data(ipack)
   36436     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36437     1699863 :          pack_tmp = ISHFT(pack_tmp, -26)
   36438     1699863 :          idata = idata + 1
   36439     1699863 :          data_tmp = ISHFT(pack_tmp, 8)
   36440     1699863 :          ipack = ipack + 1
   36441     1699863 :          pack_tmp = packed_data(ipack)
   36442     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36443     1699863 :          pack_tmp = ISHFT(pack_tmp, -8)
   36444     1699863 :          idata = idata + 1
   36445     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36446     1699863 :          full_data(idata) = data_tmp
   36447     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36448     1699863 :          idata = idata + 1
   36449     1699863 :          data_tmp = ISHFT(pack_tmp, 36)
   36450     1699863 :          ipack = ipack + 1
   36451     1699863 :          pack_tmp = packed_data(ipack)
   36452     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36453     1699863 :          pack_tmp = ISHFT(pack_tmp, -36)
   36454     1699863 :          idata = idata + 1
   36455     1699863 :          data_tmp = ISHFT(pack_tmp, 18)
   36456     1699863 :          ipack = ipack + 1
   36457     1699863 :          pack_tmp = packed_data(ipack)
   36458     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36459     1699863 :          pack_tmp = ISHFT(pack_tmp, -18)
   36460     1699863 :          idata = idata + 1
   36461     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36462     1699863 :          full_data(idata) = data_tmp
   36463     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36464     1699863 :          idata = idata + 1
   36465     1699863 :          data_tmp = ISHFT(pack_tmp, 46)
   36466     1699863 :          ipack = ipack + 1
   36467     1699863 :          pack_tmp = packed_data(ipack)
   36468     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36469     1699863 :          pack_tmp = ISHFT(pack_tmp, -46)
   36470     1699863 :          idata = idata + 1
   36471     1699863 :          data_tmp = ISHFT(pack_tmp, 28)
   36472     1699863 :          ipack = ipack + 1
   36473     1699863 :          pack_tmp = packed_data(ipack)
   36474     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36475     1699863 :          pack_tmp = ISHFT(pack_tmp, -28)
   36476     1699863 :          idata = idata + 1
   36477     1699863 :          data_tmp = ISHFT(pack_tmp, 10)
   36478     1699863 :          ipack = ipack + 1
   36479     1699863 :          pack_tmp = packed_data(ipack)
   36480     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36481     1699863 :          pack_tmp = ISHFT(pack_tmp, -10)
   36482     1699863 :          idata = idata + 1
   36483     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36484     1699863 :          full_data(idata) = data_tmp
   36485     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36486     1699863 :          idata = idata + 1
   36487     1699863 :          data_tmp = ISHFT(pack_tmp, 38)
   36488     1699863 :          ipack = ipack + 1
   36489     1699863 :          pack_tmp = packed_data(ipack)
   36490     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36491     1699863 :          pack_tmp = ISHFT(pack_tmp, -38)
   36492     1699863 :          idata = idata + 1
   36493     1699863 :          data_tmp = ISHFT(pack_tmp, 20)
   36494     1699863 :          ipack = ipack + 1
   36495     1699863 :          pack_tmp = packed_data(ipack)
   36496     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36497     1699863 :          pack_tmp = ISHFT(pack_tmp, -20)
   36498     1699863 :          idata = idata + 1
   36499     1699863 :          data_tmp = ISHFT(pack_tmp, 2)
   36500     1699863 :          ipack = ipack + 1
   36501     1699863 :          pack_tmp = packed_data(ipack)
   36502     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36503     1699863 :          pack_tmp = ISHFT(pack_tmp, -2)
   36504     1699863 :          idata = idata + 1
   36505     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36506     1699863 :          full_data(idata) = data_tmp
   36507     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36508     1699863 :          idata = idata + 1
   36509     1699863 :          data_tmp = ISHFT(pack_tmp, 30)
   36510     1699863 :          ipack = ipack + 1
   36511     1699863 :          pack_tmp = packed_data(ipack)
   36512     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36513     1699863 :          pack_tmp = ISHFT(pack_tmp, -30)
   36514     1699863 :          idata = idata + 1
   36515     1699863 :          data_tmp = ISHFT(pack_tmp, 12)
   36516     1699863 :          ipack = ipack + 1
   36517     1699863 :          pack_tmp = packed_data(ipack)
   36518     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36519     1699863 :          pack_tmp = ISHFT(pack_tmp, -12)
   36520     1699863 :          idata = idata + 1
   36521     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36522     1699863 :          full_data(idata) = data_tmp
   36523     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36524     1699863 :          idata = idata + 1
   36525     1699863 :          data_tmp = ISHFT(pack_tmp, 40)
   36526     1699863 :          ipack = ipack + 1
   36527     1699863 :          pack_tmp = packed_data(ipack)
   36528     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36529     1699863 :          pack_tmp = ISHFT(pack_tmp, -40)
   36530     1699863 :          idata = idata + 1
   36531     1699863 :          data_tmp = ISHFT(pack_tmp, 22)
   36532     1699863 :          ipack = ipack + 1
   36533     1699863 :          pack_tmp = packed_data(ipack)
   36534     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36535     1699863 :          pack_tmp = ISHFT(pack_tmp, -22)
   36536     1699863 :          idata = idata + 1
   36537     1699863 :          data_tmp = ISHFT(pack_tmp, 4)
   36538     1699863 :          ipack = ipack + 1
   36539     1699863 :          pack_tmp = packed_data(ipack)
   36540     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36541     1699863 :          pack_tmp = ISHFT(pack_tmp, -4)
   36542     1699863 :          idata = idata + 1
   36543     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36544     1699863 :          full_data(idata) = data_tmp
   36545     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36546     1699863 :          idata = idata + 1
   36547     1699863 :          data_tmp = ISHFT(pack_tmp, 32)
   36548     1699863 :          ipack = ipack + 1
   36549     1699863 :          pack_tmp = packed_data(ipack)
   36550     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36551     1699863 :          pack_tmp = ISHFT(pack_tmp, -32)
   36552     1699863 :          idata = idata + 1
   36553     1699863 :          data_tmp = ISHFT(pack_tmp, 14)
   36554     1699863 :          ipack = ipack + 1
   36555     1699863 :          pack_tmp = packed_data(ipack)
   36556     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36557     1699863 :          pack_tmp = ISHFT(pack_tmp, -14)
   36558     1699863 :          idata = idata + 1
   36559     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36560     1699863 :          full_data(idata) = data_tmp
   36561     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36562     1699863 :          idata = idata + 1
   36563     1699863 :          data_tmp = ISHFT(pack_tmp, 42)
   36564     1699863 :          ipack = ipack + 1
   36565     1699863 :          pack_tmp = packed_data(ipack)
   36566     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36567     1699863 :          pack_tmp = ISHFT(pack_tmp, -42)
   36568     1699863 :          idata = idata + 1
   36569     1699863 :          data_tmp = ISHFT(pack_tmp, 24)
   36570     1699863 :          ipack = ipack + 1
   36571     1699863 :          pack_tmp = packed_data(ipack)
   36572     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36573     1699863 :          pack_tmp = ISHFT(pack_tmp, -24)
   36574     1699863 :          idata = idata + 1
   36575     1699863 :          data_tmp = ISHFT(pack_tmp, 6)
   36576     1699863 :          ipack = ipack + 1
   36577     1699863 :          pack_tmp = packed_data(ipack)
   36578     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36579     1699863 :          pack_tmp = ISHFT(pack_tmp, -6)
   36580     1699863 :          idata = idata + 1
   36581     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36582     1699863 :          full_data(idata) = data_tmp
   36583     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36584     1699863 :          idata = idata + 1
   36585     1699863 :          data_tmp = ISHFT(pack_tmp, 34)
   36586     1699863 :          ipack = ipack + 1
   36587     1699863 :          pack_tmp = packed_data(ipack)
   36588     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36589     1699863 :          pack_tmp = ISHFT(pack_tmp, -34)
   36590     1699863 :          idata = idata + 1
   36591     1699863 :          data_tmp = ISHFT(pack_tmp, 16)
   36592     1699863 :          ipack = ipack + 1
   36593     1699863 :          pack_tmp = packed_data(ipack)
   36594     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36595     1699863 :          pack_tmp = ISHFT(pack_tmp, -16)
   36596     1699863 :          idata = idata + 1
   36597     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36598     1699863 :          full_data(idata) = data_tmp
   36599     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36600     1699863 :          idata = idata + 1
   36601     1699863 :          data_tmp = ISHFT(pack_tmp, 44)
   36602     1699863 :          ipack = ipack + 1
   36603     1699863 :          pack_tmp = packed_data(ipack)
   36604     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36605     1699863 :          pack_tmp = ISHFT(pack_tmp, -44)
   36606     1699863 :          idata = idata + 1
   36607     1699863 :          data_tmp = ISHFT(pack_tmp, 26)
   36608     1699863 :          ipack = ipack + 1
   36609     1699863 :          pack_tmp = packed_data(ipack)
   36610     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36611     1699863 :          pack_tmp = ISHFT(pack_tmp, -26)
   36612     1699863 :          idata = idata + 1
   36613     1699863 :          data_tmp = ISHFT(pack_tmp, 8)
   36614     1699863 :          ipack = ipack + 1
   36615     1699863 :          pack_tmp = packed_data(ipack)
   36616     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36617     1699863 :          pack_tmp = ISHFT(pack_tmp, -8)
   36618     1699863 :          idata = idata + 1
   36619     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36620     1699863 :          full_data(idata) = data_tmp
   36621     1699863 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36622     1699863 :          idata = idata + 1
   36623     1699863 :          data_tmp = ISHFT(pack_tmp, 36)
   36624     1699863 :          ipack = ipack + 1
   36625     1699863 :          pack_tmp = packed_data(ipack)
   36626     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36627     1699863 :          pack_tmp = ISHFT(pack_tmp, -36)
   36628     1699863 :          idata = idata + 1
   36629     1699863 :          data_tmp = ISHFT(pack_tmp, 18)
   36630     1699863 :          ipack = ipack + 1
   36631     1699863 :          pack_tmp = packed_data(ipack)
   36632     1699863 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36633     1699863 :          pack_tmp = ISHFT(pack_tmp, -18)
   36634     1699863 :          idata = idata + 1
   36635     1699863 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36636     1699863 :          full_data(idata) = data_tmp
   36637     1700309 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36638             :       END DO
   36639      117956 :       IF (Ndata_rep < Ndata) THEN
   36640       20626 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36641             :       END IF
   36642      117956 :    END SUBROUTINE bits2ints_46
   36643             : 
   36644             : ! **************************************************************************************************
   36645             : !> \brief ...
   36646             : !> \param Ndata ...
   36647             : !> \param packed_data ...
   36648             : !> \param full_data ...
   36649             : ! **************************************************************************************************
   36650       25088 :    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       25088 :       idata = 0
   36661       25088 :       ipack = 0
   36662       25088 :       Ndata_rep = (Ndata/64)*64
   36663       25088 :       DO kdata = 1, Ndata_rep, 64
   36664      382504 :          pack_tmp = 0
   36665      382504 :          idata = idata + 1
   36666      382504 :          data_tmp = full_data(idata)
   36667      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36668      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36669      382504 :          pack_tmp = ISHFT(pack_tmp, -17)
   36670      382504 :          idata = idata + 1
   36671      382504 :          data_tmp = full_data(idata)
   36672      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36673      382504 :          data_tmp = IAND(data_tmp, mask_left(17))
   36674      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36675      382504 :          ipack = ipack + 1
   36676      382504 :          packed_data(ipack) = pack_tmp
   36677      382504 :          data_tmp = full_data(idata)
   36678      382504 :          pack_tmp = ISHFT(data_tmp, 34)
   36679      382504 :          pack_tmp = ISHFT(pack_tmp, -34)
   36680      382504 :          idata = idata + 1
   36681      382504 :          data_tmp = full_data(idata)
   36682      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36683      382504 :          data_tmp = IAND(data_tmp, mask_left(34))
   36684      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36685      382504 :          ipack = ipack + 1
   36686      382504 :          packed_data(ipack) = pack_tmp
   36687      382504 :          data_tmp = full_data(idata)
   36688      382504 :          pack_tmp = ISHFT(data_tmp, 51)
   36689      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36690      382504 :          idata = idata + 1
   36691      382504 :          data_tmp = full_data(idata)
   36692      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36693      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36694      382504 :          pack_tmp = ISHFT(pack_tmp, -4)
   36695      382504 :          idata = idata + 1
   36696      382504 :          data_tmp = full_data(idata)
   36697      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36698      382504 :          data_tmp = IAND(data_tmp, mask_left(4))
   36699      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36700      382504 :          ipack = ipack + 1
   36701      382504 :          packed_data(ipack) = pack_tmp
   36702      382504 :          data_tmp = full_data(idata)
   36703      382504 :          pack_tmp = ISHFT(data_tmp, 21)
   36704      382504 :          pack_tmp = ISHFT(pack_tmp, -21)
   36705      382504 :          idata = idata + 1
   36706      382504 :          data_tmp = full_data(idata)
   36707      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36708      382504 :          data_tmp = IAND(data_tmp, mask_left(21))
   36709      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36710      382504 :          ipack = ipack + 1
   36711      382504 :          packed_data(ipack) = pack_tmp
   36712      382504 :          data_tmp = full_data(idata)
   36713      382504 :          pack_tmp = ISHFT(data_tmp, 38)
   36714      382504 :          pack_tmp = ISHFT(pack_tmp, -38)
   36715      382504 :          idata = idata + 1
   36716      382504 :          data_tmp = full_data(idata)
   36717      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36718      382504 :          data_tmp = IAND(data_tmp, mask_left(38))
   36719      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36720      382504 :          ipack = ipack + 1
   36721      382504 :          packed_data(ipack) = pack_tmp
   36722      382504 :          data_tmp = full_data(idata)
   36723      382504 :          pack_tmp = ISHFT(data_tmp, 55)
   36724      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36725      382504 :          idata = idata + 1
   36726      382504 :          data_tmp = full_data(idata)
   36727      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36728      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36729      382504 :          pack_tmp = ISHFT(pack_tmp, -8)
   36730      382504 :          idata = idata + 1
   36731      382504 :          data_tmp = full_data(idata)
   36732      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36733      382504 :          data_tmp = IAND(data_tmp, mask_left(8))
   36734      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36735      382504 :          ipack = ipack + 1
   36736      382504 :          packed_data(ipack) = pack_tmp
   36737      382504 :          data_tmp = full_data(idata)
   36738      382504 :          pack_tmp = ISHFT(data_tmp, 25)
   36739      382504 :          pack_tmp = ISHFT(pack_tmp, -25)
   36740      382504 :          idata = idata + 1
   36741      382504 :          data_tmp = full_data(idata)
   36742      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36743      382504 :          data_tmp = IAND(data_tmp, mask_left(25))
   36744      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36745      382504 :          ipack = ipack + 1
   36746      382504 :          packed_data(ipack) = pack_tmp
   36747      382504 :          data_tmp = full_data(idata)
   36748      382504 :          pack_tmp = ISHFT(data_tmp, 42)
   36749      382504 :          pack_tmp = ISHFT(pack_tmp, -42)
   36750      382504 :          idata = idata + 1
   36751      382504 :          data_tmp = full_data(idata)
   36752      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36753      382504 :          data_tmp = IAND(data_tmp, mask_left(42))
   36754      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36755      382504 :          ipack = ipack + 1
   36756      382504 :          packed_data(ipack) = pack_tmp
   36757      382504 :          data_tmp = full_data(idata)
   36758      382504 :          pack_tmp = ISHFT(data_tmp, 59)
   36759      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36760      382504 :          idata = idata + 1
   36761      382504 :          data_tmp = full_data(idata)
   36762      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36763      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36764      382504 :          pack_tmp = ISHFT(pack_tmp, -12)
   36765      382504 :          idata = idata + 1
   36766      382504 :          data_tmp = full_data(idata)
   36767      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36768      382504 :          data_tmp = IAND(data_tmp, mask_left(12))
   36769      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36770      382504 :          ipack = ipack + 1
   36771      382504 :          packed_data(ipack) = pack_tmp
   36772      382504 :          data_tmp = full_data(idata)
   36773      382504 :          pack_tmp = ISHFT(data_tmp, 29)
   36774      382504 :          pack_tmp = ISHFT(pack_tmp, -29)
   36775      382504 :          idata = idata + 1
   36776      382504 :          data_tmp = full_data(idata)
   36777      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36778      382504 :          data_tmp = IAND(data_tmp, mask_left(29))
   36779      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36780      382504 :          ipack = ipack + 1
   36781      382504 :          packed_data(ipack) = pack_tmp
   36782      382504 :          data_tmp = full_data(idata)
   36783      382504 :          pack_tmp = ISHFT(data_tmp, 46)
   36784      382504 :          pack_tmp = ISHFT(pack_tmp, -46)
   36785      382504 :          idata = idata + 1
   36786      382504 :          data_tmp = full_data(idata)
   36787      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36788      382504 :          data_tmp = IAND(data_tmp, mask_left(46))
   36789      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36790      382504 :          ipack = ipack + 1
   36791      382504 :          packed_data(ipack) = pack_tmp
   36792      382504 :          data_tmp = full_data(idata)
   36793      382504 :          pack_tmp = ISHFT(data_tmp, 63)
   36794      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36795      382504 :          idata = idata + 1
   36796      382504 :          data_tmp = full_data(idata)
   36797      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36798      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36799      382504 :          pack_tmp = ISHFT(pack_tmp, -16)
   36800      382504 :          idata = idata + 1
   36801      382504 :          data_tmp = full_data(idata)
   36802      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36803      382504 :          data_tmp = IAND(data_tmp, mask_left(16))
   36804      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36805      382504 :          ipack = ipack + 1
   36806      382504 :          packed_data(ipack) = pack_tmp
   36807      382504 :          data_tmp = full_data(idata)
   36808      382504 :          pack_tmp = ISHFT(data_tmp, 33)
   36809      382504 :          pack_tmp = ISHFT(pack_tmp, -33)
   36810      382504 :          idata = idata + 1
   36811      382504 :          data_tmp = full_data(idata)
   36812      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36813      382504 :          data_tmp = IAND(data_tmp, mask_left(33))
   36814      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36815      382504 :          ipack = ipack + 1
   36816      382504 :          packed_data(ipack) = pack_tmp
   36817      382504 :          data_tmp = full_data(idata)
   36818      382504 :          pack_tmp = ISHFT(data_tmp, 50)
   36819      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36820      382504 :          idata = idata + 1
   36821      382504 :          data_tmp = full_data(idata)
   36822      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36823      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36824      382504 :          pack_tmp = ISHFT(pack_tmp, -3)
   36825      382504 :          idata = idata + 1
   36826      382504 :          data_tmp = full_data(idata)
   36827      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36828      382504 :          data_tmp = IAND(data_tmp, mask_left(3))
   36829      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36830      382504 :          ipack = ipack + 1
   36831      382504 :          packed_data(ipack) = pack_tmp
   36832      382504 :          data_tmp = full_data(idata)
   36833      382504 :          pack_tmp = ISHFT(data_tmp, 20)
   36834      382504 :          pack_tmp = ISHFT(pack_tmp, -20)
   36835      382504 :          idata = idata + 1
   36836      382504 :          data_tmp = full_data(idata)
   36837      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36838      382504 :          data_tmp = IAND(data_tmp, mask_left(20))
   36839      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36840      382504 :          ipack = ipack + 1
   36841      382504 :          packed_data(ipack) = pack_tmp
   36842      382504 :          data_tmp = full_data(idata)
   36843      382504 :          pack_tmp = ISHFT(data_tmp, 37)
   36844      382504 :          pack_tmp = ISHFT(pack_tmp, -37)
   36845      382504 :          idata = idata + 1
   36846      382504 :          data_tmp = full_data(idata)
   36847      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36848      382504 :          data_tmp = IAND(data_tmp, mask_left(37))
   36849      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36850      382504 :          ipack = ipack + 1
   36851      382504 :          packed_data(ipack) = pack_tmp
   36852      382504 :          data_tmp = full_data(idata)
   36853      382504 :          pack_tmp = ISHFT(data_tmp, 54)
   36854      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36855      382504 :          idata = idata + 1
   36856      382504 :          data_tmp = full_data(idata)
   36857      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36858      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36859      382504 :          pack_tmp = ISHFT(pack_tmp, -7)
   36860      382504 :          idata = idata + 1
   36861      382504 :          data_tmp = full_data(idata)
   36862      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36863      382504 :          data_tmp = IAND(data_tmp, mask_left(7))
   36864      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36865      382504 :          ipack = ipack + 1
   36866      382504 :          packed_data(ipack) = pack_tmp
   36867      382504 :          data_tmp = full_data(idata)
   36868      382504 :          pack_tmp = ISHFT(data_tmp, 24)
   36869      382504 :          pack_tmp = ISHFT(pack_tmp, -24)
   36870      382504 :          idata = idata + 1
   36871      382504 :          data_tmp = full_data(idata)
   36872      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36873      382504 :          data_tmp = IAND(data_tmp, mask_left(24))
   36874      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36875      382504 :          ipack = ipack + 1
   36876      382504 :          packed_data(ipack) = pack_tmp
   36877      382504 :          data_tmp = full_data(idata)
   36878      382504 :          pack_tmp = ISHFT(data_tmp, 41)
   36879      382504 :          pack_tmp = ISHFT(pack_tmp, -41)
   36880      382504 :          idata = idata + 1
   36881      382504 :          data_tmp = full_data(idata)
   36882      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36883      382504 :          data_tmp = IAND(data_tmp, mask_left(41))
   36884      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36885      382504 :          ipack = ipack + 1
   36886      382504 :          packed_data(ipack) = pack_tmp
   36887      382504 :          data_tmp = full_data(idata)
   36888      382504 :          pack_tmp = ISHFT(data_tmp, 58)
   36889      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36890      382504 :          idata = idata + 1
   36891      382504 :          data_tmp = full_data(idata)
   36892      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36893      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36894      382504 :          pack_tmp = ISHFT(pack_tmp, -11)
   36895      382504 :          idata = idata + 1
   36896      382504 :          data_tmp = full_data(idata)
   36897      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36898      382504 :          data_tmp = IAND(data_tmp, mask_left(11))
   36899      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36900      382504 :          ipack = ipack + 1
   36901      382504 :          packed_data(ipack) = pack_tmp
   36902      382504 :          data_tmp = full_data(idata)
   36903      382504 :          pack_tmp = ISHFT(data_tmp, 28)
   36904      382504 :          pack_tmp = ISHFT(pack_tmp, -28)
   36905      382504 :          idata = idata + 1
   36906      382504 :          data_tmp = full_data(idata)
   36907      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36908      382504 :          data_tmp = IAND(data_tmp, mask_left(28))
   36909      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36910      382504 :          ipack = ipack + 1
   36911      382504 :          packed_data(ipack) = pack_tmp
   36912      382504 :          data_tmp = full_data(idata)
   36913      382504 :          pack_tmp = ISHFT(data_tmp, 45)
   36914      382504 :          pack_tmp = ISHFT(pack_tmp, -45)
   36915      382504 :          idata = idata + 1
   36916      382504 :          data_tmp = full_data(idata)
   36917      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36918      382504 :          data_tmp = IAND(data_tmp, mask_left(45))
   36919      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36920      382504 :          ipack = ipack + 1
   36921      382504 :          packed_data(ipack) = pack_tmp
   36922      382504 :          data_tmp = full_data(idata)
   36923      382504 :          pack_tmp = ISHFT(data_tmp, 62)
   36924      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36925      382504 :          idata = idata + 1
   36926      382504 :          data_tmp = full_data(idata)
   36927      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36928      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36929      382504 :          pack_tmp = ISHFT(pack_tmp, -15)
   36930      382504 :          idata = idata + 1
   36931      382504 :          data_tmp = full_data(idata)
   36932      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36933      382504 :          data_tmp = IAND(data_tmp, mask_left(15))
   36934      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36935      382504 :          ipack = ipack + 1
   36936      382504 :          packed_data(ipack) = pack_tmp
   36937      382504 :          data_tmp = full_data(idata)
   36938      382504 :          pack_tmp = ISHFT(data_tmp, 32)
   36939      382504 :          pack_tmp = ISHFT(pack_tmp, -32)
   36940      382504 :          idata = idata + 1
   36941      382504 :          data_tmp = full_data(idata)
   36942      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36943      382504 :          data_tmp = IAND(data_tmp, mask_left(32))
   36944      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36945      382504 :          ipack = ipack + 1
   36946      382504 :          packed_data(ipack) = pack_tmp
   36947      382504 :          data_tmp = full_data(idata)
   36948      382504 :          pack_tmp = ISHFT(data_tmp, 49)
   36949      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36950      382504 :          idata = idata + 1
   36951      382504 :          data_tmp = full_data(idata)
   36952      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36953      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36954      382504 :          pack_tmp = ISHFT(pack_tmp, -2)
   36955      382504 :          idata = idata + 1
   36956      382504 :          data_tmp = full_data(idata)
   36957      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36958      382504 :          data_tmp = IAND(data_tmp, mask_left(2))
   36959      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36960      382504 :          ipack = ipack + 1
   36961      382504 :          packed_data(ipack) = pack_tmp
   36962      382504 :          data_tmp = full_data(idata)
   36963      382504 :          pack_tmp = ISHFT(data_tmp, 19)
   36964      382504 :          pack_tmp = ISHFT(pack_tmp, -19)
   36965      382504 :          idata = idata + 1
   36966      382504 :          data_tmp = full_data(idata)
   36967      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36968      382504 :          data_tmp = IAND(data_tmp, mask_left(19))
   36969      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36970      382504 :          ipack = ipack + 1
   36971      382504 :          packed_data(ipack) = pack_tmp
   36972      382504 :          data_tmp = full_data(idata)
   36973      382504 :          pack_tmp = ISHFT(data_tmp, 36)
   36974      382504 :          pack_tmp = ISHFT(pack_tmp, -36)
   36975      382504 :          idata = idata + 1
   36976      382504 :          data_tmp = full_data(idata)
   36977      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36978      382504 :          data_tmp = IAND(data_tmp, mask_left(36))
   36979      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36980      382504 :          ipack = ipack + 1
   36981      382504 :          packed_data(ipack) = pack_tmp
   36982      382504 :          data_tmp = full_data(idata)
   36983      382504 :          pack_tmp = ISHFT(data_tmp, 53)
   36984      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   36985      382504 :          idata = idata + 1
   36986      382504 :          data_tmp = full_data(idata)
   36987      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36988      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36989      382504 :          pack_tmp = ISHFT(pack_tmp, -6)
   36990      382504 :          idata = idata + 1
   36991      382504 :          data_tmp = full_data(idata)
   36992      382504 :          data_tmp = ISHFT(data_tmp, 17)
   36993      382504 :          data_tmp = IAND(data_tmp, mask_left(6))
   36994      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36995      382504 :          ipack = ipack + 1
   36996      382504 :          packed_data(ipack) = pack_tmp
   36997      382504 :          data_tmp = full_data(idata)
   36998      382504 :          pack_tmp = ISHFT(data_tmp, 23)
   36999      382504 :          pack_tmp = ISHFT(pack_tmp, -23)
   37000      382504 :          idata = idata + 1
   37001      382504 :          data_tmp = full_data(idata)
   37002      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37003      382504 :          data_tmp = IAND(data_tmp, mask_left(23))
   37004      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37005      382504 :          ipack = ipack + 1
   37006      382504 :          packed_data(ipack) = pack_tmp
   37007      382504 :          data_tmp = full_data(idata)
   37008      382504 :          pack_tmp = ISHFT(data_tmp, 40)
   37009      382504 :          pack_tmp = ISHFT(pack_tmp, -40)
   37010      382504 :          idata = idata + 1
   37011      382504 :          data_tmp = full_data(idata)
   37012      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37013      382504 :          data_tmp = IAND(data_tmp, mask_left(40))
   37014      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37015      382504 :          ipack = ipack + 1
   37016      382504 :          packed_data(ipack) = pack_tmp
   37017      382504 :          data_tmp = full_data(idata)
   37018      382504 :          pack_tmp = ISHFT(data_tmp, 57)
   37019      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37020      382504 :          idata = idata + 1
   37021      382504 :          data_tmp = full_data(idata)
   37022      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37023      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37024      382504 :          pack_tmp = ISHFT(pack_tmp, -10)
   37025      382504 :          idata = idata + 1
   37026      382504 :          data_tmp = full_data(idata)
   37027      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37028      382504 :          data_tmp = IAND(data_tmp, mask_left(10))
   37029      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37030      382504 :          ipack = ipack + 1
   37031      382504 :          packed_data(ipack) = pack_tmp
   37032      382504 :          data_tmp = full_data(idata)
   37033      382504 :          pack_tmp = ISHFT(data_tmp, 27)
   37034      382504 :          pack_tmp = ISHFT(pack_tmp, -27)
   37035      382504 :          idata = idata + 1
   37036      382504 :          data_tmp = full_data(idata)
   37037      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37038      382504 :          data_tmp = IAND(data_tmp, mask_left(27))
   37039      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37040      382504 :          ipack = ipack + 1
   37041      382504 :          packed_data(ipack) = pack_tmp
   37042      382504 :          data_tmp = full_data(idata)
   37043      382504 :          pack_tmp = ISHFT(data_tmp, 44)
   37044      382504 :          pack_tmp = ISHFT(pack_tmp, -44)
   37045      382504 :          idata = idata + 1
   37046      382504 :          data_tmp = full_data(idata)
   37047      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37048      382504 :          data_tmp = IAND(data_tmp, mask_left(44))
   37049      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37050      382504 :          ipack = ipack + 1
   37051      382504 :          packed_data(ipack) = pack_tmp
   37052      382504 :          data_tmp = full_data(idata)
   37053      382504 :          pack_tmp = ISHFT(data_tmp, 61)
   37054      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37055      382504 :          idata = idata + 1
   37056      382504 :          data_tmp = full_data(idata)
   37057      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37058      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37059      382504 :          pack_tmp = ISHFT(pack_tmp, -14)
   37060      382504 :          idata = idata + 1
   37061      382504 :          data_tmp = full_data(idata)
   37062      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37063      382504 :          data_tmp = IAND(data_tmp, mask_left(14))
   37064      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37065      382504 :          ipack = ipack + 1
   37066      382504 :          packed_data(ipack) = pack_tmp
   37067      382504 :          data_tmp = full_data(idata)
   37068      382504 :          pack_tmp = ISHFT(data_tmp, 31)
   37069      382504 :          pack_tmp = ISHFT(pack_tmp, -31)
   37070      382504 :          idata = idata + 1
   37071      382504 :          data_tmp = full_data(idata)
   37072      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37073      382504 :          data_tmp = IAND(data_tmp, mask_left(31))
   37074      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37075      382504 :          ipack = ipack + 1
   37076      382504 :          packed_data(ipack) = pack_tmp
   37077      382504 :          data_tmp = full_data(idata)
   37078      382504 :          pack_tmp = ISHFT(data_tmp, 48)
   37079      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37080      382504 :          idata = idata + 1
   37081      382504 :          data_tmp = full_data(idata)
   37082      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37083      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37084      382504 :          pack_tmp = ISHFT(pack_tmp, -1)
   37085      382504 :          idata = idata + 1
   37086      382504 :          data_tmp = full_data(idata)
   37087      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37088      382504 :          data_tmp = IAND(data_tmp, mask_left(1))
   37089      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37090      382504 :          ipack = ipack + 1
   37091      382504 :          packed_data(ipack) = pack_tmp
   37092      382504 :          data_tmp = full_data(idata)
   37093      382504 :          pack_tmp = ISHFT(data_tmp, 18)
   37094      382504 :          pack_tmp = ISHFT(pack_tmp, -18)
   37095      382504 :          idata = idata + 1
   37096      382504 :          data_tmp = full_data(idata)
   37097      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37098      382504 :          data_tmp = IAND(data_tmp, mask_left(18))
   37099      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37100      382504 :          ipack = ipack + 1
   37101      382504 :          packed_data(ipack) = pack_tmp
   37102      382504 :          data_tmp = full_data(idata)
   37103      382504 :          pack_tmp = ISHFT(data_tmp, 35)
   37104      382504 :          pack_tmp = ISHFT(pack_tmp, -35)
   37105      382504 :          idata = idata + 1
   37106      382504 :          data_tmp = full_data(idata)
   37107      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37108      382504 :          data_tmp = IAND(data_tmp, mask_left(35))
   37109      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37110      382504 :          ipack = ipack + 1
   37111      382504 :          packed_data(ipack) = pack_tmp
   37112      382504 :          data_tmp = full_data(idata)
   37113      382504 :          pack_tmp = ISHFT(data_tmp, 52)
   37114      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37115      382504 :          idata = idata + 1
   37116      382504 :          data_tmp = full_data(idata)
   37117      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37118      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37119      382504 :          pack_tmp = ISHFT(pack_tmp, -5)
   37120      382504 :          idata = idata + 1
   37121      382504 :          data_tmp = full_data(idata)
   37122      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37123      382504 :          data_tmp = IAND(data_tmp, mask_left(5))
   37124      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37125      382504 :          ipack = ipack + 1
   37126      382504 :          packed_data(ipack) = pack_tmp
   37127      382504 :          data_tmp = full_data(idata)
   37128      382504 :          pack_tmp = ISHFT(data_tmp, 22)
   37129      382504 :          pack_tmp = ISHFT(pack_tmp, -22)
   37130      382504 :          idata = idata + 1
   37131      382504 :          data_tmp = full_data(idata)
   37132      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37133      382504 :          data_tmp = IAND(data_tmp, mask_left(22))
   37134      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37135      382504 :          ipack = ipack + 1
   37136      382504 :          packed_data(ipack) = pack_tmp
   37137      382504 :          data_tmp = full_data(idata)
   37138      382504 :          pack_tmp = ISHFT(data_tmp, 39)
   37139      382504 :          pack_tmp = ISHFT(pack_tmp, -39)
   37140      382504 :          idata = idata + 1
   37141      382504 :          data_tmp = full_data(idata)
   37142      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37143      382504 :          data_tmp = IAND(data_tmp, mask_left(39))
   37144      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37145      382504 :          ipack = ipack + 1
   37146      382504 :          packed_data(ipack) = pack_tmp
   37147      382504 :          data_tmp = full_data(idata)
   37148      382504 :          pack_tmp = ISHFT(data_tmp, 56)
   37149      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37150      382504 :          idata = idata + 1
   37151      382504 :          data_tmp = full_data(idata)
   37152      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37153      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37154      382504 :          pack_tmp = ISHFT(pack_tmp, -9)
   37155      382504 :          idata = idata + 1
   37156      382504 :          data_tmp = full_data(idata)
   37157      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37158      382504 :          data_tmp = IAND(data_tmp, mask_left(9))
   37159      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37160      382504 :          ipack = ipack + 1
   37161      382504 :          packed_data(ipack) = pack_tmp
   37162      382504 :          data_tmp = full_data(idata)
   37163      382504 :          pack_tmp = ISHFT(data_tmp, 26)
   37164      382504 :          pack_tmp = ISHFT(pack_tmp, -26)
   37165      382504 :          idata = idata + 1
   37166      382504 :          data_tmp = full_data(idata)
   37167      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37168      382504 :          data_tmp = IAND(data_tmp, mask_left(26))
   37169      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37170      382504 :          ipack = ipack + 1
   37171      382504 :          packed_data(ipack) = pack_tmp
   37172      382504 :          data_tmp = full_data(idata)
   37173      382504 :          pack_tmp = ISHFT(data_tmp, 43)
   37174      382504 :          pack_tmp = ISHFT(pack_tmp, -43)
   37175      382504 :          idata = idata + 1
   37176      382504 :          data_tmp = full_data(idata)
   37177      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37178      382504 :          data_tmp = IAND(data_tmp, mask_left(43))
   37179      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37180      382504 :          ipack = ipack + 1
   37181      382504 :          packed_data(ipack) = pack_tmp
   37182      382504 :          data_tmp = full_data(idata)
   37183      382504 :          pack_tmp = ISHFT(data_tmp, 60)
   37184      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37185      382504 :          idata = idata + 1
   37186      382504 :          data_tmp = full_data(idata)
   37187      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37188      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37189      382504 :          pack_tmp = ISHFT(pack_tmp, -13)
   37190      382504 :          idata = idata + 1
   37191      382504 :          data_tmp = full_data(idata)
   37192      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37193      382504 :          data_tmp = IAND(data_tmp, mask_left(13))
   37194      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37195      382504 :          ipack = ipack + 1
   37196      382504 :          packed_data(ipack) = pack_tmp
   37197      382504 :          data_tmp = full_data(idata)
   37198      382504 :          pack_tmp = ISHFT(data_tmp, 30)
   37199      382504 :          pack_tmp = ISHFT(pack_tmp, -30)
   37200      382504 :          idata = idata + 1
   37201      382504 :          data_tmp = full_data(idata)
   37202      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37203      382504 :          data_tmp = IAND(data_tmp, mask_left(30))
   37204      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37205      382504 :          ipack = ipack + 1
   37206      382504 :          packed_data(ipack) = pack_tmp
   37207      382504 :          data_tmp = full_data(idata)
   37208      382504 :          pack_tmp = ISHFT(data_tmp, 47)
   37209      382504 :          pack_tmp = ISHFT(pack_tmp, -47)
   37210      382504 :          idata = idata + 1
   37211      382504 :          data_tmp = full_data(idata)
   37212      382504 :          data_tmp = ISHFT(data_tmp, 17)
   37213      382504 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37214             :          pack_tmp = ISHFT(pack_tmp, 0)
   37215      382504 :          pack_tmp = ISHFT(pack_tmp, 0)
   37216      382504 :          ipack = ipack + 1
   37217      382508 :          packed_data(ipack) = pack_tmp
   37218             :       END DO
   37219       25088 :       IF (Ndata_rep < Ndata) THEN
   37220        2224 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37221             :       END IF
   37222       25088 :    END SUBROUTINE ints2bits_47
   37223             : 
   37224             : ! **************************************************************************************************
   37225             : !> \brief ...
   37226             : !> \param Ndata ...
   37227             : !> \param packed_data ...
   37228             : !> \param full_data ...
   37229             : ! **************************************************************************************************
   37230      112463 :    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      112463 :       ipack = 0
   37241      112463 :       idata = 0
   37242      112463 :       pack_tmp = 0
   37243      112463 :       Ndata_rep = (Ndata/64)*64
   37244      112463 :       DO kdata = 1, Ndata_rep, 64
   37245     1654585 :          idata = idata + 1
   37246     1654585 :          data_tmp = ISHFT(pack_tmp, 47)
   37247     1654585 :          ipack = ipack + 1
   37248     1654585 :          pack_tmp = packed_data(ipack)
   37249     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   37250     1654585 :          pack_tmp = ISHFT(pack_tmp, -47)
   37251     1654585 :          idata = idata + 1
   37252     1654585 :          data_tmp = ISHFT(pack_tmp, 30)
   37253     1654585 :          ipack = ipack + 1
   37254     1654585 :          pack_tmp = packed_data(ipack)
   37255     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   37256     1654585 :          pack_tmp = ISHFT(pack_tmp, -30)
   37257     1654585 :          idata = idata + 1
   37258     1654585 :          data_tmp = ISHFT(pack_tmp, 13)
   37259     1654585 :          ipack = ipack + 1
   37260     1654585 :          pack_tmp = packed_data(ipack)
   37261     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   37262     1654585 :          pack_tmp = ISHFT(pack_tmp, -13)
   37263     1654585 :          idata = idata + 1
   37264     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37265     1654585 :          full_data(idata) = data_tmp
   37266     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37267     1654585 :          idata = idata + 1
   37268     1654585 :          data_tmp = ISHFT(pack_tmp, 43)
   37269     1654585 :          ipack = ipack + 1
   37270     1654585 :          pack_tmp = packed_data(ipack)
   37271     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   37272     1654585 :          pack_tmp = ISHFT(pack_tmp, -43)
   37273     1654585 :          idata = idata + 1
   37274     1654585 :          data_tmp = ISHFT(pack_tmp, 26)
   37275     1654585 :          ipack = ipack + 1
   37276     1654585 :          pack_tmp = packed_data(ipack)
   37277     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   37278     1654585 :          pack_tmp = ISHFT(pack_tmp, -26)
   37279     1654585 :          idata = idata + 1
   37280     1654585 :          data_tmp = ISHFT(pack_tmp, 9)
   37281     1654585 :          ipack = ipack + 1
   37282     1654585 :          pack_tmp = packed_data(ipack)
   37283     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   37284     1654585 :          pack_tmp = ISHFT(pack_tmp, -9)
   37285     1654585 :          idata = idata + 1
   37286     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37287     1654585 :          full_data(idata) = data_tmp
   37288     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37289     1654585 :          idata = idata + 1
   37290     1654585 :          data_tmp = ISHFT(pack_tmp, 39)
   37291     1654585 :          ipack = ipack + 1
   37292     1654585 :          pack_tmp = packed_data(ipack)
   37293     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   37294     1654585 :          pack_tmp = ISHFT(pack_tmp, -39)
   37295     1654585 :          idata = idata + 1
   37296     1654585 :          data_tmp = ISHFT(pack_tmp, 22)
   37297     1654585 :          ipack = ipack + 1
   37298     1654585 :          pack_tmp = packed_data(ipack)
   37299     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   37300     1654585 :          pack_tmp = ISHFT(pack_tmp, -22)
   37301     1654585 :          idata = idata + 1
   37302     1654585 :          data_tmp = ISHFT(pack_tmp, 5)
   37303     1654585 :          ipack = ipack + 1
   37304     1654585 :          pack_tmp = packed_data(ipack)
   37305     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   37306     1654585 :          pack_tmp = ISHFT(pack_tmp, -5)
   37307     1654585 :          idata = idata + 1
   37308     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37309     1654585 :          full_data(idata) = data_tmp
   37310     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37311     1654585 :          idata = idata + 1
   37312     1654585 :          data_tmp = ISHFT(pack_tmp, 35)
   37313     1654585 :          ipack = ipack + 1
   37314     1654585 :          pack_tmp = packed_data(ipack)
   37315     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   37316     1654585 :          pack_tmp = ISHFT(pack_tmp, -35)
   37317     1654585 :          idata = idata + 1
   37318     1654585 :          data_tmp = ISHFT(pack_tmp, 18)
   37319     1654585 :          ipack = ipack + 1
   37320     1654585 :          pack_tmp = packed_data(ipack)
   37321     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   37322     1654585 :          pack_tmp = ISHFT(pack_tmp, -18)
   37323     1654585 :          idata = idata + 1
   37324     1654585 :          data_tmp = ISHFT(pack_tmp, 1)
   37325     1654585 :          ipack = ipack + 1
   37326     1654585 :          pack_tmp = packed_data(ipack)
   37327     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   37328     1654585 :          pack_tmp = ISHFT(pack_tmp, -1)
   37329     1654585 :          idata = idata + 1
   37330     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37331     1654585 :          full_data(idata) = data_tmp
   37332     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37333     1654585 :          idata = idata + 1
   37334     1654585 :          data_tmp = ISHFT(pack_tmp, 31)
   37335     1654585 :          ipack = ipack + 1
   37336     1654585 :          pack_tmp = packed_data(ipack)
   37337     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   37338     1654585 :          pack_tmp = ISHFT(pack_tmp, -31)
   37339     1654585 :          idata = idata + 1
   37340     1654585 :          data_tmp = ISHFT(pack_tmp, 14)
   37341     1654585 :          ipack = ipack + 1
   37342     1654585 :          pack_tmp = packed_data(ipack)
   37343     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   37344     1654585 :          pack_tmp = ISHFT(pack_tmp, -14)
   37345     1654585 :          idata = idata + 1
   37346     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37347     1654585 :          full_data(idata) = data_tmp
   37348     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37349     1654585 :          idata = idata + 1
   37350     1654585 :          data_tmp = ISHFT(pack_tmp, 44)
   37351     1654585 :          ipack = ipack + 1
   37352     1654585 :          pack_tmp = packed_data(ipack)
   37353     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   37354     1654585 :          pack_tmp = ISHFT(pack_tmp, -44)
   37355     1654585 :          idata = idata + 1
   37356     1654585 :          data_tmp = ISHFT(pack_tmp, 27)
   37357     1654585 :          ipack = ipack + 1
   37358     1654585 :          pack_tmp = packed_data(ipack)
   37359     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   37360     1654585 :          pack_tmp = ISHFT(pack_tmp, -27)
   37361     1654585 :          idata = idata + 1
   37362     1654585 :          data_tmp = ISHFT(pack_tmp, 10)
   37363     1654585 :          ipack = ipack + 1
   37364     1654585 :          pack_tmp = packed_data(ipack)
   37365     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   37366     1654585 :          pack_tmp = ISHFT(pack_tmp, -10)
   37367     1654585 :          idata = idata + 1
   37368     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37369     1654585 :          full_data(idata) = data_tmp
   37370     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37371     1654585 :          idata = idata + 1
   37372     1654585 :          data_tmp = ISHFT(pack_tmp, 40)
   37373     1654585 :          ipack = ipack + 1
   37374     1654585 :          pack_tmp = packed_data(ipack)
   37375     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   37376     1654585 :          pack_tmp = ISHFT(pack_tmp, -40)
   37377     1654585 :          idata = idata + 1
   37378     1654585 :          data_tmp = ISHFT(pack_tmp, 23)
   37379     1654585 :          ipack = ipack + 1
   37380     1654585 :          pack_tmp = packed_data(ipack)
   37381     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   37382     1654585 :          pack_tmp = ISHFT(pack_tmp, -23)
   37383     1654585 :          idata = idata + 1
   37384     1654585 :          data_tmp = ISHFT(pack_tmp, 6)
   37385     1654585 :          ipack = ipack + 1
   37386     1654585 :          pack_tmp = packed_data(ipack)
   37387     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   37388     1654585 :          pack_tmp = ISHFT(pack_tmp, -6)
   37389     1654585 :          idata = idata + 1
   37390     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37391     1654585 :          full_data(idata) = data_tmp
   37392     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37393     1654585 :          idata = idata + 1
   37394     1654585 :          data_tmp = ISHFT(pack_tmp, 36)
   37395     1654585 :          ipack = ipack + 1
   37396     1654585 :          pack_tmp = packed_data(ipack)
   37397     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   37398     1654585 :          pack_tmp = ISHFT(pack_tmp, -36)
   37399     1654585 :          idata = idata + 1
   37400     1654585 :          data_tmp = ISHFT(pack_tmp, 19)
   37401     1654585 :          ipack = ipack + 1
   37402     1654585 :          pack_tmp = packed_data(ipack)
   37403     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   37404     1654585 :          pack_tmp = ISHFT(pack_tmp, -19)
   37405     1654585 :          idata = idata + 1
   37406     1654585 :          data_tmp = ISHFT(pack_tmp, 2)
   37407     1654585 :          ipack = ipack + 1
   37408     1654585 :          pack_tmp = packed_data(ipack)
   37409     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   37410     1654585 :          pack_tmp = ISHFT(pack_tmp, -2)
   37411     1654585 :          idata = idata + 1
   37412     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37413     1654585 :          full_data(idata) = data_tmp
   37414     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37415     1654585 :          idata = idata + 1
   37416     1654585 :          data_tmp = ISHFT(pack_tmp, 32)
   37417     1654585 :          ipack = ipack + 1
   37418     1654585 :          pack_tmp = packed_data(ipack)
   37419     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   37420     1654585 :          pack_tmp = ISHFT(pack_tmp, -32)
   37421     1654585 :          idata = idata + 1
   37422     1654585 :          data_tmp = ISHFT(pack_tmp, 15)
   37423     1654585 :          ipack = ipack + 1
   37424     1654585 :          pack_tmp = packed_data(ipack)
   37425     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   37426     1654585 :          pack_tmp = ISHFT(pack_tmp, -15)
   37427     1654585 :          idata = idata + 1
   37428     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37429     1654585 :          full_data(idata) = data_tmp
   37430     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37431     1654585 :          idata = idata + 1
   37432     1654585 :          data_tmp = ISHFT(pack_tmp, 45)
   37433     1654585 :          ipack = ipack + 1
   37434     1654585 :          pack_tmp = packed_data(ipack)
   37435     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   37436     1654585 :          pack_tmp = ISHFT(pack_tmp, -45)
   37437     1654585 :          idata = idata + 1
   37438     1654585 :          data_tmp = ISHFT(pack_tmp, 28)
   37439     1654585 :          ipack = ipack + 1
   37440     1654585 :          pack_tmp = packed_data(ipack)
   37441     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   37442     1654585 :          pack_tmp = ISHFT(pack_tmp, -28)
   37443     1654585 :          idata = idata + 1
   37444     1654585 :          data_tmp = ISHFT(pack_tmp, 11)
   37445     1654585 :          ipack = ipack + 1
   37446     1654585 :          pack_tmp = packed_data(ipack)
   37447     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   37448     1654585 :          pack_tmp = ISHFT(pack_tmp, -11)
   37449     1654585 :          idata = idata + 1
   37450     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37451     1654585 :          full_data(idata) = data_tmp
   37452     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37453     1654585 :          idata = idata + 1
   37454     1654585 :          data_tmp = ISHFT(pack_tmp, 41)
   37455     1654585 :          ipack = ipack + 1
   37456     1654585 :          pack_tmp = packed_data(ipack)
   37457     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   37458     1654585 :          pack_tmp = ISHFT(pack_tmp, -41)
   37459     1654585 :          idata = idata + 1
   37460     1654585 :          data_tmp = ISHFT(pack_tmp, 24)
   37461     1654585 :          ipack = ipack + 1
   37462     1654585 :          pack_tmp = packed_data(ipack)
   37463     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   37464     1654585 :          pack_tmp = ISHFT(pack_tmp, -24)
   37465     1654585 :          idata = idata + 1
   37466     1654585 :          data_tmp = ISHFT(pack_tmp, 7)
   37467     1654585 :          ipack = ipack + 1
   37468     1654585 :          pack_tmp = packed_data(ipack)
   37469     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   37470     1654585 :          pack_tmp = ISHFT(pack_tmp, -7)
   37471     1654585 :          idata = idata + 1
   37472     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37473     1654585 :          full_data(idata) = data_tmp
   37474     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37475     1654585 :          idata = idata + 1
   37476     1654585 :          data_tmp = ISHFT(pack_tmp, 37)
   37477     1654585 :          ipack = ipack + 1
   37478     1654585 :          pack_tmp = packed_data(ipack)
   37479     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   37480     1654585 :          pack_tmp = ISHFT(pack_tmp, -37)
   37481     1654585 :          idata = idata + 1
   37482     1654585 :          data_tmp = ISHFT(pack_tmp, 20)
   37483     1654585 :          ipack = ipack + 1
   37484     1654585 :          pack_tmp = packed_data(ipack)
   37485     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   37486     1654585 :          pack_tmp = ISHFT(pack_tmp, -20)
   37487     1654585 :          idata = idata + 1
   37488     1654585 :          data_tmp = ISHFT(pack_tmp, 3)
   37489     1654585 :          ipack = ipack + 1
   37490     1654585 :          pack_tmp = packed_data(ipack)
   37491     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   37492     1654585 :          pack_tmp = ISHFT(pack_tmp, -3)
   37493     1654585 :          idata = idata + 1
   37494     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37495     1654585 :          full_data(idata) = data_tmp
   37496     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37497     1654585 :          idata = idata + 1
   37498     1654585 :          data_tmp = ISHFT(pack_tmp, 33)
   37499     1654585 :          ipack = ipack + 1
   37500     1654585 :          pack_tmp = packed_data(ipack)
   37501     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   37502     1654585 :          pack_tmp = ISHFT(pack_tmp, -33)
   37503     1654585 :          idata = idata + 1
   37504     1654585 :          data_tmp = ISHFT(pack_tmp, 16)
   37505     1654585 :          ipack = ipack + 1
   37506     1654585 :          pack_tmp = packed_data(ipack)
   37507     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   37508     1654585 :          pack_tmp = ISHFT(pack_tmp, -16)
   37509     1654585 :          idata = idata + 1
   37510     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37511     1654585 :          full_data(idata) = data_tmp
   37512     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37513     1654585 :          idata = idata + 1
   37514     1654585 :          data_tmp = ISHFT(pack_tmp, 46)
   37515     1654585 :          ipack = ipack + 1
   37516     1654585 :          pack_tmp = packed_data(ipack)
   37517     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   37518     1654585 :          pack_tmp = ISHFT(pack_tmp, -46)
   37519     1654585 :          idata = idata + 1
   37520     1654585 :          data_tmp = ISHFT(pack_tmp, 29)
   37521     1654585 :          ipack = ipack + 1
   37522     1654585 :          pack_tmp = packed_data(ipack)
   37523     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   37524     1654585 :          pack_tmp = ISHFT(pack_tmp, -29)
   37525     1654585 :          idata = idata + 1
   37526     1654585 :          data_tmp = ISHFT(pack_tmp, 12)
   37527     1654585 :          ipack = ipack + 1
   37528     1654585 :          pack_tmp = packed_data(ipack)
   37529     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   37530     1654585 :          pack_tmp = ISHFT(pack_tmp, -12)
   37531     1654585 :          idata = idata + 1
   37532     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37533     1654585 :          full_data(idata) = data_tmp
   37534     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37535     1654585 :          idata = idata + 1
   37536     1654585 :          data_tmp = ISHFT(pack_tmp, 42)
   37537     1654585 :          ipack = ipack + 1
   37538     1654585 :          pack_tmp = packed_data(ipack)
   37539     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   37540     1654585 :          pack_tmp = ISHFT(pack_tmp, -42)
   37541     1654585 :          idata = idata + 1
   37542     1654585 :          data_tmp = ISHFT(pack_tmp, 25)
   37543     1654585 :          ipack = ipack + 1
   37544     1654585 :          pack_tmp = packed_data(ipack)
   37545     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   37546     1654585 :          pack_tmp = ISHFT(pack_tmp, -25)
   37547     1654585 :          idata = idata + 1
   37548     1654585 :          data_tmp = ISHFT(pack_tmp, 8)
   37549     1654585 :          ipack = ipack + 1
   37550     1654585 :          pack_tmp = packed_data(ipack)
   37551     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   37552     1654585 :          pack_tmp = ISHFT(pack_tmp, -8)
   37553     1654585 :          idata = idata + 1
   37554     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37555     1654585 :          full_data(idata) = data_tmp
   37556     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37557     1654585 :          idata = idata + 1
   37558     1654585 :          data_tmp = ISHFT(pack_tmp, 38)
   37559     1654585 :          ipack = ipack + 1
   37560     1654585 :          pack_tmp = packed_data(ipack)
   37561     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   37562     1654585 :          pack_tmp = ISHFT(pack_tmp, -38)
   37563     1654585 :          idata = idata + 1
   37564     1654585 :          data_tmp = ISHFT(pack_tmp, 21)
   37565     1654585 :          ipack = ipack + 1
   37566     1654585 :          pack_tmp = packed_data(ipack)
   37567     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   37568     1654585 :          pack_tmp = ISHFT(pack_tmp, -21)
   37569     1654585 :          idata = idata + 1
   37570     1654585 :          data_tmp = ISHFT(pack_tmp, 4)
   37571     1654585 :          ipack = ipack + 1
   37572     1654585 :          pack_tmp = packed_data(ipack)
   37573     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   37574     1654585 :          pack_tmp = ISHFT(pack_tmp, -4)
   37575     1654585 :          idata = idata + 1
   37576     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37577     1654585 :          full_data(idata) = data_tmp
   37578     1654585 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37579     1654585 :          idata = idata + 1
   37580     1654585 :          data_tmp = ISHFT(pack_tmp, 34)
   37581     1654585 :          ipack = ipack + 1
   37582     1654585 :          pack_tmp = packed_data(ipack)
   37583     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   37584     1654585 :          pack_tmp = ISHFT(pack_tmp, -34)
   37585     1654585 :          idata = idata + 1
   37586     1654585 :          data_tmp = ISHFT(pack_tmp, 17)
   37587     1654585 :          ipack = ipack + 1
   37588     1654585 :          pack_tmp = packed_data(ipack)
   37589     1654585 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   37590     1654585 :          pack_tmp = ISHFT(pack_tmp, -17)
   37591     1654585 :          idata = idata + 1
   37592     1654585 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37593     1654585 :          full_data(idata) = data_tmp
   37594     1654665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37595             :       END DO
   37596      112463 :       IF (Ndata_rep < Ndata) THEN
   37597       17038 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37598             :       END IF
   37599      112463 :    END SUBROUTINE bits2ints_47
   37600             : 
   37601             : ! **************************************************************************************************
   37602             : !> \brief ...
   37603             : !> \param Ndata ...
   37604             : !> \param packed_data ...
   37605             : !> \param full_data ...
   37606             : ! **************************************************************************************************
   37607       25723 :    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       25723 :       idata = 0
   37618       25723 :       ipack = 0
   37619       25723 :       Ndata_rep = (Ndata/64)*64
   37620       25723 :       DO kdata = 1, Ndata_rep, 64
   37621      386476 :          pack_tmp = 0
   37622      386476 :          idata = idata + 1
   37623      386476 :          data_tmp = full_data(idata)
   37624      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37625      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37626      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37627      386476 :          idata = idata + 1
   37628      386476 :          data_tmp = full_data(idata)
   37629      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37630      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37631      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37632      386476 :          ipack = ipack + 1
   37633      386476 :          packed_data(ipack) = pack_tmp
   37634      386476 :          data_tmp = full_data(idata)
   37635      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37636      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37637      386476 :          idata = idata + 1
   37638      386476 :          data_tmp = full_data(idata)
   37639      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37640      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37641      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37642      386476 :          ipack = ipack + 1
   37643      386476 :          packed_data(ipack) = pack_tmp
   37644      386476 :          data_tmp = full_data(idata)
   37645      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37646      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37647      386476 :          idata = idata + 1
   37648      386476 :          data_tmp = full_data(idata)
   37649      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37650      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37651      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37652      386476 :          idata = idata + 1
   37653      386476 :          data_tmp = full_data(idata)
   37654      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37655      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37656      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37657      386476 :          ipack = ipack + 1
   37658      386476 :          packed_data(ipack) = pack_tmp
   37659      386476 :          data_tmp = full_data(idata)
   37660      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37661      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37662      386476 :          idata = idata + 1
   37663      386476 :          data_tmp = full_data(idata)
   37664      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37665      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37666      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37667      386476 :          ipack = ipack + 1
   37668      386476 :          packed_data(ipack) = pack_tmp
   37669      386476 :          data_tmp = full_data(idata)
   37670      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37671      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37672      386476 :          idata = idata + 1
   37673      386476 :          data_tmp = full_data(idata)
   37674      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37675      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37676      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37677      386476 :          ipack = ipack + 1
   37678      386476 :          packed_data(ipack) = pack_tmp
   37679      386476 :          data_tmp = full_data(idata)
   37680      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37681      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37682      386476 :          idata = idata + 1
   37683      386476 :          data_tmp = full_data(idata)
   37684      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37685      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37686      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37687      386476 :          idata = idata + 1
   37688      386476 :          data_tmp = full_data(idata)
   37689      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37690      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37691      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37692      386476 :          ipack = ipack + 1
   37693      386476 :          packed_data(ipack) = pack_tmp
   37694      386476 :          data_tmp = full_data(idata)
   37695      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37696      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37697      386476 :          idata = idata + 1
   37698      386476 :          data_tmp = full_data(idata)
   37699      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37700      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37701      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37702      386476 :          ipack = ipack + 1
   37703      386476 :          packed_data(ipack) = pack_tmp
   37704      386476 :          data_tmp = full_data(idata)
   37705      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37706      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37707      386476 :          idata = idata + 1
   37708      386476 :          data_tmp = full_data(idata)
   37709      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37710      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37711      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37712      386476 :          ipack = ipack + 1
   37713      386476 :          packed_data(ipack) = pack_tmp
   37714      386476 :          data_tmp = full_data(idata)
   37715      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37716      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37717      386476 :          idata = idata + 1
   37718      386476 :          data_tmp = full_data(idata)
   37719      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37720      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37721      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37722      386476 :          idata = idata + 1
   37723      386476 :          data_tmp = full_data(idata)
   37724      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37725      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37726      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37727      386476 :          ipack = ipack + 1
   37728      386476 :          packed_data(ipack) = pack_tmp
   37729      386476 :          data_tmp = full_data(idata)
   37730      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37731      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37732      386476 :          idata = idata + 1
   37733      386476 :          data_tmp = full_data(idata)
   37734      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37735      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37736      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37737      386476 :          ipack = ipack + 1
   37738      386476 :          packed_data(ipack) = pack_tmp
   37739      386476 :          data_tmp = full_data(idata)
   37740      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37741      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37742      386476 :          idata = idata + 1
   37743      386476 :          data_tmp = full_data(idata)
   37744      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37745      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37746      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37747      386476 :          ipack = ipack + 1
   37748      386476 :          packed_data(ipack) = pack_tmp
   37749      386476 :          data_tmp = full_data(idata)
   37750      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37751      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37752      386476 :          idata = idata + 1
   37753      386476 :          data_tmp = full_data(idata)
   37754      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37755      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37756      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37757      386476 :          idata = idata + 1
   37758      386476 :          data_tmp = full_data(idata)
   37759      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37760      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37761      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37762      386476 :          ipack = ipack + 1
   37763      386476 :          packed_data(ipack) = pack_tmp
   37764      386476 :          data_tmp = full_data(idata)
   37765      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37766      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37767      386476 :          idata = idata + 1
   37768      386476 :          data_tmp = full_data(idata)
   37769      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37770      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37771      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37772      386476 :          ipack = ipack + 1
   37773      386476 :          packed_data(ipack) = pack_tmp
   37774      386476 :          data_tmp = full_data(idata)
   37775      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37776      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37777      386476 :          idata = idata + 1
   37778      386476 :          data_tmp = full_data(idata)
   37779      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37780      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37781      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37782      386476 :          ipack = ipack + 1
   37783      386476 :          packed_data(ipack) = pack_tmp
   37784      386476 :          data_tmp = full_data(idata)
   37785      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37786      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37787      386476 :          idata = idata + 1
   37788      386476 :          data_tmp = full_data(idata)
   37789      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37790      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37791      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37792      386476 :          idata = idata + 1
   37793      386476 :          data_tmp = full_data(idata)
   37794      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37795      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37796      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37797      386476 :          ipack = ipack + 1
   37798      386476 :          packed_data(ipack) = pack_tmp
   37799      386476 :          data_tmp = full_data(idata)
   37800      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37801      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37802      386476 :          idata = idata + 1
   37803      386476 :          data_tmp = full_data(idata)
   37804      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37805      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37806      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37807      386476 :          ipack = ipack + 1
   37808      386476 :          packed_data(ipack) = pack_tmp
   37809      386476 :          data_tmp = full_data(idata)
   37810      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37811      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37812      386476 :          idata = idata + 1
   37813      386476 :          data_tmp = full_data(idata)
   37814      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37815      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37816      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37817      386476 :          ipack = ipack + 1
   37818      386476 :          packed_data(ipack) = pack_tmp
   37819      386476 :          data_tmp = full_data(idata)
   37820      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37821      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37822      386476 :          idata = idata + 1
   37823      386476 :          data_tmp = full_data(idata)
   37824      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37825      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37826      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37827      386476 :          idata = idata + 1
   37828      386476 :          data_tmp = full_data(idata)
   37829      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37830      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37831      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37832      386476 :          ipack = ipack + 1
   37833      386476 :          packed_data(ipack) = pack_tmp
   37834      386476 :          data_tmp = full_data(idata)
   37835      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37836      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37837      386476 :          idata = idata + 1
   37838      386476 :          data_tmp = full_data(idata)
   37839      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37840      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37841      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37842      386476 :          ipack = ipack + 1
   37843      386476 :          packed_data(ipack) = pack_tmp
   37844      386476 :          data_tmp = full_data(idata)
   37845      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37846      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37847      386476 :          idata = idata + 1
   37848      386476 :          data_tmp = full_data(idata)
   37849      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37850      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37851      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37852      386476 :          ipack = ipack + 1
   37853      386476 :          packed_data(ipack) = pack_tmp
   37854      386476 :          data_tmp = full_data(idata)
   37855      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37856      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37857      386476 :          idata = idata + 1
   37858      386476 :          data_tmp = full_data(idata)
   37859      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37860      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37861      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37862      386476 :          idata = idata + 1
   37863      386476 :          data_tmp = full_data(idata)
   37864      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37865      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37866      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37867      386476 :          ipack = ipack + 1
   37868      386476 :          packed_data(ipack) = pack_tmp
   37869      386476 :          data_tmp = full_data(idata)
   37870      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37871      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37872      386476 :          idata = idata + 1
   37873      386476 :          data_tmp = full_data(idata)
   37874      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37875      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37876      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37877      386476 :          ipack = ipack + 1
   37878      386476 :          packed_data(ipack) = pack_tmp
   37879      386476 :          data_tmp = full_data(idata)
   37880      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37881      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37882      386476 :          idata = idata + 1
   37883      386476 :          data_tmp = full_data(idata)
   37884      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37885      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37886      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37887      386476 :          ipack = ipack + 1
   37888      386476 :          packed_data(ipack) = pack_tmp
   37889      386476 :          data_tmp = full_data(idata)
   37890      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37891      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37892      386476 :          idata = idata + 1
   37893      386476 :          data_tmp = full_data(idata)
   37894      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37895      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37896      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37897      386476 :          idata = idata + 1
   37898      386476 :          data_tmp = full_data(idata)
   37899      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37900      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37901      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37902      386476 :          ipack = ipack + 1
   37903      386476 :          packed_data(ipack) = pack_tmp
   37904      386476 :          data_tmp = full_data(idata)
   37905      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37906      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37907      386476 :          idata = idata + 1
   37908      386476 :          data_tmp = full_data(idata)
   37909      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37910      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37911      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37912      386476 :          ipack = ipack + 1
   37913      386476 :          packed_data(ipack) = pack_tmp
   37914      386476 :          data_tmp = full_data(idata)
   37915      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37916      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37917      386476 :          idata = idata + 1
   37918      386476 :          data_tmp = full_data(idata)
   37919      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37920      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37921      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37922      386476 :          ipack = ipack + 1
   37923      386476 :          packed_data(ipack) = pack_tmp
   37924      386476 :          data_tmp = full_data(idata)
   37925      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37926      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37927      386476 :          idata = idata + 1
   37928      386476 :          data_tmp = full_data(idata)
   37929      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37930      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37931      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37932      386476 :          idata = idata + 1
   37933      386476 :          data_tmp = full_data(idata)
   37934      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37935      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37936      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37937      386476 :          ipack = ipack + 1
   37938      386476 :          packed_data(ipack) = pack_tmp
   37939      386476 :          data_tmp = full_data(idata)
   37940      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37941      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37942      386476 :          idata = idata + 1
   37943      386476 :          data_tmp = full_data(idata)
   37944      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37945      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37946      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37947      386476 :          ipack = ipack + 1
   37948      386476 :          packed_data(ipack) = pack_tmp
   37949      386476 :          data_tmp = full_data(idata)
   37950      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37951      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37952      386476 :          idata = idata + 1
   37953      386476 :          data_tmp = full_data(idata)
   37954      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37955      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37956      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37957      386476 :          ipack = ipack + 1
   37958      386476 :          packed_data(ipack) = pack_tmp
   37959      386476 :          data_tmp = full_data(idata)
   37960      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37961      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37962      386476 :          idata = idata + 1
   37963      386476 :          data_tmp = full_data(idata)
   37964      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37965      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37966      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   37967      386476 :          idata = idata + 1
   37968      386476 :          data_tmp = full_data(idata)
   37969      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37970      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   37971      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37972      386476 :          ipack = ipack + 1
   37973      386476 :          packed_data(ipack) = pack_tmp
   37974      386476 :          data_tmp = full_data(idata)
   37975      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   37976      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   37977      386476 :          idata = idata + 1
   37978      386476 :          data_tmp = full_data(idata)
   37979      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37980      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   37981      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37982      386476 :          ipack = ipack + 1
   37983      386476 :          packed_data(ipack) = pack_tmp
   37984      386476 :          data_tmp = full_data(idata)
   37985      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   37986      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   37987      386476 :          idata = idata + 1
   37988      386476 :          data_tmp = full_data(idata)
   37989      386476 :          data_tmp = ISHFT(data_tmp, 16)
   37990      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   37991      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37992      386476 :          ipack = ipack + 1
   37993      386476 :          packed_data(ipack) = pack_tmp
   37994      386476 :          data_tmp = full_data(idata)
   37995      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   37996      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   37997      386476 :          idata = idata + 1
   37998      386476 :          data_tmp = full_data(idata)
   37999      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38000      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38001      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38002      386476 :          idata = idata + 1
   38003      386476 :          data_tmp = full_data(idata)
   38004      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38005      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   38006      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38007      386476 :          ipack = ipack + 1
   38008      386476 :          packed_data(ipack) = pack_tmp
   38009      386476 :          data_tmp = full_data(idata)
   38010      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   38011      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   38012      386476 :          idata = idata + 1
   38013      386476 :          data_tmp = full_data(idata)
   38014      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38015      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   38016      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38017      386476 :          ipack = ipack + 1
   38018      386476 :          packed_data(ipack) = pack_tmp
   38019      386476 :          data_tmp = full_data(idata)
   38020      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   38021      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   38022      386476 :          idata = idata + 1
   38023      386476 :          data_tmp = full_data(idata)
   38024      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38025      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   38026      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38027      386476 :          ipack = ipack + 1
   38028      386476 :          packed_data(ipack) = pack_tmp
   38029      386476 :          data_tmp = full_data(idata)
   38030      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   38031      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   38032      386476 :          idata = idata + 1
   38033      386476 :          data_tmp = full_data(idata)
   38034      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38035      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38036      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38037      386476 :          idata = idata + 1
   38038      386476 :          data_tmp = full_data(idata)
   38039      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38040      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   38041      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38042      386476 :          ipack = ipack + 1
   38043      386476 :          packed_data(ipack) = pack_tmp
   38044      386476 :          data_tmp = full_data(idata)
   38045      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   38046      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   38047      386476 :          idata = idata + 1
   38048      386476 :          data_tmp = full_data(idata)
   38049      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38050      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   38051      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38052      386476 :          ipack = ipack + 1
   38053      386476 :          packed_data(ipack) = pack_tmp
   38054      386476 :          data_tmp = full_data(idata)
   38055      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   38056      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   38057      386476 :          idata = idata + 1
   38058      386476 :          data_tmp = full_data(idata)
   38059      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38060      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   38061      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38062      386476 :          ipack = ipack + 1
   38063      386476 :          packed_data(ipack) = pack_tmp
   38064      386476 :          data_tmp = full_data(idata)
   38065      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   38066      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   38067      386476 :          idata = idata + 1
   38068      386476 :          data_tmp = full_data(idata)
   38069      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38070      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38071      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38072      386476 :          idata = idata + 1
   38073      386476 :          data_tmp = full_data(idata)
   38074      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38075      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   38076      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38077      386476 :          ipack = ipack + 1
   38078      386476 :          packed_data(ipack) = pack_tmp
   38079      386476 :          data_tmp = full_data(idata)
   38080      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   38081      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   38082      386476 :          idata = idata + 1
   38083      386476 :          data_tmp = full_data(idata)
   38084      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38085      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   38086      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38087      386476 :          ipack = ipack + 1
   38088      386476 :          packed_data(ipack) = pack_tmp
   38089      386476 :          data_tmp = full_data(idata)
   38090      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   38091      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   38092      386476 :          idata = idata + 1
   38093      386476 :          data_tmp = full_data(idata)
   38094      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38095      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   38096      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38097      386476 :          ipack = ipack + 1
   38098      386476 :          packed_data(ipack) = pack_tmp
   38099      386476 :          data_tmp = full_data(idata)
   38100      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   38101      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   38102      386476 :          idata = idata + 1
   38103      386476 :          data_tmp = full_data(idata)
   38104      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38105      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38106      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38107      386476 :          idata = idata + 1
   38108      386476 :          data_tmp = full_data(idata)
   38109      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38110      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   38111      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38112      386476 :          ipack = ipack + 1
   38113      386476 :          packed_data(ipack) = pack_tmp
   38114      386476 :          data_tmp = full_data(idata)
   38115      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   38116      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   38117      386476 :          idata = idata + 1
   38118      386476 :          data_tmp = full_data(idata)
   38119      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38120      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   38121      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38122      386476 :          ipack = ipack + 1
   38123      386476 :          packed_data(ipack) = pack_tmp
   38124      386476 :          data_tmp = full_data(idata)
   38125      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   38126      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   38127      386476 :          idata = idata + 1
   38128      386476 :          data_tmp = full_data(idata)
   38129      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38130      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   38131      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38132      386476 :          ipack = ipack + 1
   38133      386476 :          packed_data(ipack) = pack_tmp
   38134      386476 :          data_tmp = full_data(idata)
   38135      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   38136      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   38137      386476 :          idata = idata + 1
   38138      386476 :          data_tmp = full_data(idata)
   38139      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38140      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38141      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38142      386476 :          idata = idata + 1
   38143      386476 :          data_tmp = full_data(idata)
   38144      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38145      386476 :          data_tmp = IAND(data_tmp, mask_left(0))
   38146      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38147      386476 :          ipack = ipack + 1
   38148      386476 :          packed_data(ipack) = pack_tmp
   38149      386476 :          data_tmp = full_data(idata)
   38150      386476 :          pack_tmp = ISHFT(data_tmp, 16)
   38151      386476 :          pack_tmp = ISHFT(pack_tmp, -16)
   38152      386476 :          idata = idata + 1
   38153      386476 :          data_tmp = full_data(idata)
   38154      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38155      386476 :          data_tmp = IAND(data_tmp, mask_left(16))
   38156      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38157      386476 :          ipack = ipack + 1
   38158      386476 :          packed_data(ipack) = pack_tmp
   38159      386476 :          data_tmp = full_data(idata)
   38160      386476 :          pack_tmp = ISHFT(data_tmp, 32)
   38161      386476 :          pack_tmp = ISHFT(pack_tmp, -32)
   38162      386476 :          idata = idata + 1
   38163      386476 :          data_tmp = full_data(idata)
   38164      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38165      386476 :          data_tmp = IAND(data_tmp, mask_left(32))
   38166      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38167      386476 :          ipack = ipack + 1
   38168      386476 :          packed_data(ipack) = pack_tmp
   38169      386476 :          data_tmp = full_data(idata)
   38170      386476 :          pack_tmp = ISHFT(data_tmp, 48)
   38171      386476 :          pack_tmp = ISHFT(pack_tmp, -48)
   38172      386476 :          idata = idata + 1
   38173      386476 :          data_tmp = full_data(idata)
   38174      386476 :          data_tmp = ISHFT(data_tmp, 16)
   38175      386476 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38176             :          pack_tmp = ISHFT(pack_tmp, 0)
   38177      386476 :          pack_tmp = ISHFT(pack_tmp, 0)
   38178      386476 :          ipack = ipack + 1
   38179      386714 :          packed_data(ipack) = pack_tmp
   38180             :       END DO
   38181       25723 :       IF (Ndata_rep < Ndata) THEN
   38182        2952 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38183             :       END IF
   38184       25723 :    END SUBROUTINE ints2bits_48
   38185             : 
   38186             : ! **************************************************************************************************
   38187             : !> \brief ...
   38188             : !> \param Ndata ...
   38189             : !> \param packed_data ...
   38190             : !> \param full_data ...
   38191             : ! **************************************************************************************************
   38192      110211 :    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      110211 :       ipack = 0
   38203      110211 :       idata = 0
   38204      110211 :       pack_tmp = 0
   38205      110211 :       Ndata_rep = (Ndata/64)*64
   38206      110211 :       DO kdata = 1, Ndata_rep, 64
   38207     1627835 :          idata = idata + 1
   38208     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38209     1627835 :          ipack = ipack + 1
   38210     1627835 :          pack_tmp = packed_data(ipack)
   38211     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38212     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38213     1627835 :          idata = idata + 1
   38214     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38215     1627835 :          ipack = ipack + 1
   38216     1627835 :          pack_tmp = packed_data(ipack)
   38217     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38218     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38219     1627835 :          idata = idata + 1
   38220     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38221     1627835 :          ipack = ipack + 1
   38222     1627835 :          pack_tmp = packed_data(ipack)
   38223     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38224     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38225     1627835 :          idata = idata + 1
   38226     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38227     1627835 :          full_data(idata) = data_tmp
   38228     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38229     1627835 :          idata = idata + 1
   38230     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38231     1627835 :          ipack = ipack + 1
   38232     1627835 :          pack_tmp = packed_data(ipack)
   38233     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38234     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38235     1627835 :          idata = idata + 1
   38236     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38237     1627835 :          ipack = ipack + 1
   38238     1627835 :          pack_tmp = packed_data(ipack)
   38239     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38240     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38241     1627835 :          idata = idata + 1
   38242     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38243     1627835 :          ipack = ipack + 1
   38244     1627835 :          pack_tmp = packed_data(ipack)
   38245     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38246     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38247     1627835 :          idata = idata + 1
   38248     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38249     1627835 :          full_data(idata) = data_tmp
   38250     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38251     1627835 :          idata = idata + 1
   38252     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38253     1627835 :          ipack = ipack + 1
   38254     1627835 :          pack_tmp = packed_data(ipack)
   38255     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38256     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38257     1627835 :          idata = idata + 1
   38258     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38259     1627835 :          ipack = ipack + 1
   38260     1627835 :          pack_tmp = packed_data(ipack)
   38261     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38262     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38263     1627835 :          idata = idata + 1
   38264     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38265     1627835 :          ipack = ipack + 1
   38266     1627835 :          pack_tmp = packed_data(ipack)
   38267     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38268     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38269     1627835 :          idata = idata + 1
   38270     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38271     1627835 :          full_data(idata) = data_tmp
   38272     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38273     1627835 :          idata = idata + 1
   38274     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38275     1627835 :          ipack = ipack + 1
   38276     1627835 :          pack_tmp = packed_data(ipack)
   38277     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38278     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38279     1627835 :          idata = idata + 1
   38280     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38281     1627835 :          ipack = ipack + 1
   38282     1627835 :          pack_tmp = packed_data(ipack)
   38283     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38284     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38285     1627835 :          idata = idata + 1
   38286     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38287     1627835 :          ipack = ipack + 1
   38288     1627835 :          pack_tmp = packed_data(ipack)
   38289     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38290     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38291     1627835 :          idata = idata + 1
   38292     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38293     1627835 :          full_data(idata) = data_tmp
   38294     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38295     1627835 :          idata = idata + 1
   38296     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38297     1627835 :          ipack = ipack + 1
   38298     1627835 :          pack_tmp = packed_data(ipack)
   38299     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38300     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38301     1627835 :          idata = idata + 1
   38302     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38303     1627835 :          ipack = ipack + 1
   38304     1627835 :          pack_tmp = packed_data(ipack)
   38305     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38306     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38307     1627835 :          idata = idata + 1
   38308     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38309     1627835 :          ipack = ipack + 1
   38310     1627835 :          pack_tmp = packed_data(ipack)
   38311     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38312     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38313     1627835 :          idata = idata + 1
   38314     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38315     1627835 :          full_data(idata) = data_tmp
   38316     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38317     1627835 :          idata = idata + 1
   38318     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38319     1627835 :          ipack = ipack + 1
   38320     1627835 :          pack_tmp = packed_data(ipack)
   38321     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38322     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38323     1627835 :          idata = idata + 1
   38324     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38325     1627835 :          ipack = ipack + 1
   38326     1627835 :          pack_tmp = packed_data(ipack)
   38327     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38328     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38329     1627835 :          idata = idata + 1
   38330     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38331     1627835 :          ipack = ipack + 1
   38332     1627835 :          pack_tmp = packed_data(ipack)
   38333     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38334     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38335     1627835 :          idata = idata + 1
   38336     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38337     1627835 :          full_data(idata) = data_tmp
   38338     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38339     1627835 :          idata = idata + 1
   38340     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38341     1627835 :          ipack = ipack + 1
   38342     1627835 :          pack_tmp = packed_data(ipack)
   38343     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38344     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38345     1627835 :          idata = idata + 1
   38346     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38347     1627835 :          ipack = ipack + 1
   38348     1627835 :          pack_tmp = packed_data(ipack)
   38349     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38350     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38351     1627835 :          idata = idata + 1
   38352     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38353     1627835 :          ipack = ipack + 1
   38354     1627835 :          pack_tmp = packed_data(ipack)
   38355     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38356     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38357     1627835 :          idata = idata + 1
   38358     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38359     1627835 :          full_data(idata) = data_tmp
   38360     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38361     1627835 :          idata = idata + 1
   38362     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38363     1627835 :          ipack = ipack + 1
   38364     1627835 :          pack_tmp = packed_data(ipack)
   38365     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38366     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38367     1627835 :          idata = idata + 1
   38368     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38369     1627835 :          ipack = ipack + 1
   38370     1627835 :          pack_tmp = packed_data(ipack)
   38371     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38372     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38373     1627835 :          idata = idata + 1
   38374     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38375     1627835 :          ipack = ipack + 1
   38376     1627835 :          pack_tmp = packed_data(ipack)
   38377     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38378     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38379     1627835 :          idata = idata + 1
   38380     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38381     1627835 :          full_data(idata) = data_tmp
   38382     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38383     1627835 :          idata = idata + 1
   38384     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38385     1627835 :          ipack = ipack + 1
   38386     1627835 :          pack_tmp = packed_data(ipack)
   38387     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38388     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38389     1627835 :          idata = idata + 1
   38390     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38391     1627835 :          ipack = ipack + 1
   38392     1627835 :          pack_tmp = packed_data(ipack)
   38393     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38394     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38395     1627835 :          idata = idata + 1
   38396     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38397     1627835 :          ipack = ipack + 1
   38398     1627835 :          pack_tmp = packed_data(ipack)
   38399     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38400     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38401     1627835 :          idata = idata + 1
   38402     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38403     1627835 :          full_data(idata) = data_tmp
   38404     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38405     1627835 :          idata = idata + 1
   38406     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38407     1627835 :          ipack = ipack + 1
   38408     1627835 :          pack_tmp = packed_data(ipack)
   38409     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38410     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38411     1627835 :          idata = idata + 1
   38412     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38413     1627835 :          ipack = ipack + 1
   38414     1627835 :          pack_tmp = packed_data(ipack)
   38415     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38416     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38417     1627835 :          idata = idata + 1
   38418     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38419     1627835 :          ipack = ipack + 1
   38420     1627835 :          pack_tmp = packed_data(ipack)
   38421     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38422     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38423     1627835 :          idata = idata + 1
   38424     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38425     1627835 :          full_data(idata) = data_tmp
   38426     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38427     1627835 :          idata = idata + 1
   38428     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38429     1627835 :          ipack = ipack + 1
   38430     1627835 :          pack_tmp = packed_data(ipack)
   38431     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38432     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38433     1627835 :          idata = idata + 1
   38434     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38435     1627835 :          ipack = ipack + 1
   38436     1627835 :          pack_tmp = packed_data(ipack)
   38437     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38438     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38439     1627835 :          idata = idata + 1
   38440     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38441     1627835 :          ipack = ipack + 1
   38442     1627835 :          pack_tmp = packed_data(ipack)
   38443     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38444     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38445     1627835 :          idata = idata + 1
   38446     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38447     1627835 :          full_data(idata) = data_tmp
   38448     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38449     1627835 :          idata = idata + 1
   38450     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38451     1627835 :          ipack = ipack + 1
   38452     1627835 :          pack_tmp = packed_data(ipack)
   38453     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38454     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38455     1627835 :          idata = idata + 1
   38456     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38457     1627835 :          ipack = ipack + 1
   38458     1627835 :          pack_tmp = packed_data(ipack)
   38459     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38460     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38461     1627835 :          idata = idata + 1
   38462     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38463     1627835 :          ipack = ipack + 1
   38464     1627835 :          pack_tmp = packed_data(ipack)
   38465     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38466     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38467     1627835 :          idata = idata + 1
   38468     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38469     1627835 :          full_data(idata) = data_tmp
   38470     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38471     1627835 :          idata = idata + 1
   38472     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38473     1627835 :          ipack = ipack + 1
   38474     1627835 :          pack_tmp = packed_data(ipack)
   38475     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38476     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38477     1627835 :          idata = idata + 1
   38478     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38479     1627835 :          ipack = ipack + 1
   38480     1627835 :          pack_tmp = packed_data(ipack)
   38481     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38482     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38483     1627835 :          idata = idata + 1
   38484     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38485     1627835 :          ipack = ipack + 1
   38486     1627835 :          pack_tmp = packed_data(ipack)
   38487     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38488     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38489     1627835 :          idata = idata + 1
   38490     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38491     1627835 :          full_data(idata) = data_tmp
   38492     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38493     1627835 :          idata = idata + 1
   38494     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38495     1627835 :          ipack = ipack + 1
   38496     1627835 :          pack_tmp = packed_data(ipack)
   38497     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38498     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38499     1627835 :          idata = idata + 1
   38500     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38501     1627835 :          ipack = ipack + 1
   38502     1627835 :          pack_tmp = packed_data(ipack)
   38503     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38504     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38505     1627835 :          idata = idata + 1
   38506     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38507     1627835 :          ipack = ipack + 1
   38508     1627835 :          pack_tmp = packed_data(ipack)
   38509     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38510     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38511     1627835 :          idata = idata + 1
   38512     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38513     1627835 :          full_data(idata) = data_tmp
   38514     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38515     1627835 :          idata = idata + 1
   38516     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38517     1627835 :          ipack = ipack + 1
   38518     1627835 :          pack_tmp = packed_data(ipack)
   38519     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38520     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38521     1627835 :          idata = idata + 1
   38522     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38523     1627835 :          ipack = ipack + 1
   38524     1627835 :          pack_tmp = packed_data(ipack)
   38525     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38526     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38527     1627835 :          idata = idata + 1
   38528     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38529     1627835 :          ipack = ipack + 1
   38530     1627835 :          pack_tmp = packed_data(ipack)
   38531     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38532     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38533     1627835 :          idata = idata + 1
   38534     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38535     1627835 :          full_data(idata) = data_tmp
   38536     1627835 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38537     1627835 :          idata = idata + 1
   38538     1627835 :          data_tmp = ISHFT(pack_tmp, 48)
   38539     1627835 :          ipack = ipack + 1
   38540     1627835 :          pack_tmp = packed_data(ipack)
   38541     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38542     1627835 :          pack_tmp = ISHFT(pack_tmp, -48)
   38543     1627835 :          idata = idata + 1
   38544     1627835 :          data_tmp = ISHFT(pack_tmp, 32)
   38545     1627835 :          ipack = ipack + 1
   38546     1627835 :          pack_tmp = packed_data(ipack)
   38547     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38548     1627835 :          pack_tmp = ISHFT(pack_tmp, -32)
   38549     1627835 :          idata = idata + 1
   38550     1627835 :          data_tmp = ISHFT(pack_tmp, 16)
   38551     1627835 :          ipack = ipack + 1
   38552     1627835 :          pack_tmp = packed_data(ipack)
   38553     1627835 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38554     1627835 :          pack_tmp = ISHFT(pack_tmp, -16)
   38555     1627835 :          idata = idata + 1
   38556     1627835 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38557     1627835 :          full_data(idata) = data_tmp
   38558     1629408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38559             :       END DO
   38560      110211 :       IF (Ndata_rep < Ndata) THEN
   38561       15946 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38562             :       END IF
   38563      110211 :    END SUBROUTINE bits2ints_48
   38564             : 
   38565             : ! **************************************************************************************************
   38566             : !> \brief ...
   38567             : !> \param Ndata ...
   38568             : !> \param packed_data ...
   38569             : !> \param full_data ...
   38570             : ! **************************************************************************************************
   38571       24558 :    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       24558 :       idata = 0
   38582       24558 :       ipack = 0
   38583       24558 :       Ndata_rep = (Ndata/64)*64
   38584       24558 :       DO kdata = 1, Ndata_rep, 64
   38585      377441 :          pack_tmp = 0
   38586      377441 :          idata = idata + 1
   38587      377441 :          data_tmp = full_data(idata)
   38588      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38589      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38590      377441 :          pack_tmp = ISHFT(pack_tmp, -15)
   38591      377441 :          idata = idata + 1
   38592      377441 :          data_tmp = full_data(idata)
   38593      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38594      377441 :          data_tmp = IAND(data_tmp, mask_left(15))
   38595      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38596      377441 :          ipack = ipack + 1
   38597      377441 :          packed_data(ipack) = pack_tmp
   38598      377441 :          data_tmp = full_data(idata)
   38599      377441 :          pack_tmp = ISHFT(data_tmp, 30)
   38600      377441 :          pack_tmp = ISHFT(pack_tmp, -30)
   38601      377441 :          idata = idata + 1
   38602      377441 :          data_tmp = full_data(idata)
   38603      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38604      377441 :          data_tmp = IAND(data_tmp, mask_left(30))
   38605      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38606      377441 :          ipack = ipack + 1
   38607      377441 :          packed_data(ipack) = pack_tmp
   38608      377441 :          data_tmp = full_data(idata)
   38609      377441 :          pack_tmp = ISHFT(data_tmp, 45)
   38610      377441 :          pack_tmp = ISHFT(pack_tmp, -45)
   38611      377441 :          idata = idata + 1
   38612      377441 :          data_tmp = full_data(idata)
   38613      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38614      377441 :          data_tmp = IAND(data_tmp, mask_left(45))
   38615      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38616      377441 :          ipack = ipack + 1
   38617      377441 :          packed_data(ipack) = pack_tmp
   38618      377441 :          data_tmp = full_data(idata)
   38619      377441 :          pack_tmp = ISHFT(data_tmp, 60)
   38620      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38621      377441 :          idata = idata + 1
   38622      377441 :          data_tmp = full_data(idata)
   38623      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38624      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38625      377441 :          pack_tmp = ISHFT(pack_tmp, -11)
   38626      377441 :          idata = idata + 1
   38627      377441 :          data_tmp = full_data(idata)
   38628      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38629      377441 :          data_tmp = IAND(data_tmp, mask_left(11))
   38630      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38631      377441 :          ipack = ipack + 1
   38632      377441 :          packed_data(ipack) = pack_tmp
   38633      377441 :          data_tmp = full_data(idata)
   38634      377441 :          pack_tmp = ISHFT(data_tmp, 26)
   38635      377441 :          pack_tmp = ISHFT(pack_tmp, -26)
   38636      377441 :          idata = idata + 1
   38637      377441 :          data_tmp = full_data(idata)
   38638      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38639      377441 :          data_tmp = IAND(data_tmp, mask_left(26))
   38640      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38641      377441 :          ipack = ipack + 1
   38642      377441 :          packed_data(ipack) = pack_tmp
   38643      377441 :          data_tmp = full_data(idata)
   38644      377441 :          pack_tmp = ISHFT(data_tmp, 41)
   38645      377441 :          pack_tmp = ISHFT(pack_tmp, -41)
   38646      377441 :          idata = idata + 1
   38647      377441 :          data_tmp = full_data(idata)
   38648      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38649      377441 :          data_tmp = IAND(data_tmp, mask_left(41))
   38650      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38651      377441 :          ipack = ipack + 1
   38652      377441 :          packed_data(ipack) = pack_tmp
   38653      377441 :          data_tmp = full_data(idata)
   38654      377441 :          pack_tmp = ISHFT(data_tmp, 56)
   38655      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38656      377441 :          idata = idata + 1
   38657      377441 :          data_tmp = full_data(idata)
   38658      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38659      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38660      377441 :          pack_tmp = ISHFT(pack_tmp, -7)
   38661      377441 :          idata = idata + 1
   38662      377441 :          data_tmp = full_data(idata)
   38663      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38664      377441 :          data_tmp = IAND(data_tmp, mask_left(7))
   38665      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38666      377441 :          ipack = ipack + 1
   38667      377441 :          packed_data(ipack) = pack_tmp
   38668      377441 :          data_tmp = full_data(idata)
   38669      377441 :          pack_tmp = ISHFT(data_tmp, 22)
   38670      377441 :          pack_tmp = ISHFT(pack_tmp, -22)
   38671      377441 :          idata = idata + 1
   38672      377441 :          data_tmp = full_data(idata)
   38673      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38674      377441 :          data_tmp = IAND(data_tmp, mask_left(22))
   38675      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38676      377441 :          ipack = ipack + 1
   38677      377441 :          packed_data(ipack) = pack_tmp
   38678      377441 :          data_tmp = full_data(idata)
   38679      377441 :          pack_tmp = ISHFT(data_tmp, 37)
   38680      377441 :          pack_tmp = ISHFT(pack_tmp, -37)
   38681      377441 :          idata = idata + 1
   38682      377441 :          data_tmp = full_data(idata)
   38683      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38684      377441 :          data_tmp = IAND(data_tmp, mask_left(37))
   38685      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38686      377441 :          ipack = ipack + 1
   38687      377441 :          packed_data(ipack) = pack_tmp
   38688      377441 :          data_tmp = full_data(idata)
   38689      377441 :          pack_tmp = ISHFT(data_tmp, 52)
   38690      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38691      377441 :          idata = idata + 1
   38692      377441 :          data_tmp = full_data(idata)
   38693      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38694      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38695      377441 :          pack_tmp = ISHFT(pack_tmp, -3)
   38696      377441 :          idata = idata + 1
   38697      377441 :          data_tmp = full_data(idata)
   38698      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38699      377441 :          data_tmp = IAND(data_tmp, mask_left(3))
   38700      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38701      377441 :          ipack = ipack + 1
   38702      377441 :          packed_data(ipack) = pack_tmp
   38703      377441 :          data_tmp = full_data(idata)
   38704      377441 :          pack_tmp = ISHFT(data_tmp, 18)
   38705      377441 :          pack_tmp = ISHFT(pack_tmp, -18)
   38706      377441 :          idata = idata + 1
   38707      377441 :          data_tmp = full_data(idata)
   38708      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38709      377441 :          data_tmp = IAND(data_tmp, mask_left(18))
   38710      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38711      377441 :          ipack = ipack + 1
   38712      377441 :          packed_data(ipack) = pack_tmp
   38713      377441 :          data_tmp = full_data(idata)
   38714      377441 :          pack_tmp = ISHFT(data_tmp, 33)
   38715      377441 :          pack_tmp = ISHFT(pack_tmp, -33)
   38716      377441 :          idata = idata + 1
   38717      377441 :          data_tmp = full_data(idata)
   38718      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38719      377441 :          data_tmp = IAND(data_tmp, mask_left(33))
   38720      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38721      377441 :          ipack = ipack + 1
   38722      377441 :          packed_data(ipack) = pack_tmp
   38723      377441 :          data_tmp = full_data(idata)
   38724      377441 :          pack_tmp = ISHFT(data_tmp, 48)
   38725      377441 :          pack_tmp = ISHFT(pack_tmp, -48)
   38726      377441 :          idata = idata + 1
   38727      377441 :          data_tmp = full_data(idata)
   38728      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38729      377441 :          data_tmp = IAND(data_tmp, mask_left(48))
   38730      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38731      377441 :          ipack = ipack + 1
   38732      377441 :          packed_data(ipack) = pack_tmp
   38733      377441 :          data_tmp = full_data(idata)
   38734      377441 :          pack_tmp = ISHFT(data_tmp, 63)
   38735      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38736      377441 :          idata = idata + 1
   38737      377441 :          data_tmp = full_data(idata)
   38738      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38739      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38740      377441 :          pack_tmp = ISHFT(pack_tmp, -14)
   38741      377441 :          idata = idata + 1
   38742      377441 :          data_tmp = full_data(idata)
   38743      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38744      377441 :          data_tmp = IAND(data_tmp, mask_left(14))
   38745      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38746      377441 :          ipack = ipack + 1
   38747      377441 :          packed_data(ipack) = pack_tmp
   38748      377441 :          data_tmp = full_data(idata)
   38749      377441 :          pack_tmp = ISHFT(data_tmp, 29)
   38750      377441 :          pack_tmp = ISHFT(pack_tmp, -29)
   38751      377441 :          idata = idata + 1
   38752      377441 :          data_tmp = full_data(idata)
   38753      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38754      377441 :          data_tmp = IAND(data_tmp, mask_left(29))
   38755      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38756      377441 :          ipack = ipack + 1
   38757      377441 :          packed_data(ipack) = pack_tmp
   38758      377441 :          data_tmp = full_data(idata)
   38759      377441 :          pack_tmp = ISHFT(data_tmp, 44)
   38760      377441 :          pack_tmp = ISHFT(pack_tmp, -44)
   38761      377441 :          idata = idata + 1
   38762      377441 :          data_tmp = full_data(idata)
   38763      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38764      377441 :          data_tmp = IAND(data_tmp, mask_left(44))
   38765      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38766      377441 :          ipack = ipack + 1
   38767      377441 :          packed_data(ipack) = pack_tmp
   38768      377441 :          data_tmp = full_data(idata)
   38769      377441 :          pack_tmp = ISHFT(data_tmp, 59)
   38770      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38771      377441 :          idata = idata + 1
   38772      377441 :          data_tmp = full_data(idata)
   38773      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38774      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38775      377441 :          pack_tmp = ISHFT(pack_tmp, -10)
   38776      377441 :          idata = idata + 1
   38777      377441 :          data_tmp = full_data(idata)
   38778      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38779      377441 :          data_tmp = IAND(data_tmp, mask_left(10))
   38780      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38781      377441 :          ipack = ipack + 1
   38782      377441 :          packed_data(ipack) = pack_tmp
   38783      377441 :          data_tmp = full_data(idata)
   38784      377441 :          pack_tmp = ISHFT(data_tmp, 25)
   38785      377441 :          pack_tmp = ISHFT(pack_tmp, -25)
   38786      377441 :          idata = idata + 1
   38787      377441 :          data_tmp = full_data(idata)
   38788      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38789      377441 :          data_tmp = IAND(data_tmp, mask_left(25))
   38790      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38791      377441 :          ipack = ipack + 1
   38792      377441 :          packed_data(ipack) = pack_tmp
   38793      377441 :          data_tmp = full_data(idata)
   38794      377441 :          pack_tmp = ISHFT(data_tmp, 40)
   38795      377441 :          pack_tmp = ISHFT(pack_tmp, -40)
   38796      377441 :          idata = idata + 1
   38797      377441 :          data_tmp = full_data(idata)
   38798      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38799      377441 :          data_tmp = IAND(data_tmp, mask_left(40))
   38800      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38801      377441 :          ipack = ipack + 1
   38802      377441 :          packed_data(ipack) = pack_tmp
   38803      377441 :          data_tmp = full_data(idata)
   38804      377441 :          pack_tmp = ISHFT(data_tmp, 55)
   38805      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38806      377441 :          idata = idata + 1
   38807      377441 :          data_tmp = full_data(idata)
   38808      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38809      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38810      377441 :          pack_tmp = ISHFT(pack_tmp, -6)
   38811      377441 :          idata = idata + 1
   38812      377441 :          data_tmp = full_data(idata)
   38813      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38814      377441 :          data_tmp = IAND(data_tmp, mask_left(6))
   38815      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38816      377441 :          ipack = ipack + 1
   38817      377441 :          packed_data(ipack) = pack_tmp
   38818      377441 :          data_tmp = full_data(idata)
   38819      377441 :          pack_tmp = ISHFT(data_tmp, 21)
   38820      377441 :          pack_tmp = ISHFT(pack_tmp, -21)
   38821      377441 :          idata = idata + 1
   38822      377441 :          data_tmp = full_data(idata)
   38823      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38824      377441 :          data_tmp = IAND(data_tmp, mask_left(21))
   38825      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38826      377441 :          ipack = ipack + 1
   38827      377441 :          packed_data(ipack) = pack_tmp
   38828      377441 :          data_tmp = full_data(idata)
   38829      377441 :          pack_tmp = ISHFT(data_tmp, 36)
   38830      377441 :          pack_tmp = ISHFT(pack_tmp, -36)
   38831      377441 :          idata = idata + 1
   38832      377441 :          data_tmp = full_data(idata)
   38833      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38834      377441 :          data_tmp = IAND(data_tmp, mask_left(36))
   38835      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38836      377441 :          ipack = ipack + 1
   38837      377441 :          packed_data(ipack) = pack_tmp
   38838      377441 :          data_tmp = full_data(idata)
   38839      377441 :          pack_tmp = ISHFT(data_tmp, 51)
   38840      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38841      377441 :          idata = idata + 1
   38842      377441 :          data_tmp = full_data(idata)
   38843      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38844      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38845      377441 :          pack_tmp = ISHFT(pack_tmp, -2)
   38846      377441 :          idata = idata + 1
   38847      377441 :          data_tmp = full_data(idata)
   38848      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38849      377441 :          data_tmp = IAND(data_tmp, mask_left(2))
   38850      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38851      377441 :          ipack = ipack + 1
   38852      377441 :          packed_data(ipack) = pack_tmp
   38853      377441 :          data_tmp = full_data(idata)
   38854      377441 :          pack_tmp = ISHFT(data_tmp, 17)
   38855      377441 :          pack_tmp = ISHFT(pack_tmp, -17)
   38856      377441 :          idata = idata + 1
   38857      377441 :          data_tmp = full_data(idata)
   38858      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38859      377441 :          data_tmp = IAND(data_tmp, mask_left(17))
   38860      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38861      377441 :          ipack = ipack + 1
   38862      377441 :          packed_data(ipack) = pack_tmp
   38863      377441 :          data_tmp = full_data(idata)
   38864      377441 :          pack_tmp = ISHFT(data_tmp, 32)
   38865      377441 :          pack_tmp = ISHFT(pack_tmp, -32)
   38866      377441 :          idata = idata + 1
   38867      377441 :          data_tmp = full_data(idata)
   38868      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38869      377441 :          data_tmp = IAND(data_tmp, mask_left(32))
   38870      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38871      377441 :          ipack = ipack + 1
   38872      377441 :          packed_data(ipack) = pack_tmp
   38873      377441 :          data_tmp = full_data(idata)
   38874      377441 :          pack_tmp = ISHFT(data_tmp, 47)
   38875      377441 :          pack_tmp = ISHFT(pack_tmp, -47)
   38876      377441 :          idata = idata + 1
   38877      377441 :          data_tmp = full_data(idata)
   38878      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38879      377441 :          data_tmp = IAND(data_tmp, mask_left(47))
   38880      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38881      377441 :          ipack = ipack + 1
   38882      377441 :          packed_data(ipack) = pack_tmp
   38883      377441 :          data_tmp = full_data(idata)
   38884      377441 :          pack_tmp = ISHFT(data_tmp, 62)
   38885      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38886      377441 :          idata = idata + 1
   38887      377441 :          data_tmp = full_data(idata)
   38888      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38889      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38890      377441 :          pack_tmp = ISHFT(pack_tmp, -13)
   38891      377441 :          idata = idata + 1
   38892      377441 :          data_tmp = full_data(idata)
   38893      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38894      377441 :          data_tmp = IAND(data_tmp, mask_left(13))
   38895      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38896      377441 :          ipack = ipack + 1
   38897      377441 :          packed_data(ipack) = pack_tmp
   38898      377441 :          data_tmp = full_data(idata)
   38899      377441 :          pack_tmp = ISHFT(data_tmp, 28)
   38900      377441 :          pack_tmp = ISHFT(pack_tmp, -28)
   38901      377441 :          idata = idata + 1
   38902      377441 :          data_tmp = full_data(idata)
   38903      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38904      377441 :          data_tmp = IAND(data_tmp, mask_left(28))
   38905      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38906      377441 :          ipack = ipack + 1
   38907      377441 :          packed_data(ipack) = pack_tmp
   38908      377441 :          data_tmp = full_data(idata)
   38909      377441 :          pack_tmp = ISHFT(data_tmp, 43)
   38910      377441 :          pack_tmp = ISHFT(pack_tmp, -43)
   38911      377441 :          idata = idata + 1
   38912      377441 :          data_tmp = full_data(idata)
   38913      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38914      377441 :          data_tmp = IAND(data_tmp, mask_left(43))
   38915      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38916      377441 :          ipack = ipack + 1
   38917      377441 :          packed_data(ipack) = pack_tmp
   38918      377441 :          data_tmp = full_data(idata)
   38919      377441 :          pack_tmp = ISHFT(data_tmp, 58)
   38920      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38921      377441 :          idata = idata + 1
   38922      377441 :          data_tmp = full_data(idata)
   38923      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38924      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38925      377441 :          pack_tmp = ISHFT(pack_tmp, -9)
   38926      377441 :          idata = idata + 1
   38927      377441 :          data_tmp = full_data(idata)
   38928      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38929      377441 :          data_tmp = IAND(data_tmp, mask_left(9))
   38930      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38931      377441 :          ipack = ipack + 1
   38932      377441 :          packed_data(ipack) = pack_tmp
   38933      377441 :          data_tmp = full_data(idata)
   38934      377441 :          pack_tmp = ISHFT(data_tmp, 24)
   38935      377441 :          pack_tmp = ISHFT(pack_tmp, -24)
   38936      377441 :          idata = idata + 1
   38937      377441 :          data_tmp = full_data(idata)
   38938      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38939      377441 :          data_tmp = IAND(data_tmp, mask_left(24))
   38940      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38941      377441 :          ipack = ipack + 1
   38942      377441 :          packed_data(ipack) = pack_tmp
   38943      377441 :          data_tmp = full_data(idata)
   38944      377441 :          pack_tmp = ISHFT(data_tmp, 39)
   38945      377441 :          pack_tmp = ISHFT(pack_tmp, -39)
   38946      377441 :          idata = idata + 1
   38947      377441 :          data_tmp = full_data(idata)
   38948      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38949      377441 :          data_tmp = IAND(data_tmp, mask_left(39))
   38950      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38951      377441 :          ipack = ipack + 1
   38952      377441 :          packed_data(ipack) = pack_tmp
   38953      377441 :          data_tmp = full_data(idata)
   38954      377441 :          pack_tmp = ISHFT(data_tmp, 54)
   38955      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38956      377441 :          idata = idata + 1
   38957      377441 :          data_tmp = full_data(idata)
   38958      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38959      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38960      377441 :          pack_tmp = ISHFT(pack_tmp, -5)
   38961      377441 :          idata = idata + 1
   38962      377441 :          data_tmp = full_data(idata)
   38963      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38964      377441 :          data_tmp = IAND(data_tmp, mask_left(5))
   38965      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38966      377441 :          ipack = ipack + 1
   38967      377441 :          packed_data(ipack) = pack_tmp
   38968      377441 :          data_tmp = full_data(idata)
   38969      377441 :          pack_tmp = ISHFT(data_tmp, 20)
   38970      377441 :          pack_tmp = ISHFT(pack_tmp, -20)
   38971      377441 :          idata = idata + 1
   38972      377441 :          data_tmp = full_data(idata)
   38973      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38974      377441 :          data_tmp = IAND(data_tmp, mask_left(20))
   38975      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38976      377441 :          ipack = ipack + 1
   38977      377441 :          packed_data(ipack) = pack_tmp
   38978      377441 :          data_tmp = full_data(idata)
   38979      377441 :          pack_tmp = ISHFT(data_tmp, 35)
   38980      377441 :          pack_tmp = ISHFT(pack_tmp, -35)
   38981      377441 :          idata = idata + 1
   38982      377441 :          data_tmp = full_data(idata)
   38983      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38984      377441 :          data_tmp = IAND(data_tmp, mask_left(35))
   38985      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38986      377441 :          ipack = ipack + 1
   38987      377441 :          packed_data(ipack) = pack_tmp
   38988      377441 :          data_tmp = full_data(idata)
   38989      377441 :          pack_tmp = ISHFT(data_tmp, 50)
   38990      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   38991      377441 :          idata = idata + 1
   38992      377441 :          data_tmp = full_data(idata)
   38993      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38994      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38995      377441 :          pack_tmp = ISHFT(pack_tmp, -1)
   38996      377441 :          idata = idata + 1
   38997      377441 :          data_tmp = full_data(idata)
   38998      377441 :          data_tmp = ISHFT(data_tmp, 15)
   38999      377441 :          data_tmp = IAND(data_tmp, mask_left(1))
   39000      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39001      377441 :          ipack = ipack + 1
   39002      377441 :          packed_data(ipack) = pack_tmp
   39003      377441 :          data_tmp = full_data(idata)
   39004      377441 :          pack_tmp = ISHFT(data_tmp, 16)
   39005      377441 :          pack_tmp = ISHFT(pack_tmp, -16)
   39006      377441 :          idata = idata + 1
   39007      377441 :          data_tmp = full_data(idata)
   39008      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39009      377441 :          data_tmp = IAND(data_tmp, mask_left(16))
   39010      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39011      377441 :          ipack = ipack + 1
   39012      377441 :          packed_data(ipack) = pack_tmp
   39013      377441 :          data_tmp = full_data(idata)
   39014      377441 :          pack_tmp = ISHFT(data_tmp, 31)
   39015      377441 :          pack_tmp = ISHFT(pack_tmp, -31)
   39016      377441 :          idata = idata + 1
   39017      377441 :          data_tmp = full_data(idata)
   39018      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39019      377441 :          data_tmp = IAND(data_tmp, mask_left(31))
   39020      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39021      377441 :          ipack = ipack + 1
   39022      377441 :          packed_data(ipack) = pack_tmp
   39023      377441 :          data_tmp = full_data(idata)
   39024      377441 :          pack_tmp = ISHFT(data_tmp, 46)
   39025      377441 :          pack_tmp = ISHFT(pack_tmp, -46)
   39026      377441 :          idata = idata + 1
   39027      377441 :          data_tmp = full_data(idata)
   39028      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39029      377441 :          data_tmp = IAND(data_tmp, mask_left(46))
   39030      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39031      377441 :          ipack = ipack + 1
   39032      377441 :          packed_data(ipack) = pack_tmp
   39033      377441 :          data_tmp = full_data(idata)
   39034      377441 :          pack_tmp = ISHFT(data_tmp, 61)
   39035      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   39036      377441 :          idata = idata + 1
   39037      377441 :          data_tmp = full_data(idata)
   39038      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39039      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39040      377441 :          pack_tmp = ISHFT(pack_tmp, -12)
   39041      377441 :          idata = idata + 1
   39042      377441 :          data_tmp = full_data(idata)
   39043      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39044      377441 :          data_tmp = IAND(data_tmp, mask_left(12))
   39045      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39046      377441 :          ipack = ipack + 1
   39047      377441 :          packed_data(ipack) = pack_tmp
   39048      377441 :          data_tmp = full_data(idata)
   39049      377441 :          pack_tmp = ISHFT(data_tmp, 27)
   39050      377441 :          pack_tmp = ISHFT(pack_tmp, -27)
   39051      377441 :          idata = idata + 1
   39052      377441 :          data_tmp = full_data(idata)
   39053      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39054      377441 :          data_tmp = IAND(data_tmp, mask_left(27))
   39055      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39056      377441 :          ipack = ipack + 1
   39057      377441 :          packed_data(ipack) = pack_tmp
   39058      377441 :          data_tmp = full_data(idata)
   39059      377441 :          pack_tmp = ISHFT(data_tmp, 42)
   39060      377441 :          pack_tmp = ISHFT(pack_tmp, -42)
   39061      377441 :          idata = idata + 1
   39062      377441 :          data_tmp = full_data(idata)
   39063      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39064      377441 :          data_tmp = IAND(data_tmp, mask_left(42))
   39065      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39066      377441 :          ipack = ipack + 1
   39067      377441 :          packed_data(ipack) = pack_tmp
   39068      377441 :          data_tmp = full_data(idata)
   39069      377441 :          pack_tmp = ISHFT(data_tmp, 57)
   39070      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   39071      377441 :          idata = idata + 1
   39072      377441 :          data_tmp = full_data(idata)
   39073      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39074      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39075      377441 :          pack_tmp = ISHFT(pack_tmp, -8)
   39076      377441 :          idata = idata + 1
   39077      377441 :          data_tmp = full_data(idata)
   39078      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39079      377441 :          data_tmp = IAND(data_tmp, mask_left(8))
   39080      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39081      377441 :          ipack = ipack + 1
   39082      377441 :          packed_data(ipack) = pack_tmp
   39083      377441 :          data_tmp = full_data(idata)
   39084      377441 :          pack_tmp = ISHFT(data_tmp, 23)
   39085      377441 :          pack_tmp = ISHFT(pack_tmp, -23)
   39086      377441 :          idata = idata + 1
   39087      377441 :          data_tmp = full_data(idata)
   39088      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39089      377441 :          data_tmp = IAND(data_tmp, mask_left(23))
   39090      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39091      377441 :          ipack = ipack + 1
   39092      377441 :          packed_data(ipack) = pack_tmp
   39093      377441 :          data_tmp = full_data(idata)
   39094      377441 :          pack_tmp = ISHFT(data_tmp, 38)
   39095      377441 :          pack_tmp = ISHFT(pack_tmp, -38)
   39096      377441 :          idata = idata + 1
   39097      377441 :          data_tmp = full_data(idata)
   39098      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39099      377441 :          data_tmp = IAND(data_tmp, mask_left(38))
   39100      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39101      377441 :          ipack = ipack + 1
   39102      377441 :          packed_data(ipack) = pack_tmp
   39103      377441 :          data_tmp = full_data(idata)
   39104      377441 :          pack_tmp = ISHFT(data_tmp, 53)
   39105      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   39106      377441 :          idata = idata + 1
   39107      377441 :          data_tmp = full_data(idata)
   39108      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39109      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39110      377441 :          pack_tmp = ISHFT(pack_tmp, -4)
   39111      377441 :          idata = idata + 1
   39112      377441 :          data_tmp = full_data(idata)
   39113      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39114      377441 :          data_tmp = IAND(data_tmp, mask_left(4))
   39115      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39116      377441 :          ipack = ipack + 1
   39117      377441 :          packed_data(ipack) = pack_tmp
   39118      377441 :          data_tmp = full_data(idata)
   39119      377441 :          pack_tmp = ISHFT(data_tmp, 19)
   39120      377441 :          pack_tmp = ISHFT(pack_tmp, -19)
   39121      377441 :          idata = idata + 1
   39122      377441 :          data_tmp = full_data(idata)
   39123      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39124      377441 :          data_tmp = IAND(data_tmp, mask_left(19))
   39125      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39126      377441 :          ipack = ipack + 1
   39127      377441 :          packed_data(ipack) = pack_tmp
   39128      377441 :          data_tmp = full_data(idata)
   39129      377441 :          pack_tmp = ISHFT(data_tmp, 34)
   39130      377441 :          pack_tmp = ISHFT(pack_tmp, -34)
   39131      377441 :          idata = idata + 1
   39132      377441 :          data_tmp = full_data(idata)
   39133      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39134      377441 :          data_tmp = IAND(data_tmp, mask_left(34))
   39135      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39136      377441 :          ipack = ipack + 1
   39137      377441 :          packed_data(ipack) = pack_tmp
   39138      377441 :          data_tmp = full_data(idata)
   39139      377441 :          pack_tmp = ISHFT(data_tmp, 49)
   39140      377441 :          pack_tmp = ISHFT(pack_tmp, -49)
   39141      377441 :          idata = idata + 1
   39142      377441 :          data_tmp = full_data(idata)
   39143      377441 :          data_tmp = ISHFT(data_tmp, 15)
   39144      377441 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39145             :          pack_tmp = ISHFT(pack_tmp, 0)
   39146      377441 :          pack_tmp = ISHFT(pack_tmp, 0)
   39147      377441 :          ipack = ipack + 1
   39148      377445 :          packed_data(ipack) = pack_tmp
   39149             :       END DO
   39150       24558 :       IF (Ndata_rep < Ndata) THEN
   39151        1822 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39152             :       END IF
   39153       24558 :    END SUBROUTINE ints2bits_49
   39154             : 
   39155             : ! **************************************************************************************************
   39156             : !> \brief ...
   39157             : !> \param Ndata ...
   39158             : !> \param packed_data ...
   39159             : !> \param full_data ...
   39160             : ! **************************************************************************************************
   39161       99584 :    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       99584 :       ipack = 0
   39172       99584 :       idata = 0
   39173       99584 :       pack_tmp = 0
   39174       99584 :       Ndata_rep = (Ndata/64)*64
   39175       99584 :       DO kdata = 1, Ndata_rep, 64
   39176     1541001 :          idata = idata + 1
   39177     1541001 :          data_tmp = ISHFT(pack_tmp, 49)
   39178     1541001 :          ipack = ipack + 1
   39179     1541001 :          pack_tmp = packed_data(ipack)
   39180     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   39181     1541001 :          pack_tmp = ISHFT(pack_tmp, -49)
   39182     1541001 :          idata = idata + 1
   39183     1541001 :          data_tmp = ISHFT(pack_tmp, 34)
   39184     1541001 :          ipack = ipack + 1
   39185     1541001 :          pack_tmp = packed_data(ipack)
   39186     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   39187     1541001 :          pack_tmp = ISHFT(pack_tmp, -34)
   39188     1541001 :          idata = idata + 1
   39189     1541001 :          data_tmp = ISHFT(pack_tmp, 19)
   39190     1541001 :          ipack = ipack + 1
   39191     1541001 :          pack_tmp = packed_data(ipack)
   39192     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   39193     1541001 :          pack_tmp = ISHFT(pack_tmp, -19)
   39194     1541001 :          idata = idata + 1
   39195     1541001 :          data_tmp = ISHFT(pack_tmp, 4)
   39196     1541001 :          ipack = ipack + 1
   39197     1541001 :          pack_tmp = packed_data(ipack)
   39198     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   39199     1541001 :          pack_tmp = ISHFT(pack_tmp, -4)
   39200     1541001 :          idata = idata + 1
   39201     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39202     1541001 :          full_data(idata) = data_tmp
   39203     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39204     1541001 :          idata = idata + 1
   39205     1541001 :          data_tmp = ISHFT(pack_tmp, 38)
   39206     1541001 :          ipack = ipack + 1
   39207     1541001 :          pack_tmp = packed_data(ipack)
   39208     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   39209     1541001 :          pack_tmp = ISHFT(pack_tmp, -38)
   39210     1541001 :          idata = idata + 1
   39211     1541001 :          data_tmp = ISHFT(pack_tmp, 23)
   39212     1541001 :          ipack = ipack + 1
   39213     1541001 :          pack_tmp = packed_data(ipack)
   39214     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   39215     1541001 :          pack_tmp = ISHFT(pack_tmp, -23)
   39216     1541001 :          idata = idata + 1
   39217     1541001 :          data_tmp = ISHFT(pack_tmp, 8)
   39218     1541001 :          ipack = ipack + 1
   39219     1541001 :          pack_tmp = packed_data(ipack)
   39220     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   39221     1541001 :          pack_tmp = ISHFT(pack_tmp, -8)
   39222     1541001 :          idata = idata + 1
   39223     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39224     1541001 :          full_data(idata) = data_tmp
   39225     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39226     1541001 :          idata = idata + 1
   39227     1541001 :          data_tmp = ISHFT(pack_tmp, 42)
   39228     1541001 :          ipack = ipack + 1
   39229     1541001 :          pack_tmp = packed_data(ipack)
   39230     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   39231     1541001 :          pack_tmp = ISHFT(pack_tmp, -42)
   39232     1541001 :          idata = idata + 1
   39233     1541001 :          data_tmp = ISHFT(pack_tmp, 27)
   39234     1541001 :          ipack = ipack + 1
   39235     1541001 :          pack_tmp = packed_data(ipack)
   39236     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   39237     1541001 :          pack_tmp = ISHFT(pack_tmp, -27)
   39238     1541001 :          idata = idata + 1
   39239     1541001 :          data_tmp = ISHFT(pack_tmp, 12)
   39240     1541001 :          ipack = ipack + 1
   39241     1541001 :          pack_tmp = packed_data(ipack)
   39242     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   39243     1541001 :          pack_tmp = ISHFT(pack_tmp, -12)
   39244     1541001 :          idata = idata + 1
   39245     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39246     1541001 :          full_data(idata) = data_tmp
   39247     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39248     1541001 :          idata = idata + 1
   39249     1541001 :          data_tmp = ISHFT(pack_tmp, 46)
   39250     1541001 :          ipack = ipack + 1
   39251     1541001 :          pack_tmp = packed_data(ipack)
   39252     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   39253     1541001 :          pack_tmp = ISHFT(pack_tmp, -46)
   39254     1541001 :          idata = idata + 1
   39255     1541001 :          data_tmp = ISHFT(pack_tmp, 31)
   39256     1541001 :          ipack = ipack + 1
   39257     1541001 :          pack_tmp = packed_data(ipack)
   39258     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   39259     1541001 :          pack_tmp = ISHFT(pack_tmp, -31)
   39260     1541001 :          idata = idata + 1
   39261     1541001 :          data_tmp = ISHFT(pack_tmp, 16)
   39262     1541001 :          ipack = ipack + 1
   39263     1541001 :          pack_tmp = packed_data(ipack)
   39264     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   39265     1541001 :          pack_tmp = ISHFT(pack_tmp, -16)
   39266     1541001 :          idata = idata + 1
   39267     1541001 :          data_tmp = ISHFT(pack_tmp, 1)
   39268     1541001 :          ipack = ipack + 1
   39269     1541001 :          pack_tmp = packed_data(ipack)
   39270     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   39271     1541001 :          pack_tmp = ISHFT(pack_tmp, -1)
   39272     1541001 :          idata = idata + 1
   39273     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39274     1541001 :          full_data(idata) = data_tmp
   39275     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39276     1541001 :          idata = idata + 1
   39277     1541001 :          data_tmp = ISHFT(pack_tmp, 35)
   39278     1541001 :          ipack = ipack + 1
   39279     1541001 :          pack_tmp = packed_data(ipack)
   39280     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   39281     1541001 :          pack_tmp = ISHFT(pack_tmp, -35)
   39282     1541001 :          idata = idata + 1
   39283     1541001 :          data_tmp = ISHFT(pack_tmp, 20)
   39284     1541001 :          ipack = ipack + 1
   39285     1541001 :          pack_tmp = packed_data(ipack)
   39286     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   39287     1541001 :          pack_tmp = ISHFT(pack_tmp, -20)
   39288     1541001 :          idata = idata + 1
   39289     1541001 :          data_tmp = ISHFT(pack_tmp, 5)
   39290     1541001 :          ipack = ipack + 1
   39291     1541001 :          pack_tmp = packed_data(ipack)
   39292     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   39293     1541001 :          pack_tmp = ISHFT(pack_tmp, -5)
   39294     1541001 :          idata = idata + 1
   39295     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39296     1541001 :          full_data(idata) = data_tmp
   39297     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39298     1541001 :          idata = idata + 1
   39299     1541001 :          data_tmp = ISHFT(pack_tmp, 39)
   39300     1541001 :          ipack = ipack + 1
   39301     1541001 :          pack_tmp = packed_data(ipack)
   39302     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   39303     1541001 :          pack_tmp = ISHFT(pack_tmp, -39)
   39304     1541001 :          idata = idata + 1
   39305     1541001 :          data_tmp = ISHFT(pack_tmp, 24)
   39306     1541001 :          ipack = ipack + 1
   39307     1541001 :          pack_tmp = packed_data(ipack)
   39308     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   39309     1541001 :          pack_tmp = ISHFT(pack_tmp, -24)
   39310     1541001 :          idata = idata + 1
   39311     1541001 :          data_tmp = ISHFT(pack_tmp, 9)
   39312     1541001 :          ipack = ipack + 1
   39313     1541001 :          pack_tmp = packed_data(ipack)
   39314     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   39315     1541001 :          pack_tmp = ISHFT(pack_tmp, -9)
   39316     1541001 :          idata = idata + 1
   39317     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39318     1541001 :          full_data(idata) = data_tmp
   39319     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39320     1541001 :          idata = idata + 1
   39321     1541001 :          data_tmp = ISHFT(pack_tmp, 43)
   39322     1541001 :          ipack = ipack + 1
   39323     1541001 :          pack_tmp = packed_data(ipack)
   39324     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   39325     1541001 :          pack_tmp = ISHFT(pack_tmp, -43)
   39326     1541001 :          idata = idata + 1
   39327     1541001 :          data_tmp = ISHFT(pack_tmp, 28)
   39328     1541001 :          ipack = ipack + 1
   39329     1541001 :          pack_tmp = packed_data(ipack)
   39330     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   39331     1541001 :          pack_tmp = ISHFT(pack_tmp, -28)
   39332     1541001 :          idata = idata + 1
   39333     1541001 :          data_tmp = ISHFT(pack_tmp, 13)
   39334     1541001 :          ipack = ipack + 1
   39335     1541001 :          pack_tmp = packed_data(ipack)
   39336     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   39337     1541001 :          pack_tmp = ISHFT(pack_tmp, -13)
   39338     1541001 :          idata = idata + 1
   39339     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39340     1541001 :          full_data(idata) = data_tmp
   39341     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39342     1541001 :          idata = idata + 1
   39343     1541001 :          data_tmp = ISHFT(pack_tmp, 47)
   39344     1541001 :          ipack = ipack + 1
   39345     1541001 :          pack_tmp = packed_data(ipack)
   39346     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   39347     1541001 :          pack_tmp = ISHFT(pack_tmp, -47)
   39348     1541001 :          idata = idata + 1
   39349     1541001 :          data_tmp = ISHFT(pack_tmp, 32)
   39350     1541001 :          ipack = ipack + 1
   39351     1541001 :          pack_tmp = packed_data(ipack)
   39352     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   39353     1541001 :          pack_tmp = ISHFT(pack_tmp, -32)
   39354     1541001 :          idata = idata + 1
   39355     1541001 :          data_tmp = ISHFT(pack_tmp, 17)
   39356     1541001 :          ipack = ipack + 1
   39357     1541001 :          pack_tmp = packed_data(ipack)
   39358     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   39359     1541001 :          pack_tmp = ISHFT(pack_tmp, -17)
   39360     1541001 :          idata = idata + 1
   39361     1541001 :          data_tmp = ISHFT(pack_tmp, 2)
   39362     1541001 :          ipack = ipack + 1
   39363     1541001 :          pack_tmp = packed_data(ipack)
   39364     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   39365     1541001 :          pack_tmp = ISHFT(pack_tmp, -2)
   39366     1541001 :          idata = idata + 1
   39367     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39368     1541001 :          full_data(idata) = data_tmp
   39369     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39370     1541001 :          idata = idata + 1
   39371     1541001 :          data_tmp = ISHFT(pack_tmp, 36)
   39372     1541001 :          ipack = ipack + 1
   39373     1541001 :          pack_tmp = packed_data(ipack)
   39374     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   39375     1541001 :          pack_tmp = ISHFT(pack_tmp, -36)
   39376     1541001 :          idata = idata + 1
   39377     1541001 :          data_tmp = ISHFT(pack_tmp, 21)
   39378     1541001 :          ipack = ipack + 1
   39379     1541001 :          pack_tmp = packed_data(ipack)
   39380     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   39381     1541001 :          pack_tmp = ISHFT(pack_tmp, -21)
   39382     1541001 :          idata = idata + 1
   39383     1541001 :          data_tmp = ISHFT(pack_tmp, 6)
   39384     1541001 :          ipack = ipack + 1
   39385     1541001 :          pack_tmp = packed_data(ipack)
   39386     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   39387     1541001 :          pack_tmp = ISHFT(pack_tmp, -6)
   39388     1541001 :          idata = idata + 1
   39389     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39390     1541001 :          full_data(idata) = data_tmp
   39391     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39392     1541001 :          idata = idata + 1
   39393     1541001 :          data_tmp = ISHFT(pack_tmp, 40)
   39394     1541001 :          ipack = ipack + 1
   39395     1541001 :          pack_tmp = packed_data(ipack)
   39396     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   39397     1541001 :          pack_tmp = ISHFT(pack_tmp, -40)
   39398     1541001 :          idata = idata + 1
   39399     1541001 :          data_tmp = ISHFT(pack_tmp, 25)
   39400     1541001 :          ipack = ipack + 1
   39401     1541001 :          pack_tmp = packed_data(ipack)
   39402     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   39403     1541001 :          pack_tmp = ISHFT(pack_tmp, -25)
   39404     1541001 :          idata = idata + 1
   39405     1541001 :          data_tmp = ISHFT(pack_tmp, 10)
   39406     1541001 :          ipack = ipack + 1
   39407     1541001 :          pack_tmp = packed_data(ipack)
   39408     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   39409     1541001 :          pack_tmp = ISHFT(pack_tmp, -10)
   39410     1541001 :          idata = idata + 1
   39411     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39412     1541001 :          full_data(idata) = data_tmp
   39413     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39414     1541001 :          idata = idata + 1
   39415     1541001 :          data_tmp = ISHFT(pack_tmp, 44)
   39416     1541001 :          ipack = ipack + 1
   39417     1541001 :          pack_tmp = packed_data(ipack)
   39418     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   39419     1541001 :          pack_tmp = ISHFT(pack_tmp, -44)
   39420     1541001 :          idata = idata + 1
   39421     1541001 :          data_tmp = ISHFT(pack_tmp, 29)
   39422     1541001 :          ipack = ipack + 1
   39423     1541001 :          pack_tmp = packed_data(ipack)
   39424     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   39425     1541001 :          pack_tmp = ISHFT(pack_tmp, -29)
   39426     1541001 :          idata = idata + 1
   39427     1541001 :          data_tmp = ISHFT(pack_tmp, 14)
   39428     1541001 :          ipack = ipack + 1
   39429     1541001 :          pack_tmp = packed_data(ipack)
   39430     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   39431     1541001 :          pack_tmp = ISHFT(pack_tmp, -14)
   39432     1541001 :          idata = idata + 1
   39433     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39434     1541001 :          full_data(idata) = data_tmp
   39435     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39436     1541001 :          idata = idata + 1
   39437     1541001 :          data_tmp = ISHFT(pack_tmp, 48)
   39438     1541001 :          ipack = ipack + 1
   39439     1541001 :          pack_tmp = packed_data(ipack)
   39440     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   39441     1541001 :          pack_tmp = ISHFT(pack_tmp, -48)
   39442     1541001 :          idata = idata + 1
   39443     1541001 :          data_tmp = ISHFT(pack_tmp, 33)
   39444     1541001 :          ipack = ipack + 1
   39445     1541001 :          pack_tmp = packed_data(ipack)
   39446     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   39447     1541001 :          pack_tmp = ISHFT(pack_tmp, -33)
   39448     1541001 :          idata = idata + 1
   39449     1541001 :          data_tmp = ISHFT(pack_tmp, 18)
   39450     1541001 :          ipack = ipack + 1
   39451     1541001 :          pack_tmp = packed_data(ipack)
   39452     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   39453     1541001 :          pack_tmp = ISHFT(pack_tmp, -18)
   39454     1541001 :          idata = idata + 1
   39455     1541001 :          data_tmp = ISHFT(pack_tmp, 3)
   39456     1541001 :          ipack = ipack + 1
   39457     1541001 :          pack_tmp = packed_data(ipack)
   39458     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   39459     1541001 :          pack_tmp = ISHFT(pack_tmp, -3)
   39460     1541001 :          idata = idata + 1
   39461     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39462     1541001 :          full_data(idata) = data_tmp
   39463     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39464     1541001 :          idata = idata + 1
   39465     1541001 :          data_tmp = ISHFT(pack_tmp, 37)
   39466     1541001 :          ipack = ipack + 1
   39467     1541001 :          pack_tmp = packed_data(ipack)
   39468     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   39469     1541001 :          pack_tmp = ISHFT(pack_tmp, -37)
   39470     1541001 :          idata = idata + 1
   39471     1541001 :          data_tmp = ISHFT(pack_tmp, 22)
   39472     1541001 :          ipack = ipack + 1
   39473     1541001 :          pack_tmp = packed_data(ipack)
   39474     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   39475     1541001 :          pack_tmp = ISHFT(pack_tmp, -22)
   39476     1541001 :          idata = idata + 1
   39477     1541001 :          data_tmp = ISHFT(pack_tmp, 7)
   39478     1541001 :          ipack = ipack + 1
   39479     1541001 :          pack_tmp = packed_data(ipack)
   39480     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   39481     1541001 :          pack_tmp = ISHFT(pack_tmp, -7)
   39482     1541001 :          idata = idata + 1
   39483     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39484     1541001 :          full_data(idata) = data_tmp
   39485     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39486     1541001 :          idata = idata + 1
   39487     1541001 :          data_tmp = ISHFT(pack_tmp, 41)
   39488     1541001 :          ipack = ipack + 1
   39489     1541001 :          pack_tmp = packed_data(ipack)
   39490     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   39491     1541001 :          pack_tmp = ISHFT(pack_tmp, -41)
   39492     1541001 :          idata = idata + 1
   39493     1541001 :          data_tmp = ISHFT(pack_tmp, 26)
   39494     1541001 :          ipack = ipack + 1
   39495     1541001 :          pack_tmp = packed_data(ipack)
   39496     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   39497     1541001 :          pack_tmp = ISHFT(pack_tmp, -26)
   39498     1541001 :          idata = idata + 1
   39499     1541001 :          data_tmp = ISHFT(pack_tmp, 11)
   39500     1541001 :          ipack = ipack + 1
   39501     1541001 :          pack_tmp = packed_data(ipack)
   39502     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   39503     1541001 :          pack_tmp = ISHFT(pack_tmp, -11)
   39504     1541001 :          idata = idata + 1
   39505     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39506     1541001 :          full_data(idata) = data_tmp
   39507     1541001 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39508     1541001 :          idata = idata + 1
   39509     1541001 :          data_tmp = ISHFT(pack_tmp, 45)
   39510     1541001 :          ipack = ipack + 1
   39511     1541001 :          pack_tmp = packed_data(ipack)
   39512     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   39513     1541001 :          pack_tmp = ISHFT(pack_tmp, -45)
   39514     1541001 :          idata = idata + 1
   39515     1541001 :          data_tmp = ISHFT(pack_tmp, 30)
   39516     1541001 :          ipack = ipack + 1
   39517     1541001 :          pack_tmp = packed_data(ipack)
   39518     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   39519     1541001 :          pack_tmp = ISHFT(pack_tmp, -30)
   39520     1541001 :          idata = idata + 1
   39521     1541001 :          data_tmp = ISHFT(pack_tmp, 15)
   39522     1541001 :          ipack = ipack + 1
   39523     1541001 :          pack_tmp = packed_data(ipack)
   39524     1541001 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   39525     1541001 :          pack_tmp = ISHFT(pack_tmp, -15)
   39526     1541001 :          idata = idata + 1
   39527     1541001 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39528     1541001 :          full_data(idata) = data_tmp
   39529     1541017 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39530             :       END DO
   39531       99584 :       IF (Ndata_rep < Ndata) THEN
   39532        6158 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39533             :       END IF
   39534       99584 :    END SUBROUTINE bits2ints_49
   39535             : 
   39536             : ! **************************************************************************************************
   39537             : !> \brief ...
   39538             : !> \param Ndata ...
   39539             : !> \param packed_data ...
   39540             : !> \param full_data ...
   39541             : ! **************************************************************************************************
   39542       24136 :    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       24136 :       idata = 0
   39553       24136 :       ipack = 0
   39554       24136 :       Ndata_rep = (Ndata/64)*64
   39555       24136 :       DO kdata = 1, Ndata_rep, 64
   39556      373987 :          pack_tmp = 0
   39557      373987 :          idata = idata + 1
   39558      373987 :          data_tmp = full_data(idata)
   39559      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39560      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39561      373987 :          pack_tmp = ISHFT(pack_tmp, -14)
   39562      373987 :          idata = idata + 1
   39563      373987 :          data_tmp = full_data(idata)
   39564      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39565      373987 :          data_tmp = IAND(data_tmp, mask_left(14))
   39566      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39567      373987 :          ipack = ipack + 1
   39568      373987 :          packed_data(ipack) = pack_tmp
   39569      373987 :          data_tmp = full_data(idata)
   39570      373987 :          pack_tmp = ISHFT(data_tmp, 28)
   39571      373987 :          pack_tmp = ISHFT(pack_tmp, -28)
   39572      373987 :          idata = idata + 1
   39573      373987 :          data_tmp = full_data(idata)
   39574      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39575      373987 :          data_tmp = IAND(data_tmp, mask_left(28))
   39576      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39577      373987 :          ipack = ipack + 1
   39578      373987 :          packed_data(ipack) = pack_tmp
   39579      373987 :          data_tmp = full_data(idata)
   39580      373987 :          pack_tmp = ISHFT(data_tmp, 42)
   39581      373987 :          pack_tmp = ISHFT(pack_tmp, -42)
   39582      373987 :          idata = idata + 1
   39583      373987 :          data_tmp = full_data(idata)
   39584      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39585      373987 :          data_tmp = IAND(data_tmp, mask_left(42))
   39586      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39587      373987 :          ipack = ipack + 1
   39588      373987 :          packed_data(ipack) = pack_tmp
   39589      373987 :          data_tmp = full_data(idata)
   39590      373987 :          pack_tmp = ISHFT(data_tmp, 56)
   39591      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39592      373987 :          idata = idata + 1
   39593      373987 :          data_tmp = full_data(idata)
   39594      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39595      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39596      373987 :          pack_tmp = ISHFT(pack_tmp, -6)
   39597      373987 :          idata = idata + 1
   39598      373987 :          data_tmp = full_data(idata)
   39599      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39600      373987 :          data_tmp = IAND(data_tmp, mask_left(6))
   39601      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39602      373987 :          ipack = ipack + 1
   39603      373987 :          packed_data(ipack) = pack_tmp
   39604      373987 :          data_tmp = full_data(idata)
   39605      373987 :          pack_tmp = ISHFT(data_tmp, 20)
   39606      373987 :          pack_tmp = ISHFT(pack_tmp, -20)
   39607      373987 :          idata = idata + 1
   39608      373987 :          data_tmp = full_data(idata)
   39609      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39610      373987 :          data_tmp = IAND(data_tmp, mask_left(20))
   39611      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39612      373987 :          ipack = ipack + 1
   39613      373987 :          packed_data(ipack) = pack_tmp
   39614      373987 :          data_tmp = full_data(idata)
   39615      373987 :          pack_tmp = ISHFT(data_tmp, 34)
   39616      373987 :          pack_tmp = ISHFT(pack_tmp, -34)
   39617      373987 :          idata = idata + 1
   39618      373987 :          data_tmp = full_data(idata)
   39619      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39620      373987 :          data_tmp = IAND(data_tmp, mask_left(34))
   39621      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39622      373987 :          ipack = ipack + 1
   39623      373987 :          packed_data(ipack) = pack_tmp
   39624      373987 :          data_tmp = full_data(idata)
   39625      373987 :          pack_tmp = ISHFT(data_tmp, 48)
   39626      373987 :          pack_tmp = ISHFT(pack_tmp, -48)
   39627      373987 :          idata = idata + 1
   39628      373987 :          data_tmp = full_data(idata)
   39629      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39630      373987 :          data_tmp = IAND(data_tmp, mask_left(48))
   39631      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39632      373987 :          ipack = ipack + 1
   39633      373987 :          packed_data(ipack) = pack_tmp
   39634      373987 :          data_tmp = full_data(idata)
   39635      373987 :          pack_tmp = ISHFT(data_tmp, 62)
   39636      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39637      373987 :          idata = idata + 1
   39638      373987 :          data_tmp = full_data(idata)
   39639      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39640      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39641      373987 :          pack_tmp = ISHFT(pack_tmp, -12)
   39642      373987 :          idata = idata + 1
   39643      373987 :          data_tmp = full_data(idata)
   39644      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39645      373987 :          data_tmp = IAND(data_tmp, mask_left(12))
   39646      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39647      373987 :          ipack = ipack + 1
   39648      373987 :          packed_data(ipack) = pack_tmp
   39649      373987 :          data_tmp = full_data(idata)
   39650      373987 :          pack_tmp = ISHFT(data_tmp, 26)
   39651      373987 :          pack_tmp = ISHFT(pack_tmp, -26)
   39652      373987 :          idata = idata + 1
   39653      373987 :          data_tmp = full_data(idata)
   39654      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39655      373987 :          data_tmp = IAND(data_tmp, mask_left(26))
   39656      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39657      373987 :          ipack = ipack + 1
   39658      373987 :          packed_data(ipack) = pack_tmp
   39659      373987 :          data_tmp = full_data(idata)
   39660      373987 :          pack_tmp = ISHFT(data_tmp, 40)
   39661      373987 :          pack_tmp = ISHFT(pack_tmp, -40)
   39662      373987 :          idata = idata + 1
   39663      373987 :          data_tmp = full_data(idata)
   39664      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39665      373987 :          data_tmp = IAND(data_tmp, mask_left(40))
   39666      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39667      373987 :          ipack = ipack + 1
   39668      373987 :          packed_data(ipack) = pack_tmp
   39669      373987 :          data_tmp = full_data(idata)
   39670      373987 :          pack_tmp = ISHFT(data_tmp, 54)
   39671      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39672      373987 :          idata = idata + 1
   39673      373987 :          data_tmp = full_data(idata)
   39674      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39675      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39676      373987 :          pack_tmp = ISHFT(pack_tmp, -4)
   39677      373987 :          idata = idata + 1
   39678      373987 :          data_tmp = full_data(idata)
   39679      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39680      373987 :          data_tmp = IAND(data_tmp, mask_left(4))
   39681      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39682      373987 :          ipack = ipack + 1
   39683      373987 :          packed_data(ipack) = pack_tmp
   39684      373987 :          data_tmp = full_data(idata)
   39685      373987 :          pack_tmp = ISHFT(data_tmp, 18)
   39686      373987 :          pack_tmp = ISHFT(pack_tmp, -18)
   39687      373987 :          idata = idata + 1
   39688      373987 :          data_tmp = full_data(idata)
   39689      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39690      373987 :          data_tmp = IAND(data_tmp, mask_left(18))
   39691      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39692      373987 :          ipack = ipack + 1
   39693      373987 :          packed_data(ipack) = pack_tmp
   39694      373987 :          data_tmp = full_data(idata)
   39695      373987 :          pack_tmp = ISHFT(data_tmp, 32)
   39696      373987 :          pack_tmp = ISHFT(pack_tmp, -32)
   39697      373987 :          idata = idata + 1
   39698      373987 :          data_tmp = full_data(idata)
   39699      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39700      373987 :          data_tmp = IAND(data_tmp, mask_left(32))
   39701      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39702      373987 :          ipack = ipack + 1
   39703      373987 :          packed_data(ipack) = pack_tmp
   39704      373987 :          data_tmp = full_data(idata)
   39705      373987 :          pack_tmp = ISHFT(data_tmp, 46)
   39706      373987 :          pack_tmp = ISHFT(pack_tmp, -46)
   39707      373987 :          idata = idata + 1
   39708      373987 :          data_tmp = full_data(idata)
   39709      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39710      373987 :          data_tmp = IAND(data_tmp, mask_left(46))
   39711      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39712      373987 :          ipack = ipack + 1
   39713      373987 :          packed_data(ipack) = pack_tmp
   39714      373987 :          data_tmp = full_data(idata)
   39715      373987 :          pack_tmp = ISHFT(data_tmp, 60)
   39716      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39717      373987 :          idata = idata + 1
   39718      373987 :          data_tmp = full_data(idata)
   39719      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39720      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39721      373987 :          pack_tmp = ISHFT(pack_tmp, -10)
   39722      373987 :          idata = idata + 1
   39723      373987 :          data_tmp = full_data(idata)
   39724      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39725      373987 :          data_tmp = IAND(data_tmp, mask_left(10))
   39726      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39727      373987 :          ipack = ipack + 1
   39728      373987 :          packed_data(ipack) = pack_tmp
   39729      373987 :          data_tmp = full_data(idata)
   39730      373987 :          pack_tmp = ISHFT(data_tmp, 24)
   39731      373987 :          pack_tmp = ISHFT(pack_tmp, -24)
   39732      373987 :          idata = idata + 1
   39733      373987 :          data_tmp = full_data(idata)
   39734      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39735      373987 :          data_tmp = IAND(data_tmp, mask_left(24))
   39736      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39737      373987 :          ipack = ipack + 1
   39738      373987 :          packed_data(ipack) = pack_tmp
   39739      373987 :          data_tmp = full_data(idata)
   39740      373987 :          pack_tmp = ISHFT(data_tmp, 38)
   39741      373987 :          pack_tmp = ISHFT(pack_tmp, -38)
   39742      373987 :          idata = idata + 1
   39743      373987 :          data_tmp = full_data(idata)
   39744      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39745      373987 :          data_tmp = IAND(data_tmp, mask_left(38))
   39746      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39747      373987 :          ipack = ipack + 1
   39748      373987 :          packed_data(ipack) = pack_tmp
   39749      373987 :          data_tmp = full_data(idata)
   39750      373987 :          pack_tmp = ISHFT(data_tmp, 52)
   39751      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39752      373987 :          idata = idata + 1
   39753      373987 :          data_tmp = full_data(idata)
   39754      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39755      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39756      373987 :          pack_tmp = ISHFT(pack_tmp, -2)
   39757      373987 :          idata = idata + 1
   39758      373987 :          data_tmp = full_data(idata)
   39759      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39760      373987 :          data_tmp = IAND(data_tmp, mask_left(2))
   39761      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39762      373987 :          ipack = ipack + 1
   39763      373987 :          packed_data(ipack) = pack_tmp
   39764      373987 :          data_tmp = full_data(idata)
   39765      373987 :          pack_tmp = ISHFT(data_tmp, 16)
   39766      373987 :          pack_tmp = ISHFT(pack_tmp, -16)
   39767      373987 :          idata = idata + 1
   39768      373987 :          data_tmp = full_data(idata)
   39769      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39770      373987 :          data_tmp = IAND(data_tmp, mask_left(16))
   39771      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39772      373987 :          ipack = ipack + 1
   39773      373987 :          packed_data(ipack) = pack_tmp
   39774      373987 :          data_tmp = full_data(idata)
   39775      373987 :          pack_tmp = ISHFT(data_tmp, 30)
   39776      373987 :          pack_tmp = ISHFT(pack_tmp, -30)
   39777      373987 :          idata = idata + 1
   39778      373987 :          data_tmp = full_data(idata)
   39779      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39780      373987 :          data_tmp = IAND(data_tmp, mask_left(30))
   39781      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39782      373987 :          ipack = ipack + 1
   39783      373987 :          packed_data(ipack) = pack_tmp
   39784      373987 :          data_tmp = full_data(idata)
   39785      373987 :          pack_tmp = ISHFT(data_tmp, 44)
   39786      373987 :          pack_tmp = ISHFT(pack_tmp, -44)
   39787      373987 :          idata = idata + 1
   39788      373987 :          data_tmp = full_data(idata)
   39789      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39790      373987 :          data_tmp = IAND(data_tmp, mask_left(44))
   39791      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39792      373987 :          ipack = ipack + 1
   39793      373987 :          packed_data(ipack) = pack_tmp
   39794      373987 :          data_tmp = full_data(idata)
   39795      373987 :          pack_tmp = ISHFT(data_tmp, 58)
   39796      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39797      373987 :          idata = idata + 1
   39798      373987 :          data_tmp = full_data(idata)
   39799      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39800      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39801      373987 :          pack_tmp = ISHFT(pack_tmp, -8)
   39802      373987 :          idata = idata + 1
   39803      373987 :          data_tmp = full_data(idata)
   39804      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39805      373987 :          data_tmp = IAND(data_tmp, mask_left(8))
   39806      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39807      373987 :          ipack = ipack + 1
   39808      373987 :          packed_data(ipack) = pack_tmp
   39809      373987 :          data_tmp = full_data(idata)
   39810      373987 :          pack_tmp = ISHFT(data_tmp, 22)
   39811      373987 :          pack_tmp = ISHFT(pack_tmp, -22)
   39812      373987 :          idata = idata + 1
   39813      373987 :          data_tmp = full_data(idata)
   39814      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39815      373987 :          data_tmp = IAND(data_tmp, mask_left(22))
   39816      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39817      373987 :          ipack = ipack + 1
   39818      373987 :          packed_data(ipack) = pack_tmp
   39819      373987 :          data_tmp = full_data(idata)
   39820      373987 :          pack_tmp = ISHFT(data_tmp, 36)
   39821      373987 :          pack_tmp = ISHFT(pack_tmp, -36)
   39822      373987 :          idata = idata + 1
   39823      373987 :          data_tmp = full_data(idata)
   39824      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39825      373987 :          data_tmp = IAND(data_tmp, mask_left(36))
   39826      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39827      373987 :          ipack = ipack + 1
   39828      373987 :          packed_data(ipack) = pack_tmp
   39829      373987 :          data_tmp = full_data(idata)
   39830      373987 :          pack_tmp = ISHFT(data_tmp, 50)
   39831      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39832      373987 :          idata = idata + 1
   39833      373987 :          data_tmp = full_data(idata)
   39834      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39835      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39836      373987 :          pack_tmp = ISHFT(pack_tmp, 0)
   39837      373987 :          idata = idata + 1
   39838      373987 :          data_tmp = full_data(idata)
   39839      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39840      373987 :          data_tmp = IAND(data_tmp, mask_left(0))
   39841      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39842      373987 :          ipack = ipack + 1
   39843      373987 :          packed_data(ipack) = pack_tmp
   39844      373987 :          data_tmp = full_data(idata)
   39845      373987 :          pack_tmp = ISHFT(data_tmp, 14)
   39846      373987 :          pack_tmp = ISHFT(pack_tmp, -14)
   39847      373987 :          idata = idata + 1
   39848      373987 :          data_tmp = full_data(idata)
   39849      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39850      373987 :          data_tmp = IAND(data_tmp, mask_left(14))
   39851      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39852      373987 :          ipack = ipack + 1
   39853      373987 :          packed_data(ipack) = pack_tmp
   39854      373987 :          data_tmp = full_data(idata)
   39855      373987 :          pack_tmp = ISHFT(data_tmp, 28)
   39856      373987 :          pack_tmp = ISHFT(pack_tmp, -28)
   39857      373987 :          idata = idata + 1
   39858      373987 :          data_tmp = full_data(idata)
   39859      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39860      373987 :          data_tmp = IAND(data_tmp, mask_left(28))
   39861      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39862      373987 :          ipack = ipack + 1
   39863      373987 :          packed_data(ipack) = pack_tmp
   39864      373987 :          data_tmp = full_data(idata)
   39865      373987 :          pack_tmp = ISHFT(data_tmp, 42)
   39866      373987 :          pack_tmp = ISHFT(pack_tmp, -42)
   39867      373987 :          idata = idata + 1
   39868      373987 :          data_tmp = full_data(idata)
   39869      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39870      373987 :          data_tmp = IAND(data_tmp, mask_left(42))
   39871      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39872      373987 :          ipack = ipack + 1
   39873      373987 :          packed_data(ipack) = pack_tmp
   39874      373987 :          data_tmp = full_data(idata)
   39875      373987 :          pack_tmp = ISHFT(data_tmp, 56)
   39876      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39877      373987 :          idata = idata + 1
   39878      373987 :          data_tmp = full_data(idata)
   39879      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39880      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39881      373987 :          pack_tmp = ISHFT(pack_tmp, -6)
   39882      373987 :          idata = idata + 1
   39883      373987 :          data_tmp = full_data(idata)
   39884      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39885      373987 :          data_tmp = IAND(data_tmp, mask_left(6))
   39886      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39887      373987 :          ipack = ipack + 1
   39888      373987 :          packed_data(ipack) = pack_tmp
   39889      373987 :          data_tmp = full_data(idata)
   39890      373987 :          pack_tmp = ISHFT(data_tmp, 20)
   39891      373987 :          pack_tmp = ISHFT(pack_tmp, -20)
   39892      373987 :          idata = idata + 1
   39893      373987 :          data_tmp = full_data(idata)
   39894      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39895      373987 :          data_tmp = IAND(data_tmp, mask_left(20))
   39896      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39897      373987 :          ipack = ipack + 1
   39898      373987 :          packed_data(ipack) = pack_tmp
   39899      373987 :          data_tmp = full_data(idata)
   39900      373987 :          pack_tmp = ISHFT(data_tmp, 34)
   39901      373987 :          pack_tmp = ISHFT(pack_tmp, -34)
   39902      373987 :          idata = idata + 1
   39903      373987 :          data_tmp = full_data(idata)
   39904      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39905      373987 :          data_tmp = IAND(data_tmp, mask_left(34))
   39906      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39907      373987 :          ipack = ipack + 1
   39908      373987 :          packed_data(ipack) = pack_tmp
   39909      373987 :          data_tmp = full_data(idata)
   39910      373987 :          pack_tmp = ISHFT(data_tmp, 48)
   39911      373987 :          pack_tmp = ISHFT(pack_tmp, -48)
   39912      373987 :          idata = idata + 1
   39913      373987 :          data_tmp = full_data(idata)
   39914      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39915      373987 :          data_tmp = IAND(data_tmp, mask_left(48))
   39916      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39917      373987 :          ipack = ipack + 1
   39918      373987 :          packed_data(ipack) = pack_tmp
   39919      373987 :          data_tmp = full_data(idata)
   39920      373987 :          pack_tmp = ISHFT(data_tmp, 62)
   39921      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39922      373987 :          idata = idata + 1
   39923      373987 :          data_tmp = full_data(idata)
   39924      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39925      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39926      373987 :          pack_tmp = ISHFT(pack_tmp, -12)
   39927      373987 :          idata = idata + 1
   39928      373987 :          data_tmp = full_data(idata)
   39929      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39930      373987 :          data_tmp = IAND(data_tmp, mask_left(12))
   39931      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39932      373987 :          ipack = ipack + 1
   39933      373987 :          packed_data(ipack) = pack_tmp
   39934      373987 :          data_tmp = full_data(idata)
   39935      373987 :          pack_tmp = ISHFT(data_tmp, 26)
   39936      373987 :          pack_tmp = ISHFT(pack_tmp, -26)
   39937      373987 :          idata = idata + 1
   39938      373987 :          data_tmp = full_data(idata)
   39939      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39940      373987 :          data_tmp = IAND(data_tmp, mask_left(26))
   39941      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39942      373987 :          ipack = ipack + 1
   39943      373987 :          packed_data(ipack) = pack_tmp
   39944      373987 :          data_tmp = full_data(idata)
   39945      373987 :          pack_tmp = ISHFT(data_tmp, 40)
   39946      373987 :          pack_tmp = ISHFT(pack_tmp, -40)
   39947      373987 :          idata = idata + 1
   39948      373987 :          data_tmp = full_data(idata)
   39949      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39950      373987 :          data_tmp = IAND(data_tmp, mask_left(40))
   39951      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39952      373987 :          ipack = ipack + 1
   39953      373987 :          packed_data(ipack) = pack_tmp
   39954      373987 :          data_tmp = full_data(idata)
   39955      373987 :          pack_tmp = ISHFT(data_tmp, 54)
   39956      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   39957      373987 :          idata = idata + 1
   39958      373987 :          data_tmp = full_data(idata)
   39959      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39960      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39961      373987 :          pack_tmp = ISHFT(pack_tmp, -4)
   39962      373987 :          idata = idata + 1
   39963      373987 :          data_tmp = full_data(idata)
   39964      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39965      373987 :          data_tmp = IAND(data_tmp, mask_left(4))
   39966      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39967      373987 :          ipack = ipack + 1
   39968      373987 :          packed_data(ipack) = pack_tmp
   39969      373987 :          data_tmp = full_data(idata)
   39970      373987 :          pack_tmp = ISHFT(data_tmp, 18)
   39971      373987 :          pack_tmp = ISHFT(pack_tmp, -18)
   39972      373987 :          idata = idata + 1
   39973      373987 :          data_tmp = full_data(idata)
   39974      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39975      373987 :          data_tmp = IAND(data_tmp, mask_left(18))
   39976      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39977      373987 :          ipack = ipack + 1
   39978      373987 :          packed_data(ipack) = pack_tmp
   39979      373987 :          data_tmp = full_data(idata)
   39980      373987 :          pack_tmp = ISHFT(data_tmp, 32)
   39981      373987 :          pack_tmp = ISHFT(pack_tmp, -32)
   39982      373987 :          idata = idata + 1
   39983      373987 :          data_tmp = full_data(idata)
   39984      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39985      373987 :          data_tmp = IAND(data_tmp, mask_left(32))
   39986      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39987      373987 :          ipack = ipack + 1
   39988      373987 :          packed_data(ipack) = pack_tmp
   39989      373987 :          data_tmp = full_data(idata)
   39990      373987 :          pack_tmp = ISHFT(data_tmp, 46)
   39991      373987 :          pack_tmp = ISHFT(pack_tmp, -46)
   39992      373987 :          idata = idata + 1
   39993      373987 :          data_tmp = full_data(idata)
   39994      373987 :          data_tmp = ISHFT(data_tmp, 14)
   39995      373987 :          data_tmp = IAND(data_tmp, mask_left(46))
   39996      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39997      373987 :          ipack = ipack + 1
   39998      373987 :          packed_data(ipack) = pack_tmp
   39999      373987 :          data_tmp = full_data(idata)
   40000      373987 :          pack_tmp = ISHFT(data_tmp, 60)
   40001      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   40002      373987 :          idata = idata + 1
   40003      373987 :          data_tmp = full_data(idata)
   40004      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40005      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40006      373987 :          pack_tmp = ISHFT(pack_tmp, -10)
   40007      373987 :          idata = idata + 1
   40008      373987 :          data_tmp = full_data(idata)
   40009      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40010      373987 :          data_tmp = IAND(data_tmp, mask_left(10))
   40011      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40012      373987 :          ipack = ipack + 1
   40013      373987 :          packed_data(ipack) = pack_tmp
   40014      373987 :          data_tmp = full_data(idata)
   40015      373987 :          pack_tmp = ISHFT(data_tmp, 24)
   40016      373987 :          pack_tmp = ISHFT(pack_tmp, -24)
   40017      373987 :          idata = idata + 1
   40018      373987 :          data_tmp = full_data(idata)
   40019      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40020      373987 :          data_tmp = IAND(data_tmp, mask_left(24))
   40021      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40022      373987 :          ipack = ipack + 1
   40023      373987 :          packed_data(ipack) = pack_tmp
   40024      373987 :          data_tmp = full_data(idata)
   40025      373987 :          pack_tmp = ISHFT(data_tmp, 38)
   40026      373987 :          pack_tmp = ISHFT(pack_tmp, -38)
   40027      373987 :          idata = idata + 1
   40028      373987 :          data_tmp = full_data(idata)
   40029      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40030      373987 :          data_tmp = IAND(data_tmp, mask_left(38))
   40031      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40032      373987 :          ipack = ipack + 1
   40033      373987 :          packed_data(ipack) = pack_tmp
   40034      373987 :          data_tmp = full_data(idata)
   40035      373987 :          pack_tmp = ISHFT(data_tmp, 52)
   40036      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   40037      373987 :          idata = idata + 1
   40038      373987 :          data_tmp = full_data(idata)
   40039      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40040      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40041      373987 :          pack_tmp = ISHFT(pack_tmp, -2)
   40042      373987 :          idata = idata + 1
   40043      373987 :          data_tmp = full_data(idata)
   40044      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40045      373987 :          data_tmp = IAND(data_tmp, mask_left(2))
   40046      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40047      373987 :          ipack = ipack + 1
   40048      373987 :          packed_data(ipack) = pack_tmp
   40049      373987 :          data_tmp = full_data(idata)
   40050      373987 :          pack_tmp = ISHFT(data_tmp, 16)
   40051      373987 :          pack_tmp = ISHFT(pack_tmp, -16)
   40052      373987 :          idata = idata + 1
   40053      373987 :          data_tmp = full_data(idata)
   40054      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40055      373987 :          data_tmp = IAND(data_tmp, mask_left(16))
   40056      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40057      373987 :          ipack = ipack + 1
   40058      373987 :          packed_data(ipack) = pack_tmp
   40059      373987 :          data_tmp = full_data(idata)
   40060      373987 :          pack_tmp = ISHFT(data_tmp, 30)
   40061      373987 :          pack_tmp = ISHFT(pack_tmp, -30)
   40062      373987 :          idata = idata + 1
   40063      373987 :          data_tmp = full_data(idata)
   40064      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40065      373987 :          data_tmp = IAND(data_tmp, mask_left(30))
   40066      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40067      373987 :          ipack = ipack + 1
   40068      373987 :          packed_data(ipack) = pack_tmp
   40069      373987 :          data_tmp = full_data(idata)
   40070      373987 :          pack_tmp = ISHFT(data_tmp, 44)
   40071      373987 :          pack_tmp = ISHFT(pack_tmp, -44)
   40072      373987 :          idata = idata + 1
   40073      373987 :          data_tmp = full_data(idata)
   40074      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40075      373987 :          data_tmp = IAND(data_tmp, mask_left(44))
   40076      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40077      373987 :          ipack = ipack + 1
   40078      373987 :          packed_data(ipack) = pack_tmp
   40079      373987 :          data_tmp = full_data(idata)
   40080      373987 :          pack_tmp = ISHFT(data_tmp, 58)
   40081      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   40082      373987 :          idata = idata + 1
   40083      373987 :          data_tmp = full_data(idata)
   40084      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40085      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40086      373987 :          pack_tmp = ISHFT(pack_tmp, -8)
   40087      373987 :          idata = idata + 1
   40088      373987 :          data_tmp = full_data(idata)
   40089      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40090      373987 :          data_tmp = IAND(data_tmp, mask_left(8))
   40091      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40092      373987 :          ipack = ipack + 1
   40093      373987 :          packed_data(ipack) = pack_tmp
   40094      373987 :          data_tmp = full_data(idata)
   40095      373987 :          pack_tmp = ISHFT(data_tmp, 22)
   40096      373987 :          pack_tmp = ISHFT(pack_tmp, -22)
   40097      373987 :          idata = idata + 1
   40098      373987 :          data_tmp = full_data(idata)
   40099      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40100      373987 :          data_tmp = IAND(data_tmp, mask_left(22))
   40101      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40102      373987 :          ipack = ipack + 1
   40103      373987 :          packed_data(ipack) = pack_tmp
   40104      373987 :          data_tmp = full_data(idata)
   40105      373987 :          pack_tmp = ISHFT(data_tmp, 36)
   40106      373987 :          pack_tmp = ISHFT(pack_tmp, -36)
   40107      373987 :          idata = idata + 1
   40108      373987 :          data_tmp = full_data(idata)
   40109      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40110      373987 :          data_tmp = IAND(data_tmp, mask_left(36))
   40111      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40112      373987 :          ipack = ipack + 1
   40113      373987 :          packed_data(ipack) = pack_tmp
   40114      373987 :          data_tmp = full_data(idata)
   40115      373987 :          pack_tmp = ISHFT(data_tmp, 50)
   40116      373987 :          pack_tmp = ISHFT(pack_tmp, -50)
   40117      373987 :          idata = idata + 1
   40118      373987 :          data_tmp = full_data(idata)
   40119      373987 :          data_tmp = ISHFT(data_tmp, 14)
   40120      373987 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40121             :          pack_tmp = ISHFT(pack_tmp, 0)
   40122      373987 :          pack_tmp = ISHFT(pack_tmp, 0)
   40123      373987 :          ipack = ipack + 1
   40124      373995 :          packed_data(ipack) = pack_tmp
   40125             :       END DO
   40126       24136 :       IF (Ndata_rep < Ndata) THEN
   40127        1434 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40128             :       END IF
   40129       24136 :    END SUBROUTINE ints2bits_50
   40130             : 
   40131             : ! **************************************************************************************************
   40132             : !> \brief ...
   40133             : !> \param Ndata ...
   40134             : !> \param packed_data ...
   40135             : !> \param full_data ...
   40136             : ! **************************************************************************************************
   40137       97696 :    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       97696 :       ipack = 0
   40148       97696 :       idata = 0
   40149       97696 :       pack_tmp = 0
   40150       97696 :       Ndata_rep = (Ndata/64)*64
   40151       97696 :       DO kdata = 1, Ndata_rep, 64
   40152     1525821 :          idata = idata + 1
   40153     1525821 :          data_tmp = ISHFT(pack_tmp, 50)
   40154     1525821 :          ipack = ipack + 1
   40155     1525821 :          pack_tmp = packed_data(ipack)
   40156     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40157     1525821 :          pack_tmp = ISHFT(pack_tmp, -50)
   40158     1525821 :          idata = idata + 1
   40159     1525821 :          data_tmp = ISHFT(pack_tmp, 36)
   40160     1525821 :          ipack = ipack + 1
   40161     1525821 :          pack_tmp = packed_data(ipack)
   40162     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40163     1525821 :          pack_tmp = ISHFT(pack_tmp, -36)
   40164     1525821 :          idata = idata + 1
   40165     1525821 :          data_tmp = ISHFT(pack_tmp, 22)
   40166     1525821 :          ipack = ipack + 1
   40167     1525821 :          pack_tmp = packed_data(ipack)
   40168     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40169     1525821 :          pack_tmp = ISHFT(pack_tmp, -22)
   40170     1525821 :          idata = idata + 1
   40171     1525821 :          data_tmp = ISHFT(pack_tmp, 8)
   40172     1525821 :          ipack = ipack + 1
   40173     1525821 :          pack_tmp = packed_data(ipack)
   40174     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40175     1525821 :          pack_tmp = ISHFT(pack_tmp, -8)
   40176     1525821 :          idata = idata + 1
   40177     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40178     1525821 :          full_data(idata) = data_tmp
   40179     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40180     1525821 :          idata = idata + 1
   40181     1525821 :          data_tmp = ISHFT(pack_tmp, 44)
   40182     1525821 :          ipack = ipack + 1
   40183     1525821 :          pack_tmp = packed_data(ipack)
   40184     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40185     1525821 :          pack_tmp = ISHFT(pack_tmp, -44)
   40186     1525821 :          idata = idata + 1
   40187     1525821 :          data_tmp = ISHFT(pack_tmp, 30)
   40188     1525821 :          ipack = ipack + 1
   40189     1525821 :          pack_tmp = packed_data(ipack)
   40190     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40191     1525821 :          pack_tmp = ISHFT(pack_tmp, -30)
   40192     1525821 :          idata = idata + 1
   40193     1525821 :          data_tmp = ISHFT(pack_tmp, 16)
   40194     1525821 :          ipack = ipack + 1
   40195     1525821 :          pack_tmp = packed_data(ipack)
   40196     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40197     1525821 :          pack_tmp = ISHFT(pack_tmp, -16)
   40198     1525821 :          idata = idata + 1
   40199     1525821 :          data_tmp = ISHFT(pack_tmp, 2)
   40200     1525821 :          ipack = ipack + 1
   40201     1525821 :          pack_tmp = packed_data(ipack)
   40202     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40203     1525821 :          pack_tmp = ISHFT(pack_tmp, -2)
   40204     1525821 :          idata = idata + 1
   40205     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40206     1525821 :          full_data(idata) = data_tmp
   40207     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40208     1525821 :          idata = idata + 1
   40209     1525821 :          data_tmp = ISHFT(pack_tmp, 38)
   40210     1525821 :          ipack = ipack + 1
   40211     1525821 :          pack_tmp = packed_data(ipack)
   40212     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40213     1525821 :          pack_tmp = ISHFT(pack_tmp, -38)
   40214     1525821 :          idata = idata + 1
   40215     1525821 :          data_tmp = ISHFT(pack_tmp, 24)
   40216     1525821 :          ipack = ipack + 1
   40217     1525821 :          pack_tmp = packed_data(ipack)
   40218     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40219     1525821 :          pack_tmp = ISHFT(pack_tmp, -24)
   40220     1525821 :          idata = idata + 1
   40221     1525821 :          data_tmp = ISHFT(pack_tmp, 10)
   40222     1525821 :          ipack = ipack + 1
   40223     1525821 :          pack_tmp = packed_data(ipack)
   40224     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40225     1525821 :          pack_tmp = ISHFT(pack_tmp, -10)
   40226     1525821 :          idata = idata + 1
   40227     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40228     1525821 :          full_data(idata) = data_tmp
   40229     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40230     1525821 :          idata = idata + 1
   40231     1525821 :          data_tmp = ISHFT(pack_tmp, 46)
   40232     1525821 :          ipack = ipack + 1
   40233     1525821 :          pack_tmp = packed_data(ipack)
   40234     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40235     1525821 :          pack_tmp = ISHFT(pack_tmp, -46)
   40236     1525821 :          idata = idata + 1
   40237     1525821 :          data_tmp = ISHFT(pack_tmp, 32)
   40238     1525821 :          ipack = ipack + 1
   40239     1525821 :          pack_tmp = packed_data(ipack)
   40240     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40241     1525821 :          pack_tmp = ISHFT(pack_tmp, -32)
   40242     1525821 :          idata = idata + 1
   40243     1525821 :          data_tmp = ISHFT(pack_tmp, 18)
   40244     1525821 :          ipack = ipack + 1
   40245     1525821 :          pack_tmp = packed_data(ipack)
   40246     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40247     1525821 :          pack_tmp = ISHFT(pack_tmp, -18)
   40248     1525821 :          idata = idata + 1
   40249     1525821 :          data_tmp = ISHFT(pack_tmp, 4)
   40250     1525821 :          ipack = ipack + 1
   40251     1525821 :          pack_tmp = packed_data(ipack)
   40252     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40253     1525821 :          pack_tmp = ISHFT(pack_tmp, -4)
   40254     1525821 :          idata = idata + 1
   40255     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40256     1525821 :          full_data(idata) = data_tmp
   40257     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40258     1525821 :          idata = idata + 1
   40259     1525821 :          data_tmp = ISHFT(pack_tmp, 40)
   40260     1525821 :          ipack = ipack + 1
   40261     1525821 :          pack_tmp = packed_data(ipack)
   40262     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40263     1525821 :          pack_tmp = ISHFT(pack_tmp, -40)
   40264     1525821 :          idata = idata + 1
   40265     1525821 :          data_tmp = ISHFT(pack_tmp, 26)
   40266     1525821 :          ipack = ipack + 1
   40267     1525821 :          pack_tmp = packed_data(ipack)
   40268     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40269     1525821 :          pack_tmp = ISHFT(pack_tmp, -26)
   40270     1525821 :          idata = idata + 1
   40271     1525821 :          data_tmp = ISHFT(pack_tmp, 12)
   40272     1525821 :          ipack = ipack + 1
   40273     1525821 :          pack_tmp = packed_data(ipack)
   40274     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40275     1525821 :          pack_tmp = ISHFT(pack_tmp, -12)
   40276     1525821 :          idata = idata + 1
   40277     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40278     1525821 :          full_data(idata) = data_tmp
   40279     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40280     1525821 :          idata = idata + 1
   40281     1525821 :          data_tmp = ISHFT(pack_tmp, 48)
   40282     1525821 :          ipack = ipack + 1
   40283     1525821 :          pack_tmp = packed_data(ipack)
   40284     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40285     1525821 :          pack_tmp = ISHFT(pack_tmp, -48)
   40286     1525821 :          idata = idata + 1
   40287     1525821 :          data_tmp = ISHFT(pack_tmp, 34)
   40288     1525821 :          ipack = ipack + 1
   40289     1525821 :          pack_tmp = packed_data(ipack)
   40290     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40291     1525821 :          pack_tmp = ISHFT(pack_tmp, -34)
   40292     1525821 :          idata = idata + 1
   40293     1525821 :          data_tmp = ISHFT(pack_tmp, 20)
   40294     1525821 :          ipack = ipack + 1
   40295     1525821 :          pack_tmp = packed_data(ipack)
   40296     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40297     1525821 :          pack_tmp = ISHFT(pack_tmp, -20)
   40298     1525821 :          idata = idata + 1
   40299     1525821 :          data_tmp = ISHFT(pack_tmp, 6)
   40300     1525821 :          ipack = ipack + 1
   40301     1525821 :          pack_tmp = packed_data(ipack)
   40302     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40303     1525821 :          pack_tmp = ISHFT(pack_tmp, -6)
   40304     1525821 :          idata = idata + 1
   40305     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40306     1525821 :          full_data(idata) = data_tmp
   40307     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40308     1525821 :          idata = idata + 1
   40309     1525821 :          data_tmp = ISHFT(pack_tmp, 42)
   40310     1525821 :          ipack = ipack + 1
   40311     1525821 :          pack_tmp = packed_data(ipack)
   40312     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40313     1525821 :          pack_tmp = ISHFT(pack_tmp, -42)
   40314     1525821 :          idata = idata + 1
   40315     1525821 :          data_tmp = ISHFT(pack_tmp, 28)
   40316     1525821 :          ipack = ipack + 1
   40317     1525821 :          pack_tmp = packed_data(ipack)
   40318     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40319     1525821 :          pack_tmp = ISHFT(pack_tmp, -28)
   40320     1525821 :          idata = idata + 1
   40321     1525821 :          data_tmp = ISHFT(pack_tmp, 14)
   40322     1525821 :          ipack = ipack + 1
   40323     1525821 :          pack_tmp = packed_data(ipack)
   40324     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40325     1525821 :          pack_tmp = ISHFT(pack_tmp, -14)
   40326     1525821 :          idata = idata + 1
   40327     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40328     1525821 :          full_data(idata) = data_tmp
   40329     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40330     1525821 :          idata = idata + 1
   40331     1525821 :          data_tmp = ISHFT(pack_tmp, 50)
   40332     1525821 :          ipack = ipack + 1
   40333     1525821 :          pack_tmp = packed_data(ipack)
   40334     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40335     1525821 :          pack_tmp = ISHFT(pack_tmp, -50)
   40336     1525821 :          idata = idata + 1
   40337     1525821 :          data_tmp = ISHFT(pack_tmp, 36)
   40338     1525821 :          ipack = ipack + 1
   40339     1525821 :          pack_tmp = packed_data(ipack)
   40340     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40341     1525821 :          pack_tmp = ISHFT(pack_tmp, -36)
   40342     1525821 :          idata = idata + 1
   40343     1525821 :          data_tmp = ISHFT(pack_tmp, 22)
   40344     1525821 :          ipack = ipack + 1
   40345     1525821 :          pack_tmp = packed_data(ipack)
   40346     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40347     1525821 :          pack_tmp = ISHFT(pack_tmp, -22)
   40348     1525821 :          idata = idata + 1
   40349     1525821 :          data_tmp = ISHFT(pack_tmp, 8)
   40350     1525821 :          ipack = ipack + 1
   40351     1525821 :          pack_tmp = packed_data(ipack)
   40352     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40353     1525821 :          pack_tmp = ISHFT(pack_tmp, -8)
   40354     1525821 :          idata = idata + 1
   40355     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40356     1525821 :          full_data(idata) = data_tmp
   40357     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40358     1525821 :          idata = idata + 1
   40359     1525821 :          data_tmp = ISHFT(pack_tmp, 44)
   40360     1525821 :          ipack = ipack + 1
   40361     1525821 :          pack_tmp = packed_data(ipack)
   40362     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40363     1525821 :          pack_tmp = ISHFT(pack_tmp, -44)
   40364     1525821 :          idata = idata + 1
   40365     1525821 :          data_tmp = ISHFT(pack_tmp, 30)
   40366     1525821 :          ipack = ipack + 1
   40367     1525821 :          pack_tmp = packed_data(ipack)
   40368     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40369     1525821 :          pack_tmp = ISHFT(pack_tmp, -30)
   40370     1525821 :          idata = idata + 1
   40371     1525821 :          data_tmp = ISHFT(pack_tmp, 16)
   40372     1525821 :          ipack = ipack + 1
   40373     1525821 :          pack_tmp = packed_data(ipack)
   40374     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40375     1525821 :          pack_tmp = ISHFT(pack_tmp, -16)
   40376     1525821 :          idata = idata + 1
   40377     1525821 :          data_tmp = ISHFT(pack_tmp, 2)
   40378     1525821 :          ipack = ipack + 1
   40379     1525821 :          pack_tmp = packed_data(ipack)
   40380     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40381     1525821 :          pack_tmp = ISHFT(pack_tmp, -2)
   40382     1525821 :          idata = idata + 1
   40383     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40384     1525821 :          full_data(idata) = data_tmp
   40385     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40386     1525821 :          idata = idata + 1
   40387     1525821 :          data_tmp = ISHFT(pack_tmp, 38)
   40388     1525821 :          ipack = ipack + 1
   40389     1525821 :          pack_tmp = packed_data(ipack)
   40390     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40391     1525821 :          pack_tmp = ISHFT(pack_tmp, -38)
   40392     1525821 :          idata = idata + 1
   40393     1525821 :          data_tmp = ISHFT(pack_tmp, 24)
   40394     1525821 :          ipack = ipack + 1
   40395     1525821 :          pack_tmp = packed_data(ipack)
   40396     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40397     1525821 :          pack_tmp = ISHFT(pack_tmp, -24)
   40398     1525821 :          idata = idata + 1
   40399     1525821 :          data_tmp = ISHFT(pack_tmp, 10)
   40400     1525821 :          ipack = ipack + 1
   40401     1525821 :          pack_tmp = packed_data(ipack)
   40402     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40403     1525821 :          pack_tmp = ISHFT(pack_tmp, -10)
   40404     1525821 :          idata = idata + 1
   40405     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40406     1525821 :          full_data(idata) = data_tmp
   40407     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40408     1525821 :          idata = idata + 1
   40409     1525821 :          data_tmp = ISHFT(pack_tmp, 46)
   40410     1525821 :          ipack = ipack + 1
   40411     1525821 :          pack_tmp = packed_data(ipack)
   40412     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40413     1525821 :          pack_tmp = ISHFT(pack_tmp, -46)
   40414     1525821 :          idata = idata + 1
   40415     1525821 :          data_tmp = ISHFT(pack_tmp, 32)
   40416     1525821 :          ipack = ipack + 1
   40417     1525821 :          pack_tmp = packed_data(ipack)
   40418     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40419     1525821 :          pack_tmp = ISHFT(pack_tmp, -32)
   40420     1525821 :          idata = idata + 1
   40421     1525821 :          data_tmp = ISHFT(pack_tmp, 18)
   40422     1525821 :          ipack = ipack + 1
   40423     1525821 :          pack_tmp = packed_data(ipack)
   40424     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40425     1525821 :          pack_tmp = ISHFT(pack_tmp, -18)
   40426     1525821 :          idata = idata + 1
   40427     1525821 :          data_tmp = ISHFT(pack_tmp, 4)
   40428     1525821 :          ipack = ipack + 1
   40429     1525821 :          pack_tmp = packed_data(ipack)
   40430     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40431     1525821 :          pack_tmp = ISHFT(pack_tmp, -4)
   40432     1525821 :          idata = idata + 1
   40433     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40434     1525821 :          full_data(idata) = data_tmp
   40435     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40436     1525821 :          idata = idata + 1
   40437     1525821 :          data_tmp = ISHFT(pack_tmp, 40)
   40438     1525821 :          ipack = ipack + 1
   40439     1525821 :          pack_tmp = packed_data(ipack)
   40440     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40441     1525821 :          pack_tmp = ISHFT(pack_tmp, -40)
   40442     1525821 :          idata = idata + 1
   40443     1525821 :          data_tmp = ISHFT(pack_tmp, 26)
   40444     1525821 :          ipack = ipack + 1
   40445     1525821 :          pack_tmp = packed_data(ipack)
   40446     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40447     1525821 :          pack_tmp = ISHFT(pack_tmp, -26)
   40448     1525821 :          idata = idata + 1
   40449     1525821 :          data_tmp = ISHFT(pack_tmp, 12)
   40450     1525821 :          ipack = ipack + 1
   40451     1525821 :          pack_tmp = packed_data(ipack)
   40452     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40453     1525821 :          pack_tmp = ISHFT(pack_tmp, -12)
   40454     1525821 :          idata = idata + 1
   40455     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40456     1525821 :          full_data(idata) = data_tmp
   40457     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40458     1525821 :          idata = idata + 1
   40459     1525821 :          data_tmp = ISHFT(pack_tmp, 48)
   40460     1525821 :          ipack = ipack + 1
   40461     1525821 :          pack_tmp = packed_data(ipack)
   40462     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40463     1525821 :          pack_tmp = ISHFT(pack_tmp, -48)
   40464     1525821 :          idata = idata + 1
   40465     1525821 :          data_tmp = ISHFT(pack_tmp, 34)
   40466     1525821 :          ipack = ipack + 1
   40467     1525821 :          pack_tmp = packed_data(ipack)
   40468     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40469     1525821 :          pack_tmp = ISHFT(pack_tmp, -34)
   40470     1525821 :          idata = idata + 1
   40471     1525821 :          data_tmp = ISHFT(pack_tmp, 20)
   40472     1525821 :          ipack = ipack + 1
   40473     1525821 :          pack_tmp = packed_data(ipack)
   40474     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40475     1525821 :          pack_tmp = ISHFT(pack_tmp, -20)
   40476     1525821 :          idata = idata + 1
   40477     1525821 :          data_tmp = ISHFT(pack_tmp, 6)
   40478     1525821 :          ipack = ipack + 1
   40479     1525821 :          pack_tmp = packed_data(ipack)
   40480     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40481     1525821 :          pack_tmp = ISHFT(pack_tmp, -6)
   40482     1525821 :          idata = idata + 1
   40483     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40484     1525821 :          full_data(idata) = data_tmp
   40485     1525821 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40486     1525821 :          idata = idata + 1
   40487     1525821 :          data_tmp = ISHFT(pack_tmp, 42)
   40488     1525821 :          ipack = ipack + 1
   40489     1525821 :          pack_tmp = packed_data(ipack)
   40490     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40491     1525821 :          pack_tmp = ISHFT(pack_tmp, -42)
   40492     1525821 :          idata = idata + 1
   40493     1525821 :          data_tmp = ISHFT(pack_tmp, 28)
   40494     1525821 :          ipack = ipack + 1
   40495     1525821 :          pack_tmp = packed_data(ipack)
   40496     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40497     1525821 :          pack_tmp = ISHFT(pack_tmp, -28)
   40498     1525821 :          idata = idata + 1
   40499     1525821 :          data_tmp = ISHFT(pack_tmp, 14)
   40500     1525821 :          ipack = ipack + 1
   40501     1525821 :          pack_tmp = packed_data(ipack)
   40502     1525821 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40503     1525821 :          pack_tmp = ISHFT(pack_tmp, -14)
   40504     1525821 :          idata = idata + 1
   40505     1525821 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40506     1525821 :          full_data(idata) = data_tmp
   40507     1525837 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40508             :       END DO
   40509       97696 :       IF (Ndata_rep < Ndata) THEN
   40510        4390 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40511             :       END IF
   40512       97696 :    END SUBROUTINE bits2ints_50
   40513             : 
   40514             : ! **************************************************************************************************
   40515             : !> \brief ...
   40516             : !> \param Ndata ...
   40517             : !> \param packed_data ...
   40518             : !> \param full_data ...
   40519             : ! **************************************************************************************************
   40520       23162 :    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       23162 :       idata = 0
   40531       23162 :       ipack = 0
   40532       23162 :       Ndata_rep = (Ndata/64)*64
   40533       23162 :       DO kdata = 1, Ndata_rep, 64
   40534      366886 :          pack_tmp = 0
   40535      366886 :          idata = idata + 1
   40536      366886 :          data_tmp = full_data(idata)
   40537      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40538      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40539      366886 :          pack_tmp = ISHFT(pack_tmp, -13)
   40540      366886 :          idata = idata + 1
   40541      366886 :          data_tmp = full_data(idata)
   40542      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40543      366886 :          data_tmp = IAND(data_tmp, mask_left(13))
   40544      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40545      366886 :          ipack = ipack + 1
   40546      366886 :          packed_data(ipack) = pack_tmp
   40547      366886 :          data_tmp = full_data(idata)
   40548      366886 :          pack_tmp = ISHFT(data_tmp, 26)
   40549      366886 :          pack_tmp = ISHFT(pack_tmp, -26)
   40550      366886 :          idata = idata + 1
   40551      366886 :          data_tmp = full_data(idata)
   40552      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40553      366886 :          data_tmp = IAND(data_tmp, mask_left(26))
   40554      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40555      366886 :          ipack = ipack + 1
   40556      366886 :          packed_data(ipack) = pack_tmp
   40557      366886 :          data_tmp = full_data(idata)
   40558      366886 :          pack_tmp = ISHFT(data_tmp, 39)
   40559      366886 :          pack_tmp = ISHFT(pack_tmp, -39)
   40560      366886 :          idata = idata + 1
   40561      366886 :          data_tmp = full_data(idata)
   40562      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40563      366886 :          data_tmp = IAND(data_tmp, mask_left(39))
   40564      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40565      366886 :          ipack = ipack + 1
   40566      366886 :          packed_data(ipack) = pack_tmp
   40567      366886 :          data_tmp = full_data(idata)
   40568      366886 :          pack_tmp = ISHFT(data_tmp, 52)
   40569      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40570      366886 :          idata = idata + 1
   40571      366886 :          data_tmp = full_data(idata)
   40572      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40573      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40574      366886 :          pack_tmp = ISHFT(pack_tmp, -1)
   40575      366886 :          idata = idata + 1
   40576      366886 :          data_tmp = full_data(idata)
   40577      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40578      366886 :          data_tmp = IAND(data_tmp, mask_left(1))
   40579      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40580      366886 :          ipack = ipack + 1
   40581      366886 :          packed_data(ipack) = pack_tmp
   40582      366886 :          data_tmp = full_data(idata)
   40583      366886 :          pack_tmp = ISHFT(data_tmp, 14)
   40584      366886 :          pack_tmp = ISHFT(pack_tmp, -14)
   40585      366886 :          idata = idata + 1
   40586      366886 :          data_tmp = full_data(idata)
   40587      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40588      366886 :          data_tmp = IAND(data_tmp, mask_left(14))
   40589      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40590      366886 :          ipack = ipack + 1
   40591      366886 :          packed_data(ipack) = pack_tmp
   40592      366886 :          data_tmp = full_data(idata)
   40593      366886 :          pack_tmp = ISHFT(data_tmp, 27)
   40594      366886 :          pack_tmp = ISHFT(pack_tmp, -27)
   40595      366886 :          idata = idata + 1
   40596      366886 :          data_tmp = full_data(idata)
   40597      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40598      366886 :          data_tmp = IAND(data_tmp, mask_left(27))
   40599      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40600      366886 :          ipack = ipack + 1
   40601      366886 :          packed_data(ipack) = pack_tmp
   40602      366886 :          data_tmp = full_data(idata)
   40603      366886 :          pack_tmp = ISHFT(data_tmp, 40)
   40604      366886 :          pack_tmp = ISHFT(pack_tmp, -40)
   40605      366886 :          idata = idata + 1
   40606      366886 :          data_tmp = full_data(idata)
   40607      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40608      366886 :          data_tmp = IAND(data_tmp, mask_left(40))
   40609      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40610      366886 :          ipack = ipack + 1
   40611      366886 :          packed_data(ipack) = pack_tmp
   40612      366886 :          data_tmp = full_data(idata)
   40613      366886 :          pack_tmp = ISHFT(data_tmp, 53)
   40614      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40615      366886 :          idata = idata + 1
   40616      366886 :          data_tmp = full_data(idata)
   40617      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40618      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40619      366886 :          pack_tmp = ISHFT(pack_tmp, -2)
   40620      366886 :          idata = idata + 1
   40621      366886 :          data_tmp = full_data(idata)
   40622      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40623      366886 :          data_tmp = IAND(data_tmp, mask_left(2))
   40624      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40625      366886 :          ipack = ipack + 1
   40626      366886 :          packed_data(ipack) = pack_tmp
   40627      366886 :          data_tmp = full_data(idata)
   40628      366886 :          pack_tmp = ISHFT(data_tmp, 15)
   40629      366886 :          pack_tmp = ISHFT(pack_tmp, -15)
   40630      366886 :          idata = idata + 1
   40631      366886 :          data_tmp = full_data(idata)
   40632      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40633      366886 :          data_tmp = IAND(data_tmp, mask_left(15))
   40634      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40635      366886 :          ipack = ipack + 1
   40636      366886 :          packed_data(ipack) = pack_tmp
   40637      366886 :          data_tmp = full_data(idata)
   40638      366886 :          pack_tmp = ISHFT(data_tmp, 28)
   40639      366886 :          pack_tmp = ISHFT(pack_tmp, -28)
   40640      366886 :          idata = idata + 1
   40641      366886 :          data_tmp = full_data(idata)
   40642      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40643      366886 :          data_tmp = IAND(data_tmp, mask_left(28))
   40644      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40645      366886 :          ipack = ipack + 1
   40646      366886 :          packed_data(ipack) = pack_tmp
   40647      366886 :          data_tmp = full_data(idata)
   40648      366886 :          pack_tmp = ISHFT(data_tmp, 41)
   40649      366886 :          pack_tmp = ISHFT(pack_tmp, -41)
   40650      366886 :          idata = idata + 1
   40651      366886 :          data_tmp = full_data(idata)
   40652      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40653      366886 :          data_tmp = IAND(data_tmp, mask_left(41))
   40654      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40655      366886 :          ipack = ipack + 1
   40656      366886 :          packed_data(ipack) = pack_tmp
   40657      366886 :          data_tmp = full_data(idata)
   40658      366886 :          pack_tmp = ISHFT(data_tmp, 54)
   40659      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40660      366886 :          idata = idata + 1
   40661      366886 :          data_tmp = full_data(idata)
   40662      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40663      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40664      366886 :          pack_tmp = ISHFT(pack_tmp, -3)
   40665      366886 :          idata = idata + 1
   40666      366886 :          data_tmp = full_data(idata)
   40667      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40668      366886 :          data_tmp = IAND(data_tmp, mask_left(3))
   40669      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40670      366886 :          ipack = ipack + 1
   40671      366886 :          packed_data(ipack) = pack_tmp
   40672      366886 :          data_tmp = full_data(idata)
   40673      366886 :          pack_tmp = ISHFT(data_tmp, 16)
   40674      366886 :          pack_tmp = ISHFT(pack_tmp, -16)
   40675      366886 :          idata = idata + 1
   40676      366886 :          data_tmp = full_data(idata)
   40677      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40678      366886 :          data_tmp = IAND(data_tmp, mask_left(16))
   40679      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40680      366886 :          ipack = ipack + 1
   40681      366886 :          packed_data(ipack) = pack_tmp
   40682      366886 :          data_tmp = full_data(idata)
   40683      366886 :          pack_tmp = ISHFT(data_tmp, 29)
   40684      366886 :          pack_tmp = ISHFT(pack_tmp, -29)
   40685      366886 :          idata = idata + 1
   40686      366886 :          data_tmp = full_data(idata)
   40687      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40688      366886 :          data_tmp = IAND(data_tmp, mask_left(29))
   40689      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40690      366886 :          ipack = ipack + 1
   40691      366886 :          packed_data(ipack) = pack_tmp
   40692      366886 :          data_tmp = full_data(idata)
   40693      366886 :          pack_tmp = ISHFT(data_tmp, 42)
   40694      366886 :          pack_tmp = ISHFT(pack_tmp, -42)
   40695      366886 :          idata = idata + 1
   40696      366886 :          data_tmp = full_data(idata)
   40697      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40698      366886 :          data_tmp = IAND(data_tmp, mask_left(42))
   40699      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40700      366886 :          ipack = ipack + 1
   40701      366886 :          packed_data(ipack) = pack_tmp
   40702      366886 :          data_tmp = full_data(idata)
   40703      366886 :          pack_tmp = ISHFT(data_tmp, 55)
   40704      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40705      366886 :          idata = idata + 1
   40706      366886 :          data_tmp = full_data(idata)
   40707      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40708      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40709      366886 :          pack_tmp = ISHFT(pack_tmp, -4)
   40710      366886 :          idata = idata + 1
   40711      366886 :          data_tmp = full_data(idata)
   40712      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40713      366886 :          data_tmp = IAND(data_tmp, mask_left(4))
   40714      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40715      366886 :          ipack = ipack + 1
   40716      366886 :          packed_data(ipack) = pack_tmp
   40717      366886 :          data_tmp = full_data(idata)
   40718      366886 :          pack_tmp = ISHFT(data_tmp, 17)
   40719      366886 :          pack_tmp = ISHFT(pack_tmp, -17)
   40720      366886 :          idata = idata + 1
   40721      366886 :          data_tmp = full_data(idata)
   40722      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40723      366886 :          data_tmp = IAND(data_tmp, mask_left(17))
   40724      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40725      366886 :          ipack = ipack + 1
   40726      366886 :          packed_data(ipack) = pack_tmp
   40727      366886 :          data_tmp = full_data(idata)
   40728      366886 :          pack_tmp = ISHFT(data_tmp, 30)
   40729      366886 :          pack_tmp = ISHFT(pack_tmp, -30)
   40730      366886 :          idata = idata + 1
   40731      366886 :          data_tmp = full_data(idata)
   40732      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40733      366886 :          data_tmp = IAND(data_tmp, mask_left(30))
   40734      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40735      366886 :          ipack = ipack + 1
   40736      366886 :          packed_data(ipack) = pack_tmp
   40737      366886 :          data_tmp = full_data(idata)
   40738      366886 :          pack_tmp = ISHFT(data_tmp, 43)
   40739      366886 :          pack_tmp = ISHFT(pack_tmp, -43)
   40740      366886 :          idata = idata + 1
   40741      366886 :          data_tmp = full_data(idata)
   40742      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40743      366886 :          data_tmp = IAND(data_tmp, mask_left(43))
   40744      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40745      366886 :          ipack = ipack + 1
   40746      366886 :          packed_data(ipack) = pack_tmp
   40747      366886 :          data_tmp = full_data(idata)
   40748      366886 :          pack_tmp = ISHFT(data_tmp, 56)
   40749      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40750      366886 :          idata = idata + 1
   40751      366886 :          data_tmp = full_data(idata)
   40752      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40753      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40754      366886 :          pack_tmp = ISHFT(pack_tmp, -5)
   40755      366886 :          idata = idata + 1
   40756      366886 :          data_tmp = full_data(idata)
   40757      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40758      366886 :          data_tmp = IAND(data_tmp, mask_left(5))
   40759      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40760      366886 :          ipack = ipack + 1
   40761      366886 :          packed_data(ipack) = pack_tmp
   40762      366886 :          data_tmp = full_data(idata)
   40763      366886 :          pack_tmp = ISHFT(data_tmp, 18)
   40764      366886 :          pack_tmp = ISHFT(pack_tmp, -18)
   40765      366886 :          idata = idata + 1
   40766      366886 :          data_tmp = full_data(idata)
   40767      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40768      366886 :          data_tmp = IAND(data_tmp, mask_left(18))
   40769      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40770      366886 :          ipack = ipack + 1
   40771      366886 :          packed_data(ipack) = pack_tmp
   40772      366886 :          data_tmp = full_data(idata)
   40773      366886 :          pack_tmp = ISHFT(data_tmp, 31)
   40774      366886 :          pack_tmp = ISHFT(pack_tmp, -31)
   40775      366886 :          idata = idata + 1
   40776      366886 :          data_tmp = full_data(idata)
   40777      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40778      366886 :          data_tmp = IAND(data_tmp, mask_left(31))
   40779      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40780      366886 :          ipack = ipack + 1
   40781      366886 :          packed_data(ipack) = pack_tmp
   40782      366886 :          data_tmp = full_data(idata)
   40783      366886 :          pack_tmp = ISHFT(data_tmp, 44)
   40784      366886 :          pack_tmp = ISHFT(pack_tmp, -44)
   40785      366886 :          idata = idata + 1
   40786      366886 :          data_tmp = full_data(idata)
   40787      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40788      366886 :          data_tmp = IAND(data_tmp, mask_left(44))
   40789      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40790      366886 :          ipack = ipack + 1
   40791      366886 :          packed_data(ipack) = pack_tmp
   40792      366886 :          data_tmp = full_data(idata)
   40793      366886 :          pack_tmp = ISHFT(data_tmp, 57)
   40794      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40795      366886 :          idata = idata + 1
   40796      366886 :          data_tmp = full_data(idata)
   40797      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40798      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40799      366886 :          pack_tmp = ISHFT(pack_tmp, -6)
   40800      366886 :          idata = idata + 1
   40801      366886 :          data_tmp = full_data(idata)
   40802      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40803      366886 :          data_tmp = IAND(data_tmp, mask_left(6))
   40804      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40805      366886 :          ipack = ipack + 1
   40806      366886 :          packed_data(ipack) = pack_tmp
   40807      366886 :          data_tmp = full_data(idata)
   40808      366886 :          pack_tmp = ISHFT(data_tmp, 19)
   40809      366886 :          pack_tmp = ISHFT(pack_tmp, -19)
   40810      366886 :          idata = idata + 1
   40811      366886 :          data_tmp = full_data(idata)
   40812      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40813      366886 :          data_tmp = IAND(data_tmp, mask_left(19))
   40814      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40815      366886 :          ipack = ipack + 1
   40816      366886 :          packed_data(ipack) = pack_tmp
   40817      366886 :          data_tmp = full_data(idata)
   40818      366886 :          pack_tmp = ISHFT(data_tmp, 32)
   40819      366886 :          pack_tmp = ISHFT(pack_tmp, -32)
   40820      366886 :          idata = idata + 1
   40821      366886 :          data_tmp = full_data(idata)
   40822      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40823      366886 :          data_tmp = IAND(data_tmp, mask_left(32))
   40824      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40825      366886 :          ipack = ipack + 1
   40826      366886 :          packed_data(ipack) = pack_tmp
   40827      366886 :          data_tmp = full_data(idata)
   40828      366886 :          pack_tmp = ISHFT(data_tmp, 45)
   40829      366886 :          pack_tmp = ISHFT(pack_tmp, -45)
   40830      366886 :          idata = idata + 1
   40831      366886 :          data_tmp = full_data(idata)
   40832      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40833      366886 :          data_tmp = IAND(data_tmp, mask_left(45))
   40834      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40835      366886 :          ipack = ipack + 1
   40836      366886 :          packed_data(ipack) = pack_tmp
   40837      366886 :          data_tmp = full_data(idata)
   40838      366886 :          pack_tmp = ISHFT(data_tmp, 58)
   40839      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40840      366886 :          idata = idata + 1
   40841      366886 :          data_tmp = full_data(idata)
   40842      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40843      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40844      366886 :          pack_tmp = ISHFT(pack_tmp, -7)
   40845      366886 :          idata = idata + 1
   40846      366886 :          data_tmp = full_data(idata)
   40847      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40848      366886 :          data_tmp = IAND(data_tmp, mask_left(7))
   40849      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40850      366886 :          ipack = ipack + 1
   40851      366886 :          packed_data(ipack) = pack_tmp
   40852      366886 :          data_tmp = full_data(idata)
   40853      366886 :          pack_tmp = ISHFT(data_tmp, 20)
   40854      366886 :          pack_tmp = ISHFT(pack_tmp, -20)
   40855      366886 :          idata = idata + 1
   40856      366886 :          data_tmp = full_data(idata)
   40857      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40858      366886 :          data_tmp = IAND(data_tmp, mask_left(20))
   40859      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40860      366886 :          ipack = ipack + 1
   40861      366886 :          packed_data(ipack) = pack_tmp
   40862      366886 :          data_tmp = full_data(idata)
   40863      366886 :          pack_tmp = ISHFT(data_tmp, 33)
   40864      366886 :          pack_tmp = ISHFT(pack_tmp, -33)
   40865      366886 :          idata = idata + 1
   40866      366886 :          data_tmp = full_data(idata)
   40867      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40868      366886 :          data_tmp = IAND(data_tmp, mask_left(33))
   40869      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40870      366886 :          ipack = ipack + 1
   40871      366886 :          packed_data(ipack) = pack_tmp
   40872      366886 :          data_tmp = full_data(idata)
   40873      366886 :          pack_tmp = ISHFT(data_tmp, 46)
   40874      366886 :          pack_tmp = ISHFT(pack_tmp, -46)
   40875      366886 :          idata = idata + 1
   40876      366886 :          data_tmp = full_data(idata)
   40877      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40878      366886 :          data_tmp = IAND(data_tmp, mask_left(46))
   40879      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40880      366886 :          ipack = ipack + 1
   40881      366886 :          packed_data(ipack) = pack_tmp
   40882      366886 :          data_tmp = full_data(idata)
   40883      366886 :          pack_tmp = ISHFT(data_tmp, 59)
   40884      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40885      366886 :          idata = idata + 1
   40886      366886 :          data_tmp = full_data(idata)
   40887      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40888      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40889      366886 :          pack_tmp = ISHFT(pack_tmp, -8)
   40890      366886 :          idata = idata + 1
   40891      366886 :          data_tmp = full_data(idata)
   40892      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40893      366886 :          data_tmp = IAND(data_tmp, mask_left(8))
   40894      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40895      366886 :          ipack = ipack + 1
   40896      366886 :          packed_data(ipack) = pack_tmp
   40897      366886 :          data_tmp = full_data(idata)
   40898      366886 :          pack_tmp = ISHFT(data_tmp, 21)
   40899      366886 :          pack_tmp = ISHFT(pack_tmp, -21)
   40900      366886 :          idata = idata + 1
   40901      366886 :          data_tmp = full_data(idata)
   40902      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40903      366886 :          data_tmp = IAND(data_tmp, mask_left(21))
   40904      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40905      366886 :          ipack = ipack + 1
   40906      366886 :          packed_data(ipack) = pack_tmp
   40907      366886 :          data_tmp = full_data(idata)
   40908      366886 :          pack_tmp = ISHFT(data_tmp, 34)
   40909      366886 :          pack_tmp = ISHFT(pack_tmp, -34)
   40910      366886 :          idata = idata + 1
   40911      366886 :          data_tmp = full_data(idata)
   40912      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40913      366886 :          data_tmp = IAND(data_tmp, mask_left(34))
   40914      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40915      366886 :          ipack = ipack + 1
   40916      366886 :          packed_data(ipack) = pack_tmp
   40917      366886 :          data_tmp = full_data(idata)
   40918      366886 :          pack_tmp = ISHFT(data_tmp, 47)
   40919      366886 :          pack_tmp = ISHFT(pack_tmp, -47)
   40920      366886 :          idata = idata + 1
   40921      366886 :          data_tmp = full_data(idata)
   40922      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40923      366886 :          data_tmp = IAND(data_tmp, mask_left(47))
   40924      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40925      366886 :          ipack = ipack + 1
   40926      366886 :          packed_data(ipack) = pack_tmp
   40927      366886 :          data_tmp = full_data(idata)
   40928      366886 :          pack_tmp = ISHFT(data_tmp, 60)
   40929      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40930      366886 :          idata = idata + 1
   40931      366886 :          data_tmp = full_data(idata)
   40932      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40933      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40934      366886 :          pack_tmp = ISHFT(pack_tmp, -9)
   40935      366886 :          idata = idata + 1
   40936      366886 :          data_tmp = full_data(idata)
   40937      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40938      366886 :          data_tmp = IAND(data_tmp, mask_left(9))
   40939      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40940      366886 :          ipack = ipack + 1
   40941      366886 :          packed_data(ipack) = pack_tmp
   40942      366886 :          data_tmp = full_data(idata)
   40943      366886 :          pack_tmp = ISHFT(data_tmp, 22)
   40944      366886 :          pack_tmp = ISHFT(pack_tmp, -22)
   40945      366886 :          idata = idata + 1
   40946      366886 :          data_tmp = full_data(idata)
   40947      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40948      366886 :          data_tmp = IAND(data_tmp, mask_left(22))
   40949      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40950      366886 :          ipack = ipack + 1
   40951      366886 :          packed_data(ipack) = pack_tmp
   40952      366886 :          data_tmp = full_data(idata)
   40953      366886 :          pack_tmp = ISHFT(data_tmp, 35)
   40954      366886 :          pack_tmp = ISHFT(pack_tmp, -35)
   40955      366886 :          idata = idata + 1
   40956      366886 :          data_tmp = full_data(idata)
   40957      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40958      366886 :          data_tmp = IAND(data_tmp, mask_left(35))
   40959      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40960      366886 :          ipack = ipack + 1
   40961      366886 :          packed_data(ipack) = pack_tmp
   40962      366886 :          data_tmp = full_data(idata)
   40963      366886 :          pack_tmp = ISHFT(data_tmp, 48)
   40964      366886 :          pack_tmp = ISHFT(pack_tmp, -48)
   40965      366886 :          idata = idata + 1
   40966      366886 :          data_tmp = full_data(idata)
   40967      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40968      366886 :          data_tmp = IAND(data_tmp, mask_left(48))
   40969      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40970      366886 :          ipack = ipack + 1
   40971      366886 :          packed_data(ipack) = pack_tmp
   40972      366886 :          data_tmp = full_data(idata)
   40973      366886 :          pack_tmp = ISHFT(data_tmp, 61)
   40974      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   40975      366886 :          idata = idata + 1
   40976      366886 :          data_tmp = full_data(idata)
   40977      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40978      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40979      366886 :          pack_tmp = ISHFT(pack_tmp, -10)
   40980      366886 :          idata = idata + 1
   40981      366886 :          data_tmp = full_data(idata)
   40982      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40983      366886 :          data_tmp = IAND(data_tmp, mask_left(10))
   40984      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40985      366886 :          ipack = ipack + 1
   40986      366886 :          packed_data(ipack) = pack_tmp
   40987      366886 :          data_tmp = full_data(idata)
   40988      366886 :          pack_tmp = ISHFT(data_tmp, 23)
   40989      366886 :          pack_tmp = ISHFT(pack_tmp, -23)
   40990      366886 :          idata = idata + 1
   40991      366886 :          data_tmp = full_data(idata)
   40992      366886 :          data_tmp = ISHFT(data_tmp, 13)
   40993      366886 :          data_tmp = IAND(data_tmp, mask_left(23))
   40994      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40995      366886 :          ipack = ipack + 1
   40996      366886 :          packed_data(ipack) = pack_tmp
   40997      366886 :          data_tmp = full_data(idata)
   40998      366886 :          pack_tmp = ISHFT(data_tmp, 36)
   40999      366886 :          pack_tmp = ISHFT(pack_tmp, -36)
   41000      366886 :          idata = idata + 1
   41001      366886 :          data_tmp = full_data(idata)
   41002      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41003      366886 :          data_tmp = IAND(data_tmp, mask_left(36))
   41004      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41005      366886 :          ipack = ipack + 1
   41006      366886 :          packed_data(ipack) = pack_tmp
   41007      366886 :          data_tmp = full_data(idata)
   41008      366886 :          pack_tmp = ISHFT(data_tmp, 49)
   41009      366886 :          pack_tmp = ISHFT(pack_tmp, -49)
   41010      366886 :          idata = idata + 1
   41011      366886 :          data_tmp = full_data(idata)
   41012      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41013      366886 :          data_tmp = IAND(data_tmp, mask_left(49))
   41014      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41015      366886 :          ipack = ipack + 1
   41016      366886 :          packed_data(ipack) = pack_tmp
   41017      366886 :          data_tmp = full_data(idata)
   41018      366886 :          pack_tmp = ISHFT(data_tmp, 62)
   41019      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   41020      366886 :          idata = idata + 1
   41021      366886 :          data_tmp = full_data(idata)
   41022      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41023      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41024      366886 :          pack_tmp = ISHFT(pack_tmp, -11)
   41025      366886 :          idata = idata + 1
   41026      366886 :          data_tmp = full_data(idata)
   41027      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41028      366886 :          data_tmp = IAND(data_tmp, mask_left(11))
   41029      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41030      366886 :          ipack = ipack + 1
   41031      366886 :          packed_data(ipack) = pack_tmp
   41032      366886 :          data_tmp = full_data(idata)
   41033      366886 :          pack_tmp = ISHFT(data_tmp, 24)
   41034      366886 :          pack_tmp = ISHFT(pack_tmp, -24)
   41035      366886 :          idata = idata + 1
   41036      366886 :          data_tmp = full_data(idata)
   41037      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41038      366886 :          data_tmp = IAND(data_tmp, mask_left(24))
   41039      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41040      366886 :          ipack = ipack + 1
   41041      366886 :          packed_data(ipack) = pack_tmp
   41042      366886 :          data_tmp = full_data(idata)
   41043      366886 :          pack_tmp = ISHFT(data_tmp, 37)
   41044      366886 :          pack_tmp = ISHFT(pack_tmp, -37)
   41045      366886 :          idata = idata + 1
   41046      366886 :          data_tmp = full_data(idata)
   41047      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41048      366886 :          data_tmp = IAND(data_tmp, mask_left(37))
   41049      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41050      366886 :          ipack = ipack + 1
   41051      366886 :          packed_data(ipack) = pack_tmp
   41052      366886 :          data_tmp = full_data(idata)
   41053      366886 :          pack_tmp = ISHFT(data_tmp, 50)
   41054      366886 :          pack_tmp = ISHFT(pack_tmp, -50)
   41055      366886 :          idata = idata + 1
   41056      366886 :          data_tmp = full_data(idata)
   41057      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41058      366886 :          data_tmp = IAND(data_tmp, mask_left(50))
   41059      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41060      366886 :          ipack = ipack + 1
   41061      366886 :          packed_data(ipack) = pack_tmp
   41062      366886 :          data_tmp = full_data(idata)
   41063      366886 :          pack_tmp = ISHFT(data_tmp, 63)
   41064      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   41065      366886 :          idata = idata + 1
   41066      366886 :          data_tmp = full_data(idata)
   41067      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41068      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41069      366886 :          pack_tmp = ISHFT(pack_tmp, -12)
   41070      366886 :          idata = idata + 1
   41071      366886 :          data_tmp = full_data(idata)
   41072      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41073      366886 :          data_tmp = IAND(data_tmp, mask_left(12))
   41074      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41075      366886 :          ipack = ipack + 1
   41076      366886 :          packed_data(ipack) = pack_tmp
   41077      366886 :          data_tmp = full_data(idata)
   41078      366886 :          pack_tmp = ISHFT(data_tmp, 25)
   41079      366886 :          pack_tmp = ISHFT(pack_tmp, -25)
   41080      366886 :          idata = idata + 1
   41081      366886 :          data_tmp = full_data(idata)
   41082      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41083      366886 :          data_tmp = IAND(data_tmp, mask_left(25))
   41084      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41085      366886 :          ipack = ipack + 1
   41086      366886 :          packed_data(ipack) = pack_tmp
   41087      366886 :          data_tmp = full_data(idata)
   41088      366886 :          pack_tmp = ISHFT(data_tmp, 38)
   41089      366886 :          pack_tmp = ISHFT(pack_tmp, -38)
   41090      366886 :          idata = idata + 1
   41091      366886 :          data_tmp = full_data(idata)
   41092      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41093      366886 :          data_tmp = IAND(data_tmp, mask_left(38))
   41094      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41095      366886 :          ipack = ipack + 1
   41096      366886 :          packed_data(ipack) = pack_tmp
   41097      366886 :          data_tmp = full_data(idata)
   41098      366886 :          pack_tmp = ISHFT(data_tmp, 51)
   41099      366886 :          pack_tmp = ISHFT(pack_tmp, -51)
   41100      366886 :          idata = idata + 1
   41101      366886 :          data_tmp = full_data(idata)
   41102      366886 :          data_tmp = ISHFT(data_tmp, 13)
   41103      366886 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41104             :          pack_tmp = ISHFT(pack_tmp, 0)
   41105      366886 :          pack_tmp = ISHFT(pack_tmp, 0)
   41106      366886 :          ipack = ipack + 1
   41107      366930 :          packed_data(ipack) = pack_tmp
   41108             :       END DO
   41109       23162 :       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       23162 :    END SUBROUTINE ints2bits_51
   41113             : 
   41114             : ! **************************************************************************************************
   41115             : !> \brief ...
   41116             : !> \param Ndata ...
   41117             : !> \param packed_data ...
   41118             : !> \param full_data ...
   41119             : ! **************************************************************************************************
   41120       96326 :    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       96326 :       ipack = 0
   41131       96326 :       idata = 0
   41132       96326 :       pack_tmp = 0
   41133       96326 :       Ndata_rep = (Ndata/64)*64
   41134       96326 :       DO kdata = 1, Ndata_rep, 64
   41135     1517858 :          idata = idata + 1
   41136     1517858 :          data_tmp = ISHFT(pack_tmp, 51)
   41137     1517858 :          ipack = ipack + 1
   41138     1517858 :          pack_tmp = packed_data(ipack)
   41139     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   41140     1517858 :          pack_tmp = ISHFT(pack_tmp, -51)
   41141     1517858 :          idata = idata + 1
   41142     1517858 :          data_tmp = ISHFT(pack_tmp, 38)
   41143     1517858 :          ipack = ipack + 1
   41144     1517858 :          pack_tmp = packed_data(ipack)
   41145     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   41146     1517858 :          pack_tmp = ISHFT(pack_tmp, -38)
   41147     1517858 :          idata = idata + 1
   41148     1517858 :          data_tmp = ISHFT(pack_tmp, 25)
   41149     1517858 :          ipack = ipack + 1
   41150     1517858 :          pack_tmp = packed_data(ipack)
   41151     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   41152     1517858 :          pack_tmp = ISHFT(pack_tmp, -25)
   41153     1517858 :          idata = idata + 1
   41154     1517858 :          data_tmp = ISHFT(pack_tmp, 12)
   41155     1517858 :          ipack = ipack + 1
   41156     1517858 :          pack_tmp = packed_data(ipack)
   41157     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   41158     1517858 :          pack_tmp = ISHFT(pack_tmp, -12)
   41159     1517858 :          idata = idata + 1
   41160     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41161     1517858 :          full_data(idata) = data_tmp
   41162     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41163     1517858 :          idata = idata + 1
   41164     1517858 :          data_tmp = ISHFT(pack_tmp, 50)
   41165     1517858 :          ipack = ipack + 1
   41166     1517858 :          pack_tmp = packed_data(ipack)
   41167     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   41168     1517858 :          pack_tmp = ISHFT(pack_tmp, -50)
   41169     1517858 :          idata = idata + 1
   41170     1517858 :          data_tmp = ISHFT(pack_tmp, 37)
   41171     1517858 :          ipack = ipack + 1
   41172     1517858 :          pack_tmp = packed_data(ipack)
   41173     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   41174     1517858 :          pack_tmp = ISHFT(pack_tmp, -37)
   41175     1517858 :          idata = idata + 1
   41176     1517858 :          data_tmp = ISHFT(pack_tmp, 24)
   41177     1517858 :          ipack = ipack + 1
   41178     1517858 :          pack_tmp = packed_data(ipack)
   41179     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   41180     1517858 :          pack_tmp = ISHFT(pack_tmp, -24)
   41181     1517858 :          idata = idata + 1
   41182     1517858 :          data_tmp = ISHFT(pack_tmp, 11)
   41183     1517858 :          ipack = ipack + 1
   41184     1517858 :          pack_tmp = packed_data(ipack)
   41185     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   41186     1517858 :          pack_tmp = ISHFT(pack_tmp, -11)
   41187     1517858 :          idata = idata + 1
   41188     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41189     1517858 :          full_data(idata) = data_tmp
   41190     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41191     1517858 :          idata = idata + 1
   41192     1517858 :          data_tmp = ISHFT(pack_tmp, 49)
   41193     1517858 :          ipack = ipack + 1
   41194     1517858 :          pack_tmp = packed_data(ipack)
   41195     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   41196     1517858 :          pack_tmp = ISHFT(pack_tmp, -49)
   41197     1517858 :          idata = idata + 1
   41198     1517858 :          data_tmp = ISHFT(pack_tmp, 36)
   41199     1517858 :          ipack = ipack + 1
   41200     1517858 :          pack_tmp = packed_data(ipack)
   41201     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   41202     1517858 :          pack_tmp = ISHFT(pack_tmp, -36)
   41203     1517858 :          idata = idata + 1
   41204     1517858 :          data_tmp = ISHFT(pack_tmp, 23)
   41205     1517858 :          ipack = ipack + 1
   41206     1517858 :          pack_tmp = packed_data(ipack)
   41207     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   41208     1517858 :          pack_tmp = ISHFT(pack_tmp, -23)
   41209     1517858 :          idata = idata + 1
   41210     1517858 :          data_tmp = ISHFT(pack_tmp, 10)
   41211     1517858 :          ipack = ipack + 1
   41212     1517858 :          pack_tmp = packed_data(ipack)
   41213     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   41214     1517858 :          pack_tmp = ISHFT(pack_tmp, -10)
   41215     1517858 :          idata = idata + 1
   41216     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41217     1517858 :          full_data(idata) = data_tmp
   41218     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41219     1517858 :          idata = idata + 1
   41220     1517858 :          data_tmp = ISHFT(pack_tmp, 48)
   41221     1517858 :          ipack = ipack + 1
   41222     1517858 :          pack_tmp = packed_data(ipack)
   41223     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   41224     1517858 :          pack_tmp = ISHFT(pack_tmp, -48)
   41225     1517858 :          idata = idata + 1
   41226     1517858 :          data_tmp = ISHFT(pack_tmp, 35)
   41227     1517858 :          ipack = ipack + 1
   41228     1517858 :          pack_tmp = packed_data(ipack)
   41229     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   41230     1517858 :          pack_tmp = ISHFT(pack_tmp, -35)
   41231     1517858 :          idata = idata + 1
   41232     1517858 :          data_tmp = ISHFT(pack_tmp, 22)
   41233     1517858 :          ipack = ipack + 1
   41234     1517858 :          pack_tmp = packed_data(ipack)
   41235     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   41236     1517858 :          pack_tmp = ISHFT(pack_tmp, -22)
   41237     1517858 :          idata = idata + 1
   41238     1517858 :          data_tmp = ISHFT(pack_tmp, 9)
   41239     1517858 :          ipack = ipack + 1
   41240     1517858 :          pack_tmp = packed_data(ipack)
   41241     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   41242     1517858 :          pack_tmp = ISHFT(pack_tmp, -9)
   41243     1517858 :          idata = idata + 1
   41244     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41245     1517858 :          full_data(idata) = data_tmp
   41246     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41247     1517858 :          idata = idata + 1
   41248     1517858 :          data_tmp = ISHFT(pack_tmp, 47)
   41249     1517858 :          ipack = ipack + 1
   41250     1517858 :          pack_tmp = packed_data(ipack)
   41251     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   41252     1517858 :          pack_tmp = ISHFT(pack_tmp, -47)
   41253     1517858 :          idata = idata + 1
   41254     1517858 :          data_tmp = ISHFT(pack_tmp, 34)
   41255     1517858 :          ipack = ipack + 1
   41256     1517858 :          pack_tmp = packed_data(ipack)
   41257     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   41258     1517858 :          pack_tmp = ISHFT(pack_tmp, -34)
   41259     1517858 :          idata = idata + 1
   41260     1517858 :          data_tmp = ISHFT(pack_tmp, 21)
   41261     1517858 :          ipack = ipack + 1
   41262     1517858 :          pack_tmp = packed_data(ipack)
   41263     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   41264     1517858 :          pack_tmp = ISHFT(pack_tmp, -21)
   41265     1517858 :          idata = idata + 1
   41266     1517858 :          data_tmp = ISHFT(pack_tmp, 8)
   41267     1517858 :          ipack = ipack + 1
   41268     1517858 :          pack_tmp = packed_data(ipack)
   41269     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   41270     1517858 :          pack_tmp = ISHFT(pack_tmp, -8)
   41271     1517858 :          idata = idata + 1
   41272     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41273     1517858 :          full_data(idata) = data_tmp
   41274     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41275     1517858 :          idata = idata + 1
   41276     1517858 :          data_tmp = ISHFT(pack_tmp, 46)
   41277     1517858 :          ipack = ipack + 1
   41278     1517858 :          pack_tmp = packed_data(ipack)
   41279     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   41280     1517858 :          pack_tmp = ISHFT(pack_tmp, -46)
   41281     1517858 :          idata = idata + 1
   41282     1517858 :          data_tmp = ISHFT(pack_tmp, 33)
   41283     1517858 :          ipack = ipack + 1
   41284     1517858 :          pack_tmp = packed_data(ipack)
   41285     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   41286     1517858 :          pack_tmp = ISHFT(pack_tmp, -33)
   41287     1517858 :          idata = idata + 1
   41288     1517858 :          data_tmp = ISHFT(pack_tmp, 20)
   41289     1517858 :          ipack = ipack + 1
   41290     1517858 :          pack_tmp = packed_data(ipack)
   41291     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   41292     1517858 :          pack_tmp = ISHFT(pack_tmp, -20)
   41293     1517858 :          idata = idata + 1
   41294     1517858 :          data_tmp = ISHFT(pack_tmp, 7)
   41295     1517858 :          ipack = ipack + 1
   41296     1517858 :          pack_tmp = packed_data(ipack)
   41297     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   41298     1517858 :          pack_tmp = ISHFT(pack_tmp, -7)
   41299     1517858 :          idata = idata + 1
   41300     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41301     1517858 :          full_data(idata) = data_tmp
   41302     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41303     1517858 :          idata = idata + 1
   41304     1517858 :          data_tmp = ISHFT(pack_tmp, 45)
   41305     1517858 :          ipack = ipack + 1
   41306     1517858 :          pack_tmp = packed_data(ipack)
   41307     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   41308     1517858 :          pack_tmp = ISHFT(pack_tmp, -45)
   41309     1517858 :          idata = idata + 1
   41310     1517858 :          data_tmp = ISHFT(pack_tmp, 32)
   41311     1517858 :          ipack = ipack + 1
   41312     1517858 :          pack_tmp = packed_data(ipack)
   41313     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   41314     1517858 :          pack_tmp = ISHFT(pack_tmp, -32)
   41315     1517858 :          idata = idata + 1
   41316     1517858 :          data_tmp = ISHFT(pack_tmp, 19)
   41317     1517858 :          ipack = ipack + 1
   41318     1517858 :          pack_tmp = packed_data(ipack)
   41319     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   41320     1517858 :          pack_tmp = ISHFT(pack_tmp, -19)
   41321     1517858 :          idata = idata + 1
   41322     1517858 :          data_tmp = ISHFT(pack_tmp, 6)
   41323     1517858 :          ipack = ipack + 1
   41324     1517858 :          pack_tmp = packed_data(ipack)
   41325     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   41326     1517858 :          pack_tmp = ISHFT(pack_tmp, -6)
   41327     1517858 :          idata = idata + 1
   41328     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41329     1517858 :          full_data(idata) = data_tmp
   41330     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41331     1517858 :          idata = idata + 1
   41332     1517858 :          data_tmp = ISHFT(pack_tmp, 44)
   41333     1517858 :          ipack = ipack + 1
   41334     1517858 :          pack_tmp = packed_data(ipack)
   41335     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   41336     1517858 :          pack_tmp = ISHFT(pack_tmp, -44)
   41337     1517858 :          idata = idata + 1
   41338     1517858 :          data_tmp = ISHFT(pack_tmp, 31)
   41339     1517858 :          ipack = ipack + 1
   41340     1517858 :          pack_tmp = packed_data(ipack)
   41341     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   41342     1517858 :          pack_tmp = ISHFT(pack_tmp, -31)
   41343     1517858 :          idata = idata + 1
   41344     1517858 :          data_tmp = ISHFT(pack_tmp, 18)
   41345     1517858 :          ipack = ipack + 1
   41346     1517858 :          pack_tmp = packed_data(ipack)
   41347     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   41348     1517858 :          pack_tmp = ISHFT(pack_tmp, -18)
   41349     1517858 :          idata = idata + 1
   41350     1517858 :          data_tmp = ISHFT(pack_tmp, 5)
   41351     1517858 :          ipack = ipack + 1
   41352     1517858 :          pack_tmp = packed_data(ipack)
   41353     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   41354     1517858 :          pack_tmp = ISHFT(pack_tmp, -5)
   41355     1517858 :          idata = idata + 1
   41356     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41357     1517858 :          full_data(idata) = data_tmp
   41358     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41359     1517858 :          idata = idata + 1
   41360     1517858 :          data_tmp = ISHFT(pack_tmp, 43)
   41361     1517858 :          ipack = ipack + 1
   41362     1517858 :          pack_tmp = packed_data(ipack)
   41363     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   41364     1517858 :          pack_tmp = ISHFT(pack_tmp, -43)
   41365     1517858 :          idata = idata + 1
   41366     1517858 :          data_tmp = ISHFT(pack_tmp, 30)
   41367     1517858 :          ipack = ipack + 1
   41368     1517858 :          pack_tmp = packed_data(ipack)
   41369     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   41370     1517858 :          pack_tmp = ISHFT(pack_tmp, -30)
   41371     1517858 :          idata = idata + 1
   41372     1517858 :          data_tmp = ISHFT(pack_tmp, 17)
   41373     1517858 :          ipack = ipack + 1
   41374     1517858 :          pack_tmp = packed_data(ipack)
   41375     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   41376     1517858 :          pack_tmp = ISHFT(pack_tmp, -17)
   41377     1517858 :          idata = idata + 1
   41378     1517858 :          data_tmp = ISHFT(pack_tmp, 4)
   41379     1517858 :          ipack = ipack + 1
   41380     1517858 :          pack_tmp = packed_data(ipack)
   41381     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   41382     1517858 :          pack_tmp = ISHFT(pack_tmp, -4)
   41383     1517858 :          idata = idata + 1
   41384     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41385     1517858 :          full_data(idata) = data_tmp
   41386     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41387     1517858 :          idata = idata + 1
   41388     1517858 :          data_tmp = ISHFT(pack_tmp, 42)
   41389     1517858 :          ipack = ipack + 1
   41390     1517858 :          pack_tmp = packed_data(ipack)
   41391     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   41392     1517858 :          pack_tmp = ISHFT(pack_tmp, -42)
   41393     1517858 :          idata = idata + 1
   41394     1517858 :          data_tmp = ISHFT(pack_tmp, 29)
   41395     1517858 :          ipack = ipack + 1
   41396     1517858 :          pack_tmp = packed_data(ipack)
   41397     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   41398     1517858 :          pack_tmp = ISHFT(pack_tmp, -29)
   41399     1517858 :          idata = idata + 1
   41400     1517858 :          data_tmp = ISHFT(pack_tmp, 16)
   41401     1517858 :          ipack = ipack + 1
   41402     1517858 :          pack_tmp = packed_data(ipack)
   41403     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   41404     1517858 :          pack_tmp = ISHFT(pack_tmp, -16)
   41405     1517858 :          idata = idata + 1
   41406     1517858 :          data_tmp = ISHFT(pack_tmp, 3)
   41407     1517858 :          ipack = ipack + 1
   41408     1517858 :          pack_tmp = packed_data(ipack)
   41409     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   41410     1517858 :          pack_tmp = ISHFT(pack_tmp, -3)
   41411     1517858 :          idata = idata + 1
   41412     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41413     1517858 :          full_data(idata) = data_tmp
   41414     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41415     1517858 :          idata = idata + 1
   41416     1517858 :          data_tmp = ISHFT(pack_tmp, 41)
   41417     1517858 :          ipack = ipack + 1
   41418     1517858 :          pack_tmp = packed_data(ipack)
   41419     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   41420     1517858 :          pack_tmp = ISHFT(pack_tmp, -41)
   41421     1517858 :          idata = idata + 1
   41422     1517858 :          data_tmp = ISHFT(pack_tmp, 28)
   41423     1517858 :          ipack = ipack + 1
   41424     1517858 :          pack_tmp = packed_data(ipack)
   41425     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   41426     1517858 :          pack_tmp = ISHFT(pack_tmp, -28)
   41427     1517858 :          idata = idata + 1
   41428     1517858 :          data_tmp = ISHFT(pack_tmp, 15)
   41429     1517858 :          ipack = ipack + 1
   41430     1517858 :          pack_tmp = packed_data(ipack)
   41431     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   41432     1517858 :          pack_tmp = ISHFT(pack_tmp, -15)
   41433     1517858 :          idata = idata + 1
   41434     1517858 :          data_tmp = ISHFT(pack_tmp, 2)
   41435     1517858 :          ipack = ipack + 1
   41436     1517858 :          pack_tmp = packed_data(ipack)
   41437     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   41438     1517858 :          pack_tmp = ISHFT(pack_tmp, -2)
   41439     1517858 :          idata = idata + 1
   41440     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41441     1517858 :          full_data(idata) = data_tmp
   41442     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41443     1517858 :          idata = idata + 1
   41444     1517858 :          data_tmp = ISHFT(pack_tmp, 40)
   41445     1517858 :          ipack = ipack + 1
   41446     1517858 :          pack_tmp = packed_data(ipack)
   41447     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   41448     1517858 :          pack_tmp = ISHFT(pack_tmp, -40)
   41449     1517858 :          idata = idata + 1
   41450     1517858 :          data_tmp = ISHFT(pack_tmp, 27)
   41451     1517858 :          ipack = ipack + 1
   41452     1517858 :          pack_tmp = packed_data(ipack)
   41453     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   41454     1517858 :          pack_tmp = ISHFT(pack_tmp, -27)
   41455     1517858 :          idata = idata + 1
   41456     1517858 :          data_tmp = ISHFT(pack_tmp, 14)
   41457     1517858 :          ipack = ipack + 1
   41458     1517858 :          pack_tmp = packed_data(ipack)
   41459     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   41460     1517858 :          pack_tmp = ISHFT(pack_tmp, -14)
   41461     1517858 :          idata = idata + 1
   41462     1517858 :          data_tmp = ISHFT(pack_tmp, 1)
   41463     1517858 :          ipack = ipack + 1
   41464     1517858 :          pack_tmp = packed_data(ipack)
   41465     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   41466     1517858 :          pack_tmp = ISHFT(pack_tmp, -1)
   41467     1517858 :          idata = idata + 1
   41468     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41469     1517858 :          full_data(idata) = data_tmp
   41470     1517858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41471     1517858 :          idata = idata + 1
   41472     1517858 :          data_tmp = ISHFT(pack_tmp, 39)
   41473     1517858 :          ipack = ipack + 1
   41474     1517858 :          pack_tmp = packed_data(ipack)
   41475     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   41476     1517858 :          pack_tmp = ISHFT(pack_tmp, -39)
   41477     1517858 :          idata = idata + 1
   41478     1517858 :          data_tmp = ISHFT(pack_tmp, 26)
   41479     1517858 :          ipack = ipack + 1
   41480     1517858 :          pack_tmp = packed_data(ipack)
   41481     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   41482     1517858 :          pack_tmp = ISHFT(pack_tmp, -26)
   41483     1517858 :          idata = idata + 1
   41484     1517858 :          data_tmp = ISHFT(pack_tmp, 13)
   41485     1517858 :          ipack = ipack + 1
   41486     1517858 :          pack_tmp = packed_data(ipack)
   41487     1517858 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   41488     1517858 :          pack_tmp = ISHFT(pack_tmp, -13)
   41489     1517858 :          idata = idata + 1
   41490     1517858 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41491     1517858 :          full_data(idata) = data_tmp
   41492     1518182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41493             :       END DO
   41494       96326 :       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       96326 :    END SUBROUTINE bits2ints_51
   41498             : 
   41499             : ! **************************************************************************************************
   41500             : !> \brief ...
   41501             : !> \param Ndata ...
   41502             : !> \param packed_data ...
   41503             : !> \param full_data ...
   41504             : ! **************************************************************************************************
   41505       23188 :    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       23188 :       idata = 0
   41516       23188 :       ipack = 0
   41517       23188 :       Ndata_rep = (Ndata/64)*64
   41518       23188 :       DO kdata = 1, Ndata_rep, 64
   41519      367064 :          pack_tmp = 0
   41520      367064 :          idata = idata + 1
   41521      367064 :          data_tmp = full_data(idata)
   41522      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41523      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41524      367064 :          pack_tmp = ISHFT(pack_tmp, -12)
   41525      367064 :          idata = idata + 1
   41526      367064 :          data_tmp = full_data(idata)
   41527      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41528      367064 :          data_tmp = IAND(data_tmp, mask_left(12))
   41529      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41530      367064 :          ipack = ipack + 1
   41531      367064 :          packed_data(ipack) = pack_tmp
   41532      367064 :          data_tmp = full_data(idata)
   41533      367064 :          pack_tmp = ISHFT(data_tmp, 24)
   41534      367064 :          pack_tmp = ISHFT(pack_tmp, -24)
   41535      367064 :          idata = idata + 1
   41536      367064 :          data_tmp = full_data(idata)
   41537      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41538      367064 :          data_tmp = IAND(data_tmp, mask_left(24))
   41539      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41540      367064 :          ipack = ipack + 1
   41541      367064 :          packed_data(ipack) = pack_tmp
   41542      367064 :          data_tmp = full_data(idata)
   41543      367064 :          pack_tmp = ISHFT(data_tmp, 36)
   41544      367064 :          pack_tmp = ISHFT(pack_tmp, -36)
   41545      367064 :          idata = idata + 1
   41546      367064 :          data_tmp = full_data(idata)
   41547      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41548      367064 :          data_tmp = IAND(data_tmp, mask_left(36))
   41549      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41550      367064 :          ipack = ipack + 1
   41551      367064 :          packed_data(ipack) = pack_tmp
   41552      367064 :          data_tmp = full_data(idata)
   41553      367064 :          pack_tmp = ISHFT(data_tmp, 48)
   41554      367064 :          pack_tmp = ISHFT(pack_tmp, -48)
   41555      367064 :          idata = idata + 1
   41556      367064 :          data_tmp = full_data(idata)
   41557      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41558      367064 :          data_tmp = IAND(data_tmp, mask_left(48))
   41559      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41560      367064 :          ipack = ipack + 1
   41561      367064 :          packed_data(ipack) = pack_tmp
   41562      367064 :          data_tmp = full_data(idata)
   41563      367064 :          pack_tmp = ISHFT(data_tmp, 60)
   41564      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41565      367064 :          idata = idata + 1
   41566      367064 :          data_tmp = full_data(idata)
   41567      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41568      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41569      367064 :          pack_tmp = ISHFT(pack_tmp, -8)
   41570      367064 :          idata = idata + 1
   41571      367064 :          data_tmp = full_data(idata)
   41572      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41573      367064 :          data_tmp = IAND(data_tmp, mask_left(8))
   41574      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41575      367064 :          ipack = ipack + 1
   41576      367064 :          packed_data(ipack) = pack_tmp
   41577      367064 :          data_tmp = full_data(idata)
   41578      367064 :          pack_tmp = ISHFT(data_tmp, 20)
   41579      367064 :          pack_tmp = ISHFT(pack_tmp, -20)
   41580      367064 :          idata = idata + 1
   41581      367064 :          data_tmp = full_data(idata)
   41582      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41583      367064 :          data_tmp = IAND(data_tmp, mask_left(20))
   41584      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41585      367064 :          ipack = ipack + 1
   41586      367064 :          packed_data(ipack) = pack_tmp
   41587      367064 :          data_tmp = full_data(idata)
   41588      367064 :          pack_tmp = ISHFT(data_tmp, 32)
   41589      367064 :          pack_tmp = ISHFT(pack_tmp, -32)
   41590      367064 :          idata = idata + 1
   41591      367064 :          data_tmp = full_data(idata)
   41592      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41593      367064 :          data_tmp = IAND(data_tmp, mask_left(32))
   41594      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41595      367064 :          ipack = ipack + 1
   41596      367064 :          packed_data(ipack) = pack_tmp
   41597      367064 :          data_tmp = full_data(idata)
   41598      367064 :          pack_tmp = ISHFT(data_tmp, 44)
   41599      367064 :          pack_tmp = ISHFT(pack_tmp, -44)
   41600      367064 :          idata = idata + 1
   41601      367064 :          data_tmp = full_data(idata)
   41602      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41603      367064 :          data_tmp = IAND(data_tmp, mask_left(44))
   41604      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41605      367064 :          ipack = ipack + 1
   41606      367064 :          packed_data(ipack) = pack_tmp
   41607      367064 :          data_tmp = full_data(idata)
   41608      367064 :          pack_tmp = ISHFT(data_tmp, 56)
   41609      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41610      367064 :          idata = idata + 1
   41611      367064 :          data_tmp = full_data(idata)
   41612      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41613      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41614      367064 :          pack_tmp = ISHFT(pack_tmp, -4)
   41615      367064 :          idata = idata + 1
   41616      367064 :          data_tmp = full_data(idata)
   41617      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41618      367064 :          data_tmp = IAND(data_tmp, mask_left(4))
   41619      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41620      367064 :          ipack = ipack + 1
   41621      367064 :          packed_data(ipack) = pack_tmp
   41622      367064 :          data_tmp = full_data(idata)
   41623      367064 :          pack_tmp = ISHFT(data_tmp, 16)
   41624      367064 :          pack_tmp = ISHFT(pack_tmp, -16)
   41625      367064 :          idata = idata + 1
   41626      367064 :          data_tmp = full_data(idata)
   41627      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41628      367064 :          data_tmp = IAND(data_tmp, mask_left(16))
   41629      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41630      367064 :          ipack = ipack + 1
   41631      367064 :          packed_data(ipack) = pack_tmp
   41632      367064 :          data_tmp = full_data(idata)
   41633      367064 :          pack_tmp = ISHFT(data_tmp, 28)
   41634      367064 :          pack_tmp = ISHFT(pack_tmp, -28)
   41635      367064 :          idata = idata + 1
   41636      367064 :          data_tmp = full_data(idata)
   41637      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41638      367064 :          data_tmp = IAND(data_tmp, mask_left(28))
   41639      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41640      367064 :          ipack = ipack + 1
   41641      367064 :          packed_data(ipack) = pack_tmp
   41642      367064 :          data_tmp = full_data(idata)
   41643      367064 :          pack_tmp = ISHFT(data_tmp, 40)
   41644      367064 :          pack_tmp = ISHFT(pack_tmp, -40)
   41645      367064 :          idata = idata + 1
   41646      367064 :          data_tmp = full_data(idata)
   41647      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41648      367064 :          data_tmp = IAND(data_tmp, mask_left(40))
   41649      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41650      367064 :          ipack = ipack + 1
   41651      367064 :          packed_data(ipack) = pack_tmp
   41652      367064 :          data_tmp = full_data(idata)
   41653      367064 :          pack_tmp = ISHFT(data_tmp, 52)
   41654      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41655      367064 :          idata = idata + 1
   41656      367064 :          data_tmp = full_data(idata)
   41657      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41658      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41659      367064 :          pack_tmp = ISHFT(pack_tmp, 0)
   41660      367064 :          idata = idata + 1
   41661      367064 :          data_tmp = full_data(idata)
   41662      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41663      367064 :          data_tmp = IAND(data_tmp, mask_left(0))
   41664      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41665      367064 :          ipack = ipack + 1
   41666      367064 :          packed_data(ipack) = pack_tmp
   41667      367064 :          data_tmp = full_data(idata)
   41668      367064 :          pack_tmp = ISHFT(data_tmp, 12)
   41669      367064 :          pack_tmp = ISHFT(pack_tmp, -12)
   41670      367064 :          idata = idata + 1
   41671      367064 :          data_tmp = full_data(idata)
   41672      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41673      367064 :          data_tmp = IAND(data_tmp, mask_left(12))
   41674      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41675      367064 :          ipack = ipack + 1
   41676      367064 :          packed_data(ipack) = pack_tmp
   41677      367064 :          data_tmp = full_data(idata)
   41678      367064 :          pack_tmp = ISHFT(data_tmp, 24)
   41679      367064 :          pack_tmp = ISHFT(pack_tmp, -24)
   41680      367064 :          idata = idata + 1
   41681      367064 :          data_tmp = full_data(idata)
   41682      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41683      367064 :          data_tmp = IAND(data_tmp, mask_left(24))
   41684      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41685      367064 :          ipack = ipack + 1
   41686      367064 :          packed_data(ipack) = pack_tmp
   41687      367064 :          data_tmp = full_data(idata)
   41688      367064 :          pack_tmp = ISHFT(data_tmp, 36)
   41689      367064 :          pack_tmp = ISHFT(pack_tmp, -36)
   41690      367064 :          idata = idata + 1
   41691      367064 :          data_tmp = full_data(idata)
   41692      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41693      367064 :          data_tmp = IAND(data_tmp, mask_left(36))
   41694      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41695      367064 :          ipack = ipack + 1
   41696      367064 :          packed_data(ipack) = pack_tmp
   41697      367064 :          data_tmp = full_data(idata)
   41698      367064 :          pack_tmp = ISHFT(data_tmp, 48)
   41699      367064 :          pack_tmp = ISHFT(pack_tmp, -48)
   41700      367064 :          idata = idata + 1
   41701      367064 :          data_tmp = full_data(idata)
   41702      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41703      367064 :          data_tmp = IAND(data_tmp, mask_left(48))
   41704      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41705      367064 :          ipack = ipack + 1
   41706      367064 :          packed_data(ipack) = pack_tmp
   41707      367064 :          data_tmp = full_data(idata)
   41708      367064 :          pack_tmp = ISHFT(data_tmp, 60)
   41709      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41710      367064 :          idata = idata + 1
   41711      367064 :          data_tmp = full_data(idata)
   41712      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41713      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41714      367064 :          pack_tmp = ISHFT(pack_tmp, -8)
   41715      367064 :          idata = idata + 1
   41716      367064 :          data_tmp = full_data(idata)
   41717      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41718      367064 :          data_tmp = IAND(data_tmp, mask_left(8))
   41719      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41720      367064 :          ipack = ipack + 1
   41721      367064 :          packed_data(ipack) = pack_tmp
   41722      367064 :          data_tmp = full_data(idata)
   41723      367064 :          pack_tmp = ISHFT(data_tmp, 20)
   41724      367064 :          pack_tmp = ISHFT(pack_tmp, -20)
   41725      367064 :          idata = idata + 1
   41726      367064 :          data_tmp = full_data(idata)
   41727      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41728      367064 :          data_tmp = IAND(data_tmp, mask_left(20))
   41729      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41730      367064 :          ipack = ipack + 1
   41731      367064 :          packed_data(ipack) = pack_tmp
   41732      367064 :          data_tmp = full_data(idata)
   41733      367064 :          pack_tmp = ISHFT(data_tmp, 32)
   41734      367064 :          pack_tmp = ISHFT(pack_tmp, -32)
   41735      367064 :          idata = idata + 1
   41736      367064 :          data_tmp = full_data(idata)
   41737      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41738      367064 :          data_tmp = IAND(data_tmp, mask_left(32))
   41739      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41740      367064 :          ipack = ipack + 1
   41741      367064 :          packed_data(ipack) = pack_tmp
   41742      367064 :          data_tmp = full_data(idata)
   41743      367064 :          pack_tmp = ISHFT(data_tmp, 44)
   41744      367064 :          pack_tmp = ISHFT(pack_tmp, -44)
   41745      367064 :          idata = idata + 1
   41746      367064 :          data_tmp = full_data(idata)
   41747      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41748      367064 :          data_tmp = IAND(data_tmp, mask_left(44))
   41749      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41750      367064 :          ipack = ipack + 1
   41751      367064 :          packed_data(ipack) = pack_tmp
   41752      367064 :          data_tmp = full_data(idata)
   41753      367064 :          pack_tmp = ISHFT(data_tmp, 56)
   41754      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41755      367064 :          idata = idata + 1
   41756      367064 :          data_tmp = full_data(idata)
   41757      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41758      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41759      367064 :          pack_tmp = ISHFT(pack_tmp, -4)
   41760      367064 :          idata = idata + 1
   41761      367064 :          data_tmp = full_data(idata)
   41762      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41763      367064 :          data_tmp = IAND(data_tmp, mask_left(4))
   41764      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41765      367064 :          ipack = ipack + 1
   41766      367064 :          packed_data(ipack) = pack_tmp
   41767      367064 :          data_tmp = full_data(idata)
   41768      367064 :          pack_tmp = ISHFT(data_tmp, 16)
   41769      367064 :          pack_tmp = ISHFT(pack_tmp, -16)
   41770      367064 :          idata = idata + 1
   41771      367064 :          data_tmp = full_data(idata)
   41772      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41773      367064 :          data_tmp = IAND(data_tmp, mask_left(16))
   41774      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41775      367064 :          ipack = ipack + 1
   41776      367064 :          packed_data(ipack) = pack_tmp
   41777      367064 :          data_tmp = full_data(idata)
   41778      367064 :          pack_tmp = ISHFT(data_tmp, 28)
   41779      367064 :          pack_tmp = ISHFT(pack_tmp, -28)
   41780      367064 :          idata = idata + 1
   41781      367064 :          data_tmp = full_data(idata)
   41782      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41783      367064 :          data_tmp = IAND(data_tmp, mask_left(28))
   41784      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41785      367064 :          ipack = ipack + 1
   41786      367064 :          packed_data(ipack) = pack_tmp
   41787      367064 :          data_tmp = full_data(idata)
   41788      367064 :          pack_tmp = ISHFT(data_tmp, 40)
   41789      367064 :          pack_tmp = ISHFT(pack_tmp, -40)
   41790      367064 :          idata = idata + 1
   41791      367064 :          data_tmp = full_data(idata)
   41792      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41793      367064 :          data_tmp = IAND(data_tmp, mask_left(40))
   41794      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41795      367064 :          ipack = ipack + 1
   41796      367064 :          packed_data(ipack) = pack_tmp
   41797      367064 :          data_tmp = full_data(idata)
   41798      367064 :          pack_tmp = ISHFT(data_tmp, 52)
   41799      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41800      367064 :          idata = idata + 1
   41801      367064 :          data_tmp = full_data(idata)
   41802      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41803      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41804      367064 :          pack_tmp = ISHFT(pack_tmp, 0)
   41805      367064 :          idata = idata + 1
   41806      367064 :          data_tmp = full_data(idata)
   41807      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41808      367064 :          data_tmp = IAND(data_tmp, mask_left(0))
   41809      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41810      367064 :          ipack = ipack + 1
   41811      367064 :          packed_data(ipack) = pack_tmp
   41812      367064 :          data_tmp = full_data(idata)
   41813      367064 :          pack_tmp = ISHFT(data_tmp, 12)
   41814      367064 :          pack_tmp = ISHFT(pack_tmp, -12)
   41815      367064 :          idata = idata + 1
   41816      367064 :          data_tmp = full_data(idata)
   41817      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41818      367064 :          data_tmp = IAND(data_tmp, mask_left(12))
   41819      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41820      367064 :          ipack = ipack + 1
   41821      367064 :          packed_data(ipack) = pack_tmp
   41822      367064 :          data_tmp = full_data(idata)
   41823      367064 :          pack_tmp = ISHFT(data_tmp, 24)
   41824      367064 :          pack_tmp = ISHFT(pack_tmp, -24)
   41825      367064 :          idata = idata + 1
   41826      367064 :          data_tmp = full_data(idata)
   41827      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41828      367064 :          data_tmp = IAND(data_tmp, mask_left(24))
   41829      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41830      367064 :          ipack = ipack + 1
   41831      367064 :          packed_data(ipack) = pack_tmp
   41832      367064 :          data_tmp = full_data(idata)
   41833      367064 :          pack_tmp = ISHFT(data_tmp, 36)
   41834      367064 :          pack_tmp = ISHFT(pack_tmp, -36)
   41835      367064 :          idata = idata + 1
   41836      367064 :          data_tmp = full_data(idata)
   41837      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41838      367064 :          data_tmp = IAND(data_tmp, mask_left(36))
   41839      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41840      367064 :          ipack = ipack + 1
   41841      367064 :          packed_data(ipack) = pack_tmp
   41842      367064 :          data_tmp = full_data(idata)
   41843      367064 :          pack_tmp = ISHFT(data_tmp, 48)
   41844      367064 :          pack_tmp = ISHFT(pack_tmp, -48)
   41845      367064 :          idata = idata + 1
   41846      367064 :          data_tmp = full_data(idata)
   41847      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41848      367064 :          data_tmp = IAND(data_tmp, mask_left(48))
   41849      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41850      367064 :          ipack = ipack + 1
   41851      367064 :          packed_data(ipack) = pack_tmp
   41852      367064 :          data_tmp = full_data(idata)
   41853      367064 :          pack_tmp = ISHFT(data_tmp, 60)
   41854      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41855      367064 :          idata = idata + 1
   41856      367064 :          data_tmp = full_data(idata)
   41857      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41858      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41859      367064 :          pack_tmp = ISHFT(pack_tmp, -8)
   41860      367064 :          idata = idata + 1
   41861      367064 :          data_tmp = full_data(idata)
   41862      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41863      367064 :          data_tmp = IAND(data_tmp, mask_left(8))
   41864      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41865      367064 :          ipack = ipack + 1
   41866      367064 :          packed_data(ipack) = pack_tmp
   41867      367064 :          data_tmp = full_data(idata)
   41868      367064 :          pack_tmp = ISHFT(data_tmp, 20)
   41869      367064 :          pack_tmp = ISHFT(pack_tmp, -20)
   41870      367064 :          idata = idata + 1
   41871      367064 :          data_tmp = full_data(idata)
   41872      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41873      367064 :          data_tmp = IAND(data_tmp, mask_left(20))
   41874      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41875      367064 :          ipack = ipack + 1
   41876      367064 :          packed_data(ipack) = pack_tmp
   41877      367064 :          data_tmp = full_data(idata)
   41878      367064 :          pack_tmp = ISHFT(data_tmp, 32)
   41879      367064 :          pack_tmp = ISHFT(pack_tmp, -32)
   41880      367064 :          idata = idata + 1
   41881      367064 :          data_tmp = full_data(idata)
   41882      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41883      367064 :          data_tmp = IAND(data_tmp, mask_left(32))
   41884      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41885      367064 :          ipack = ipack + 1
   41886      367064 :          packed_data(ipack) = pack_tmp
   41887      367064 :          data_tmp = full_data(idata)
   41888      367064 :          pack_tmp = ISHFT(data_tmp, 44)
   41889      367064 :          pack_tmp = ISHFT(pack_tmp, -44)
   41890      367064 :          idata = idata + 1
   41891      367064 :          data_tmp = full_data(idata)
   41892      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41893      367064 :          data_tmp = IAND(data_tmp, mask_left(44))
   41894      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41895      367064 :          ipack = ipack + 1
   41896      367064 :          packed_data(ipack) = pack_tmp
   41897      367064 :          data_tmp = full_data(idata)
   41898      367064 :          pack_tmp = ISHFT(data_tmp, 56)
   41899      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41900      367064 :          idata = idata + 1
   41901      367064 :          data_tmp = full_data(idata)
   41902      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41903      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41904      367064 :          pack_tmp = ISHFT(pack_tmp, -4)
   41905      367064 :          idata = idata + 1
   41906      367064 :          data_tmp = full_data(idata)
   41907      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41908      367064 :          data_tmp = IAND(data_tmp, mask_left(4))
   41909      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41910      367064 :          ipack = ipack + 1
   41911      367064 :          packed_data(ipack) = pack_tmp
   41912      367064 :          data_tmp = full_data(idata)
   41913      367064 :          pack_tmp = ISHFT(data_tmp, 16)
   41914      367064 :          pack_tmp = ISHFT(pack_tmp, -16)
   41915      367064 :          idata = idata + 1
   41916      367064 :          data_tmp = full_data(idata)
   41917      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41918      367064 :          data_tmp = IAND(data_tmp, mask_left(16))
   41919      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41920      367064 :          ipack = ipack + 1
   41921      367064 :          packed_data(ipack) = pack_tmp
   41922      367064 :          data_tmp = full_data(idata)
   41923      367064 :          pack_tmp = ISHFT(data_tmp, 28)
   41924      367064 :          pack_tmp = ISHFT(pack_tmp, -28)
   41925      367064 :          idata = idata + 1
   41926      367064 :          data_tmp = full_data(idata)
   41927      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41928      367064 :          data_tmp = IAND(data_tmp, mask_left(28))
   41929      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41930      367064 :          ipack = ipack + 1
   41931      367064 :          packed_data(ipack) = pack_tmp
   41932      367064 :          data_tmp = full_data(idata)
   41933      367064 :          pack_tmp = ISHFT(data_tmp, 40)
   41934      367064 :          pack_tmp = ISHFT(pack_tmp, -40)
   41935      367064 :          idata = idata + 1
   41936      367064 :          data_tmp = full_data(idata)
   41937      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41938      367064 :          data_tmp = IAND(data_tmp, mask_left(40))
   41939      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41940      367064 :          ipack = ipack + 1
   41941      367064 :          packed_data(ipack) = pack_tmp
   41942      367064 :          data_tmp = full_data(idata)
   41943      367064 :          pack_tmp = ISHFT(data_tmp, 52)
   41944      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   41945      367064 :          idata = idata + 1
   41946      367064 :          data_tmp = full_data(idata)
   41947      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41948      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41949      367064 :          pack_tmp = ISHFT(pack_tmp, 0)
   41950      367064 :          idata = idata + 1
   41951      367064 :          data_tmp = full_data(idata)
   41952      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41953      367064 :          data_tmp = IAND(data_tmp, mask_left(0))
   41954      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41955      367064 :          ipack = ipack + 1
   41956      367064 :          packed_data(ipack) = pack_tmp
   41957      367064 :          data_tmp = full_data(idata)
   41958      367064 :          pack_tmp = ISHFT(data_tmp, 12)
   41959      367064 :          pack_tmp = ISHFT(pack_tmp, -12)
   41960      367064 :          idata = idata + 1
   41961      367064 :          data_tmp = full_data(idata)
   41962      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41963      367064 :          data_tmp = IAND(data_tmp, mask_left(12))
   41964      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41965      367064 :          ipack = ipack + 1
   41966      367064 :          packed_data(ipack) = pack_tmp
   41967      367064 :          data_tmp = full_data(idata)
   41968      367064 :          pack_tmp = ISHFT(data_tmp, 24)
   41969      367064 :          pack_tmp = ISHFT(pack_tmp, -24)
   41970      367064 :          idata = idata + 1
   41971      367064 :          data_tmp = full_data(idata)
   41972      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41973      367064 :          data_tmp = IAND(data_tmp, mask_left(24))
   41974      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41975      367064 :          ipack = ipack + 1
   41976      367064 :          packed_data(ipack) = pack_tmp
   41977      367064 :          data_tmp = full_data(idata)
   41978      367064 :          pack_tmp = ISHFT(data_tmp, 36)
   41979      367064 :          pack_tmp = ISHFT(pack_tmp, -36)
   41980      367064 :          idata = idata + 1
   41981      367064 :          data_tmp = full_data(idata)
   41982      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41983      367064 :          data_tmp = IAND(data_tmp, mask_left(36))
   41984      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41985      367064 :          ipack = ipack + 1
   41986      367064 :          packed_data(ipack) = pack_tmp
   41987      367064 :          data_tmp = full_data(idata)
   41988      367064 :          pack_tmp = ISHFT(data_tmp, 48)
   41989      367064 :          pack_tmp = ISHFT(pack_tmp, -48)
   41990      367064 :          idata = idata + 1
   41991      367064 :          data_tmp = full_data(idata)
   41992      367064 :          data_tmp = ISHFT(data_tmp, 12)
   41993      367064 :          data_tmp = IAND(data_tmp, mask_left(48))
   41994      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41995      367064 :          ipack = ipack + 1
   41996      367064 :          packed_data(ipack) = pack_tmp
   41997      367064 :          data_tmp = full_data(idata)
   41998      367064 :          pack_tmp = ISHFT(data_tmp, 60)
   41999      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   42000      367064 :          idata = idata + 1
   42001      367064 :          data_tmp = full_data(idata)
   42002      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42003      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42004      367064 :          pack_tmp = ISHFT(pack_tmp, -8)
   42005      367064 :          idata = idata + 1
   42006      367064 :          data_tmp = full_data(idata)
   42007      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42008      367064 :          data_tmp = IAND(data_tmp, mask_left(8))
   42009      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42010      367064 :          ipack = ipack + 1
   42011      367064 :          packed_data(ipack) = pack_tmp
   42012      367064 :          data_tmp = full_data(idata)
   42013      367064 :          pack_tmp = ISHFT(data_tmp, 20)
   42014      367064 :          pack_tmp = ISHFT(pack_tmp, -20)
   42015      367064 :          idata = idata + 1
   42016      367064 :          data_tmp = full_data(idata)
   42017      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42018      367064 :          data_tmp = IAND(data_tmp, mask_left(20))
   42019      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42020      367064 :          ipack = ipack + 1
   42021      367064 :          packed_data(ipack) = pack_tmp
   42022      367064 :          data_tmp = full_data(idata)
   42023      367064 :          pack_tmp = ISHFT(data_tmp, 32)
   42024      367064 :          pack_tmp = ISHFT(pack_tmp, -32)
   42025      367064 :          idata = idata + 1
   42026      367064 :          data_tmp = full_data(idata)
   42027      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42028      367064 :          data_tmp = IAND(data_tmp, mask_left(32))
   42029      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42030      367064 :          ipack = ipack + 1
   42031      367064 :          packed_data(ipack) = pack_tmp
   42032      367064 :          data_tmp = full_data(idata)
   42033      367064 :          pack_tmp = ISHFT(data_tmp, 44)
   42034      367064 :          pack_tmp = ISHFT(pack_tmp, -44)
   42035      367064 :          idata = idata + 1
   42036      367064 :          data_tmp = full_data(idata)
   42037      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42038      367064 :          data_tmp = IAND(data_tmp, mask_left(44))
   42039      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42040      367064 :          ipack = ipack + 1
   42041      367064 :          packed_data(ipack) = pack_tmp
   42042      367064 :          data_tmp = full_data(idata)
   42043      367064 :          pack_tmp = ISHFT(data_tmp, 56)
   42044      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   42045      367064 :          idata = idata + 1
   42046      367064 :          data_tmp = full_data(idata)
   42047      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42048      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42049      367064 :          pack_tmp = ISHFT(pack_tmp, -4)
   42050      367064 :          idata = idata + 1
   42051      367064 :          data_tmp = full_data(idata)
   42052      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42053      367064 :          data_tmp = IAND(data_tmp, mask_left(4))
   42054      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42055      367064 :          ipack = ipack + 1
   42056      367064 :          packed_data(ipack) = pack_tmp
   42057      367064 :          data_tmp = full_data(idata)
   42058      367064 :          pack_tmp = ISHFT(data_tmp, 16)
   42059      367064 :          pack_tmp = ISHFT(pack_tmp, -16)
   42060      367064 :          idata = idata + 1
   42061      367064 :          data_tmp = full_data(idata)
   42062      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42063      367064 :          data_tmp = IAND(data_tmp, mask_left(16))
   42064      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42065      367064 :          ipack = ipack + 1
   42066      367064 :          packed_data(ipack) = pack_tmp
   42067      367064 :          data_tmp = full_data(idata)
   42068      367064 :          pack_tmp = ISHFT(data_tmp, 28)
   42069      367064 :          pack_tmp = ISHFT(pack_tmp, -28)
   42070      367064 :          idata = idata + 1
   42071      367064 :          data_tmp = full_data(idata)
   42072      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42073      367064 :          data_tmp = IAND(data_tmp, mask_left(28))
   42074      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42075      367064 :          ipack = ipack + 1
   42076      367064 :          packed_data(ipack) = pack_tmp
   42077      367064 :          data_tmp = full_data(idata)
   42078      367064 :          pack_tmp = ISHFT(data_tmp, 40)
   42079      367064 :          pack_tmp = ISHFT(pack_tmp, -40)
   42080      367064 :          idata = idata + 1
   42081      367064 :          data_tmp = full_data(idata)
   42082      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42083      367064 :          data_tmp = IAND(data_tmp, mask_left(40))
   42084      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42085      367064 :          ipack = ipack + 1
   42086      367064 :          packed_data(ipack) = pack_tmp
   42087      367064 :          data_tmp = full_data(idata)
   42088      367064 :          pack_tmp = ISHFT(data_tmp, 52)
   42089      367064 :          pack_tmp = ISHFT(pack_tmp, -52)
   42090      367064 :          idata = idata + 1
   42091      367064 :          data_tmp = full_data(idata)
   42092      367064 :          data_tmp = ISHFT(data_tmp, 12)
   42093      367064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42094             :          pack_tmp = ISHFT(pack_tmp, 0)
   42095      367064 :          pack_tmp = ISHFT(pack_tmp, 0)
   42096      367064 :          ipack = ipack + 1
   42097      367074 :          packed_data(ipack) = pack_tmp
   42098             :       END DO
   42099       23188 :       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       23188 :    END SUBROUTINE ints2bits_52
   42103             : 
   42104             : ! **************************************************************************************************
   42105             : !> \brief ...
   42106             : !> \param Ndata ...
   42107             : !> \param packed_data ...
   42108             : !> \param full_data ...
   42109             : ! **************************************************************************************************
   42110       98258 :    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       98258 :       ipack = 0
   42121       98258 :       idata = 0
   42122       98258 :       pack_tmp = 0
   42123       98258 :       Ndata_rep = (Ndata/64)*64
   42124       98258 :       DO kdata = 1, Ndata_rep, 64
   42125     1532280 :          idata = idata + 1
   42126     1532280 :          data_tmp = ISHFT(pack_tmp, 52)
   42127     1532280 :          ipack = ipack + 1
   42128     1532280 :          pack_tmp = packed_data(ipack)
   42129     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42130     1532280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42131     1532280 :          idata = idata + 1
   42132     1532280 :          data_tmp = ISHFT(pack_tmp, 40)
   42133     1532280 :          ipack = ipack + 1
   42134     1532280 :          pack_tmp = packed_data(ipack)
   42135     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42136     1532280 :          pack_tmp = ISHFT(pack_tmp, -40)
   42137     1532280 :          idata = idata + 1
   42138     1532280 :          data_tmp = ISHFT(pack_tmp, 28)
   42139     1532280 :          ipack = ipack + 1
   42140     1532280 :          pack_tmp = packed_data(ipack)
   42141     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42142     1532280 :          pack_tmp = ISHFT(pack_tmp, -28)
   42143     1532280 :          idata = idata + 1
   42144     1532280 :          data_tmp = ISHFT(pack_tmp, 16)
   42145     1532280 :          ipack = ipack + 1
   42146     1532280 :          pack_tmp = packed_data(ipack)
   42147     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42148     1532280 :          pack_tmp = ISHFT(pack_tmp, -16)
   42149     1532280 :          idata = idata + 1
   42150     1532280 :          data_tmp = ISHFT(pack_tmp, 4)
   42151     1532280 :          ipack = ipack + 1
   42152     1532280 :          pack_tmp = packed_data(ipack)
   42153     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42154     1532280 :          pack_tmp = ISHFT(pack_tmp, -4)
   42155     1532280 :          idata = idata + 1
   42156     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42157     1532280 :          full_data(idata) = data_tmp
   42158     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42159     1532280 :          idata = idata + 1
   42160     1532280 :          data_tmp = ISHFT(pack_tmp, 44)
   42161     1532280 :          ipack = ipack + 1
   42162     1532280 :          pack_tmp = packed_data(ipack)
   42163     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42164     1532280 :          pack_tmp = ISHFT(pack_tmp, -44)
   42165     1532280 :          idata = idata + 1
   42166     1532280 :          data_tmp = ISHFT(pack_tmp, 32)
   42167     1532280 :          ipack = ipack + 1
   42168     1532280 :          pack_tmp = packed_data(ipack)
   42169     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42170     1532280 :          pack_tmp = ISHFT(pack_tmp, -32)
   42171     1532280 :          idata = idata + 1
   42172     1532280 :          data_tmp = ISHFT(pack_tmp, 20)
   42173     1532280 :          ipack = ipack + 1
   42174     1532280 :          pack_tmp = packed_data(ipack)
   42175     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42176     1532280 :          pack_tmp = ISHFT(pack_tmp, -20)
   42177     1532280 :          idata = idata + 1
   42178     1532280 :          data_tmp = ISHFT(pack_tmp, 8)
   42179     1532280 :          ipack = ipack + 1
   42180     1532280 :          pack_tmp = packed_data(ipack)
   42181     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42182     1532280 :          pack_tmp = ISHFT(pack_tmp, -8)
   42183     1532280 :          idata = idata + 1
   42184     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42185     1532280 :          full_data(idata) = data_tmp
   42186     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42187     1532280 :          idata = idata + 1
   42188     1532280 :          data_tmp = ISHFT(pack_tmp, 48)
   42189     1532280 :          ipack = ipack + 1
   42190     1532280 :          pack_tmp = packed_data(ipack)
   42191     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42192     1532280 :          pack_tmp = ISHFT(pack_tmp, -48)
   42193     1532280 :          idata = idata + 1
   42194     1532280 :          data_tmp = ISHFT(pack_tmp, 36)
   42195     1532280 :          ipack = ipack + 1
   42196     1532280 :          pack_tmp = packed_data(ipack)
   42197     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42198     1532280 :          pack_tmp = ISHFT(pack_tmp, -36)
   42199     1532280 :          idata = idata + 1
   42200     1532280 :          data_tmp = ISHFT(pack_tmp, 24)
   42201     1532280 :          ipack = ipack + 1
   42202     1532280 :          pack_tmp = packed_data(ipack)
   42203     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42204     1532280 :          pack_tmp = ISHFT(pack_tmp, -24)
   42205     1532280 :          idata = idata + 1
   42206     1532280 :          data_tmp = ISHFT(pack_tmp, 12)
   42207     1532280 :          ipack = ipack + 1
   42208     1532280 :          pack_tmp = packed_data(ipack)
   42209     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42210     1532280 :          pack_tmp = ISHFT(pack_tmp, -12)
   42211     1532280 :          idata = idata + 1
   42212     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42213     1532280 :          full_data(idata) = data_tmp
   42214     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42215     1532280 :          idata = idata + 1
   42216     1532280 :          data_tmp = ISHFT(pack_tmp, 52)
   42217     1532280 :          ipack = ipack + 1
   42218     1532280 :          pack_tmp = packed_data(ipack)
   42219     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42220     1532280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42221     1532280 :          idata = idata + 1
   42222     1532280 :          data_tmp = ISHFT(pack_tmp, 40)
   42223     1532280 :          ipack = ipack + 1
   42224     1532280 :          pack_tmp = packed_data(ipack)
   42225     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42226     1532280 :          pack_tmp = ISHFT(pack_tmp, -40)
   42227     1532280 :          idata = idata + 1
   42228     1532280 :          data_tmp = ISHFT(pack_tmp, 28)
   42229     1532280 :          ipack = ipack + 1
   42230     1532280 :          pack_tmp = packed_data(ipack)
   42231     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42232     1532280 :          pack_tmp = ISHFT(pack_tmp, -28)
   42233     1532280 :          idata = idata + 1
   42234     1532280 :          data_tmp = ISHFT(pack_tmp, 16)
   42235     1532280 :          ipack = ipack + 1
   42236     1532280 :          pack_tmp = packed_data(ipack)
   42237     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42238     1532280 :          pack_tmp = ISHFT(pack_tmp, -16)
   42239     1532280 :          idata = idata + 1
   42240     1532280 :          data_tmp = ISHFT(pack_tmp, 4)
   42241     1532280 :          ipack = ipack + 1
   42242     1532280 :          pack_tmp = packed_data(ipack)
   42243     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42244     1532280 :          pack_tmp = ISHFT(pack_tmp, -4)
   42245     1532280 :          idata = idata + 1
   42246     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42247     1532280 :          full_data(idata) = data_tmp
   42248     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42249     1532280 :          idata = idata + 1
   42250     1532280 :          data_tmp = ISHFT(pack_tmp, 44)
   42251     1532280 :          ipack = ipack + 1
   42252     1532280 :          pack_tmp = packed_data(ipack)
   42253     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42254     1532280 :          pack_tmp = ISHFT(pack_tmp, -44)
   42255     1532280 :          idata = idata + 1
   42256     1532280 :          data_tmp = ISHFT(pack_tmp, 32)
   42257     1532280 :          ipack = ipack + 1
   42258     1532280 :          pack_tmp = packed_data(ipack)
   42259     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42260     1532280 :          pack_tmp = ISHFT(pack_tmp, -32)
   42261     1532280 :          idata = idata + 1
   42262     1532280 :          data_tmp = ISHFT(pack_tmp, 20)
   42263     1532280 :          ipack = ipack + 1
   42264     1532280 :          pack_tmp = packed_data(ipack)
   42265     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42266     1532280 :          pack_tmp = ISHFT(pack_tmp, -20)
   42267     1532280 :          idata = idata + 1
   42268     1532280 :          data_tmp = ISHFT(pack_tmp, 8)
   42269     1532280 :          ipack = ipack + 1
   42270     1532280 :          pack_tmp = packed_data(ipack)
   42271     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42272     1532280 :          pack_tmp = ISHFT(pack_tmp, -8)
   42273     1532280 :          idata = idata + 1
   42274     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42275     1532280 :          full_data(idata) = data_tmp
   42276     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42277     1532280 :          idata = idata + 1
   42278     1532280 :          data_tmp = ISHFT(pack_tmp, 48)
   42279     1532280 :          ipack = ipack + 1
   42280     1532280 :          pack_tmp = packed_data(ipack)
   42281     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42282     1532280 :          pack_tmp = ISHFT(pack_tmp, -48)
   42283     1532280 :          idata = idata + 1
   42284     1532280 :          data_tmp = ISHFT(pack_tmp, 36)
   42285     1532280 :          ipack = ipack + 1
   42286     1532280 :          pack_tmp = packed_data(ipack)
   42287     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42288     1532280 :          pack_tmp = ISHFT(pack_tmp, -36)
   42289     1532280 :          idata = idata + 1
   42290     1532280 :          data_tmp = ISHFT(pack_tmp, 24)
   42291     1532280 :          ipack = ipack + 1
   42292     1532280 :          pack_tmp = packed_data(ipack)
   42293     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42294     1532280 :          pack_tmp = ISHFT(pack_tmp, -24)
   42295     1532280 :          idata = idata + 1
   42296     1532280 :          data_tmp = ISHFT(pack_tmp, 12)
   42297     1532280 :          ipack = ipack + 1
   42298     1532280 :          pack_tmp = packed_data(ipack)
   42299     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42300     1532280 :          pack_tmp = ISHFT(pack_tmp, -12)
   42301     1532280 :          idata = idata + 1
   42302     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42303     1532280 :          full_data(idata) = data_tmp
   42304     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42305     1532280 :          idata = idata + 1
   42306     1532280 :          data_tmp = ISHFT(pack_tmp, 52)
   42307     1532280 :          ipack = ipack + 1
   42308     1532280 :          pack_tmp = packed_data(ipack)
   42309     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42310     1532280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42311     1532280 :          idata = idata + 1
   42312     1532280 :          data_tmp = ISHFT(pack_tmp, 40)
   42313     1532280 :          ipack = ipack + 1
   42314     1532280 :          pack_tmp = packed_data(ipack)
   42315     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42316     1532280 :          pack_tmp = ISHFT(pack_tmp, -40)
   42317     1532280 :          idata = idata + 1
   42318     1532280 :          data_tmp = ISHFT(pack_tmp, 28)
   42319     1532280 :          ipack = ipack + 1
   42320     1532280 :          pack_tmp = packed_data(ipack)
   42321     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42322     1532280 :          pack_tmp = ISHFT(pack_tmp, -28)
   42323     1532280 :          idata = idata + 1
   42324     1532280 :          data_tmp = ISHFT(pack_tmp, 16)
   42325     1532280 :          ipack = ipack + 1
   42326     1532280 :          pack_tmp = packed_data(ipack)
   42327     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42328     1532280 :          pack_tmp = ISHFT(pack_tmp, -16)
   42329     1532280 :          idata = idata + 1
   42330     1532280 :          data_tmp = ISHFT(pack_tmp, 4)
   42331     1532280 :          ipack = ipack + 1
   42332     1532280 :          pack_tmp = packed_data(ipack)
   42333     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42334     1532280 :          pack_tmp = ISHFT(pack_tmp, -4)
   42335     1532280 :          idata = idata + 1
   42336     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42337     1532280 :          full_data(idata) = data_tmp
   42338     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42339     1532280 :          idata = idata + 1
   42340     1532280 :          data_tmp = ISHFT(pack_tmp, 44)
   42341     1532280 :          ipack = ipack + 1
   42342     1532280 :          pack_tmp = packed_data(ipack)
   42343     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42344     1532280 :          pack_tmp = ISHFT(pack_tmp, -44)
   42345     1532280 :          idata = idata + 1
   42346     1532280 :          data_tmp = ISHFT(pack_tmp, 32)
   42347     1532280 :          ipack = ipack + 1
   42348     1532280 :          pack_tmp = packed_data(ipack)
   42349     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42350     1532280 :          pack_tmp = ISHFT(pack_tmp, -32)
   42351     1532280 :          idata = idata + 1
   42352     1532280 :          data_tmp = ISHFT(pack_tmp, 20)
   42353     1532280 :          ipack = ipack + 1
   42354     1532280 :          pack_tmp = packed_data(ipack)
   42355     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42356     1532280 :          pack_tmp = ISHFT(pack_tmp, -20)
   42357     1532280 :          idata = idata + 1
   42358     1532280 :          data_tmp = ISHFT(pack_tmp, 8)
   42359     1532280 :          ipack = ipack + 1
   42360     1532280 :          pack_tmp = packed_data(ipack)
   42361     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42362     1532280 :          pack_tmp = ISHFT(pack_tmp, -8)
   42363     1532280 :          idata = idata + 1
   42364     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42365     1532280 :          full_data(idata) = data_tmp
   42366     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42367     1532280 :          idata = idata + 1
   42368     1532280 :          data_tmp = ISHFT(pack_tmp, 48)
   42369     1532280 :          ipack = ipack + 1
   42370     1532280 :          pack_tmp = packed_data(ipack)
   42371     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42372     1532280 :          pack_tmp = ISHFT(pack_tmp, -48)
   42373     1532280 :          idata = idata + 1
   42374     1532280 :          data_tmp = ISHFT(pack_tmp, 36)
   42375     1532280 :          ipack = ipack + 1
   42376     1532280 :          pack_tmp = packed_data(ipack)
   42377     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42378     1532280 :          pack_tmp = ISHFT(pack_tmp, -36)
   42379     1532280 :          idata = idata + 1
   42380     1532280 :          data_tmp = ISHFT(pack_tmp, 24)
   42381     1532280 :          ipack = ipack + 1
   42382     1532280 :          pack_tmp = packed_data(ipack)
   42383     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42384     1532280 :          pack_tmp = ISHFT(pack_tmp, -24)
   42385     1532280 :          idata = idata + 1
   42386     1532280 :          data_tmp = ISHFT(pack_tmp, 12)
   42387     1532280 :          ipack = ipack + 1
   42388     1532280 :          pack_tmp = packed_data(ipack)
   42389     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42390     1532280 :          pack_tmp = ISHFT(pack_tmp, -12)
   42391     1532280 :          idata = idata + 1
   42392     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42393     1532280 :          full_data(idata) = data_tmp
   42394     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42395     1532280 :          idata = idata + 1
   42396     1532280 :          data_tmp = ISHFT(pack_tmp, 52)
   42397     1532280 :          ipack = ipack + 1
   42398     1532280 :          pack_tmp = packed_data(ipack)
   42399     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42400     1532280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42401     1532280 :          idata = idata + 1
   42402     1532280 :          data_tmp = ISHFT(pack_tmp, 40)
   42403     1532280 :          ipack = ipack + 1
   42404     1532280 :          pack_tmp = packed_data(ipack)
   42405     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42406     1532280 :          pack_tmp = ISHFT(pack_tmp, -40)
   42407     1532280 :          idata = idata + 1
   42408     1532280 :          data_tmp = ISHFT(pack_tmp, 28)
   42409     1532280 :          ipack = ipack + 1
   42410     1532280 :          pack_tmp = packed_data(ipack)
   42411     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42412     1532280 :          pack_tmp = ISHFT(pack_tmp, -28)
   42413     1532280 :          idata = idata + 1
   42414     1532280 :          data_tmp = ISHFT(pack_tmp, 16)
   42415     1532280 :          ipack = ipack + 1
   42416     1532280 :          pack_tmp = packed_data(ipack)
   42417     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42418     1532280 :          pack_tmp = ISHFT(pack_tmp, -16)
   42419     1532280 :          idata = idata + 1
   42420     1532280 :          data_tmp = ISHFT(pack_tmp, 4)
   42421     1532280 :          ipack = ipack + 1
   42422     1532280 :          pack_tmp = packed_data(ipack)
   42423     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42424     1532280 :          pack_tmp = ISHFT(pack_tmp, -4)
   42425     1532280 :          idata = idata + 1
   42426     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42427     1532280 :          full_data(idata) = data_tmp
   42428     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42429     1532280 :          idata = idata + 1
   42430     1532280 :          data_tmp = ISHFT(pack_tmp, 44)
   42431     1532280 :          ipack = ipack + 1
   42432     1532280 :          pack_tmp = packed_data(ipack)
   42433     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42434     1532280 :          pack_tmp = ISHFT(pack_tmp, -44)
   42435     1532280 :          idata = idata + 1
   42436     1532280 :          data_tmp = ISHFT(pack_tmp, 32)
   42437     1532280 :          ipack = ipack + 1
   42438     1532280 :          pack_tmp = packed_data(ipack)
   42439     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42440     1532280 :          pack_tmp = ISHFT(pack_tmp, -32)
   42441     1532280 :          idata = idata + 1
   42442     1532280 :          data_tmp = ISHFT(pack_tmp, 20)
   42443     1532280 :          ipack = ipack + 1
   42444     1532280 :          pack_tmp = packed_data(ipack)
   42445     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42446     1532280 :          pack_tmp = ISHFT(pack_tmp, -20)
   42447     1532280 :          idata = idata + 1
   42448     1532280 :          data_tmp = ISHFT(pack_tmp, 8)
   42449     1532280 :          ipack = ipack + 1
   42450     1532280 :          pack_tmp = packed_data(ipack)
   42451     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42452     1532280 :          pack_tmp = ISHFT(pack_tmp, -8)
   42453     1532280 :          idata = idata + 1
   42454     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42455     1532280 :          full_data(idata) = data_tmp
   42456     1532280 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42457     1532280 :          idata = idata + 1
   42458     1532280 :          data_tmp = ISHFT(pack_tmp, 48)
   42459     1532280 :          ipack = ipack + 1
   42460     1532280 :          pack_tmp = packed_data(ipack)
   42461     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42462     1532280 :          pack_tmp = ISHFT(pack_tmp, -48)
   42463     1532280 :          idata = idata + 1
   42464     1532280 :          data_tmp = ISHFT(pack_tmp, 36)
   42465     1532280 :          ipack = ipack + 1
   42466     1532280 :          pack_tmp = packed_data(ipack)
   42467     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42468     1532280 :          pack_tmp = ISHFT(pack_tmp, -36)
   42469     1532280 :          idata = idata + 1
   42470     1532280 :          data_tmp = ISHFT(pack_tmp, 24)
   42471     1532280 :          ipack = ipack + 1
   42472     1532280 :          pack_tmp = packed_data(ipack)
   42473     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42474     1532280 :          pack_tmp = ISHFT(pack_tmp, -24)
   42475     1532280 :          idata = idata + 1
   42476     1532280 :          data_tmp = ISHFT(pack_tmp, 12)
   42477     1532280 :          ipack = ipack + 1
   42478     1532280 :          pack_tmp = packed_data(ipack)
   42479     1532280 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42480     1532280 :          pack_tmp = ISHFT(pack_tmp, -12)
   42481     1532280 :          idata = idata + 1
   42482     1532280 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42483     1532280 :          full_data(idata) = data_tmp
   42484     1532300 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42485             :       END DO
   42486       98258 :       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       98258 :    END SUBROUTINE bits2ints_52
   42490             : 
   42491             : ! **************************************************************************************************
   42492             : !> \brief ...
   42493             : !> \param Ndata ...
   42494             : !> \param packed_data ...
   42495             : !> \param full_data ...
   42496             : ! **************************************************************************************************
   42497       23178 :    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       23178 :       idata = 0
   42508       23178 :       ipack = 0
   42509       23178 :       Ndata_rep = (Ndata/64)*64
   42510       23178 :       DO kdata = 1, Ndata_rep, 64
   42511      366904 :          pack_tmp = 0
   42512      366904 :          idata = idata + 1
   42513      366904 :          data_tmp = full_data(idata)
   42514      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42515      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42516      366904 :          pack_tmp = ISHFT(pack_tmp, -11)
   42517      366904 :          idata = idata + 1
   42518      366904 :          data_tmp = full_data(idata)
   42519      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42520      366904 :          data_tmp = IAND(data_tmp, mask_left(11))
   42521      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42522      366904 :          ipack = ipack + 1
   42523      366904 :          packed_data(ipack) = pack_tmp
   42524      366904 :          data_tmp = full_data(idata)
   42525      366904 :          pack_tmp = ISHFT(data_tmp, 22)
   42526      366904 :          pack_tmp = ISHFT(pack_tmp, -22)
   42527      366904 :          idata = idata + 1
   42528      366904 :          data_tmp = full_data(idata)
   42529      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42530      366904 :          data_tmp = IAND(data_tmp, mask_left(22))
   42531      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42532      366904 :          ipack = ipack + 1
   42533      366904 :          packed_data(ipack) = pack_tmp
   42534      366904 :          data_tmp = full_data(idata)
   42535      366904 :          pack_tmp = ISHFT(data_tmp, 33)
   42536      366904 :          pack_tmp = ISHFT(pack_tmp, -33)
   42537      366904 :          idata = idata + 1
   42538      366904 :          data_tmp = full_data(idata)
   42539      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42540      366904 :          data_tmp = IAND(data_tmp, mask_left(33))
   42541      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42542      366904 :          ipack = ipack + 1
   42543      366904 :          packed_data(ipack) = pack_tmp
   42544      366904 :          data_tmp = full_data(idata)
   42545      366904 :          pack_tmp = ISHFT(data_tmp, 44)
   42546      366904 :          pack_tmp = ISHFT(pack_tmp, -44)
   42547      366904 :          idata = idata + 1
   42548      366904 :          data_tmp = full_data(idata)
   42549      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42550      366904 :          data_tmp = IAND(data_tmp, mask_left(44))
   42551      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42552      366904 :          ipack = ipack + 1
   42553      366904 :          packed_data(ipack) = pack_tmp
   42554      366904 :          data_tmp = full_data(idata)
   42555      366904 :          pack_tmp = ISHFT(data_tmp, 55)
   42556      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42557      366904 :          idata = idata + 1
   42558      366904 :          data_tmp = full_data(idata)
   42559      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42560      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42561      366904 :          pack_tmp = ISHFT(pack_tmp, -2)
   42562      366904 :          idata = idata + 1
   42563      366904 :          data_tmp = full_data(idata)
   42564      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42565      366904 :          data_tmp = IAND(data_tmp, mask_left(2))
   42566      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42567      366904 :          ipack = ipack + 1
   42568      366904 :          packed_data(ipack) = pack_tmp
   42569      366904 :          data_tmp = full_data(idata)
   42570      366904 :          pack_tmp = ISHFT(data_tmp, 13)
   42571      366904 :          pack_tmp = ISHFT(pack_tmp, -13)
   42572      366904 :          idata = idata + 1
   42573      366904 :          data_tmp = full_data(idata)
   42574      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42575      366904 :          data_tmp = IAND(data_tmp, mask_left(13))
   42576      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42577      366904 :          ipack = ipack + 1
   42578      366904 :          packed_data(ipack) = pack_tmp
   42579      366904 :          data_tmp = full_data(idata)
   42580      366904 :          pack_tmp = ISHFT(data_tmp, 24)
   42581      366904 :          pack_tmp = ISHFT(pack_tmp, -24)
   42582      366904 :          idata = idata + 1
   42583      366904 :          data_tmp = full_data(idata)
   42584      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42585      366904 :          data_tmp = IAND(data_tmp, mask_left(24))
   42586      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42587      366904 :          ipack = ipack + 1
   42588      366904 :          packed_data(ipack) = pack_tmp
   42589      366904 :          data_tmp = full_data(idata)
   42590      366904 :          pack_tmp = ISHFT(data_tmp, 35)
   42591      366904 :          pack_tmp = ISHFT(pack_tmp, -35)
   42592      366904 :          idata = idata + 1
   42593      366904 :          data_tmp = full_data(idata)
   42594      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42595      366904 :          data_tmp = IAND(data_tmp, mask_left(35))
   42596      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42597      366904 :          ipack = ipack + 1
   42598      366904 :          packed_data(ipack) = pack_tmp
   42599      366904 :          data_tmp = full_data(idata)
   42600      366904 :          pack_tmp = ISHFT(data_tmp, 46)
   42601      366904 :          pack_tmp = ISHFT(pack_tmp, -46)
   42602      366904 :          idata = idata + 1
   42603      366904 :          data_tmp = full_data(idata)
   42604      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42605      366904 :          data_tmp = IAND(data_tmp, mask_left(46))
   42606      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42607      366904 :          ipack = ipack + 1
   42608      366904 :          packed_data(ipack) = pack_tmp
   42609      366904 :          data_tmp = full_data(idata)
   42610      366904 :          pack_tmp = ISHFT(data_tmp, 57)
   42611      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42612      366904 :          idata = idata + 1
   42613      366904 :          data_tmp = full_data(idata)
   42614      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42615      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42616      366904 :          pack_tmp = ISHFT(pack_tmp, -4)
   42617      366904 :          idata = idata + 1
   42618      366904 :          data_tmp = full_data(idata)
   42619      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42620      366904 :          data_tmp = IAND(data_tmp, mask_left(4))
   42621      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42622      366904 :          ipack = ipack + 1
   42623      366904 :          packed_data(ipack) = pack_tmp
   42624      366904 :          data_tmp = full_data(idata)
   42625      366904 :          pack_tmp = ISHFT(data_tmp, 15)
   42626      366904 :          pack_tmp = ISHFT(pack_tmp, -15)
   42627      366904 :          idata = idata + 1
   42628      366904 :          data_tmp = full_data(idata)
   42629      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42630      366904 :          data_tmp = IAND(data_tmp, mask_left(15))
   42631      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42632      366904 :          ipack = ipack + 1
   42633      366904 :          packed_data(ipack) = pack_tmp
   42634      366904 :          data_tmp = full_data(idata)
   42635      366904 :          pack_tmp = ISHFT(data_tmp, 26)
   42636      366904 :          pack_tmp = ISHFT(pack_tmp, -26)
   42637      366904 :          idata = idata + 1
   42638      366904 :          data_tmp = full_data(idata)
   42639      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42640      366904 :          data_tmp = IAND(data_tmp, mask_left(26))
   42641      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42642      366904 :          ipack = ipack + 1
   42643      366904 :          packed_data(ipack) = pack_tmp
   42644      366904 :          data_tmp = full_data(idata)
   42645      366904 :          pack_tmp = ISHFT(data_tmp, 37)
   42646      366904 :          pack_tmp = ISHFT(pack_tmp, -37)
   42647      366904 :          idata = idata + 1
   42648      366904 :          data_tmp = full_data(idata)
   42649      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42650      366904 :          data_tmp = IAND(data_tmp, mask_left(37))
   42651      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42652      366904 :          ipack = ipack + 1
   42653      366904 :          packed_data(ipack) = pack_tmp
   42654      366904 :          data_tmp = full_data(idata)
   42655      366904 :          pack_tmp = ISHFT(data_tmp, 48)
   42656      366904 :          pack_tmp = ISHFT(pack_tmp, -48)
   42657      366904 :          idata = idata + 1
   42658      366904 :          data_tmp = full_data(idata)
   42659      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42660      366904 :          data_tmp = IAND(data_tmp, mask_left(48))
   42661      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42662      366904 :          ipack = ipack + 1
   42663      366904 :          packed_data(ipack) = pack_tmp
   42664      366904 :          data_tmp = full_data(idata)
   42665      366904 :          pack_tmp = ISHFT(data_tmp, 59)
   42666      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42667      366904 :          idata = idata + 1
   42668      366904 :          data_tmp = full_data(idata)
   42669      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42670      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42671      366904 :          pack_tmp = ISHFT(pack_tmp, -6)
   42672      366904 :          idata = idata + 1
   42673      366904 :          data_tmp = full_data(idata)
   42674      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42675      366904 :          data_tmp = IAND(data_tmp, mask_left(6))
   42676      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42677      366904 :          ipack = ipack + 1
   42678      366904 :          packed_data(ipack) = pack_tmp
   42679      366904 :          data_tmp = full_data(idata)
   42680      366904 :          pack_tmp = ISHFT(data_tmp, 17)
   42681      366904 :          pack_tmp = ISHFT(pack_tmp, -17)
   42682      366904 :          idata = idata + 1
   42683      366904 :          data_tmp = full_data(idata)
   42684      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42685      366904 :          data_tmp = IAND(data_tmp, mask_left(17))
   42686      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42687      366904 :          ipack = ipack + 1
   42688      366904 :          packed_data(ipack) = pack_tmp
   42689      366904 :          data_tmp = full_data(idata)
   42690      366904 :          pack_tmp = ISHFT(data_tmp, 28)
   42691      366904 :          pack_tmp = ISHFT(pack_tmp, -28)
   42692      366904 :          idata = idata + 1
   42693      366904 :          data_tmp = full_data(idata)
   42694      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42695      366904 :          data_tmp = IAND(data_tmp, mask_left(28))
   42696      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42697      366904 :          ipack = ipack + 1
   42698      366904 :          packed_data(ipack) = pack_tmp
   42699      366904 :          data_tmp = full_data(idata)
   42700      366904 :          pack_tmp = ISHFT(data_tmp, 39)
   42701      366904 :          pack_tmp = ISHFT(pack_tmp, -39)
   42702      366904 :          idata = idata + 1
   42703      366904 :          data_tmp = full_data(idata)
   42704      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42705      366904 :          data_tmp = IAND(data_tmp, mask_left(39))
   42706      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42707      366904 :          ipack = ipack + 1
   42708      366904 :          packed_data(ipack) = pack_tmp
   42709      366904 :          data_tmp = full_data(idata)
   42710      366904 :          pack_tmp = ISHFT(data_tmp, 50)
   42711      366904 :          pack_tmp = ISHFT(pack_tmp, -50)
   42712      366904 :          idata = idata + 1
   42713      366904 :          data_tmp = full_data(idata)
   42714      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42715      366904 :          data_tmp = IAND(data_tmp, mask_left(50))
   42716      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42717      366904 :          ipack = ipack + 1
   42718      366904 :          packed_data(ipack) = pack_tmp
   42719      366904 :          data_tmp = full_data(idata)
   42720      366904 :          pack_tmp = ISHFT(data_tmp, 61)
   42721      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42722      366904 :          idata = idata + 1
   42723      366904 :          data_tmp = full_data(idata)
   42724      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42725      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42726      366904 :          pack_tmp = ISHFT(pack_tmp, -8)
   42727      366904 :          idata = idata + 1
   42728      366904 :          data_tmp = full_data(idata)
   42729      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42730      366904 :          data_tmp = IAND(data_tmp, mask_left(8))
   42731      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42732      366904 :          ipack = ipack + 1
   42733      366904 :          packed_data(ipack) = pack_tmp
   42734      366904 :          data_tmp = full_data(idata)
   42735      366904 :          pack_tmp = ISHFT(data_tmp, 19)
   42736      366904 :          pack_tmp = ISHFT(pack_tmp, -19)
   42737      366904 :          idata = idata + 1
   42738      366904 :          data_tmp = full_data(idata)
   42739      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42740      366904 :          data_tmp = IAND(data_tmp, mask_left(19))
   42741      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42742      366904 :          ipack = ipack + 1
   42743      366904 :          packed_data(ipack) = pack_tmp
   42744      366904 :          data_tmp = full_data(idata)
   42745      366904 :          pack_tmp = ISHFT(data_tmp, 30)
   42746      366904 :          pack_tmp = ISHFT(pack_tmp, -30)
   42747      366904 :          idata = idata + 1
   42748      366904 :          data_tmp = full_data(idata)
   42749      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42750      366904 :          data_tmp = IAND(data_tmp, mask_left(30))
   42751      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42752      366904 :          ipack = ipack + 1
   42753      366904 :          packed_data(ipack) = pack_tmp
   42754      366904 :          data_tmp = full_data(idata)
   42755      366904 :          pack_tmp = ISHFT(data_tmp, 41)
   42756      366904 :          pack_tmp = ISHFT(pack_tmp, -41)
   42757      366904 :          idata = idata + 1
   42758      366904 :          data_tmp = full_data(idata)
   42759      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42760      366904 :          data_tmp = IAND(data_tmp, mask_left(41))
   42761      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42762      366904 :          ipack = ipack + 1
   42763      366904 :          packed_data(ipack) = pack_tmp
   42764      366904 :          data_tmp = full_data(idata)
   42765      366904 :          pack_tmp = ISHFT(data_tmp, 52)
   42766      366904 :          pack_tmp = ISHFT(pack_tmp, -52)
   42767      366904 :          idata = idata + 1
   42768      366904 :          data_tmp = full_data(idata)
   42769      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42770      366904 :          data_tmp = IAND(data_tmp, mask_left(52))
   42771      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42772      366904 :          ipack = ipack + 1
   42773      366904 :          packed_data(ipack) = pack_tmp
   42774      366904 :          data_tmp = full_data(idata)
   42775      366904 :          pack_tmp = ISHFT(data_tmp, 63)
   42776      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42777      366904 :          idata = idata + 1
   42778      366904 :          data_tmp = full_data(idata)
   42779      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42780      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42781      366904 :          pack_tmp = ISHFT(pack_tmp, -10)
   42782      366904 :          idata = idata + 1
   42783      366904 :          data_tmp = full_data(idata)
   42784      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42785      366904 :          data_tmp = IAND(data_tmp, mask_left(10))
   42786      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42787      366904 :          ipack = ipack + 1
   42788      366904 :          packed_data(ipack) = pack_tmp
   42789      366904 :          data_tmp = full_data(idata)
   42790      366904 :          pack_tmp = ISHFT(data_tmp, 21)
   42791      366904 :          pack_tmp = ISHFT(pack_tmp, -21)
   42792      366904 :          idata = idata + 1
   42793      366904 :          data_tmp = full_data(idata)
   42794      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42795      366904 :          data_tmp = IAND(data_tmp, mask_left(21))
   42796      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42797      366904 :          ipack = ipack + 1
   42798      366904 :          packed_data(ipack) = pack_tmp
   42799      366904 :          data_tmp = full_data(idata)
   42800      366904 :          pack_tmp = ISHFT(data_tmp, 32)
   42801      366904 :          pack_tmp = ISHFT(pack_tmp, -32)
   42802      366904 :          idata = idata + 1
   42803      366904 :          data_tmp = full_data(idata)
   42804      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42805      366904 :          data_tmp = IAND(data_tmp, mask_left(32))
   42806      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42807      366904 :          ipack = ipack + 1
   42808      366904 :          packed_data(ipack) = pack_tmp
   42809      366904 :          data_tmp = full_data(idata)
   42810      366904 :          pack_tmp = ISHFT(data_tmp, 43)
   42811      366904 :          pack_tmp = ISHFT(pack_tmp, -43)
   42812      366904 :          idata = idata + 1
   42813      366904 :          data_tmp = full_data(idata)
   42814      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42815      366904 :          data_tmp = IAND(data_tmp, mask_left(43))
   42816      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42817      366904 :          ipack = ipack + 1
   42818      366904 :          packed_data(ipack) = pack_tmp
   42819      366904 :          data_tmp = full_data(idata)
   42820      366904 :          pack_tmp = ISHFT(data_tmp, 54)
   42821      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42822      366904 :          idata = idata + 1
   42823      366904 :          data_tmp = full_data(idata)
   42824      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42825      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42826      366904 :          pack_tmp = ISHFT(pack_tmp, -1)
   42827      366904 :          idata = idata + 1
   42828      366904 :          data_tmp = full_data(idata)
   42829      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42830      366904 :          data_tmp = IAND(data_tmp, mask_left(1))
   42831      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42832      366904 :          ipack = ipack + 1
   42833      366904 :          packed_data(ipack) = pack_tmp
   42834      366904 :          data_tmp = full_data(idata)
   42835      366904 :          pack_tmp = ISHFT(data_tmp, 12)
   42836      366904 :          pack_tmp = ISHFT(pack_tmp, -12)
   42837      366904 :          idata = idata + 1
   42838      366904 :          data_tmp = full_data(idata)
   42839      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42840      366904 :          data_tmp = IAND(data_tmp, mask_left(12))
   42841      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42842      366904 :          ipack = ipack + 1
   42843      366904 :          packed_data(ipack) = pack_tmp
   42844      366904 :          data_tmp = full_data(idata)
   42845      366904 :          pack_tmp = ISHFT(data_tmp, 23)
   42846      366904 :          pack_tmp = ISHFT(pack_tmp, -23)
   42847      366904 :          idata = idata + 1
   42848      366904 :          data_tmp = full_data(idata)
   42849      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42850      366904 :          data_tmp = IAND(data_tmp, mask_left(23))
   42851      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42852      366904 :          ipack = ipack + 1
   42853      366904 :          packed_data(ipack) = pack_tmp
   42854      366904 :          data_tmp = full_data(idata)
   42855      366904 :          pack_tmp = ISHFT(data_tmp, 34)
   42856      366904 :          pack_tmp = ISHFT(pack_tmp, -34)
   42857      366904 :          idata = idata + 1
   42858      366904 :          data_tmp = full_data(idata)
   42859      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42860      366904 :          data_tmp = IAND(data_tmp, mask_left(34))
   42861      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42862      366904 :          ipack = ipack + 1
   42863      366904 :          packed_data(ipack) = pack_tmp
   42864      366904 :          data_tmp = full_data(idata)
   42865      366904 :          pack_tmp = ISHFT(data_tmp, 45)
   42866      366904 :          pack_tmp = ISHFT(pack_tmp, -45)
   42867      366904 :          idata = idata + 1
   42868      366904 :          data_tmp = full_data(idata)
   42869      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42870      366904 :          data_tmp = IAND(data_tmp, mask_left(45))
   42871      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42872      366904 :          ipack = ipack + 1
   42873      366904 :          packed_data(ipack) = pack_tmp
   42874      366904 :          data_tmp = full_data(idata)
   42875      366904 :          pack_tmp = ISHFT(data_tmp, 56)
   42876      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42877      366904 :          idata = idata + 1
   42878      366904 :          data_tmp = full_data(idata)
   42879      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42880      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42881      366904 :          pack_tmp = ISHFT(pack_tmp, -3)
   42882      366904 :          idata = idata + 1
   42883      366904 :          data_tmp = full_data(idata)
   42884      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42885      366904 :          data_tmp = IAND(data_tmp, mask_left(3))
   42886      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42887      366904 :          ipack = ipack + 1
   42888      366904 :          packed_data(ipack) = pack_tmp
   42889      366904 :          data_tmp = full_data(idata)
   42890      366904 :          pack_tmp = ISHFT(data_tmp, 14)
   42891      366904 :          pack_tmp = ISHFT(pack_tmp, -14)
   42892      366904 :          idata = idata + 1
   42893      366904 :          data_tmp = full_data(idata)
   42894      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42895      366904 :          data_tmp = IAND(data_tmp, mask_left(14))
   42896      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42897      366904 :          ipack = ipack + 1
   42898      366904 :          packed_data(ipack) = pack_tmp
   42899      366904 :          data_tmp = full_data(idata)
   42900      366904 :          pack_tmp = ISHFT(data_tmp, 25)
   42901      366904 :          pack_tmp = ISHFT(pack_tmp, -25)
   42902      366904 :          idata = idata + 1
   42903      366904 :          data_tmp = full_data(idata)
   42904      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42905      366904 :          data_tmp = IAND(data_tmp, mask_left(25))
   42906      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42907      366904 :          ipack = ipack + 1
   42908      366904 :          packed_data(ipack) = pack_tmp
   42909      366904 :          data_tmp = full_data(idata)
   42910      366904 :          pack_tmp = ISHFT(data_tmp, 36)
   42911      366904 :          pack_tmp = ISHFT(pack_tmp, -36)
   42912      366904 :          idata = idata + 1
   42913      366904 :          data_tmp = full_data(idata)
   42914      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42915      366904 :          data_tmp = IAND(data_tmp, mask_left(36))
   42916      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42917      366904 :          ipack = ipack + 1
   42918      366904 :          packed_data(ipack) = pack_tmp
   42919      366904 :          data_tmp = full_data(idata)
   42920      366904 :          pack_tmp = ISHFT(data_tmp, 47)
   42921      366904 :          pack_tmp = ISHFT(pack_tmp, -47)
   42922      366904 :          idata = idata + 1
   42923      366904 :          data_tmp = full_data(idata)
   42924      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42925      366904 :          data_tmp = IAND(data_tmp, mask_left(47))
   42926      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42927      366904 :          ipack = ipack + 1
   42928      366904 :          packed_data(ipack) = pack_tmp
   42929      366904 :          data_tmp = full_data(idata)
   42930      366904 :          pack_tmp = ISHFT(data_tmp, 58)
   42931      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42932      366904 :          idata = idata + 1
   42933      366904 :          data_tmp = full_data(idata)
   42934      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42935      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42936      366904 :          pack_tmp = ISHFT(pack_tmp, -5)
   42937      366904 :          idata = idata + 1
   42938      366904 :          data_tmp = full_data(idata)
   42939      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42940      366904 :          data_tmp = IAND(data_tmp, mask_left(5))
   42941      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42942      366904 :          ipack = ipack + 1
   42943      366904 :          packed_data(ipack) = pack_tmp
   42944      366904 :          data_tmp = full_data(idata)
   42945      366904 :          pack_tmp = ISHFT(data_tmp, 16)
   42946      366904 :          pack_tmp = ISHFT(pack_tmp, -16)
   42947      366904 :          idata = idata + 1
   42948      366904 :          data_tmp = full_data(idata)
   42949      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42950      366904 :          data_tmp = IAND(data_tmp, mask_left(16))
   42951      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42952      366904 :          ipack = ipack + 1
   42953      366904 :          packed_data(ipack) = pack_tmp
   42954      366904 :          data_tmp = full_data(idata)
   42955      366904 :          pack_tmp = ISHFT(data_tmp, 27)
   42956      366904 :          pack_tmp = ISHFT(pack_tmp, -27)
   42957      366904 :          idata = idata + 1
   42958      366904 :          data_tmp = full_data(idata)
   42959      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42960      366904 :          data_tmp = IAND(data_tmp, mask_left(27))
   42961      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42962      366904 :          ipack = ipack + 1
   42963      366904 :          packed_data(ipack) = pack_tmp
   42964      366904 :          data_tmp = full_data(idata)
   42965      366904 :          pack_tmp = ISHFT(data_tmp, 38)
   42966      366904 :          pack_tmp = ISHFT(pack_tmp, -38)
   42967      366904 :          idata = idata + 1
   42968      366904 :          data_tmp = full_data(idata)
   42969      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42970      366904 :          data_tmp = IAND(data_tmp, mask_left(38))
   42971      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42972      366904 :          ipack = ipack + 1
   42973      366904 :          packed_data(ipack) = pack_tmp
   42974      366904 :          data_tmp = full_data(idata)
   42975      366904 :          pack_tmp = ISHFT(data_tmp, 49)
   42976      366904 :          pack_tmp = ISHFT(pack_tmp, -49)
   42977      366904 :          idata = idata + 1
   42978      366904 :          data_tmp = full_data(idata)
   42979      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42980      366904 :          data_tmp = IAND(data_tmp, mask_left(49))
   42981      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42982      366904 :          ipack = ipack + 1
   42983      366904 :          packed_data(ipack) = pack_tmp
   42984      366904 :          data_tmp = full_data(idata)
   42985      366904 :          pack_tmp = ISHFT(data_tmp, 60)
   42986      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   42987      366904 :          idata = idata + 1
   42988      366904 :          data_tmp = full_data(idata)
   42989      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42990      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42991      366904 :          pack_tmp = ISHFT(pack_tmp, -7)
   42992      366904 :          idata = idata + 1
   42993      366904 :          data_tmp = full_data(idata)
   42994      366904 :          data_tmp = ISHFT(data_tmp, 11)
   42995      366904 :          data_tmp = IAND(data_tmp, mask_left(7))
   42996      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42997      366904 :          ipack = ipack + 1
   42998      366904 :          packed_data(ipack) = pack_tmp
   42999      366904 :          data_tmp = full_data(idata)
   43000      366904 :          pack_tmp = ISHFT(data_tmp, 18)
   43001      366904 :          pack_tmp = ISHFT(pack_tmp, -18)
   43002      366904 :          idata = idata + 1
   43003      366904 :          data_tmp = full_data(idata)
   43004      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43005      366904 :          data_tmp = IAND(data_tmp, mask_left(18))
   43006      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43007      366904 :          ipack = ipack + 1
   43008      366904 :          packed_data(ipack) = pack_tmp
   43009      366904 :          data_tmp = full_data(idata)
   43010      366904 :          pack_tmp = ISHFT(data_tmp, 29)
   43011      366904 :          pack_tmp = ISHFT(pack_tmp, -29)
   43012      366904 :          idata = idata + 1
   43013      366904 :          data_tmp = full_data(idata)
   43014      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43015      366904 :          data_tmp = IAND(data_tmp, mask_left(29))
   43016      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43017      366904 :          ipack = ipack + 1
   43018      366904 :          packed_data(ipack) = pack_tmp
   43019      366904 :          data_tmp = full_data(idata)
   43020      366904 :          pack_tmp = ISHFT(data_tmp, 40)
   43021      366904 :          pack_tmp = ISHFT(pack_tmp, -40)
   43022      366904 :          idata = idata + 1
   43023      366904 :          data_tmp = full_data(idata)
   43024      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43025      366904 :          data_tmp = IAND(data_tmp, mask_left(40))
   43026      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43027      366904 :          ipack = ipack + 1
   43028      366904 :          packed_data(ipack) = pack_tmp
   43029      366904 :          data_tmp = full_data(idata)
   43030      366904 :          pack_tmp = ISHFT(data_tmp, 51)
   43031      366904 :          pack_tmp = ISHFT(pack_tmp, -51)
   43032      366904 :          idata = idata + 1
   43033      366904 :          data_tmp = full_data(idata)
   43034      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43035      366904 :          data_tmp = IAND(data_tmp, mask_left(51))
   43036      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43037      366904 :          ipack = ipack + 1
   43038      366904 :          packed_data(ipack) = pack_tmp
   43039      366904 :          data_tmp = full_data(idata)
   43040      366904 :          pack_tmp = ISHFT(data_tmp, 62)
   43041      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   43042      366904 :          idata = idata + 1
   43043      366904 :          data_tmp = full_data(idata)
   43044      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43045      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43046      366904 :          pack_tmp = ISHFT(pack_tmp, -9)
   43047      366904 :          idata = idata + 1
   43048      366904 :          data_tmp = full_data(idata)
   43049      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43050      366904 :          data_tmp = IAND(data_tmp, mask_left(9))
   43051      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43052      366904 :          ipack = ipack + 1
   43053      366904 :          packed_data(ipack) = pack_tmp
   43054      366904 :          data_tmp = full_data(idata)
   43055      366904 :          pack_tmp = ISHFT(data_tmp, 20)
   43056      366904 :          pack_tmp = ISHFT(pack_tmp, -20)
   43057      366904 :          idata = idata + 1
   43058      366904 :          data_tmp = full_data(idata)
   43059      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43060      366904 :          data_tmp = IAND(data_tmp, mask_left(20))
   43061      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43062      366904 :          ipack = ipack + 1
   43063      366904 :          packed_data(ipack) = pack_tmp
   43064      366904 :          data_tmp = full_data(idata)
   43065      366904 :          pack_tmp = ISHFT(data_tmp, 31)
   43066      366904 :          pack_tmp = ISHFT(pack_tmp, -31)
   43067      366904 :          idata = idata + 1
   43068      366904 :          data_tmp = full_data(idata)
   43069      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43070      366904 :          data_tmp = IAND(data_tmp, mask_left(31))
   43071      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43072      366904 :          ipack = ipack + 1
   43073      366904 :          packed_data(ipack) = pack_tmp
   43074      366904 :          data_tmp = full_data(idata)
   43075      366904 :          pack_tmp = ISHFT(data_tmp, 42)
   43076      366904 :          pack_tmp = ISHFT(pack_tmp, -42)
   43077      366904 :          idata = idata + 1
   43078      366904 :          data_tmp = full_data(idata)
   43079      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43080      366904 :          data_tmp = IAND(data_tmp, mask_left(42))
   43081      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43082      366904 :          ipack = ipack + 1
   43083      366904 :          packed_data(ipack) = pack_tmp
   43084      366904 :          data_tmp = full_data(idata)
   43085      366904 :          pack_tmp = ISHFT(data_tmp, 53)
   43086      366904 :          pack_tmp = ISHFT(pack_tmp, -53)
   43087      366904 :          idata = idata + 1
   43088      366904 :          data_tmp = full_data(idata)
   43089      366904 :          data_tmp = ISHFT(data_tmp, 11)
   43090      366904 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43091             :          pack_tmp = ISHFT(pack_tmp, 0)
   43092      366904 :          pack_tmp = ISHFT(pack_tmp, 0)
   43093      366904 :          ipack = ipack + 1
   43094      366924 :          packed_data(ipack) = pack_tmp
   43095             :       END DO
   43096       23178 :       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       23178 :    END SUBROUTINE ints2bits_53
   43100             : 
   43101             : ! **************************************************************************************************
   43102             : !> \brief ...
   43103             : !> \param Ndata ...
   43104             : !> \param packed_data ...
   43105             : !> \param full_data ...
   43106             : ! **************************************************************************************************
   43107      105904 :    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      105904 :       ipack = 0
   43118      105904 :       idata = 0
   43119      105904 :       pack_tmp = 0
   43120      105904 :       Ndata_rep = (Ndata/64)*64
   43121      105904 :       DO kdata = 1, Ndata_rep, 64
   43122     1596476 :          idata = idata + 1
   43123     1596476 :          data_tmp = ISHFT(pack_tmp, 53)
   43124     1596476 :          ipack = ipack + 1
   43125     1596476 :          pack_tmp = packed_data(ipack)
   43126     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   43127     1596476 :          pack_tmp = ISHFT(pack_tmp, -53)
   43128     1596476 :          idata = idata + 1
   43129     1596476 :          data_tmp = ISHFT(pack_tmp, 42)
   43130     1596476 :          ipack = ipack + 1
   43131     1596476 :          pack_tmp = packed_data(ipack)
   43132     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   43133     1596476 :          pack_tmp = ISHFT(pack_tmp, -42)
   43134     1596476 :          idata = idata + 1
   43135     1596476 :          data_tmp = ISHFT(pack_tmp, 31)
   43136     1596476 :          ipack = ipack + 1
   43137     1596476 :          pack_tmp = packed_data(ipack)
   43138     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   43139     1596476 :          pack_tmp = ISHFT(pack_tmp, -31)
   43140     1596476 :          idata = idata + 1
   43141     1596476 :          data_tmp = ISHFT(pack_tmp, 20)
   43142     1596476 :          ipack = ipack + 1
   43143     1596476 :          pack_tmp = packed_data(ipack)
   43144     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   43145     1596476 :          pack_tmp = ISHFT(pack_tmp, -20)
   43146     1596476 :          idata = idata + 1
   43147     1596476 :          data_tmp = ISHFT(pack_tmp, 9)
   43148     1596476 :          ipack = ipack + 1
   43149     1596476 :          pack_tmp = packed_data(ipack)
   43150     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   43151     1596476 :          pack_tmp = ISHFT(pack_tmp, -9)
   43152     1596476 :          idata = idata + 1
   43153     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43154     1596476 :          full_data(idata) = data_tmp
   43155     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43156     1596476 :          idata = idata + 1
   43157     1596476 :          data_tmp = ISHFT(pack_tmp, 51)
   43158     1596476 :          ipack = ipack + 1
   43159     1596476 :          pack_tmp = packed_data(ipack)
   43160     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   43161     1596476 :          pack_tmp = ISHFT(pack_tmp, -51)
   43162     1596476 :          idata = idata + 1
   43163     1596476 :          data_tmp = ISHFT(pack_tmp, 40)
   43164     1596476 :          ipack = ipack + 1
   43165     1596476 :          pack_tmp = packed_data(ipack)
   43166     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   43167     1596476 :          pack_tmp = ISHFT(pack_tmp, -40)
   43168     1596476 :          idata = idata + 1
   43169     1596476 :          data_tmp = ISHFT(pack_tmp, 29)
   43170     1596476 :          ipack = ipack + 1
   43171     1596476 :          pack_tmp = packed_data(ipack)
   43172     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   43173     1596476 :          pack_tmp = ISHFT(pack_tmp, -29)
   43174     1596476 :          idata = idata + 1
   43175     1596476 :          data_tmp = ISHFT(pack_tmp, 18)
   43176     1596476 :          ipack = ipack + 1
   43177     1596476 :          pack_tmp = packed_data(ipack)
   43178     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   43179     1596476 :          pack_tmp = ISHFT(pack_tmp, -18)
   43180     1596476 :          idata = idata + 1
   43181     1596476 :          data_tmp = ISHFT(pack_tmp, 7)
   43182     1596476 :          ipack = ipack + 1
   43183     1596476 :          pack_tmp = packed_data(ipack)
   43184     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   43185     1596476 :          pack_tmp = ISHFT(pack_tmp, -7)
   43186     1596476 :          idata = idata + 1
   43187     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43188     1596476 :          full_data(idata) = data_tmp
   43189     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43190     1596476 :          idata = idata + 1
   43191     1596476 :          data_tmp = ISHFT(pack_tmp, 49)
   43192     1596476 :          ipack = ipack + 1
   43193     1596476 :          pack_tmp = packed_data(ipack)
   43194     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   43195     1596476 :          pack_tmp = ISHFT(pack_tmp, -49)
   43196     1596476 :          idata = idata + 1
   43197     1596476 :          data_tmp = ISHFT(pack_tmp, 38)
   43198     1596476 :          ipack = ipack + 1
   43199     1596476 :          pack_tmp = packed_data(ipack)
   43200     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   43201     1596476 :          pack_tmp = ISHFT(pack_tmp, -38)
   43202     1596476 :          idata = idata + 1
   43203     1596476 :          data_tmp = ISHFT(pack_tmp, 27)
   43204     1596476 :          ipack = ipack + 1
   43205     1596476 :          pack_tmp = packed_data(ipack)
   43206     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   43207     1596476 :          pack_tmp = ISHFT(pack_tmp, -27)
   43208     1596476 :          idata = idata + 1
   43209     1596476 :          data_tmp = ISHFT(pack_tmp, 16)
   43210     1596476 :          ipack = ipack + 1
   43211     1596476 :          pack_tmp = packed_data(ipack)
   43212     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   43213     1596476 :          pack_tmp = ISHFT(pack_tmp, -16)
   43214     1596476 :          idata = idata + 1
   43215     1596476 :          data_tmp = ISHFT(pack_tmp, 5)
   43216     1596476 :          ipack = ipack + 1
   43217     1596476 :          pack_tmp = packed_data(ipack)
   43218     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   43219     1596476 :          pack_tmp = ISHFT(pack_tmp, -5)
   43220     1596476 :          idata = idata + 1
   43221     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43222     1596476 :          full_data(idata) = data_tmp
   43223     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43224     1596476 :          idata = idata + 1
   43225     1596476 :          data_tmp = ISHFT(pack_tmp, 47)
   43226     1596476 :          ipack = ipack + 1
   43227     1596476 :          pack_tmp = packed_data(ipack)
   43228     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   43229     1596476 :          pack_tmp = ISHFT(pack_tmp, -47)
   43230     1596476 :          idata = idata + 1
   43231     1596476 :          data_tmp = ISHFT(pack_tmp, 36)
   43232     1596476 :          ipack = ipack + 1
   43233     1596476 :          pack_tmp = packed_data(ipack)
   43234     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   43235     1596476 :          pack_tmp = ISHFT(pack_tmp, -36)
   43236     1596476 :          idata = idata + 1
   43237     1596476 :          data_tmp = ISHFT(pack_tmp, 25)
   43238     1596476 :          ipack = ipack + 1
   43239     1596476 :          pack_tmp = packed_data(ipack)
   43240     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   43241     1596476 :          pack_tmp = ISHFT(pack_tmp, -25)
   43242     1596476 :          idata = idata + 1
   43243     1596476 :          data_tmp = ISHFT(pack_tmp, 14)
   43244     1596476 :          ipack = ipack + 1
   43245     1596476 :          pack_tmp = packed_data(ipack)
   43246     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   43247     1596476 :          pack_tmp = ISHFT(pack_tmp, -14)
   43248     1596476 :          idata = idata + 1
   43249     1596476 :          data_tmp = ISHFT(pack_tmp, 3)
   43250     1596476 :          ipack = ipack + 1
   43251     1596476 :          pack_tmp = packed_data(ipack)
   43252     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   43253     1596476 :          pack_tmp = ISHFT(pack_tmp, -3)
   43254     1596476 :          idata = idata + 1
   43255     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43256     1596476 :          full_data(idata) = data_tmp
   43257     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43258     1596476 :          idata = idata + 1
   43259     1596476 :          data_tmp = ISHFT(pack_tmp, 45)
   43260     1596476 :          ipack = ipack + 1
   43261     1596476 :          pack_tmp = packed_data(ipack)
   43262     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   43263     1596476 :          pack_tmp = ISHFT(pack_tmp, -45)
   43264     1596476 :          idata = idata + 1
   43265     1596476 :          data_tmp = ISHFT(pack_tmp, 34)
   43266     1596476 :          ipack = ipack + 1
   43267     1596476 :          pack_tmp = packed_data(ipack)
   43268     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   43269     1596476 :          pack_tmp = ISHFT(pack_tmp, -34)
   43270     1596476 :          idata = idata + 1
   43271     1596476 :          data_tmp = ISHFT(pack_tmp, 23)
   43272     1596476 :          ipack = ipack + 1
   43273     1596476 :          pack_tmp = packed_data(ipack)
   43274     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   43275     1596476 :          pack_tmp = ISHFT(pack_tmp, -23)
   43276     1596476 :          idata = idata + 1
   43277     1596476 :          data_tmp = ISHFT(pack_tmp, 12)
   43278     1596476 :          ipack = ipack + 1
   43279     1596476 :          pack_tmp = packed_data(ipack)
   43280     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   43281     1596476 :          pack_tmp = ISHFT(pack_tmp, -12)
   43282     1596476 :          idata = idata + 1
   43283     1596476 :          data_tmp = ISHFT(pack_tmp, 1)
   43284     1596476 :          ipack = ipack + 1
   43285     1596476 :          pack_tmp = packed_data(ipack)
   43286     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   43287     1596476 :          pack_tmp = ISHFT(pack_tmp, -1)
   43288     1596476 :          idata = idata + 1
   43289     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43290     1596476 :          full_data(idata) = data_tmp
   43291     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43292     1596476 :          idata = idata + 1
   43293     1596476 :          data_tmp = ISHFT(pack_tmp, 43)
   43294     1596476 :          ipack = ipack + 1
   43295     1596476 :          pack_tmp = packed_data(ipack)
   43296     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   43297     1596476 :          pack_tmp = ISHFT(pack_tmp, -43)
   43298     1596476 :          idata = idata + 1
   43299     1596476 :          data_tmp = ISHFT(pack_tmp, 32)
   43300     1596476 :          ipack = ipack + 1
   43301     1596476 :          pack_tmp = packed_data(ipack)
   43302     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   43303     1596476 :          pack_tmp = ISHFT(pack_tmp, -32)
   43304     1596476 :          idata = idata + 1
   43305     1596476 :          data_tmp = ISHFT(pack_tmp, 21)
   43306     1596476 :          ipack = ipack + 1
   43307     1596476 :          pack_tmp = packed_data(ipack)
   43308     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   43309     1596476 :          pack_tmp = ISHFT(pack_tmp, -21)
   43310     1596476 :          idata = idata + 1
   43311     1596476 :          data_tmp = ISHFT(pack_tmp, 10)
   43312     1596476 :          ipack = ipack + 1
   43313     1596476 :          pack_tmp = packed_data(ipack)
   43314     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   43315     1596476 :          pack_tmp = ISHFT(pack_tmp, -10)
   43316     1596476 :          idata = idata + 1
   43317     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43318     1596476 :          full_data(idata) = data_tmp
   43319     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43320     1596476 :          idata = idata + 1
   43321     1596476 :          data_tmp = ISHFT(pack_tmp, 52)
   43322     1596476 :          ipack = ipack + 1
   43323     1596476 :          pack_tmp = packed_data(ipack)
   43324     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   43325     1596476 :          pack_tmp = ISHFT(pack_tmp, -52)
   43326     1596476 :          idata = idata + 1
   43327     1596476 :          data_tmp = ISHFT(pack_tmp, 41)
   43328     1596476 :          ipack = ipack + 1
   43329     1596476 :          pack_tmp = packed_data(ipack)
   43330     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   43331     1596476 :          pack_tmp = ISHFT(pack_tmp, -41)
   43332     1596476 :          idata = idata + 1
   43333     1596476 :          data_tmp = ISHFT(pack_tmp, 30)
   43334     1596476 :          ipack = ipack + 1
   43335     1596476 :          pack_tmp = packed_data(ipack)
   43336     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   43337     1596476 :          pack_tmp = ISHFT(pack_tmp, -30)
   43338     1596476 :          idata = idata + 1
   43339     1596476 :          data_tmp = ISHFT(pack_tmp, 19)
   43340     1596476 :          ipack = ipack + 1
   43341     1596476 :          pack_tmp = packed_data(ipack)
   43342     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   43343     1596476 :          pack_tmp = ISHFT(pack_tmp, -19)
   43344     1596476 :          idata = idata + 1
   43345     1596476 :          data_tmp = ISHFT(pack_tmp, 8)
   43346     1596476 :          ipack = ipack + 1
   43347     1596476 :          pack_tmp = packed_data(ipack)
   43348     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   43349     1596476 :          pack_tmp = ISHFT(pack_tmp, -8)
   43350     1596476 :          idata = idata + 1
   43351     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43352     1596476 :          full_data(idata) = data_tmp
   43353     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43354     1596476 :          idata = idata + 1
   43355     1596476 :          data_tmp = ISHFT(pack_tmp, 50)
   43356     1596476 :          ipack = ipack + 1
   43357     1596476 :          pack_tmp = packed_data(ipack)
   43358     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   43359     1596476 :          pack_tmp = ISHFT(pack_tmp, -50)
   43360     1596476 :          idata = idata + 1
   43361     1596476 :          data_tmp = ISHFT(pack_tmp, 39)
   43362     1596476 :          ipack = ipack + 1
   43363     1596476 :          pack_tmp = packed_data(ipack)
   43364     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   43365     1596476 :          pack_tmp = ISHFT(pack_tmp, -39)
   43366     1596476 :          idata = idata + 1
   43367     1596476 :          data_tmp = ISHFT(pack_tmp, 28)
   43368     1596476 :          ipack = ipack + 1
   43369     1596476 :          pack_tmp = packed_data(ipack)
   43370     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   43371     1596476 :          pack_tmp = ISHFT(pack_tmp, -28)
   43372     1596476 :          idata = idata + 1
   43373     1596476 :          data_tmp = ISHFT(pack_tmp, 17)
   43374     1596476 :          ipack = ipack + 1
   43375     1596476 :          pack_tmp = packed_data(ipack)
   43376     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   43377     1596476 :          pack_tmp = ISHFT(pack_tmp, -17)
   43378     1596476 :          idata = idata + 1
   43379     1596476 :          data_tmp = ISHFT(pack_tmp, 6)
   43380     1596476 :          ipack = ipack + 1
   43381     1596476 :          pack_tmp = packed_data(ipack)
   43382     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   43383     1596476 :          pack_tmp = ISHFT(pack_tmp, -6)
   43384     1596476 :          idata = idata + 1
   43385     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43386     1596476 :          full_data(idata) = data_tmp
   43387     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43388     1596476 :          idata = idata + 1
   43389     1596476 :          data_tmp = ISHFT(pack_tmp, 48)
   43390     1596476 :          ipack = ipack + 1
   43391     1596476 :          pack_tmp = packed_data(ipack)
   43392     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   43393     1596476 :          pack_tmp = ISHFT(pack_tmp, -48)
   43394     1596476 :          idata = idata + 1
   43395     1596476 :          data_tmp = ISHFT(pack_tmp, 37)
   43396     1596476 :          ipack = ipack + 1
   43397     1596476 :          pack_tmp = packed_data(ipack)
   43398     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   43399     1596476 :          pack_tmp = ISHFT(pack_tmp, -37)
   43400     1596476 :          idata = idata + 1
   43401     1596476 :          data_tmp = ISHFT(pack_tmp, 26)
   43402     1596476 :          ipack = ipack + 1
   43403     1596476 :          pack_tmp = packed_data(ipack)
   43404     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   43405     1596476 :          pack_tmp = ISHFT(pack_tmp, -26)
   43406     1596476 :          idata = idata + 1
   43407     1596476 :          data_tmp = ISHFT(pack_tmp, 15)
   43408     1596476 :          ipack = ipack + 1
   43409     1596476 :          pack_tmp = packed_data(ipack)
   43410     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   43411     1596476 :          pack_tmp = ISHFT(pack_tmp, -15)
   43412     1596476 :          idata = idata + 1
   43413     1596476 :          data_tmp = ISHFT(pack_tmp, 4)
   43414     1596476 :          ipack = ipack + 1
   43415     1596476 :          pack_tmp = packed_data(ipack)
   43416     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   43417     1596476 :          pack_tmp = ISHFT(pack_tmp, -4)
   43418     1596476 :          idata = idata + 1
   43419     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43420     1596476 :          full_data(idata) = data_tmp
   43421     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43422     1596476 :          idata = idata + 1
   43423     1596476 :          data_tmp = ISHFT(pack_tmp, 46)
   43424     1596476 :          ipack = ipack + 1
   43425     1596476 :          pack_tmp = packed_data(ipack)
   43426     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   43427     1596476 :          pack_tmp = ISHFT(pack_tmp, -46)
   43428     1596476 :          idata = idata + 1
   43429     1596476 :          data_tmp = ISHFT(pack_tmp, 35)
   43430     1596476 :          ipack = ipack + 1
   43431     1596476 :          pack_tmp = packed_data(ipack)
   43432     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   43433     1596476 :          pack_tmp = ISHFT(pack_tmp, -35)
   43434     1596476 :          idata = idata + 1
   43435     1596476 :          data_tmp = ISHFT(pack_tmp, 24)
   43436     1596476 :          ipack = ipack + 1
   43437     1596476 :          pack_tmp = packed_data(ipack)
   43438     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   43439     1596476 :          pack_tmp = ISHFT(pack_tmp, -24)
   43440     1596476 :          idata = idata + 1
   43441     1596476 :          data_tmp = ISHFT(pack_tmp, 13)
   43442     1596476 :          ipack = ipack + 1
   43443     1596476 :          pack_tmp = packed_data(ipack)
   43444     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   43445     1596476 :          pack_tmp = ISHFT(pack_tmp, -13)
   43446     1596476 :          idata = idata + 1
   43447     1596476 :          data_tmp = ISHFT(pack_tmp, 2)
   43448     1596476 :          ipack = ipack + 1
   43449     1596476 :          pack_tmp = packed_data(ipack)
   43450     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   43451     1596476 :          pack_tmp = ISHFT(pack_tmp, -2)
   43452     1596476 :          idata = idata + 1
   43453     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43454     1596476 :          full_data(idata) = data_tmp
   43455     1596476 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43456     1596476 :          idata = idata + 1
   43457     1596476 :          data_tmp = ISHFT(pack_tmp, 44)
   43458     1596476 :          ipack = ipack + 1
   43459     1596476 :          pack_tmp = packed_data(ipack)
   43460     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   43461     1596476 :          pack_tmp = ISHFT(pack_tmp, -44)
   43462     1596476 :          idata = idata + 1
   43463     1596476 :          data_tmp = ISHFT(pack_tmp, 33)
   43464     1596476 :          ipack = ipack + 1
   43465     1596476 :          pack_tmp = packed_data(ipack)
   43466     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   43467     1596476 :          pack_tmp = ISHFT(pack_tmp, -33)
   43468     1596476 :          idata = idata + 1
   43469     1596476 :          data_tmp = ISHFT(pack_tmp, 22)
   43470     1596476 :          ipack = ipack + 1
   43471     1596476 :          pack_tmp = packed_data(ipack)
   43472     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   43473     1596476 :          pack_tmp = ISHFT(pack_tmp, -22)
   43474     1596476 :          idata = idata + 1
   43475     1596476 :          data_tmp = ISHFT(pack_tmp, 11)
   43476     1596476 :          ipack = ipack + 1
   43477     1596476 :          pack_tmp = packed_data(ipack)
   43478     1596476 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   43479     1596476 :          pack_tmp = ISHFT(pack_tmp, -11)
   43480     1596476 :          idata = idata + 1
   43481     1596476 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43482     1596476 :          full_data(idata) = data_tmp
   43483     1596866 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43484             :       END DO
   43485      105904 :       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      105904 :    END SUBROUTINE bits2ints_53
   43489             : 
   43490             : ! **************************************************************************************************
   43491             : !> \brief ...
   43492             : !> \param Ndata ...
   43493             : !> \param packed_data ...
   43494             : !> \param full_data ...
   43495             : ! **************************************************************************************************
   43496       23056 :    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       23056 :       idata = 0
   43507       23056 :       ipack = 0
   43508       23056 :       Ndata_rep = (Ndata/64)*64
   43509       23056 :       DO kdata = 1, Ndata_rep, 64
   43510      365870 :          pack_tmp = 0
   43511      365870 :          idata = idata + 1
   43512      365870 :          data_tmp = full_data(idata)
   43513      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43514      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43515      365870 :          pack_tmp = ISHFT(pack_tmp, -10)
   43516      365870 :          idata = idata + 1
   43517      365870 :          data_tmp = full_data(idata)
   43518      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43519      365870 :          data_tmp = IAND(data_tmp, mask_left(10))
   43520      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43521      365870 :          ipack = ipack + 1
   43522      365870 :          packed_data(ipack) = pack_tmp
   43523      365870 :          data_tmp = full_data(idata)
   43524      365870 :          pack_tmp = ISHFT(data_tmp, 20)
   43525      365870 :          pack_tmp = ISHFT(pack_tmp, -20)
   43526      365870 :          idata = idata + 1
   43527      365870 :          data_tmp = full_data(idata)
   43528      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43529      365870 :          data_tmp = IAND(data_tmp, mask_left(20))
   43530      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43531      365870 :          ipack = ipack + 1
   43532      365870 :          packed_data(ipack) = pack_tmp
   43533      365870 :          data_tmp = full_data(idata)
   43534      365870 :          pack_tmp = ISHFT(data_tmp, 30)
   43535      365870 :          pack_tmp = ISHFT(pack_tmp, -30)
   43536      365870 :          idata = idata + 1
   43537      365870 :          data_tmp = full_data(idata)
   43538      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43539      365870 :          data_tmp = IAND(data_tmp, mask_left(30))
   43540      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43541      365870 :          ipack = ipack + 1
   43542      365870 :          packed_data(ipack) = pack_tmp
   43543      365870 :          data_tmp = full_data(idata)
   43544      365870 :          pack_tmp = ISHFT(data_tmp, 40)
   43545      365870 :          pack_tmp = ISHFT(pack_tmp, -40)
   43546      365870 :          idata = idata + 1
   43547      365870 :          data_tmp = full_data(idata)
   43548      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43549      365870 :          data_tmp = IAND(data_tmp, mask_left(40))
   43550      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43551      365870 :          ipack = ipack + 1
   43552      365870 :          packed_data(ipack) = pack_tmp
   43553      365870 :          data_tmp = full_data(idata)
   43554      365870 :          pack_tmp = ISHFT(data_tmp, 50)
   43555      365870 :          pack_tmp = ISHFT(pack_tmp, -50)
   43556      365870 :          idata = idata + 1
   43557      365870 :          data_tmp = full_data(idata)
   43558      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43559      365870 :          data_tmp = IAND(data_tmp, mask_left(50))
   43560      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43561      365870 :          ipack = ipack + 1
   43562      365870 :          packed_data(ipack) = pack_tmp
   43563      365870 :          data_tmp = full_data(idata)
   43564      365870 :          pack_tmp = ISHFT(data_tmp, 60)
   43565      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43566      365870 :          idata = idata + 1
   43567      365870 :          data_tmp = full_data(idata)
   43568      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43569      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43570      365870 :          pack_tmp = ISHFT(pack_tmp, -6)
   43571      365870 :          idata = idata + 1
   43572      365870 :          data_tmp = full_data(idata)
   43573      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43574      365870 :          data_tmp = IAND(data_tmp, mask_left(6))
   43575      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43576      365870 :          ipack = ipack + 1
   43577      365870 :          packed_data(ipack) = pack_tmp
   43578      365870 :          data_tmp = full_data(idata)
   43579      365870 :          pack_tmp = ISHFT(data_tmp, 16)
   43580      365870 :          pack_tmp = ISHFT(pack_tmp, -16)
   43581      365870 :          idata = idata + 1
   43582      365870 :          data_tmp = full_data(idata)
   43583      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43584      365870 :          data_tmp = IAND(data_tmp, mask_left(16))
   43585      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43586      365870 :          ipack = ipack + 1
   43587      365870 :          packed_data(ipack) = pack_tmp
   43588      365870 :          data_tmp = full_data(idata)
   43589      365870 :          pack_tmp = ISHFT(data_tmp, 26)
   43590      365870 :          pack_tmp = ISHFT(pack_tmp, -26)
   43591      365870 :          idata = idata + 1
   43592      365870 :          data_tmp = full_data(idata)
   43593      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43594      365870 :          data_tmp = IAND(data_tmp, mask_left(26))
   43595      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43596      365870 :          ipack = ipack + 1
   43597      365870 :          packed_data(ipack) = pack_tmp
   43598      365870 :          data_tmp = full_data(idata)
   43599      365870 :          pack_tmp = ISHFT(data_tmp, 36)
   43600      365870 :          pack_tmp = ISHFT(pack_tmp, -36)
   43601      365870 :          idata = idata + 1
   43602      365870 :          data_tmp = full_data(idata)
   43603      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43604      365870 :          data_tmp = IAND(data_tmp, mask_left(36))
   43605      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43606      365870 :          ipack = ipack + 1
   43607      365870 :          packed_data(ipack) = pack_tmp
   43608      365870 :          data_tmp = full_data(idata)
   43609      365870 :          pack_tmp = ISHFT(data_tmp, 46)
   43610      365870 :          pack_tmp = ISHFT(pack_tmp, -46)
   43611      365870 :          idata = idata + 1
   43612      365870 :          data_tmp = full_data(idata)
   43613      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43614      365870 :          data_tmp = IAND(data_tmp, mask_left(46))
   43615      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43616      365870 :          ipack = ipack + 1
   43617      365870 :          packed_data(ipack) = pack_tmp
   43618      365870 :          data_tmp = full_data(idata)
   43619      365870 :          pack_tmp = ISHFT(data_tmp, 56)
   43620      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43621      365870 :          idata = idata + 1
   43622      365870 :          data_tmp = full_data(idata)
   43623      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43624      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43625      365870 :          pack_tmp = ISHFT(pack_tmp, -2)
   43626      365870 :          idata = idata + 1
   43627      365870 :          data_tmp = full_data(idata)
   43628      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43629      365870 :          data_tmp = IAND(data_tmp, mask_left(2))
   43630      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43631      365870 :          ipack = ipack + 1
   43632      365870 :          packed_data(ipack) = pack_tmp
   43633      365870 :          data_tmp = full_data(idata)
   43634      365870 :          pack_tmp = ISHFT(data_tmp, 12)
   43635      365870 :          pack_tmp = ISHFT(pack_tmp, -12)
   43636      365870 :          idata = idata + 1
   43637      365870 :          data_tmp = full_data(idata)
   43638      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43639      365870 :          data_tmp = IAND(data_tmp, mask_left(12))
   43640      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43641      365870 :          ipack = ipack + 1
   43642      365870 :          packed_data(ipack) = pack_tmp
   43643      365870 :          data_tmp = full_data(idata)
   43644      365870 :          pack_tmp = ISHFT(data_tmp, 22)
   43645      365870 :          pack_tmp = ISHFT(pack_tmp, -22)
   43646      365870 :          idata = idata + 1
   43647      365870 :          data_tmp = full_data(idata)
   43648      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43649      365870 :          data_tmp = IAND(data_tmp, mask_left(22))
   43650      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43651      365870 :          ipack = ipack + 1
   43652      365870 :          packed_data(ipack) = pack_tmp
   43653      365870 :          data_tmp = full_data(idata)
   43654      365870 :          pack_tmp = ISHFT(data_tmp, 32)
   43655      365870 :          pack_tmp = ISHFT(pack_tmp, -32)
   43656      365870 :          idata = idata + 1
   43657      365870 :          data_tmp = full_data(idata)
   43658      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43659      365870 :          data_tmp = IAND(data_tmp, mask_left(32))
   43660      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43661      365870 :          ipack = ipack + 1
   43662      365870 :          packed_data(ipack) = pack_tmp
   43663      365870 :          data_tmp = full_data(idata)
   43664      365870 :          pack_tmp = ISHFT(data_tmp, 42)
   43665      365870 :          pack_tmp = ISHFT(pack_tmp, -42)
   43666      365870 :          idata = idata + 1
   43667      365870 :          data_tmp = full_data(idata)
   43668      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43669      365870 :          data_tmp = IAND(data_tmp, mask_left(42))
   43670      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43671      365870 :          ipack = ipack + 1
   43672      365870 :          packed_data(ipack) = pack_tmp
   43673      365870 :          data_tmp = full_data(idata)
   43674      365870 :          pack_tmp = ISHFT(data_tmp, 52)
   43675      365870 :          pack_tmp = ISHFT(pack_tmp, -52)
   43676      365870 :          idata = idata + 1
   43677      365870 :          data_tmp = full_data(idata)
   43678      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43679      365870 :          data_tmp = IAND(data_tmp, mask_left(52))
   43680      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43681      365870 :          ipack = ipack + 1
   43682      365870 :          packed_data(ipack) = pack_tmp
   43683      365870 :          data_tmp = full_data(idata)
   43684      365870 :          pack_tmp = ISHFT(data_tmp, 62)
   43685      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43686      365870 :          idata = idata + 1
   43687      365870 :          data_tmp = full_data(idata)
   43688      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43689      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43690      365870 :          pack_tmp = ISHFT(pack_tmp, -8)
   43691      365870 :          idata = idata + 1
   43692      365870 :          data_tmp = full_data(idata)
   43693      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43694      365870 :          data_tmp = IAND(data_tmp, mask_left(8))
   43695      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43696      365870 :          ipack = ipack + 1
   43697      365870 :          packed_data(ipack) = pack_tmp
   43698      365870 :          data_tmp = full_data(idata)
   43699      365870 :          pack_tmp = ISHFT(data_tmp, 18)
   43700      365870 :          pack_tmp = ISHFT(pack_tmp, -18)
   43701      365870 :          idata = idata + 1
   43702      365870 :          data_tmp = full_data(idata)
   43703      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43704      365870 :          data_tmp = IAND(data_tmp, mask_left(18))
   43705      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43706      365870 :          ipack = ipack + 1
   43707      365870 :          packed_data(ipack) = pack_tmp
   43708      365870 :          data_tmp = full_data(idata)
   43709      365870 :          pack_tmp = ISHFT(data_tmp, 28)
   43710      365870 :          pack_tmp = ISHFT(pack_tmp, -28)
   43711      365870 :          idata = idata + 1
   43712      365870 :          data_tmp = full_data(idata)
   43713      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43714      365870 :          data_tmp = IAND(data_tmp, mask_left(28))
   43715      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43716      365870 :          ipack = ipack + 1
   43717      365870 :          packed_data(ipack) = pack_tmp
   43718      365870 :          data_tmp = full_data(idata)
   43719      365870 :          pack_tmp = ISHFT(data_tmp, 38)
   43720      365870 :          pack_tmp = ISHFT(pack_tmp, -38)
   43721      365870 :          idata = idata + 1
   43722      365870 :          data_tmp = full_data(idata)
   43723      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43724      365870 :          data_tmp = IAND(data_tmp, mask_left(38))
   43725      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43726      365870 :          ipack = ipack + 1
   43727      365870 :          packed_data(ipack) = pack_tmp
   43728      365870 :          data_tmp = full_data(idata)
   43729      365870 :          pack_tmp = ISHFT(data_tmp, 48)
   43730      365870 :          pack_tmp = ISHFT(pack_tmp, -48)
   43731      365870 :          idata = idata + 1
   43732      365870 :          data_tmp = full_data(idata)
   43733      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43734      365870 :          data_tmp = IAND(data_tmp, mask_left(48))
   43735      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43736      365870 :          ipack = ipack + 1
   43737      365870 :          packed_data(ipack) = pack_tmp
   43738      365870 :          data_tmp = full_data(idata)
   43739      365870 :          pack_tmp = ISHFT(data_tmp, 58)
   43740      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43741      365870 :          idata = idata + 1
   43742      365870 :          data_tmp = full_data(idata)
   43743      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43744      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43745      365870 :          pack_tmp = ISHFT(pack_tmp, -4)
   43746      365870 :          idata = idata + 1
   43747      365870 :          data_tmp = full_data(idata)
   43748      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43749      365870 :          data_tmp = IAND(data_tmp, mask_left(4))
   43750      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43751      365870 :          ipack = ipack + 1
   43752      365870 :          packed_data(ipack) = pack_tmp
   43753      365870 :          data_tmp = full_data(idata)
   43754      365870 :          pack_tmp = ISHFT(data_tmp, 14)
   43755      365870 :          pack_tmp = ISHFT(pack_tmp, -14)
   43756      365870 :          idata = idata + 1
   43757      365870 :          data_tmp = full_data(idata)
   43758      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43759      365870 :          data_tmp = IAND(data_tmp, mask_left(14))
   43760      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43761      365870 :          ipack = ipack + 1
   43762      365870 :          packed_data(ipack) = pack_tmp
   43763      365870 :          data_tmp = full_data(idata)
   43764      365870 :          pack_tmp = ISHFT(data_tmp, 24)
   43765      365870 :          pack_tmp = ISHFT(pack_tmp, -24)
   43766      365870 :          idata = idata + 1
   43767      365870 :          data_tmp = full_data(idata)
   43768      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43769      365870 :          data_tmp = IAND(data_tmp, mask_left(24))
   43770      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43771      365870 :          ipack = ipack + 1
   43772      365870 :          packed_data(ipack) = pack_tmp
   43773      365870 :          data_tmp = full_data(idata)
   43774      365870 :          pack_tmp = ISHFT(data_tmp, 34)
   43775      365870 :          pack_tmp = ISHFT(pack_tmp, -34)
   43776      365870 :          idata = idata + 1
   43777      365870 :          data_tmp = full_data(idata)
   43778      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43779      365870 :          data_tmp = IAND(data_tmp, mask_left(34))
   43780      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43781      365870 :          ipack = ipack + 1
   43782      365870 :          packed_data(ipack) = pack_tmp
   43783      365870 :          data_tmp = full_data(idata)
   43784      365870 :          pack_tmp = ISHFT(data_tmp, 44)
   43785      365870 :          pack_tmp = ISHFT(pack_tmp, -44)
   43786      365870 :          idata = idata + 1
   43787      365870 :          data_tmp = full_data(idata)
   43788      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43789      365870 :          data_tmp = IAND(data_tmp, mask_left(44))
   43790      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43791      365870 :          ipack = ipack + 1
   43792      365870 :          packed_data(ipack) = pack_tmp
   43793      365870 :          data_tmp = full_data(idata)
   43794      365870 :          pack_tmp = ISHFT(data_tmp, 54)
   43795      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43796      365870 :          idata = idata + 1
   43797      365870 :          data_tmp = full_data(idata)
   43798      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43799      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43800      365870 :          pack_tmp = ISHFT(pack_tmp, 0)
   43801      365870 :          idata = idata + 1
   43802      365870 :          data_tmp = full_data(idata)
   43803      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43804      365870 :          data_tmp = IAND(data_tmp, mask_left(0))
   43805      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43806      365870 :          ipack = ipack + 1
   43807      365870 :          packed_data(ipack) = pack_tmp
   43808      365870 :          data_tmp = full_data(idata)
   43809      365870 :          pack_tmp = ISHFT(data_tmp, 10)
   43810      365870 :          pack_tmp = ISHFT(pack_tmp, -10)
   43811      365870 :          idata = idata + 1
   43812      365870 :          data_tmp = full_data(idata)
   43813      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43814      365870 :          data_tmp = IAND(data_tmp, mask_left(10))
   43815      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43816      365870 :          ipack = ipack + 1
   43817      365870 :          packed_data(ipack) = pack_tmp
   43818      365870 :          data_tmp = full_data(idata)
   43819      365870 :          pack_tmp = ISHFT(data_tmp, 20)
   43820      365870 :          pack_tmp = ISHFT(pack_tmp, -20)
   43821      365870 :          idata = idata + 1
   43822      365870 :          data_tmp = full_data(idata)
   43823      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43824      365870 :          data_tmp = IAND(data_tmp, mask_left(20))
   43825      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43826      365870 :          ipack = ipack + 1
   43827      365870 :          packed_data(ipack) = pack_tmp
   43828      365870 :          data_tmp = full_data(idata)
   43829      365870 :          pack_tmp = ISHFT(data_tmp, 30)
   43830      365870 :          pack_tmp = ISHFT(pack_tmp, -30)
   43831      365870 :          idata = idata + 1
   43832      365870 :          data_tmp = full_data(idata)
   43833      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43834      365870 :          data_tmp = IAND(data_tmp, mask_left(30))
   43835      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43836      365870 :          ipack = ipack + 1
   43837      365870 :          packed_data(ipack) = pack_tmp
   43838      365870 :          data_tmp = full_data(idata)
   43839      365870 :          pack_tmp = ISHFT(data_tmp, 40)
   43840      365870 :          pack_tmp = ISHFT(pack_tmp, -40)
   43841      365870 :          idata = idata + 1
   43842      365870 :          data_tmp = full_data(idata)
   43843      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43844      365870 :          data_tmp = IAND(data_tmp, mask_left(40))
   43845      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43846      365870 :          ipack = ipack + 1
   43847      365870 :          packed_data(ipack) = pack_tmp
   43848      365870 :          data_tmp = full_data(idata)
   43849      365870 :          pack_tmp = ISHFT(data_tmp, 50)
   43850      365870 :          pack_tmp = ISHFT(pack_tmp, -50)
   43851      365870 :          idata = idata + 1
   43852      365870 :          data_tmp = full_data(idata)
   43853      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43854      365870 :          data_tmp = IAND(data_tmp, mask_left(50))
   43855      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43856      365870 :          ipack = ipack + 1
   43857      365870 :          packed_data(ipack) = pack_tmp
   43858      365870 :          data_tmp = full_data(idata)
   43859      365870 :          pack_tmp = ISHFT(data_tmp, 60)
   43860      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43861      365870 :          idata = idata + 1
   43862      365870 :          data_tmp = full_data(idata)
   43863      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43864      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43865      365870 :          pack_tmp = ISHFT(pack_tmp, -6)
   43866      365870 :          idata = idata + 1
   43867      365870 :          data_tmp = full_data(idata)
   43868      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43869      365870 :          data_tmp = IAND(data_tmp, mask_left(6))
   43870      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43871      365870 :          ipack = ipack + 1
   43872      365870 :          packed_data(ipack) = pack_tmp
   43873      365870 :          data_tmp = full_data(idata)
   43874      365870 :          pack_tmp = ISHFT(data_tmp, 16)
   43875      365870 :          pack_tmp = ISHFT(pack_tmp, -16)
   43876      365870 :          idata = idata + 1
   43877      365870 :          data_tmp = full_data(idata)
   43878      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43879      365870 :          data_tmp = IAND(data_tmp, mask_left(16))
   43880      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43881      365870 :          ipack = ipack + 1
   43882      365870 :          packed_data(ipack) = pack_tmp
   43883      365870 :          data_tmp = full_data(idata)
   43884      365870 :          pack_tmp = ISHFT(data_tmp, 26)
   43885      365870 :          pack_tmp = ISHFT(pack_tmp, -26)
   43886      365870 :          idata = idata + 1
   43887      365870 :          data_tmp = full_data(idata)
   43888      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43889      365870 :          data_tmp = IAND(data_tmp, mask_left(26))
   43890      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43891      365870 :          ipack = ipack + 1
   43892      365870 :          packed_data(ipack) = pack_tmp
   43893      365870 :          data_tmp = full_data(idata)
   43894      365870 :          pack_tmp = ISHFT(data_tmp, 36)
   43895      365870 :          pack_tmp = ISHFT(pack_tmp, -36)
   43896      365870 :          idata = idata + 1
   43897      365870 :          data_tmp = full_data(idata)
   43898      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43899      365870 :          data_tmp = IAND(data_tmp, mask_left(36))
   43900      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43901      365870 :          ipack = ipack + 1
   43902      365870 :          packed_data(ipack) = pack_tmp
   43903      365870 :          data_tmp = full_data(idata)
   43904      365870 :          pack_tmp = ISHFT(data_tmp, 46)
   43905      365870 :          pack_tmp = ISHFT(pack_tmp, -46)
   43906      365870 :          idata = idata + 1
   43907      365870 :          data_tmp = full_data(idata)
   43908      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43909      365870 :          data_tmp = IAND(data_tmp, mask_left(46))
   43910      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43911      365870 :          ipack = ipack + 1
   43912      365870 :          packed_data(ipack) = pack_tmp
   43913      365870 :          data_tmp = full_data(idata)
   43914      365870 :          pack_tmp = ISHFT(data_tmp, 56)
   43915      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43916      365870 :          idata = idata + 1
   43917      365870 :          data_tmp = full_data(idata)
   43918      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43919      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43920      365870 :          pack_tmp = ISHFT(pack_tmp, -2)
   43921      365870 :          idata = idata + 1
   43922      365870 :          data_tmp = full_data(idata)
   43923      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43924      365870 :          data_tmp = IAND(data_tmp, mask_left(2))
   43925      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43926      365870 :          ipack = ipack + 1
   43927      365870 :          packed_data(ipack) = pack_tmp
   43928      365870 :          data_tmp = full_data(idata)
   43929      365870 :          pack_tmp = ISHFT(data_tmp, 12)
   43930      365870 :          pack_tmp = ISHFT(pack_tmp, -12)
   43931      365870 :          idata = idata + 1
   43932      365870 :          data_tmp = full_data(idata)
   43933      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43934      365870 :          data_tmp = IAND(data_tmp, mask_left(12))
   43935      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43936      365870 :          ipack = ipack + 1
   43937      365870 :          packed_data(ipack) = pack_tmp
   43938      365870 :          data_tmp = full_data(idata)
   43939      365870 :          pack_tmp = ISHFT(data_tmp, 22)
   43940      365870 :          pack_tmp = ISHFT(pack_tmp, -22)
   43941      365870 :          idata = idata + 1
   43942      365870 :          data_tmp = full_data(idata)
   43943      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43944      365870 :          data_tmp = IAND(data_tmp, mask_left(22))
   43945      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43946      365870 :          ipack = ipack + 1
   43947      365870 :          packed_data(ipack) = pack_tmp
   43948      365870 :          data_tmp = full_data(idata)
   43949      365870 :          pack_tmp = ISHFT(data_tmp, 32)
   43950      365870 :          pack_tmp = ISHFT(pack_tmp, -32)
   43951      365870 :          idata = idata + 1
   43952      365870 :          data_tmp = full_data(idata)
   43953      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43954      365870 :          data_tmp = IAND(data_tmp, mask_left(32))
   43955      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43956      365870 :          ipack = ipack + 1
   43957      365870 :          packed_data(ipack) = pack_tmp
   43958      365870 :          data_tmp = full_data(idata)
   43959      365870 :          pack_tmp = ISHFT(data_tmp, 42)
   43960      365870 :          pack_tmp = ISHFT(pack_tmp, -42)
   43961      365870 :          idata = idata + 1
   43962      365870 :          data_tmp = full_data(idata)
   43963      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43964      365870 :          data_tmp = IAND(data_tmp, mask_left(42))
   43965      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43966      365870 :          ipack = ipack + 1
   43967      365870 :          packed_data(ipack) = pack_tmp
   43968      365870 :          data_tmp = full_data(idata)
   43969      365870 :          pack_tmp = ISHFT(data_tmp, 52)
   43970      365870 :          pack_tmp = ISHFT(pack_tmp, -52)
   43971      365870 :          idata = idata + 1
   43972      365870 :          data_tmp = full_data(idata)
   43973      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43974      365870 :          data_tmp = IAND(data_tmp, mask_left(52))
   43975      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43976      365870 :          ipack = ipack + 1
   43977      365870 :          packed_data(ipack) = pack_tmp
   43978      365870 :          data_tmp = full_data(idata)
   43979      365870 :          pack_tmp = ISHFT(data_tmp, 62)
   43980      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   43981      365870 :          idata = idata + 1
   43982      365870 :          data_tmp = full_data(idata)
   43983      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43984      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43985      365870 :          pack_tmp = ISHFT(pack_tmp, -8)
   43986      365870 :          idata = idata + 1
   43987      365870 :          data_tmp = full_data(idata)
   43988      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43989      365870 :          data_tmp = IAND(data_tmp, mask_left(8))
   43990      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43991      365870 :          ipack = ipack + 1
   43992      365870 :          packed_data(ipack) = pack_tmp
   43993      365870 :          data_tmp = full_data(idata)
   43994      365870 :          pack_tmp = ISHFT(data_tmp, 18)
   43995      365870 :          pack_tmp = ISHFT(pack_tmp, -18)
   43996      365870 :          idata = idata + 1
   43997      365870 :          data_tmp = full_data(idata)
   43998      365870 :          data_tmp = ISHFT(data_tmp, 10)
   43999      365870 :          data_tmp = IAND(data_tmp, mask_left(18))
   44000      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44001      365870 :          ipack = ipack + 1
   44002      365870 :          packed_data(ipack) = pack_tmp
   44003      365870 :          data_tmp = full_data(idata)
   44004      365870 :          pack_tmp = ISHFT(data_tmp, 28)
   44005      365870 :          pack_tmp = ISHFT(pack_tmp, -28)
   44006      365870 :          idata = idata + 1
   44007      365870 :          data_tmp = full_data(idata)
   44008      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44009      365870 :          data_tmp = IAND(data_tmp, mask_left(28))
   44010      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44011      365870 :          ipack = ipack + 1
   44012      365870 :          packed_data(ipack) = pack_tmp
   44013      365870 :          data_tmp = full_data(idata)
   44014      365870 :          pack_tmp = ISHFT(data_tmp, 38)
   44015      365870 :          pack_tmp = ISHFT(pack_tmp, -38)
   44016      365870 :          idata = idata + 1
   44017      365870 :          data_tmp = full_data(idata)
   44018      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44019      365870 :          data_tmp = IAND(data_tmp, mask_left(38))
   44020      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44021      365870 :          ipack = ipack + 1
   44022      365870 :          packed_data(ipack) = pack_tmp
   44023      365870 :          data_tmp = full_data(idata)
   44024      365870 :          pack_tmp = ISHFT(data_tmp, 48)
   44025      365870 :          pack_tmp = ISHFT(pack_tmp, -48)
   44026      365870 :          idata = idata + 1
   44027      365870 :          data_tmp = full_data(idata)
   44028      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44029      365870 :          data_tmp = IAND(data_tmp, mask_left(48))
   44030      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44031      365870 :          ipack = ipack + 1
   44032      365870 :          packed_data(ipack) = pack_tmp
   44033      365870 :          data_tmp = full_data(idata)
   44034      365870 :          pack_tmp = ISHFT(data_tmp, 58)
   44035      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   44036      365870 :          idata = idata + 1
   44037      365870 :          data_tmp = full_data(idata)
   44038      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44039      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44040      365870 :          pack_tmp = ISHFT(pack_tmp, -4)
   44041      365870 :          idata = idata + 1
   44042      365870 :          data_tmp = full_data(idata)
   44043      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44044      365870 :          data_tmp = IAND(data_tmp, mask_left(4))
   44045      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44046      365870 :          ipack = ipack + 1
   44047      365870 :          packed_data(ipack) = pack_tmp
   44048      365870 :          data_tmp = full_data(idata)
   44049      365870 :          pack_tmp = ISHFT(data_tmp, 14)
   44050      365870 :          pack_tmp = ISHFT(pack_tmp, -14)
   44051      365870 :          idata = idata + 1
   44052      365870 :          data_tmp = full_data(idata)
   44053      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44054      365870 :          data_tmp = IAND(data_tmp, mask_left(14))
   44055      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44056      365870 :          ipack = ipack + 1
   44057      365870 :          packed_data(ipack) = pack_tmp
   44058      365870 :          data_tmp = full_data(idata)
   44059      365870 :          pack_tmp = ISHFT(data_tmp, 24)
   44060      365870 :          pack_tmp = ISHFT(pack_tmp, -24)
   44061      365870 :          idata = idata + 1
   44062      365870 :          data_tmp = full_data(idata)
   44063      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44064      365870 :          data_tmp = IAND(data_tmp, mask_left(24))
   44065      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44066      365870 :          ipack = ipack + 1
   44067      365870 :          packed_data(ipack) = pack_tmp
   44068      365870 :          data_tmp = full_data(idata)
   44069      365870 :          pack_tmp = ISHFT(data_tmp, 34)
   44070      365870 :          pack_tmp = ISHFT(pack_tmp, -34)
   44071      365870 :          idata = idata + 1
   44072      365870 :          data_tmp = full_data(idata)
   44073      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44074      365870 :          data_tmp = IAND(data_tmp, mask_left(34))
   44075      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44076      365870 :          ipack = ipack + 1
   44077      365870 :          packed_data(ipack) = pack_tmp
   44078      365870 :          data_tmp = full_data(idata)
   44079      365870 :          pack_tmp = ISHFT(data_tmp, 44)
   44080      365870 :          pack_tmp = ISHFT(pack_tmp, -44)
   44081      365870 :          idata = idata + 1
   44082      365870 :          data_tmp = full_data(idata)
   44083      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44084      365870 :          data_tmp = IAND(data_tmp, mask_left(44))
   44085      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44086      365870 :          ipack = ipack + 1
   44087      365870 :          packed_data(ipack) = pack_tmp
   44088      365870 :          data_tmp = full_data(idata)
   44089      365870 :          pack_tmp = ISHFT(data_tmp, 54)
   44090      365870 :          pack_tmp = ISHFT(pack_tmp, -54)
   44091      365870 :          idata = idata + 1
   44092      365870 :          data_tmp = full_data(idata)
   44093      365870 :          data_tmp = ISHFT(data_tmp, 10)
   44094      365870 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44095             :          pack_tmp = ISHFT(pack_tmp, 0)
   44096      365870 :          pack_tmp = ISHFT(pack_tmp, 0)
   44097      365870 :          ipack = ipack + 1
   44098      365884 :          packed_data(ipack) = pack_tmp
   44099             :       END DO
   44100       23056 :       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       23056 :    END SUBROUTINE ints2bits_54
   44104             : 
   44105             : ! **************************************************************************************************
   44106             : !> \brief ...
   44107             : !> \param Ndata ...
   44108             : !> \param packed_data ...
   44109             : !> \param full_data ...
   44110             : ! **************************************************************************************************
   44111      108592 :    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      108592 :       ipack = 0
   44122      108592 :       idata = 0
   44123      108592 :       pack_tmp = 0
   44124      108592 :       Ndata_rep = (Ndata/64)*64
   44125      108592 :       DO kdata = 1, Ndata_rep, 64
   44126     1617418 :          idata = idata + 1
   44127     1617418 :          data_tmp = ISHFT(pack_tmp, 54)
   44128     1617418 :          ipack = ipack + 1
   44129     1617418 :          pack_tmp = packed_data(ipack)
   44130     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44131     1617418 :          pack_tmp = ISHFT(pack_tmp, -54)
   44132     1617418 :          idata = idata + 1
   44133     1617418 :          data_tmp = ISHFT(pack_tmp, 44)
   44134     1617418 :          ipack = ipack + 1
   44135     1617418 :          pack_tmp = packed_data(ipack)
   44136     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44137     1617418 :          pack_tmp = ISHFT(pack_tmp, -44)
   44138     1617418 :          idata = idata + 1
   44139     1617418 :          data_tmp = ISHFT(pack_tmp, 34)
   44140     1617418 :          ipack = ipack + 1
   44141     1617418 :          pack_tmp = packed_data(ipack)
   44142     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44143     1617418 :          pack_tmp = ISHFT(pack_tmp, -34)
   44144     1617418 :          idata = idata + 1
   44145     1617418 :          data_tmp = ISHFT(pack_tmp, 24)
   44146     1617418 :          ipack = ipack + 1
   44147     1617418 :          pack_tmp = packed_data(ipack)
   44148     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44149     1617418 :          pack_tmp = ISHFT(pack_tmp, -24)
   44150     1617418 :          idata = idata + 1
   44151     1617418 :          data_tmp = ISHFT(pack_tmp, 14)
   44152     1617418 :          ipack = ipack + 1
   44153     1617418 :          pack_tmp = packed_data(ipack)
   44154     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44155     1617418 :          pack_tmp = ISHFT(pack_tmp, -14)
   44156     1617418 :          idata = idata + 1
   44157     1617418 :          data_tmp = ISHFT(pack_tmp, 4)
   44158     1617418 :          ipack = ipack + 1
   44159     1617418 :          pack_tmp = packed_data(ipack)
   44160     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44161     1617418 :          pack_tmp = ISHFT(pack_tmp, -4)
   44162     1617418 :          idata = idata + 1
   44163     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44164     1617418 :          full_data(idata) = data_tmp
   44165     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44166     1617418 :          idata = idata + 1
   44167     1617418 :          data_tmp = ISHFT(pack_tmp, 48)
   44168     1617418 :          ipack = ipack + 1
   44169     1617418 :          pack_tmp = packed_data(ipack)
   44170     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44171     1617418 :          pack_tmp = ISHFT(pack_tmp, -48)
   44172     1617418 :          idata = idata + 1
   44173     1617418 :          data_tmp = ISHFT(pack_tmp, 38)
   44174     1617418 :          ipack = ipack + 1
   44175     1617418 :          pack_tmp = packed_data(ipack)
   44176     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44177     1617418 :          pack_tmp = ISHFT(pack_tmp, -38)
   44178     1617418 :          idata = idata + 1
   44179     1617418 :          data_tmp = ISHFT(pack_tmp, 28)
   44180     1617418 :          ipack = ipack + 1
   44181     1617418 :          pack_tmp = packed_data(ipack)
   44182     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44183     1617418 :          pack_tmp = ISHFT(pack_tmp, -28)
   44184     1617418 :          idata = idata + 1
   44185     1617418 :          data_tmp = ISHFT(pack_tmp, 18)
   44186     1617418 :          ipack = ipack + 1
   44187     1617418 :          pack_tmp = packed_data(ipack)
   44188     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44189     1617418 :          pack_tmp = ISHFT(pack_tmp, -18)
   44190     1617418 :          idata = idata + 1
   44191     1617418 :          data_tmp = ISHFT(pack_tmp, 8)
   44192     1617418 :          ipack = ipack + 1
   44193     1617418 :          pack_tmp = packed_data(ipack)
   44194     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44195     1617418 :          pack_tmp = ISHFT(pack_tmp, -8)
   44196     1617418 :          idata = idata + 1
   44197     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44198     1617418 :          full_data(idata) = data_tmp
   44199     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44200     1617418 :          idata = idata + 1
   44201     1617418 :          data_tmp = ISHFT(pack_tmp, 52)
   44202     1617418 :          ipack = ipack + 1
   44203     1617418 :          pack_tmp = packed_data(ipack)
   44204     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44205     1617418 :          pack_tmp = ISHFT(pack_tmp, -52)
   44206     1617418 :          idata = idata + 1
   44207     1617418 :          data_tmp = ISHFT(pack_tmp, 42)
   44208     1617418 :          ipack = ipack + 1
   44209     1617418 :          pack_tmp = packed_data(ipack)
   44210     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44211     1617418 :          pack_tmp = ISHFT(pack_tmp, -42)
   44212     1617418 :          idata = idata + 1
   44213     1617418 :          data_tmp = ISHFT(pack_tmp, 32)
   44214     1617418 :          ipack = ipack + 1
   44215     1617418 :          pack_tmp = packed_data(ipack)
   44216     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44217     1617418 :          pack_tmp = ISHFT(pack_tmp, -32)
   44218     1617418 :          idata = idata + 1
   44219     1617418 :          data_tmp = ISHFT(pack_tmp, 22)
   44220     1617418 :          ipack = ipack + 1
   44221     1617418 :          pack_tmp = packed_data(ipack)
   44222     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44223     1617418 :          pack_tmp = ISHFT(pack_tmp, -22)
   44224     1617418 :          idata = idata + 1
   44225     1617418 :          data_tmp = ISHFT(pack_tmp, 12)
   44226     1617418 :          ipack = ipack + 1
   44227     1617418 :          pack_tmp = packed_data(ipack)
   44228     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44229     1617418 :          pack_tmp = ISHFT(pack_tmp, -12)
   44230     1617418 :          idata = idata + 1
   44231     1617418 :          data_tmp = ISHFT(pack_tmp, 2)
   44232     1617418 :          ipack = ipack + 1
   44233     1617418 :          pack_tmp = packed_data(ipack)
   44234     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44235     1617418 :          pack_tmp = ISHFT(pack_tmp, -2)
   44236     1617418 :          idata = idata + 1
   44237     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44238     1617418 :          full_data(idata) = data_tmp
   44239     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44240     1617418 :          idata = idata + 1
   44241     1617418 :          data_tmp = ISHFT(pack_tmp, 46)
   44242     1617418 :          ipack = ipack + 1
   44243     1617418 :          pack_tmp = packed_data(ipack)
   44244     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44245     1617418 :          pack_tmp = ISHFT(pack_tmp, -46)
   44246     1617418 :          idata = idata + 1
   44247     1617418 :          data_tmp = ISHFT(pack_tmp, 36)
   44248     1617418 :          ipack = ipack + 1
   44249     1617418 :          pack_tmp = packed_data(ipack)
   44250     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44251     1617418 :          pack_tmp = ISHFT(pack_tmp, -36)
   44252     1617418 :          idata = idata + 1
   44253     1617418 :          data_tmp = ISHFT(pack_tmp, 26)
   44254     1617418 :          ipack = ipack + 1
   44255     1617418 :          pack_tmp = packed_data(ipack)
   44256     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44257     1617418 :          pack_tmp = ISHFT(pack_tmp, -26)
   44258     1617418 :          idata = idata + 1
   44259     1617418 :          data_tmp = ISHFT(pack_tmp, 16)
   44260     1617418 :          ipack = ipack + 1
   44261     1617418 :          pack_tmp = packed_data(ipack)
   44262     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44263     1617418 :          pack_tmp = ISHFT(pack_tmp, -16)
   44264     1617418 :          idata = idata + 1
   44265     1617418 :          data_tmp = ISHFT(pack_tmp, 6)
   44266     1617418 :          ipack = ipack + 1
   44267     1617418 :          pack_tmp = packed_data(ipack)
   44268     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44269     1617418 :          pack_tmp = ISHFT(pack_tmp, -6)
   44270     1617418 :          idata = idata + 1
   44271     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44272     1617418 :          full_data(idata) = data_tmp
   44273     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44274     1617418 :          idata = idata + 1
   44275     1617418 :          data_tmp = ISHFT(pack_tmp, 50)
   44276     1617418 :          ipack = ipack + 1
   44277     1617418 :          pack_tmp = packed_data(ipack)
   44278     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44279     1617418 :          pack_tmp = ISHFT(pack_tmp, -50)
   44280     1617418 :          idata = idata + 1
   44281     1617418 :          data_tmp = ISHFT(pack_tmp, 40)
   44282     1617418 :          ipack = ipack + 1
   44283     1617418 :          pack_tmp = packed_data(ipack)
   44284     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44285     1617418 :          pack_tmp = ISHFT(pack_tmp, -40)
   44286     1617418 :          idata = idata + 1
   44287     1617418 :          data_tmp = ISHFT(pack_tmp, 30)
   44288     1617418 :          ipack = ipack + 1
   44289     1617418 :          pack_tmp = packed_data(ipack)
   44290     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44291     1617418 :          pack_tmp = ISHFT(pack_tmp, -30)
   44292     1617418 :          idata = idata + 1
   44293     1617418 :          data_tmp = ISHFT(pack_tmp, 20)
   44294     1617418 :          ipack = ipack + 1
   44295     1617418 :          pack_tmp = packed_data(ipack)
   44296     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44297     1617418 :          pack_tmp = ISHFT(pack_tmp, -20)
   44298     1617418 :          idata = idata + 1
   44299     1617418 :          data_tmp = ISHFT(pack_tmp, 10)
   44300     1617418 :          ipack = ipack + 1
   44301     1617418 :          pack_tmp = packed_data(ipack)
   44302     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44303     1617418 :          pack_tmp = ISHFT(pack_tmp, -10)
   44304     1617418 :          idata = idata + 1
   44305     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44306     1617418 :          full_data(idata) = data_tmp
   44307     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44308     1617418 :          idata = idata + 1
   44309     1617418 :          data_tmp = ISHFT(pack_tmp, 54)
   44310     1617418 :          ipack = ipack + 1
   44311     1617418 :          pack_tmp = packed_data(ipack)
   44312     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44313     1617418 :          pack_tmp = ISHFT(pack_tmp, -54)
   44314     1617418 :          idata = idata + 1
   44315     1617418 :          data_tmp = ISHFT(pack_tmp, 44)
   44316     1617418 :          ipack = ipack + 1
   44317     1617418 :          pack_tmp = packed_data(ipack)
   44318     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44319     1617418 :          pack_tmp = ISHFT(pack_tmp, -44)
   44320     1617418 :          idata = idata + 1
   44321     1617418 :          data_tmp = ISHFT(pack_tmp, 34)
   44322     1617418 :          ipack = ipack + 1
   44323     1617418 :          pack_tmp = packed_data(ipack)
   44324     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44325     1617418 :          pack_tmp = ISHFT(pack_tmp, -34)
   44326     1617418 :          idata = idata + 1
   44327     1617418 :          data_tmp = ISHFT(pack_tmp, 24)
   44328     1617418 :          ipack = ipack + 1
   44329     1617418 :          pack_tmp = packed_data(ipack)
   44330     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44331     1617418 :          pack_tmp = ISHFT(pack_tmp, -24)
   44332     1617418 :          idata = idata + 1
   44333     1617418 :          data_tmp = ISHFT(pack_tmp, 14)
   44334     1617418 :          ipack = ipack + 1
   44335     1617418 :          pack_tmp = packed_data(ipack)
   44336     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44337     1617418 :          pack_tmp = ISHFT(pack_tmp, -14)
   44338     1617418 :          idata = idata + 1
   44339     1617418 :          data_tmp = ISHFT(pack_tmp, 4)
   44340     1617418 :          ipack = ipack + 1
   44341     1617418 :          pack_tmp = packed_data(ipack)
   44342     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44343     1617418 :          pack_tmp = ISHFT(pack_tmp, -4)
   44344     1617418 :          idata = idata + 1
   44345     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44346     1617418 :          full_data(idata) = data_tmp
   44347     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44348     1617418 :          idata = idata + 1
   44349     1617418 :          data_tmp = ISHFT(pack_tmp, 48)
   44350     1617418 :          ipack = ipack + 1
   44351     1617418 :          pack_tmp = packed_data(ipack)
   44352     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44353     1617418 :          pack_tmp = ISHFT(pack_tmp, -48)
   44354     1617418 :          idata = idata + 1
   44355     1617418 :          data_tmp = ISHFT(pack_tmp, 38)
   44356     1617418 :          ipack = ipack + 1
   44357     1617418 :          pack_tmp = packed_data(ipack)
   44358     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44359     1617418 :          pack_tmp = ISHFT(pack_tmp, -38)
   44360     1617418 :          idata = idata + 1
   44361     1617418 :          data_tmp = ISHFT(pack_tmp, 28)
   44362     1617418 :          ipack = ipack + 1
   44363     1617418 :          pack_tmp = packed_data(ipack)
   44364     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44365     1617418 :          pack_tmp = ISHFT(pack_tmp, -28)
   44366     1617418 :          idata = idata + 1
   44367     1617418 :          data_tmp = ISHFT(pack_tmp, 18)
   44368     1617418 :          ipack = ipack + 1
   44369     1617418 :          pack_tmp = packed_data(ipack)
   44370     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44371     1617418 :          pack_tmp = ISHFT(pack_tmp, -18)
   44372     1617418 :          idata = idata + 1
   44373     1617418 :          data_tmp = ISHFT(pack_tmp, 8)
   44374     1617418 :          ipack = ipack + 1
   44375     1617418 :          pack_tmp = packed_data(ipack)
   44376     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44377     1617418 :          pack_tmp = ISHFT(pack_tmp, -8)
   44378     1617418 :          idata = idata + 1
   44379     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44380     1617418 :          full_data(idata) = data_tmp
   44381     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44382     1617418 :          idata = idata + 1
   44383     1617418 :          data_tmp = ISHFT(pack_tmp, 52)
   44384     1617418 :          ipack = ipack + 1
   44385     1617418 :          pack_tmp = packed_data(ipack)
   44386     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44387     1617418 :          pack_tmp = ISHFT(pack_tmp, -52)
   44388     1617418 :          idata = idata + 1
   44389     1617418 :          data_tmp = ISHFT(pack_tmp, 42)
   44390     1617418 :          ipack = ipack + 1
   44391     1617418 :          pack_tmp = packed_data(ipack)
   44392     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44393     1617418 :          pack_tmp = ISHFT(pack_tmp, -42)
   44394     1617418 :          idata = idata + 1
   44395     1617418 :          data_tmp = ISHFT(pack_tmp, 32)
   44396     1617418 :          ipack = ipack + 1
   44397     1617418 :          pack_tmp = packed_data(ipack)
   44398     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44399     1617418 :          pack_tmp = ISHFT(pack_tmp, -32)
   44400     1617418 :          idata = idata + 1
   44401     1617418 :          data_tmp = ISHFT(pack_tmp, 22)
   44402     1617418 :          ipack = ipack + 1
   44403     1617418 :          pack_tmp = packed_data(ipack)
   44404     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44405     1617418 :          pack_tmp = ISHFT(pack_tmp, -22)
   44406     1617418 :          idata = idata + 1
   44407     1617418 :          data_tmp = ISHFT(pack_tmp, 12)
   44408     1617418 :          ipack = ipack + 1
   44409     1617418 :          pack_tmp = packed_data(ipack)
   44410     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44411     1617418 :          pack_tmp = ISHFT(pack_tmp, -12)
   44412     1617418 :          idata = idata + 1
   44413     1617418 :          data_tmp = ISHFT(pack_tmp, 2)
   44414     1617418 :          ipack = ipack + 1
   44415     1617418 :          pack_tmp = packed_data(ipack)
   44416     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44417     1617418 :          pack_tmp = ISHFT(pack_tmp, -2)
   44418     1617418 :          idata = idata + 1
   44419     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44420     1617418 :          full_data(idata) = data_tmp
   44421     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44422     1617418 :          idata = idata + 1
   44423     1617418 :          data_tmp = ISHFT(pack_tmp, 46)
   44424     1617418 :          ipack = ipack + 1
   44425     1617418 :          pack_tmp = packed_data(ipack)
   44426     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44427     1617418 :          pack_tmp = ISHFT(pack_tmp, -46)
   44428     1617418 :          idata = idata + 1
   44429     1617418 :          data_tmp = ISHFT(pack_tmp, 36)
   44430     1617418 :          ipack = ipack + 1
   44431     1617418 :          pack_tmp = packed_data(ipack)
   44432     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44433     1617418 :          pack_tmp = ISHFT(pack_tmp, -36)
   44434     1617418 :          idata = idata + 1
   44435     1617418 :          data_tmp = ISHFT(pack_tmp, 26)
   44436     1617418 :          ipack = ipack + 1
   44437     1617418 :          pack_tmp = packed_data(ipack)
   44438     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44439     1617418 :          pack_tmp = ISHFT(pack_tmp, -26)
   44440     1617418 :          idata = idata + 1
   44441     1617418 :          data_tmp = ISHFT(pack_tmp, 16)
   44442     1617418 :          ipack = ipack + 1
   44443     1617418 :          pack_tmp = packed_data(ipack)
   44444     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44445     1617418 :          pack_tmp = ISHFT(pack_tmp, -16)
   44446     1617418 :          idata = idata + 1
   44447     1617418 :          data_tmp = ISHFT(pack_tmp, 6)
   44448     1617418 :          ipack = ipack + 1
   44449     1617418 :          pack_tmp = packed_data(ipack)
   44450     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44451     1617418 :          pack_tmp = ISHFT(pack_tmp, -6)
   44452     1617418 :          idata = idata + 1
   44453     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44454     1617418 :          full_data(idata) = data_tmp
   44455     1617418 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44456     1617418 :          idata = idata + 1
   44457     1617418 :          data_tmp = ISHFT(pack_tmp, 50)
   44458     1617418 :          ipack = ipack + 1
   44459     1617418 :          pack_tmp = packed_data(ipack)
   44460     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44461     1617418 :          pack_tmp = ISHFT(pack_tmp, -50)
   44462     1617418 :          idata = idata + 1
   44463     1617418 :          data_tmp = ISHFT(pack_tmp, 40)
   44464     1617418 :          ipack = ipack + 1
   44465     1617418 :          pack_tmp = packed_data(ipack)
   44466     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44467     1617418 :          pack_tmp = ISHFT(pack_tmp, -40)
   44468     1617418 :          idata = idata + 1
   44469     1617418 :          data_tmp = ISHFT(pack_tmp, 30)
   44470     1617418 :          ipack = ipack + 1
   44471     1617418 :          pack_tmp = packed_data(ipack)
   44472     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44473     1617418 :          pack_tmp = ISHFT(pack_tmp, -30)
   44474     1617418 :          idata = idata + 1
   44475     1617418 :          data_tmp = ISHFT(pack_tmp, 20)
   44476     1617418 :          ipack = ipack + 1
   44477     1617418 :          pack_tmp = packed_data(ipack)
   44478     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44479     1617418 :          pack_tmp = ISHFT(pack_tmp, -20)
   44480     1617418 :          idata = idata + 1
   44481     1617418 :          data_tmp = ISHFT(pack_tmp, 10)
   44482     1617418 :          ipack = ipack + 1
   44483     1617418 :          pack_tmp = packed_data(ipack)
   44484     1617418 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44485     1617418 :          pack_tmp = ISHFT(pack_tmp, -10)
   44486     1617418 :          idata = idata + 1
   44487     1617418 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44488     1617418 :          full_data(idata) = data_tmp
   44489     1618272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44490             :       END DO
   44491      108592 :       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      108592 :    END SUBROUTINE bits2ints_54
   44495             : 
   44496             : ! **************************************************************************************************
   44497             : !> \brief ...
   44498             : !> \param Ndata ...
   44499             : !> \param packed_data ...
   44500             : !> \param full_data ...
   44501             : ! **************************************************************************************************
   44502       22974 :    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       22974 :       idata = 0
   44513       22974 :       ipack = 0
   44514       22974 :       Ndata_rep = (Ndata/64)*64
   44515       22974 :       DO kdata = 1, Ndata_rep, 64
   44516      365204 :          pack_tmp = 0
   44517      365204 :          idata = idata + 1
   44518      365204 :          data_tmp = full_data(idata)
   44519      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44520      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44521      365204 :          pack_tmp = ISHFT(pack_tmp, -9)
   44522      365204 :          idata = idata + 1
   44523      365204 :          data_tmp = full_data(idata)
   44524      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44525      365204 :          data_tmp = IAND(data_tmp, mask_left(9))
   44526      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44527      365204 :          ipack = ipack + 1
   44528      365204 :          packed_data(ipack) = pack_tmp
   44529      365204 :          data_tmp = full_data(idata)
   44530      365204 :          pack_tmp = ISHFT(data_tmp, 18)
   44531      365204 :          pack_tmp = ISHFT(pack_tmp, -18)
   44532      365204 :          idata = idata + 1
   44533      365204 :          data_tmp = full_data(idata)
   44534      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44535      365204 :          data_tmp = IAND(data_tmp, mask_left(18))
   44536      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44537      365204 :          ipack = ipack + 1
   44538      365204 :          packed_data(ipack) = pack_tmp
   44539      365204 :          data_tmp = full_data(idata)
   44540      365204 :          pack_tmp = ISHFT(data_tmp, 27)
   44541      365204 :          pack_tmp = ISHFT(pack_tmp, -27)
   44542      365204 :          idata = idata + 1
   44543      365204 :          data_tmp = full_data(idata)
   44544      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44545      365204 :          data_tmp = IAND(data_tmp, mask_left(27))
   44546      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44547      365204 :          ipack = ipack + 1
   44548      365204 :          packed_data(ipack) = pack_tmp
   44549      365204 :          data_tmp = full_data(idata)
   44550      365204 :          pack_tmp = ISHFT(data_tmp, 36)
   44551      365204 :          pack_tmp = ISHFT(pack_tmp, -36)
   44552      365204 :          idata = idata + 1
   44553      365204 :          data_tmp = full_data(idata)
   44554      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44555      365204 :          data_tmp = IAND(data_tmp, mask_left(36))
   44556      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44557      365204 :          ipack = ipack + 1
   44558      365204 :          packed_data(ipack) = pack_tmp
   44559      365204 :          data_tmp = full_data(idata)
   44560      365204 :          pack_tmp = ISHFT(data_tmp, 45)
   44561      365204 :          pack_tmp = ISHFT(pack_tmp, -45)
   44562      365204 :          idata = idata + 1
   44563      365204 :          data_tmp = full_data(idata)
   44564      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44565      365204 :          data_tmp = IAND(data_tmp, mask_left(45))
   44566      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44567      365204 :          ipack = ipack + 1
   44568      365204 :          packed_data(ipack) = pack_tmp
   44569      365204 :          data_tmp = full_data(idata)
   44570      365204 :          pack_tmp = ISHFT(data_tmp, 54)
   44571      365204 :          pack_tmp = ISHFT(pack_tmp, -54)
   44572      365204 :          idata = idata + 1
   44573      365204 :          data_tmp = full_data(idata)
   44574      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44575      365204 :          data_tmp = IAND(data_tmp, mask_left(54))
   44576      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44577      365204 :          ipack = ipack + 1
   44578      365204 :          packed_data(ipack) = pack_tmp
   44579      365204 :          data_tmp = full_data(idata)
   44580      365204 :          pack_tmp = ISHFT(data_tmp, 63)
   44581      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44582      365204 :          idata = idata + 1
   44583      365204 :          data_tmp = full_data(idata)
   44584      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44585      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44586      365204 :          pack_tmp = ISHFT(pack_tmp, -8)
   44587      365204 :          idata = idata + 1
   44588      365204 :          data_tmp = full_data(idata)
   44589      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44590      365204 :          data_tmp = IAND(data_tmp, mask_left(8))
   44591      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44592      365204 :          ipack = ipack + 1
   44593      365204 :          packed_data(ipack) = pack_tmp
   44594      365204 :          data_tmp = full_data(idata)
   44595      365204 :          pack_tmp = ISHFT(data_tmp, 17)
   44596      365204 :          pack_tmp = ISHFT(pack_tmp, -17)
   44597      365204 :          idata = idata + 1
   44598      365204 :          data_tmp = full_data(idata)
   44599      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44600      365204 :          data_tmp = IAND(data_tmp, mask_left(17))
   44601      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44602      365204 :          ipack = ipack + 1
   44603      365204 :          packed_data(ipack) = pack_tmp
   44604      365204 :          data_tmp = full_data(idata)
   44605      365204 :          pack_tmp = ISHFT(data_tmp, 26)
   44606      365204 :          pack_tmp = ISHFT(pack_tmp, -26)
   44607      365204 :          idata = idata + 1
   44608      365204 :          data_tmp = full_data(idata)
   44609      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44610      365204 :          data_tmp = IAND(data_tmp, mask_left(26))
   44611      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44612      365204 :          ipack = ipack + 1
   44613      365204 :          packed_data(ipack) = pack_tmp
   44614      365204 :          data_tmp = full_data(idata)
   44615      365204 :          pack_tmp = ISHFT(data_tmp, 35)
   44616      365204 :          pack_tmp = ISHFT(pack_tmp, -35)
   44617      365204 :          idata = idata + 1
   44618      365204 :          data_tmp = full_data(idata)
   44619      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44620      365204 :          data_tmp = IAND(data_tmp, mask_left(35))
   44621      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44622      365204 :          ipack = ipack + 1
   44623      365204 :          packed_data(ipack) = pack_tmp
   44624      365204 :          data_tmp = full_data(idata)
   44625      365204 :          pack_tmp = ISHFT(data_tmp, 44)
   44626      365204 :          pack_tmp = ISHFT(pack_tmp, -44)
   44627      365204 :          idata = idata + 1
   44628      365204 :          data_tmp = full_data(idata)
   44629      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44630      365204 :          data_tmp = IAND(data_tmp, mask_left(44))
   44631      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44632      365204 :          ipack = ipack + 1
   44633      365204 :          packed_data(ipack) = pack_tmp
   44634      365204 :          data_tmp = full_data(idata)
   44635      365204 :          pack_tmp = ISHFT(data_tmp, 53)
   44636      365204 :          pack_tmp = ISHFT(pack_tmp, -53)
   44637      365204 :          idata = idata + 1
   44638      365204 :          data_tmp = full_data(idata)
   44639      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44640      365204 :          data_tmp = IAND(data_tmp, mask_left(53))
   44641      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44642      365204 :          ipack = ipack + 1
   44643      365204 :          packed_data(ipack) = pack_tmp
   44644      365204 :          data_tmp = full_data(idata)
   44645      365204 :          pack_tmp = ISHFT(data_tmp, 62)
   44646      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44647      365204 :          idata = idata + 1
   44648      365204 :          data_tmp = full_data(idata)
   44649      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44650      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44651      365204 :          pack_tmp = ISHFT(pack_tmp, -7)
   44652      365204 :          idata = idata + 1
   44653      365204 :          data_tmp = full_data(idata)
   44654      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44655      365204 :          data_tmp = IAND(data_tmp, mask_left(7))
   44656      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44657      365204 :          ipack = ipack + 1
   44658      365204 :          packed_data(ipack) = pack_tmp
   44659      365204 :          data_tmp = full_data(idata)
   44660      365204 :          pack_tmp = ISHFT(data_tmp, 16)
   44661      365204 :          pack_tmp = ISHFT(pack_tmp, -16)
   44662      365204 :          idata = idata + 1
   44663      365204 :          data_tmp = full_data(idata)
   44664      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44665      365204 :          data_tmp = IAND(data_tmp, mask_left(16))
   44666      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44667      365204 :          ipack = ipack + 1
   44668      365204 :          packed_data(ipack) = pack_tmp
   44669      365204 :          data_tmp = full_data(idata)
   44670      365204 :          pack_tmp = ISHFT(data_tmp, 25)
   44671      365204 :          pack_tmp = ISHFT(pack_tmp, -25)
   44672      365204 :          idata = idata + 1
   44673      365204 :          data_tmp = full_data(idata)
   44674      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44675      365204 :          data_tmp = IAND(data_tmp, mask_left(25))
   44676      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44677      365204 :          ipack = ipack + 1
   44678      365204 :          packed_data(ipack) = pack_tmp
   44679      365204 :          data_tmp = full_data(idata)
   44680      365204 :          pack_tmp = ISHFT(data_tmp, 34)
   44681      365204 :          pack_tmp = ISHFT(pack_tmp, -34)
   44682      365204 :          idata = idata + 1
   44683      365204 :          data_tmp = full_data(idata)
   44684      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44685      365204 :          data_tmp = IAND(data_tmp, mask_left(34))
   44686      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44687      365204 :          ipack = ipack + 1
   44688      365204 :          packed_data(ipack) = pack_tmp
   44689      365204 :          data_tmp = full_data(idata)
   44690      365204 :          pack_tmp = ISHFT(data_tmp, 43)
   44691      365204 :          pack_tmp = ISHFT(pack_tmp, -43)
   44692      365204 :          idata = idata + 1
   44693      365204 :          data_tmp = full_data(idata)
   44694      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44695      365204 :          data_tmp = IAND(data_tmp, mask_left(43))
   44696      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44697      365204 :          ipack = ipack + 1
   44698      365204 :          packed_data(ipack) = pack_tmp
   44699      365204 :          data_tmp = full_data(idata)
   44700      365204 :          pack_tmp = ISHFT(data_tmp, 52)
   44701      365204 :          pack_tmp = ISHFT(pack_tmp, -52)
   44702      365204 :          idata = idata + 1
   44703      365204 :          data_tmp = full_data(idata)
   44704      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44705      365204 :          data_tmp = IAND(data_tmp, mask_left(52))
   44706      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44707      365204 :          ipack = ipack + 1
   44708      365204 :          packed_data(ipack) = pack_tmp
   44709      365204 :          data_tmp = full_data(idata)
   44710      365204 :          pack_tmp = ISHFT(data_tmp, 61)
   44711      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44712      365204 :          idata = idata + 1
   44713      365204 :          data_tmp = full_data(idata)
   44714      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44715      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44716      365204 :          pack_tmp = ISHFT(pack_tmp, -6)
   44717      365204 :          idata = idata + 1
   44718      365204 :          data_tmp = full_data(idata)
   44719      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44720      365204 :          data_tmp = IAND(data_tmp, mask_left(6))
   44721      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44722      365204 :          ipack = ipack + 1
   44723      365204 :          packed_data(ipack) = pack_tmp
   44724      365204 :          data_tmp = full_data(idata)
   44725      365204 :          pack_tmp = ISHFT(data_tmp, 15)
   44726      365204 :          pack_tmp = ISHFT(pack_tmp, -15)
   44727      365204 :          idata = idata + 1
   44728      365204 :          data_tmp = full_data(idata)
   44729      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44730      365204 :          data_tmp = IAND(data_tmp, mask_left(15))
   44731      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44732      365204 :          ipack = ipack + 1
   44733      365204 :          packed_data(ipack) = pack_tmp
   44734      365204 :          data_tmp = full_data(idata)
   44735      365204 :          pack_tmp = ISHFT(data_tmp, 24)
   44736      365204 :          pack_tmp = ISHFT(pack_tmp, -24)
   44737      365204 :          idata = idata + 1
   44738      365204 :          data_tmp = full_data(idata)
   44739      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44740      365204 :          data_tmp = IAND(data_tmp, mask_left(24))
   44741      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44742      365204 :          ipack = ipack + 1
   44743      365204 :          packed_data(ipack) = pack_tmp
   44744      365204 :          data_tmp = full_data(idata)
   44745      365204 :          pack_tmp = ISHFT(data_tmp, 33)
   44746      365204 :          pack_tmp = ISHFT(pack_tmp, -33)
   44747      365204 :          idata = idata + 1
   44748      365204 :          data_tmp = full_data(idata)
   44749      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44750      365204 :          data_tmp = IAND(data_tmp, mask_left(33))
   44751      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44752      365204 :          ipack = ipack + 1
   44753      365204 :          packed_data(ipack) = pack_tmp
   44754      365204 :          data_tmp = full_data(idata)
   44755      365204 :          pack_tmp = ISHFT(data_tmp, 42)
   44756      365204 :          pack_tmp = ISHFT(pack_tmp, -42)
   44757      365204 :          idata = idata + 1
   44758      365204 :          data_tmp = full_data(idata)
   44759      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44760      365204 :          data_tmp = IAND(data_tmp, mask_left(42))
   44761      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44762      365204 :          ipack = ipack + 1
   44763      365204 :          packed_data(ipack) = pack_tmp
   44764      365204 :          data_tmp = full_data(idata)
   44765      365204 :          pack_tmp = ISHFT(data_tmp, 51)
   44766      365204 :          pack_tmp = ISHFT(pack_tmp, -51)
   44767      365204 :          idata = idata + 1
   44768      365204 :          data_tmp = full_data(idata)
   44769      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44770      365204 :          data_tmp = IAND(data_tmp, mask_left(51))
   44771      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44772      365204 :          ipack = ipack + 1
   44773      365204 :          packed_data(ipack) = pack_tmp
   44774      365204 :          data_tmp = full_data(idata)
   44775      365204 :          pack_tmp = ISHFT(data_tmp, 60)
   44776      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44777      365204 :          idata = idata + 1
   44778      365204 :          data_tmp = full_data(idata)
   44779      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44780      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44781      365204 :          pack_tmp = ISHFT(pack_tmp, -5)
   44782      365204 :          idata = idata + 1
   44783      365204 :          data_tmp = full_data(idata)
   44784      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44785      365204 :          data_tmp = IAND(data_tmp, mask_left(5))
   44786      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44787      365204 :          ipack = ipack + 1
   44788      365204 :          packed_data(ipack) = pack_tmp
   44789      365204 :          data_tmp = full_data(idata)
   44790      365204 :          pack_tmp = ISHFT(data_tmp, 14)
   44791      365204 :          pack_tmp = ISHFT(pack_tmp, -14)
   44792      365204 :          idata = idata + 1
   44793      365204 :          data_tmp = full_data(idata)
   44794      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44795      365204 :          data_tmp = IAND(data_tmp, mask_left(14))
   44796      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44797      365204 :          ipack = ipack + 1
   44798      365204 :          packed_data(ipack) = pack_tmp
   44799      365204 :          data_tmp = full_data(idata)
   44800      365204 :          pack_tmp = ISHFT(data_tmp, 23)
   44801      365204 :          pack_tmp = ISHFT(pack_tmp, -23)
   44802      365204 :          idata = idata + 1
   44803      365204 :          data_tmp = full_data(idata)
   44804      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44805      365204 :          data_tmp = IAND(data_tmp, mask_left(23))
   44806      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44807      365204 :          ipack = ipack + 1
   44808      365204 :          packed_data(ipack) = pack_tmp
   44809      365204 :          data_tmp = full_data(idata)
   44810      365204 :          pack_tmp = ISHFT(data_tmp, 32)
   44811      365204 :          pack_tmp = ISHFT(pack_tmp, -32)
   44812      365204 :          idata = idata + 1
   44813      365204 :          data_tmp = full_data(idata)
   44814      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44815      365204 :          data_tmp = IAND(data_tmp, mask_left(32))
   44816      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44817      365204 :          ipack = ipack + 1
   44818      365204 :          packed_data(ipack) = pack_tmp
   44819      365204 :          data_tmp = full_data(idata)
   44820      365204 :          pack_tmp = ISHFT(data_tmp, 41)
   44821      365204 :          pack_tmp = ISHFT(pack_tmp, -41)
   44822      365204 :          idata = idata + 1
   44823      365204 :          data_tmp = full_data(idata)
   44824      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44825      365204 :          data_tmp = IAND(data_tmp, mask_left(41))
   44826      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44827      365204 :          ipack = ipack + 1
   44828      365204 :          packed_data(ipack) = pack_tmp
   44829      365204 :          data_tmp = full_data(idata)
   44830      365204 :          pack_tmp = ISHFT(data_tmp, 50)
   44831      365204 :          pack_tmp = ISHFT(pack_tmp, -50)
   44832      365204 :          idata = idata + 1
   44833      365204 :          data_tmp = full_data(idata)
   44834      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44835      365204 :          data_tmp = IAND(data_tmp, mask_left(50))
   44836      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44837      365204 :          ipack = ipack + 1
   44838      365204 :          packed_data(ipack) = pack_tmp
   44839      365204 :          data_tmp = full_data(idata)
   44840      365204 :          pack_tmp = ISHFT(data_tmp, 59)
   44841      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44842      365204 :          idata = idata + 1
   44843      365204 :          data_tmp = full_data(idata)
   44844      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44845      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44846      365204 :          pack_tmp = ISHFT(pack_tmp, -4)
   44847      365204 :          idata = idata + 1
   44848      365204 :          data_tmp = full_data(idata)
   44849      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44850      365204 :          data_tmp = IAND(data_tmp, mask_left(4))
   44851      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44852      365204 :          ipack = ipack + 1
   44853      365204 :          packed_data(ipack) = pack_tmp
   44854      365204 :          data_tmp = full_data(idata)
   44855      365204 :          pack_tmp = ISHFT(data_tmp, 13)
   44856      365204 :          pack_tmp = ISHFT(pack_tmp, -13)
   44857      365204 :          idata = idata + 1
   44858      365204 :          data_tmp = full_data(idata)
   44859      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44860      365204 :          data_tmp = IAND(data_tmp, mask_left(13))
   44861      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44862      365204 :          ipack = ipack + 1
   44863      365204 :          packed_data(ipack) = pack_tmp
   44864      365204 :          data_tmp = full_data(idata)
   44865      365204 :          pack_tmp = ISHFT(data_tmp, 22)
   44866      365204 :          pack_tmp = ISHFT(pack_tmp, -22)
   44867      365204 :          idata = idata + 1
   44868      365204 :          data_tmp = full_data(idata)
   44869      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44870      365204 :          data_tmp = IAND(data_tmp, mask_left(22))
   44871      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44872      365204 :          ipack = ipack + 1
   44873      365204 :          packed_data(ipack) = pack_tmp
   44874      365204 :          data_tmp = full_data(idata)
   44875      365204 :          pack_tmp = ISHFT(data_tmp, 31)
   44876      365204 :          pack_tmp = ISHFT(pack_tmp, -31)
   44877      365204 :          idata = idata + 1
   44878      365204 :          data_tmp = full_data(idata)
   44879      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44880      365204 :          data_tmp = IAND(data_tmp, mask_left(31))
   44881      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44882      365204 :          ipack = ipack + 1
   44883      365204 :          packed_data(ipack) = pack_tmp
   44884      365204 :          data_tmp = full_data(idata)
   44885      365204 :          pack_tmp = ISHFT(data_tmp, 40)
   44886      365204 :          pack_tmp = ISHFT(pack_tmp, -40)
   44887      365204 :          idata = idata + 1
   44888      365204 :          data_tmp = full_data(idata)
   44889      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44890      365204 :          data_tmp = IAND(data_tmp, mask_left(40))
   44891      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44892      365204 :          ipack = ipack + 1
   44893      365204 :          packed_data(ipack) = pack_tmp
   44894      365204 :          data_tmp = full_data(idata)
   44895      365204 :          pack_tmp = ISHFT(data_tmp, 49)
   44896      365204 :          pack_tmp = ISHFT(pack_tmp, -49)
   44897      365204 :          idata = idata + 1
   44898      365204 :          data_tmp = full_data(idata)
   44899      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44900      365204 :          data_tmp = IAND(data_tmp, mask_left(49))
   44901      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44902      365204 :          ipack = ipack + 1
   44903      365204 :          packed_data(ipack) = pack_tmp
   44904      365204 :          data_tmp = full_data(idata)
   44905      365204 :          pack_tmp = ISHFT(data_tmp, 58)
   44906      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44907      365204 :          idata = idata + 1
   44908      365204 :          data_tmp = full_data(idata)
   44909      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44910      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44911      365204 :          pack_tmp = ISHFT(pack_tmp, -3)
   44912      365204 :          idata = idata + 1
   44913      365204 :          data_tmp = full_data(idata)
   44914      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44915      365204 :          data_tmp = IAND(data_tmp, mask_left(3))
   44916      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44917      365204 :          ipack = ipack + 1
   44918      365204 :          packed_data(ipack) = pack_tmp
   44919      365204 :          data_tmp = full_data(idata)
   44920      365204 :          pack_tmp = ISHFT(data_tmp, 12)
   44921      365204 :          pack_tmp = ISHFT(pack_tmp, -12)
   44922      365204 :          idata = idata + 1
   44923      365204 :          data_tmp = full_data(idata)
   44924      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44925      365204 :          data_tmp = IAND(data_tmp, mask_left(12))
   44926      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44927      365204 :          ipack = ipack + 1
   44928      365204 :          packed_data(ipack) = pack_tmp
   44929      365204 :          data_tmp = full_data(idata)
   44930      365204 :          pack_tmp = ISHFT(data_tmp, 21)
   44931      365204 :          pack_tmp = ISHFT(pack_tmp, -21)
   44932      365204 :          idata = idata + 1
   44933      365204 :          data_tmp = full_data(idata)
   44934      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44935      365204 :          data_tmp = IAND(data_tmp, mask_left(21))
   44936      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44937      365204 :          ipack = ipack + 1
   44938      365204 :          packed_data(ipack) = pack_tmp
   44939      365204 :          data_tmp = full_data(idata)
   44940      365204 :          pack_tmp = ISHFT(data_tmp, 30)
   44941      365204 :          pack_tmp = ISHFT(pack_tmp, -30)
   44942      365204 :          idata = idata + 1
   44943      365204 :          data_tmp = full_data(idata)
   44944      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44945      365204 :          data_tmp = IAND(data_tmp, mask_left(30))
   44946      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44947      365204 :          ipack = ipack + 1
   44948      365204 :          packed_data(ipack) = pack_tmp
   44949      365204 :          data_tmp = full_data(idata)
   44950      365204 :          pack_tmp = ISHFT(data_tmp, 39)
   44951      365204 :          pack_tmp = ISHFT(pack_tmp, -39)
   44952      365204 :          idata = idata + 1
   44953      365204 :          data_tmp = full_data(idata)
   44954      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44955      365204 :          data_tmp = IAND(data_tmp, mask_left(39))
   44956      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44957      365204 :          ipack = ipack + 1
   44958      365204 :          packed_data(ipack) = pack_tmp
   44959      365204 :          data_tmp = full_data(idata)
   44960      365204 :          pack_tmp = ISHFT(data_tmp, 48)
   44961      365204 :          pack_tmp = ISHFT(pack_tmp, -48)
   44962      365204 :          idata = idata + 1
   44963      365204 :          data_tmp = full_data(idata)
   44964      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44965      365204 :          data_tmp = IAND(data_tmp, mask_left(48))
   44966      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44967      365204 :          ipack = ipack + 1
   44968      365204 :          packed_data(ipack) = pack_tmp
   44969      365204 :          data_tmp = full_data(idata)
   44970      365204 :          pack_tmp = ISHFT(data_tmp, 57)
   44971      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   44972      365204 :          idata = idata + 1
   44973      365204 :          data_tmp = full_data(idata)
   44974      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44975      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44976      365204 :          pack_tmp = ISHFT(pack_tmp, -2)
   44977      365204 :          idata = idata + 1
   44978      365204 :          data_tmp = full_data(idata)
   44979      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44980      365204 :          data_tmp = IAND(data_tmp, mask_left(2))
   44981      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44982      365204 :          ipack = ipack + 1
   44983      365204 :          packed_data(ipack) = pack_tmp
   44984      365204 :          data_tmp = full_data(idata)
   44985      365204 :          pack_tmp = ISHFT(data_tmp, 11)
   44986      365204 :          pack_tmp = ISHFT(pack_tmp, -11)
   44987      365204 :          idata = idata + 1
   44988      365204 :          data_tmp = full_data(idata)
   44989      365204 :          data_tmp = ISHFT(data_tmp, 9)
   44990      365204 :          data_tmp = IAND(data_tmp, mask_left(11))
   44991      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44992      365204 :          ipack = ipack + 1
   44993      365204 :          packed_data(ipack) = pack_tmp
   44994      365204 :          data_tmp = full_data(idata)
   44995      365204 :          pack_tmp = ISHFT(data_tmp, 20)
   44996      365204 :          pack_tmp = ISHFT(pack_tmp, -20)
   44997      365204 :          idata = idata + 1
   44998      365204 :          data_tmp = full_data(idata)
   44999      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45000      365204 :          data_tmp = IAND(data_tmp, mask_left(20))
   45001      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45002      365204 :          ipack = ipack + 1
   45003      365204 :          packed_data(ipack) = pack_tmp
   45004      365204 :          data_tmp = full_data(idata)
   45005      365204 :          pack_tmp = ISHFT(data_tmp, 29)
   45006      365204 :          pack_tmp = ISHFT(pack_tmp, -29)
   45007      365204 :          idata = idata + 1
   45008      365204 :          data_tmp = full_data(idata)
   45009      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45010      365204 :          data_tmp = IAND(data_tmp, mask_left(29))
   45011      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45012      365204 :          ipack = ipack + 1
   45013      365204 :          packed_data(ipack) = pack_tmp
   45014      365204 :          data_tmp = full_data(idata)
   45015      365204 :          pack_tmp = ISHFT(data_tmp, 38)
   45016      365204 :          pack_tmp = ISHFT(pack_tmp, -38)
   45017      365204 :          idata = idata + 1
   45018      365204 :          data_tmp = full_data(idata)
   45019      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45020      365204 :          data_tmp = IAND(data_tmp, mask_left(38))
   45021      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45022      365204 :          ipack = ipack + 1
   45023      365204 :          packed_data(ipack) = pack_tmp
   45024      365204 :          data_tmp = full_data(idata)
   45025      365204 :          pack_tmp = ISHFT(data_tmp, 47)
   45026      365204 :          pack_tmp = ISHFT(pack_tmp, -47)
   45027      365204 :          idata = idata + 1
   45028      365204 :          data_tmp = full_data(idata)
   45029      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45030      365204 :          data_tmp = IAND(data_tmp, mask_left(47))
   45031      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45032      365204 :          ipack = ipack + 1
   45033      365204 :          packed_data(ipack) = pack_tmp
   45034      365204 :          data_tmp = full_data(idata)
   45035      365204 :          pack_tmp = ISHFT(data_tmp, 56)
   45036      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   45037      365204 :          idata = idata + 1
   45038      365204 :          data_tmp = full_data(idata)
   45039      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45040      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45041      365204 :          pack_tmp = ISHFT(pack_tmp, -1)
   45042      365204 :          idata = idata + 1
   45043      365204 :          data_tmp = full_data(idata)
   45044      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45045      365204 :          data_tmp = IAND(data_tmp, mask_left(1))
   45046      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45047      365204 :          ipack = ipack + 1
   45048      365204 :          packed_data(ipack) = pack_tmp
   45049      365204 :          data_tmp = full_data(idata)
   45050      365204 :          pack_tmp = ISHFT(data_tmp, 10)
   45051      365204 :          pack_tmp = ISHFT(pack_tmp, -10)
   45052      365204 :          idata = idata + 1
   45053      365204 :          data_tmp = full_data(idata)
   45054      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45055      365204 :          data_tmp = IAND(data_tmp, mask_left(10))
   45056      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45057      365204 :          ipack = ipack + 1
   45058      365204 :          packed_data(ipack) = pack_tmp
   45059      365204 :          data_tmp = full_data(idata)
   45060      365204 :          pack_tmp = ISHFT(data_tmp, 19)
   45061      365204 :          pack_tmp = ISHFT(pack_tmp, -19)
   45062      365204 :          idata = idata + 1
   45063      365204 :          data_tmp = full_data(idata)
   45064      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45065      365204 :          data_tmp = IAND(data_tmp, mask_left(19))
   45066      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45067      365204 :          ipack = ipack + 1
   45068      365204 :          packed_data(ipack) = pack_tmp
   45069      365204 :          data_tmp = full_data(idata)
   45070      365204 :          pack_tmp = ISHFT(data_tmp, 28)
   45071      365204 :          pack_tmp = ISHFT(pack_tmp, -28)
   45072      365204 :          idata = idata + 1
   45073      365204 :          data_tmp = full_data(idata)
   45074      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45075      365204 :          data_tmp = IAND(data_tmp, mask_left(28))
   45076      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45077      365204 :          ipack = ipack + 1
   45078      365204 :          packed_data(ipack) = pack_tmp
   45079      365204 :          data_tmp = full_data(idata)
   45080      365204 :          pack_tmp = ISHFT(data_tmp, 37)
   45081      365204 :          pack_tmp = ISHFT(pack_tmp, -37)
   45082      365204 :          idata = idata + 1
   45083      365204 :          data_tmp = full_data(idata)
   45084      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45085      365204 :          data_tmp = IAND(data_tmp, mask_left(37))
   45086      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45087      365204 :          ipack = ipack + 1
   45088      365204 :          packed_data(ipack) = pack_tmp
   45089      365204 :          data_tmp = full_data(idata)
   45090      365204 :          pack_tmp = ISHFT(data_tmp, 46)
   45091      365204 :          pack_tmp = ISHFT(pack_tmp, -46)
   45092      365204 :          idata = idata + 1
   45093      365204 :          data_tmp = full_data(idata)
   45094      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45095      365204 :          data_tmp = IAND(data_tmp, mask_left(46))
   45096      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45097      365204 :          ipack = ipack + 1
   45098      365204 :          packed_data(ipack) = pack_tmp
   45099      365204 :          data_tmp = full_data(idata)
   45100      365204 :          pack_tmp = ISHFT(data_tmp, 55)
   45101      365204 :          pack_tmp = ISHFT(pack_tmp, -55)
   45102      365204 :          idata = idata + 1
   45103      365204 :          data_tmp = full_data(idata)
   45104      365204 :          data_tmp = ISHFT(data_tmp, 9)
   45105      365204 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45106             :          pack_tmp = ISHFT(pack_tmp, 0)
   45107      365204 :          pack_tmp = ISHFT(pack_tmp, 0)
   45108      365204 :          ipack = ipack + 1
   45109      365218 :          packed_data(ipack) = pack_tmp
   45110             :       END DO
   45111       22974 :       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       22974 :    END SUBROUTINE ints2bits_55
   45115             : 
   45116             : ! **************************************************************************************************
   45117             : !> \brief ...
   45118             : !> \param Ndata ...
   45119             : !> \param packed_data ...
   45120             : !> \param full_data ...
   45121             : ! **************************************************************************************************
   45122      104540 :    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      104540 :       ipack = 0
   45133      104540 :       idata = 0
   45134      104540 :       pack_tmp = 0
   45135      104540 :       Ndata_rep = (Ndata/64)*64
   45136      104540 :       DO kdata = 1, Ndata_rep, 64
   45137     1583934 :          idata = idata + 1
   45138     1583934 :          data_tmp = ISHFT(pack_tmp, 55)
   45139     1583934 :          ipack = ipack + 1
   45140     1583934 :          pack_tmp = packed_data(ipack)
   45141     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   45142     1583934 :          pack_tmp = ISHFT(pack_tmp, -55)
   45143     1583934 :          idata = idata + 1
   45144     1583934 :          data_tmp = ISHFT(pack_tmp, 46)
   45145     1583934 :          ipack = ipack + 1
   45146     1583934 :          pack_tmp = packed_data(ipack)
   45147     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   45148     1583934 :          pack_tmp = ISHFT(pack_tmp, -46)
   45149     1583934 :          idata = idata + 1
   45150     1583934 :          data_tmp = ISHFT(pack_tmp, 37)
   45151     1583934 :          ipack = ipack + 1
   45152     1583934 :          pack_tmp = packed_data(ipack)
   45153     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   45154     1583934 :          pack_tmp = ISHFT(pack_tmp, -37)
   45155     1583934 :          idata = idata + 1
   45156     1583934 :          data_tmp = ISHFT(pack_tmp, 28)
   45157     1583934 :          ipack = ipack + 1
   45158     1583934 :          pack_tmp = packed_data(ipack)
   45159     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   45160     1583934 :          pack_tmp = ISHFT(pack_tmp, -28)
   45161     1583934 :          idata = idata + 1
   45162     1583934 :          data_tmp = ISHFT(pack_tmp, 19)
   45163     1583934 :          ipack = ipack + 1
   45164     1583934 :          pack_tmp = packed_data(ipack)
   45165     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   45166     1583934 :          pack_tmp = ISHFT(pack_tmp, -19)
   45167     1583934 :          idata = idata + 1
   45168     1583934 :          data_tmp = ISHFT(pack_tmp, 10)
   45169     1583934 :          ipack = ipack + 1
   45170     1583934 :          pack_tmp = packed_data(ipack)
   45171     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   45172     1583934 :          pack_tmp = ISHFT(pack_tmp, -10)
   45173     1583934 :          idata = idata + 1
   45174     1583934 :          data_tmp = ISHFT(pack_tmp, 1)
   45175     1583934 :          ipack = ipack + 1
   45176     1583934 :          pack_tmp = packed_data(ipack)
   45177     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   45178     1583934 :          pack_tmp = ISHFT(pack_tmp, -1)
   45179     1583934 :          idata = idata + 1
   45180     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45181     1583934 :          full_data(idata) = data_tmp
   45182     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45183     1583934 :          idata = idata + 1
   45184     1583934 :          data_tmp = ISHFT(pack_tmp, 47)
   45185     1583934 :          ipack = ipack + 1
   45186     1583934 :          pack_tmp = packed_data(ipack)
   45187     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   45188     1583934 :          pack_tmp = ISHFT(pack_tmp, -47)
   45189     1583934 :          idata = idata + 1
   45190     1583934 :          data_tmp = ISHFT(pack_tmp, 38)
   45191     1583934 :          ipack = ipack + 1
   45192     1583934 :          pack_tmp = packed_data(ipack)
   45193     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   45194     1583934 :          pack_tmp = ISHFT(pack_tmp, -38)
   45195     1583934 :          idata = idata + 1
   45196     1583934 :          data_tmp = ISHFT(pack_tmp, 29)
   45197     1583934 :          ipack = ipack + 1
   45198     1583934 :          pack_tmp = packed_data(ipack)
   45199     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   45200     1583934 :          pack_tmp = ISHFT(pack_tmp, -29)
   45201     1583934 :          idata = idata + 1
   45202     1583934 :          data_tmp = ISHFT(pack_tmp, 20)
   45203     1583934 :          ipack = ipack + 1
   45204     1583934 :          pack_tmp = packed_data(ipack)
   45205     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   45206     1583934 :          pack_tmp = ISHFT(pack_tmp, -20)
   45207     1583934 :          idata = idata + 1
   45208     1583934 :          data_tmp = ISHFT(pack_tmp, 11)
   45209     1583934 :          ipack = ipack + 1
   45210     1583934 :          pack_tmp = packed_data(ipack)
   45211     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   45212     1583934 :          pack_tmp = ISHFT(pack_tmp, -11)
   45213     1583934 :          idata = idata + 1
   45214     1583934 :          data_tmp = ISHFT(pack_tmp, 2)
   45215     1583934 :          ipack = ipack + 1
   45216     1583934 :          pack_tmp = packed_data(ipack)
   45217     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   45218     1583934 :          pack_tmp = ISHFT(pack_tmp, -2)
   45219     1583934 :          idata = idata + 1
   45220     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45221     1583934 :          full_data(idata) = data_tmp
   45222     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45223     1583934 :          idata = idata + 1
   45224     1583934 :          data_tmp = ISHFT(pack_tmp, 48)
   45225     1583934 :          ipack = ipack + 1
   45226     1583934 :          pack_tmp = packed_data(ipack)
   45227     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   45228     1583934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45229     1583934 :          idata = idata + 1
   45230     1583934 :          data_tmp = ISHFT(pack_tmp, 39)
   45231     1583934 :          ipack = ipack + 1
   45232     1583934 :          pack_tmp = packed_data(ipack)
   45233     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   45234     1583934 :          pack_tmp = ISHFT(pack_tmp, -39)
   45235     1583934 :          idata = idata + 1
   45236     1583934 :          data_tmp = ISHFT(pack_tmp, 30)
   45237     1583934 :          ipack = ipack + 1
   45238     1583934 :          pack_tmp = packed_data(ipack)
   45239     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   45240     1583934 :          pack_tmp = ISHFT(pack_tmp, -30)
   45241     1583934 :          idata = idata + 1
   45242     1583934 :          data_tmp = ISHFT(pack_tmp, 21)
   45243     1583934 :          ipack = ipack + 1
   45244     1583934 :          pack_tmp = packed_data(ipack)
   45245     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   45246     1583934 :          pack_tmp = ISHFT(pack_tmp, -21)
   45247     1583934 :          idata = idata + 1
   45248     1583934 :          data_tmp = ISHFT(pack_tmp, 12)
   45249     1583934 :          ipack = ipack + 1
   45250     1583934 :          pack_tmp = packed_data(ipack)
   45251     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   45252     1583934 :          pack_tmp = ISHFT(pack_tmp, -12)
   45253     1583934 :          idata = idata + 1
   45254     1583934 :          data_tmp = ISHFT(pack_tmp, 3)
   45255     1583934 :          ipack = ipack + 1
   45256     1583934 :          pack_tmp = packed_data(ipack)
   45257     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   45258     1583934 :          pack_tmp = ISHFT(pack_tmp, -3)
   45259     1583934 :          idata = idata + 1
   45260     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45261     1583934 :          full_data(idata) = data_tmp
   45262     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45263     1583934 :          idata = idata + 1
   45264     1583934 :          data_tmp = ISHFT(pack_tmp, 49)
   45265     1583934 :          ipack = ipack + 1
   45266     1583934 :          pack_tmp = packed_data(ipack)
   45267     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   45268     1583934 :          pack_tmp = ISHFT(pack_tmp, -49)
   45269     1583934 :          idata = idata + 1
   45270     1583934 :          data_tmp = ISHFT(pack_tmp, 40)
   45271     1583934 :          ipack = ipack + 1
   45272     1583934 :          pack_tmp = packed_data(ipack)
   45273     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   45274     1583934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45275     1583934 :          idata = idata + 1
   45276     1583934 :          data_tmp = ISHFT(pack_tmp, 31)
   45277     1583934 :          ipack = ipack + 1
   45278     1583934 :          pack_tmp = packed_data(ipack)
   45279     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   45280     1583934 :          pack_tmp = ISHFT(pack_tmp, -31)
   45281     1583934 :          idata = idata + 1
   45282     1583934 :          data_tmp = ISHFT(pack_tmp, 22)
   45283     1583934 :          ipack = ipack + 1
   45284     1583934 :          pack_tmp = packed_data(ipack)
   45285     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   45286     1583934 :          pack_tmp = ISHFT(pack_tmp, -22)
   45287     1583934 :          idata = idata + 1
   45288     1583934 :          data_tmp = ISHFT(pack_tmp, 13)
   45289     1583934 :          ipack = ipack + 1
   45290     1583934 :          pack_tmp = packed_data(ipack)
   45291     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   45292     1583934 :          pack_tmp = ISHFT(pack_tmp, -13)
   45293     1583934 :          idata = idata + 1
   45294     1583934 :          data_tmp = ISHFT(pack_tmp, 4)
   45295     1583934 :          ipack = ipack + 1
   45296     1583934 :          pack_tmp = packed_data(ipack)
   45297     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   45298     1583934 :          pack_tmp = ISHFT(pack_tmp, -4)
   45299     1583934 :          idata = idata + 1
   45300     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45301     1583934 :          full_data(idata) = data_tmp
   45302     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45303     1583934 :          idata = idata + 1
   45304     1583934 :          data_tmp = ISHFT(pack_tmp, 50)
   45305     1583934 :          ipack = ipack + 1
   45306     1583934 :          pack_tmp = packed_data(ipack)
   45307     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   45308     1583934 :          pack_tmp = ISHFT(pack_tmp, -50)
   45309     1583934 :          idata = idata + 1
   45310     1583934 :          data_tmp = ISHFT(pack_tmp, 41)
   45311     1583934 :          ipack = ipack + 1
   45312     1583934 :          pack_tmp = packed_data(ipack)
   45313     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   45314     1583934 :          pack_tmp = ISHFT(pack_tmp, -41)
   45315     1583934 :          idata = idata + 1
   45316     1583934 :          data_tmp = ISHFT(pack_tmp, 32)
   45317     1583934 :          ipack = ipack + 1
   45318     1583934 :          pack_tmp = packed_data(ipack)
   45319     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   45320     1583934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45321     1583934 :          idata = idata + 1
   45322     1583934 :          data_tmp = ISHFT(pack_tmp, 23)
   45323     1583934 :          ipack = ipack + 1
   45324     1583934 :          pack_tmp = packed_data(ipack)
   45325     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   45326     1583934 :          pack_tmp = ISHFT(pack_tmp, -23)
   45327     1583934 :          idata = idata + 1
   45328     1583934 :          data_tmp = ISHFT(pack_tmp, 14)
   45329     1583934 :          ipack = ipack + 1
   45330     1583934 :          pack_tmp = packed_data(ipack)
   45331     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   45332     1583934 :          pack_tmp = ISHFT(pack_tmp, -14)
   45333     1583934 :          idata = idata + 1
   45334     1583934 :          data_tmp = ISHFT(pack_tmp, 5)
   45335     1583934 :          ipack = ipack + 1
   45336     1583934 :          pack_tmp = packed_data(ipack)
   45337     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   45338     1583934 :          pack_tmp = ISHFT(pack_tmp, -5)
   45339     1583934 :          idata = idata + 1
   45340     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45341     1583934 :          full_data(idata) = data_tmp
   45342     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45343     1583934 :          idata = idata + 1
   45344     1583934 :          data_tmp = ISHFT(pack_tmp, 51)
   45345     1583934 :          ipack = ipack + 1
   45346     1583934 :          pack_tmp = packed_data(ipack)
   45347     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   45348     1583934 :          pack_tmp = ISHFT(pack_tmp, -51)
   45349     1583934 :          idata = idata + 1
   45350     1583934 :          data_tmp = ISHFT(pack_tmp, 42)
   45351     1583934 :          ipack = ipack + 1
   45352     1583934 :          pack_tmp = packed_data(ipack)
   45353     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   45354     1583934 :          pack_tmp = ISHFT(pack_tmp, -42)
   45355     1583934 :          idata = idata + 1
   45356     1583934 :          data_tmp = ISHFT(pack_tmp, 33)
   45357     1583934 :          ipack = ipack + 1
   45358     1583934 :          pack_tmp = packed_data(ipack)
   45359     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   45360     1583934 :          pack_tmp = ISHFT(pack_tmp, -33)
   45361     1583934 :          idata = idata + 1
   45362     1583934 :          data_tmp = ISHFT(pack_tmp, 24)
   45363     1583934 :          ipack = ipack + 1
   45364     1583934 :          pack_tmp = packed_data(ipack)
   45365     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   45366     1583934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45367     1583934 :          idata = idata + 1
   45368     1583934 :          data_tmp = ISHFT(pack_tmp, 15)
   45369     1583934 :          ipack = ipack + 1
   45370     1583934 :          pack_tmp = packed_data(ipack)
   45371     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   45372     1583934 :          pack_tmp = ISHFT(pack_tmp, -15)
   45373     1583934 :          idata = idata + 1
   45374     1583934 :          data_tmp = ISHFT(pack_tmp, 6)
   45375     1583934 :          ipack = ipack + 1
   45376     1583934 :          pack_tmp = packed_data(ipack)
   45377     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   45378     1583934 :          pack_tmp = ISHFT(pack_tmp, -6)
   45379     1583934 :          idata = idata + 1
   45380     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45381     1583934 :          full_data(idata) = data_tmp
   45382     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45383     1583934 :          idata = idata + 1
   45384     1583934 :          data_tmp = ISHFT(pack_tmp, 52)
   45385     1583934 :          ipack = ipack + 1
   45386     1583934 :          pack_tmp = packed_data(ipack)
   45387     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   45388     1583934 :          pack_tmp = ISHFT(pack_tmp, -52)
   45389     1583934 :          idata = idata + 1
   45390     1583934 :          data_tmp = ISHFT(pack_tmp, 43)
   45391     1583934 :          ipack = ipack + 1
   45392     1583934 :          pack_tmp = packed_data(ipack)
   45393     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   45394     1583934 :          pack_tmp = ISHFT(pack_tmp, -43)
   45395     1583934 :          idata = idata + 1
   45396     1583934 :          data_tmp = ISHFT(pack_tmp, 34)
   45397     1583934 :          ipack = ipack + 1
   45398     1583934 :          pack_tmp = packed_data(ipack)
   45399     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   45400     1583934 :          pack_tmp = ISHFT(pack_tmp, -34)
   45401     1583934 :          idata = idata + 1
   45402     1583934 :          data_tmp = ISHFT(pack_tmp, 25)
   45403     1583934 :          ipack = ipack + 1
   45404     1583934 :          pack_tmp = packed_data(ipack)
   45405     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   45406     1583934 :          pack_tmp = ISHFT(pack_tmp, -25)
   45407     1583934 :          idata = idata + 1
   45408     1583934 :          data_tmp = ISHFT(pack_tmp, 16)
   45409     1583934 :          ipack = ipack + 1
   45410     1583934 :          pack_tmp = packed_data(ipack)
   45411     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   45412     1583934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45413     1583934 :          idata = idata + 1
   45414     1583934 :          data_tmp = ISHFT(pack_tmp, 7)
   45415     1583934 :          ipack = ipack + 1
   45416     1583934 :          pack_tmp = packed_data(ipack)
   45417     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   45418     1583934 :          pack_tmp = ISHFT(pack_tmp, -7)
   45419     1583934 :          idata = idata + 1
   45420     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45421     1583934 :          full_data(idata) = data_tmp
   45422     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45423     1583934 :          idata = idata + 1
   45424     1583934 :          data_tmp = ISHFT(pack_tmp, 53)
   45425     1583934 :          ipack = ipack + 1
   45426     1583934 :          pack_tmp = packed_data(ipack)
   45427     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   45428     1583934 :          pack_tmp = ISHFT(pack_tmp, -53)
   45429     1583934 :          idata = idata + 1
   45430     1583934 :          data_tmp = ISHFT(pack_tmp, 44)
   45431     1583934 :          ipack = ipack + 1
   45432     1583934 :          pack_tmp = packed_data(ipack)
   45433     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   45434     1583934 :          pack_tmp = ISHFT(pack_tmp, -44)
   45435     1583934 :          idata = idata + 1
   45436     1583934 :          data_tmp = ISHFT(pack_tmp, 35)
   45437     1583934 :          ipack = ipack + 1
   45438     1583934 :          pack_tmp = packed_data(ipack)
   45439     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   45440     1583934 :          pack_tmp = ISHFT(pack_tmp, -35)
   45441     1583934 :          idata = idata + 1
   45442     1583934 :          data_tmp = ISHFT(pack_tmp, 26)
   45443     1583934 :          ipack = ipack + 1
   45444     1583934 :          pack_tmp = packed_data(ipack)
   45445     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   45446     1583934 :          pack_tmp = ISHFT(pack_tmp, -26)
   45447     1583934 :          idata = idata + 1
   45448     1583934 :          data_tmp = ISHFT(pack_tmp, 17)
   45449     1583934 :          ipack = ipack + 1
   45450     1583934 :          pack_tmp = packed_data(ipack)
   45451     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   45452     1583934 :          pack_tmp = ISHFT(pack_tmp, -17)
   45453     1583934 :          idata = idata + 1
   45454     1583934 :          data_tmp = ISHFT(pack_tmp, 8)
   45455     1583934 :          ipack = ipack + 1
   45456     1583934 :          pack_tmp = packed_data(ipack)
   45457     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   45458     1583934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45459     1583934 :          idata = idata + 1
   45460     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45461     1583934 :          full_data(idata) = data_tmp
   45462     1583934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45463     1583934 :          idata = idata + 1
   45464     1583934 :          data_tmp = ISHFT(pack_tmp, 54)
   45465     1583934 :          ipack = ipack + 1
   45466     1583934 :          pack_tmp = packed_data(ipack)
   45467     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   45468     1583934 :          pack_tmp = ISHFT(pack_tmp, -54)
   45469     1583934 :          idata = idata + 1
   45470     1583934 :          data_tmp = ISHFT(pack_tmp, 45)
   45471     1583934 :          ipack = ipack + 1
   45472     1583934 :          pack_tmp = packed_data(ipack)
   45473     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   45474     1583934 :          pack_tmp = ISHFT(pack_tmp, -45)
   45475     1583934 :          idata = idata + 1
   45476     1583934 :          data_tmp = ISHFT(pack_tmp, 36)
   45477     1583934 :          ipack = ipack + 1
   45478     1583934 :          pack_tmp = packed_data(ipack)
   45479     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   45480     1583934 :          pack_tmp = ISHFT(pack_tmp, -36)
   45481     1583934 :          idata = idata + 1
   45482     1583934 :          data_tmp = ISHFT(pack_tmp, 27)
   45483     1583934 :          ipack = ipack + 1
   45484     1583934 :          pack_tmp = packed_data(ipack)
   45485     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   45486     1583934 :          pack_tmp = ISHFT(pack_tmp, -27)
   45487     1583934 :          idata = idata + 1
   45488     1583934 :          data_tmp = ISHFT(pack_tmp, 18)
   45489     1583934 :          ipack = ipack + 1
   45490     1583934 :          pack_tmp = packed_data(ipack)
   45491     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   45492     1583934 :          pack_tmp = ISHFT(pack_tmp, -18)
   45493     1583934 :          idata = idata + 1
   45494     1583934 :          data_tmp = ISHFT(pack_tmp, 9)
   45495     1583934 :          ipack = ipack + 1
   45496     1583934 :          pack_tmp = packed_data(ipack)
   45497     1583934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   45498     1583934 :          pack_tmp = ISHFT(pack_tmp, -9)
   45499     1583934 :          idata = idata + 1
   45500     1583934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45501     1583934 :          full_data(idata) = data_tmp
   45502     1584434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45503             :       END DO
   45504      104540 :       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      104540 :    END SUBROUTINE bits2ints_55
   45508             : 
   45509             : ! **************************************************************************************************
   45510             : !> \brief ...
   45511             : !> \param Ndata ...
   45512             : !> \param packed_data ...
   45513             : !> \param full_data ...
   45514             : ! **************************************************************************************************
   45515       22816 :    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       22816 :       idata = 0
   45526       22816 :       ipack = 0
   45527       22816 :       Ndata_rep = (Ndata/64)*64
   45528       22816 :       DO kdata = 1, Ndata_rep, 64
   45529      363934 :          pack_tmp = 0
   45530      363934 :          idata = idata + 1
   45531      363934 :          data_tmp = full_data(idata)
   45532      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45533      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45534      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45535      363934 :          idata = idata + 1
   45536      363934 :          data_tmp = full_data(idata)
   45537      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45538      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45539      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45540      363934 :          ipack = ipack + 1
   45541      363934 :          packed_data(ipack) = pack_tmp
   45542      363934 :          data_tmp = full_data(idata)
   45543      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45544      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45545      363934 :          idata = idata + 1
   45546      363934 :          data_tmp = full_data(idata)
   45547      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45548      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45549      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45550      363934 :          ipack = ipack + 1
   45551      363934 :          packed_data(ipack) = pack_tmp
   45552      363934 :          data_tmp = full_data(idata)
   45553      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45554      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45555      363934 :          idata = idata + 1
   45556      363934 :          data_tmp = full_data(idata)
   45557      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45558      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45559      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45560      363934 :          ipack = ipack + 1
   45561      363934 :          packed_data(ipack) = pack_tmp
   45562      363934 :          data_tmp = full_data(idata)
   45563      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45564      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45565      363934 :          idata = idata + 1
   45566      363934 :          data_tmp = full_data(idata)
   45567      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45568      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45569      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45570      363934 :          ipack = ipack + 1
   45571      363934 :          packed_data(ipack) = pack_tmp
   45572      363934 :          data_tmp = full_data(idata)
   45573      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45574      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45575      363934 :          idata = idata + 1
   45576      363934 :          data_tmp = full_data(idata)
   45577      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45578      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45579      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45580      363934 :          ipack = ipack + 1
   45581      363934 :          packed_data(ipack) = pack_tmp
   45582      363934 :          data_tmp = full_data(idata)
   45583      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45584      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45585      363934 :          idata = idata + 1
   45586      363934 :          data_tmp = full_data(idata)
   45587      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45588      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45589      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45590      363934 :          ipack = ipack + 1
   45591      363934 :          packed_data(ipack) = pack_tmp
   45592      363934 :          data_tmp = full_data(idata)
   45593      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45594      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45595      363934 :          idata = idata + 1
   45596      363934 :          data_tmp = full_data(idata)
   45597      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45598      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45599      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45600      363934 :          idata = idata + 1
   45601      363934 :          data_tmp = full_data(idata)
   45602      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45603      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45604      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45605      363934 :          ipack = ipack + 1
   45606      363934 :          packed_data(ipack) = pack_tmp
   45607      363934 :          data_tmp = full_data(idata)
   45608      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45609      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45610      363934 :          idata = idata + 1
   45611      363934 :          data_tmp = full_data(idata)
   45612      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45613      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45614      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45615      363934 :          ipack = ipack + 1
   45616      363934 :          packed_data(ipack) = pack_tmp
   45617      363934 :          data_tmp = full_data(idata)
   45618      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45619      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45620      363934 :          idata = idata + 1
   45621      363934 :          data_tmp = full_data(idata)
   45622      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45623      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45624      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45625      363934 :          ipack = ipack + 1
   45626      363934 :          packed_data(ipack) = pack_tmp
   45627      363934 :          data_tmp = full_data(idata)
   45628      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45629      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45630      363934 :          idata = idata + 1
   45631      363934 :          data_tmp = full_data(idata)
   45632      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45633      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45634      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45635      363934 :          ipack = ipack + 1
   45636      363934 :          packed_data(ipack) = pack_tmp
   45637      363934 :          data_tmp = full_data(idata)
   45638      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45639      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45640      363934 :          idata = idata + 1
   45641      363934 :          data_tmp = full_data(idata)
   45642      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45643      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45644      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45645      363934 :          ipack = ipack + 1
   45646      363934 :          packed_data(ipack) = pack_tmp
   45647      363934 :          data_tmp = full_data(idata)
   45648      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45649      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45650      363934 :          idata = idata + 1
   45651      363934 :          data_tmp = full_data(idata)
   45652      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45653      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45654      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45655      363934 :          ipack = ipack + 1
   45656      363934 :          packed_data(ipack) = pack_tmp
   45657      363934 :          data_tmp = full_data(idata)
   45658      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45659      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45660      363934 :          idata = idata + 1
   45661      363934 :          data_tmp = full_data(idata)
   45662      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45663      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45664      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45665      363934 :          ipack = ipack + 1
   45666      363934 :          packed_data(ipack) = pack_tmp
   45667      363934 :          data_tmp = full_data(idata)
   45668      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45669      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45670      363934 :          idata = idata + 1
   45671      363934 :          data_tmp = full_data(idata)
   45672      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45673      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45674      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45675      363934 :          idata = idata + 1
   45676      363934 :          data_tmp = full_data(idata)
   45677      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45678      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45679      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45680      363934 :          ipack = ipack + 1
   45681      363934 :          packed_data(ipack) = pack_tmp
   45682      363934 :          data_tmp = full_data(idata)
   45683      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45684      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45685      363934 :          idata = idata + 1
   45686      363934 :          data_tmp = full_data(idata)
   45687      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45688      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45689      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45690      363934 :          ipack = ipack + 1
   45691      363934 :          packed_data(ipack) = pack_tmp
   45692      363934 :          data_tmp = full_data(idata)
   45693      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45694      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45695      363934 :          idata = idata + 1
   45696      363934 :          data_tmp = full_data(idata)
   45697      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45698      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45699      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45700      363934 :          ipack = ipack + 1
   45701      363934 :          packed_data(ipack) = pack_tmp
   45702      363934 :          data_tmp = full_data(idata)
   45703      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45704      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45705      363934 :          idata = idata + 1
   45706      363934 :          data_tmp = full_data(idata)
   45707      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45708      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45709      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45710      363934 :          ipack = ipack + 1
   45711      363934 :          packed_data(ipack) = pack_tmp
   45712      363934 :          data_tmp = full_data(idata)
   45713      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45714      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45715      363934 :          idata = idata + 1
   45716      363934 :          data_tmp = full_data(idata)
   45717      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45718      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45719      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45720      363934 :          ipack = ipack + 1
   45721      363934 :          packed_data(ipack) = pack_tmp
   45722      363934 :          data_tmp = full_data(idata)
   45723      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45724      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45725      363934 :          idata = idata + 1
   45726      363934 :          data_tmp = full_data(idata)
   45727      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45728      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45729      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45730      363934 :          ipack = ipack + 1
   45731      363934 :          packed_data(ipack) = pack_tmp
   45732      363934 :          data_tmp = full_data(idata)
   45733      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45734      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45735      363934 :          idata = idata + 1
   45736      363934 :          data_tmp = full_data(idata)
   45737      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45738      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45739      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45740      363934 :          ipack = ipack + 1
   45741      363934 :          packed_data(ipack) = pack_tmp
   45742      363934 :          data_tmp = full_data(idata)
   45743      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45744      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45745      363934 :          idata = idata + 1
   45746      363934 :          data_tmp = full_data(idata)
   45747      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45748      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45749      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45750      363934 :          idata = idata + 1
   45751      363934 :          data_tmp = full_data(idata)
   45752      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45753      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45754      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45755      363934 :          ipack = ipack + 1
   45756      363934 :          packed_data(ipack) = pack_tmp
   45757      363934 :          data_tmp = full_data(idata)
   45758      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45759      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45760      363934 :          idata = idata + 1
   45761      363934 :          data_tmp = full_data(idata)
   45762      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45763      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45764      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45765      363934 :          ipack = ipack + 1
   45766      363934 :          packed_data(ipack) = pack_tmp
   45767      363934 :          data_tmp = full_data(idata)
   45768      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45769      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45770      363934 :          idata = idata + 1
   45771      363934 :          data_tmp = full_data(idata)
   45772      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45773      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45774      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45775      363934 :          ipack = ipack + 1
   45776      363934 :          packed_data(ipack) = pack_tmp
   45777      363934 :          data_tmp = full_data(idata)
   45778      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45779      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45780      363934 :          idata = idata + 1
   45781      363934 :          data_tmp = full_data(idata)
   45782      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45783      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45784      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45785      363934 :          ipack = ipack + 1
   45786      363934 :          packed_data(ipack) = pack_tmp
   45787      363934 :          data_tmp = full_data(idata)
   45788      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45789      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45790      363934 :          idata = idata + 1
   45791      363934 :          data_tmp = full_data(idata)
   45792      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45793      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45794      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45795      363934 :          ipack = ipack + 1
   45796      363934 :          packed_data(ipack) = pack_tmp
   45797      363934 :          data_tmp = full_data(idata)
   45798      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45799      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45800      363934 :          idata = idata + 1
   45801      363934 :          data_tmp = full_data(idata)
   45802      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45803      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45804      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45805      363934 :          ipack = ipack + 1
   45806      363934 :          packed_data(ipack) = pack_tmp
   45807      363934 :          data_tmp = full_data(idata)
   45808      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45809      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45810      363934 :          idata = idata + 1
   45811      363934 :          data_tmp = full_data(idata)
   45812      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45813      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45814      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45815      363934 :          ipack = ipack + 1
   45816      363934 :          packed_data(ipack) = pack_tmp
   45817      363934 :          data_tmp = full_data(idata)
   45818      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45819      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45820      363934 :          idata = idata + 1
   45821      363934 :          data_tmp = full_data(idata)
   45822      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45823      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45824      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45825      363934 :          idata = idata + 1
   45826      363934 :          data_tmp = full_data(idata)
   45827      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45828      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45829      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45830      363934 :          ipack = ipack + 1
   45831      363934 :          packed_data(ipack) = pack_tmp
   45832      363934 :          data_tmp = full_data(idata)
   45833      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45834      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45835      363934 :          idata = idata + 1
   45836      363934 :          data_tmp = full_data(idata)
   45837      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45838      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45839      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45840      363934 :          ipack = ipack + 1
   45841      363934 :          packed_data(ipack) = pack_tmp
   45842      363934 :          data_tmp = full_data(idata)
   45843      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45844      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45845      363934 :          idata = idata + 1
   45846      363934 :          data_tmp = full_data(idata)
   45847      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45848      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45849      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45850      363934 :          ipack = ipack + 1
   45851      363934 :          packed_data(ipack) = pack_tmp
   45852      363934 :          data_tmp = full_data(idata)
   45853      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45854      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45855      363934 :          idata = idata + 1
   45856      363934 :          data_tmp = full_data(idata)
   45857      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45858      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45859      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45860      363934 :          ipack = ipack + 1
   45861      363934 :          packed_data(ipack) = pack_tmp
   45862      363934 :          data_tmp = full_data(idata)
   45863      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45864      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45865      363934 :          idata = idata + 1
   45866      363934 :          data_tmp = full_data(idata)
   45867      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45868      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45869      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45870      363934 :          ipack = ipack + 1
   45871      363934 :          packed_data(ipack) = pack_tmp
   45872      363934 :          data_tmp = full_data(idata)
   45873      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45874      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45875      363934 :          idata = idata + 1
   45876      363934 :          data_tmp = full_data(idata)
   45877      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45878      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45879      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45880      363934 :          ipack = ipack + 1
   45881      363934 :          packed_data(ipack) = pack_tmp
   45882      363934 :          data_tmp = full_data(idata)
   45883      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45884      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45885      363934 :          idata = idata + 1
   45886      363934 :          data_tmp = full_data(idata)
   45887      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45888      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45889      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45890      363934 :          ipack = ipack + 1
   45891      363934 :          packed_data(ipack) = pack_tmp
   45892      363934 :          data_tmp = full_data(idata)
   45893      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45894      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45895      363934 :          idata = idata + 1
   45896      363934 :          data_tmp = full_data(idata)
   45897      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45898      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45899      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45900      363934 :          idata = idata + 1
   45901      363934 :          data_tmp = full_data(idata)
   45902      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45903      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45904      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45905      363934 :          ipack = ipack + 1
   45906      363934 :          packed_data(ipack) = pack_tmp
   45907      363934 :          data_tmp = full_data(idata)
   45908      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45909      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45910      363934 :          idata = idata + 1
   45911      363934 :          data_tmp = full_data(idata)
   45912      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45913      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45914      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45915      363934 :          ipack = ipack + 1
   45916      363934 :          packed_data(ipack) = pack_tmp
   45917      363934 :          data_tmp = full_data(idata)
   45918      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45919      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45920      363934 :          idata = idata + 1
   45921      363934 :          data_tmp = full_data(idata)
   45922      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45923      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45924      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45925      363934 :          ipack = ipack + 1
   45926      363934 :          packed_data(ipack) = pack_tmp
   45927      363934 :          data_tmp = full_data(idata)
   45928      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   45929      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   45930      363934 :          idata = idata + 1
   45931      363934 :          data_tmp = full_data(idata)
   45932      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45933      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   45934      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45935      363934 :          ipack = ipack + 1
   45936      363934 :          packed_data(ipack) = pack_tmp
   45937      363934 :          data_tmp = full_data(idata)
   45938      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   45939      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   45940      363934 :          idata = idata + 1
   45941      363934 :          data_tmp = full_data(idata)
   45942      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45943      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   45944      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45945      363934 :          ipack = ipack + 1
   45946      363934 :          packed_data(ipack) = pack_tmp
   45947      363934 :          data_tmp = full_data(idata)
   45948      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   45949      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   45950      363934 :          idata = idata + 1
   45951      363934 :          data_tmp = full_data(idata)
   45952      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45953      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   45954      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45955      363934 :          ipack = ipack + 1
   45956      363934 :          packed_data(ipack) = pack_tmp
   45957      363934 :          data_tmp = full_data(idata)
   45958      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   45959      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   45960      363934 :          idata = idata + 1
   45961      363934 :          data_tmp = full_data(idata)
   45962      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45963      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   45964      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45965      363934 :          ipack = ipack + 1
   45966      363934 :          packed_data(ipack) = pack_tmp
   45967      363934 :          data_tmp = full_data(idata)
   45968      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   45969      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   45970      363934 :          idata = idata + 1
   45971      363934 :          data_tmp = full_data(idata)
   45972      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45973      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45974      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   45975      363934 :          idata = idata + 1
   45976      363934 :          data_tmp = full_data(idata)
   45977      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45978      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   45979      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45980      363934 :          ipack = ipack + 1
   45981      363934 :          packed_data(ipack) = pack_tmp
   45982      363934 :          data_tmp = full_data(idata)
   45983      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   45984      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   45985      363934 :          idata = idata + 1
   45986      363934 :          data_tmp = full_data(idata)
   45987      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45988      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   45989      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45990      363934 :          ipack = ipack + 1
   45991      363934 :          packed_data(ipack) = pack_tmp
   45992      363934 :          data_tmp = full_data(idata)
   45993      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   45994      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   45995      363934 :          idata = idata + 1
   45996      363934 :          data_tmp = full_data(idata)
   45997      363934 :          data_tmp = ISHFT(data_tmp, 8)
   45998      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   45999      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46000      363934 :          ipack = ipack + 1
   46001      363934 :          packed_data(ipack) = pack_tmp
   46002      363934 :          data_tmp = full_data(idata)
   46003      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   46004      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   46005      363934 :          idata = idata + 1
   46006      363934 :          data_tmp = full_data(idata)
   46007      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46008      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   46009      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46010      363934 :          ipack = ipack + 1
   46011      363934 :          packed_data(ipack) = pack_tmp
   46012      363934 :          data_tmp = full_data(idata)
   46013      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   46014      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   46015      363934 :          idata = idata + 1
   46016      363934 :          data_tmp = full_data(idata)
   46017      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46018      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   46019      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46020      363934 :          ipack = ipack + 1
   46021      363934 :          packed_data(ipack) = pack_tmp
   46022      363934 :          data_tmp = full_data(idata)
   46023      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   46024      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   46025      363934 :          idata = idata + 1
   46026      363934 :          data_tmp = full_data(idata)
   46027      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46028      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   46029      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46030      363934 :          ipack = ipack + 1
   46031      363934 :          packed_data(ipack) = pack_tmp
   46032      363934 :          data_tmp = full_data(idata)
   46033      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   46034      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   46035      363934 :          idata = idata + 1
   46036      363934 :          data_tmp = full_data(idata)
   46037      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46038      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   46039      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46040      363934 :          ipack = ipack + 1
   46041      363934 :          packed_data(ipack) = pack_tmp
   46042      363934 :          data_tmp = full_data(idata)
   46043      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   46044      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   46045      363934 :          idata = idata + 1
   46046      363934 :          data_tmp = full_data(idata)
   46047      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46048      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46049      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   46050      363934 :          idata = idata + 1
   46051      363934 :          data_tmp = full_data(idata)
   46052      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46053      363934 :          data_tmp = IAND(data_tmp, mask_left(0))
   46054      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46055      363934 :          ipack = ipack + 1
   46056      363934 :          packed_data(ipack) = pack_tmp
   46057      363934 :          data_tmp = full_data(idata)
   46058      363934 :          pack_tmp = ISHFT(data_tmp, 8)
   46059      363934 :          pack_tmp = ISHFT(pack_tmp, -8)
   46060      363934 :          idata = idata + 1
   46061      363934 :          data_tmp = full_data(idata)
   46062      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46063      363934 :          data_tmp = IAND(data_tmp, mask_left(8))
   46064      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46065      363934 :          ipack = ipack + 1
   46066      363934 :          packed_data(ipack) = pack_tmp
   46067      363934 :          data_tmp = full_data(idata)
   46068      363934 :          pack_tmp = ISHFT(data_tmp, 16)
   46069      363934 :          pack_tmp = ISHFT(pack_tmp, -16)
   46070      363934 :          idata = idata + 1
   46071      363934 :          data_tmp = full_data(idata)
   46072      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46073      363934 :          data_tmp = IAND(data_tmp, mask_left(16))
   46074      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46075      363934 :          ipack = ipack + 1
   46076      363934 :          packed_data(ipack) = pack_tmp
   46077      363934 :          data_tmp = full_data(idata)
   46078      363934 :          pack_tmp = ISHFT(data_tmp, 24)
   46079      363934 :          pack_tmp = ISHFT(pack_tmp, -24)
   46080      363934 :          idata = idata + 1
   46081      363934 :          data_tmp = full_data(idata)
   46082      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46083      363934 :          data_tmp = IAND(data_tmp, mask_left(24))
   46084      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46085      363934 :          ipack = ipack + 1
   46086      363934 :          packed_data(ipack) = pack_tmp
   46087      363934 :          data_tmp = full_data(idata)
   46088      363934 :          pack_tmp = ISHFT(data_tmp, 32)
   46089      363934 :          pack_tmp = ISHFT(pack_tmp, -32)
   46090      363934 :          idata = idata + 1
   46091      363934 :          data_tmp = full_data(idata)
   46092      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46093      363934 :          data_tmp = IAND(data_tmp, mask_left(32))
   46094      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46095      363934 :          ipack = ipack + 1
   46096      363934 :          packed_data(ipack) = pack_tmp
   46097      363934 :          data_tmp = full_data(idata)
   46098      363934 :          pack_tmp = ISHFT(data_tmp, 40)
   46099      363934 :          pack_tmp = ISHFT(pack_tmp, -40)
   46100      363934 :          idata = idata + 1
   46101      363934 :          data_tmp = full_data(idata)
   46102      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46103      363934 :          data_tmp = IAND(data_tmp, mask_left(40))
   46104      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46105      363934 :          ipack = ipack + 1
   46106      363934 :          packed_data(ipack) = pack_tmp
   46107      363934 :          data_tmp = full_data(idata)
   46108      363934 :          pack_tmp = ISHFT(data_tmp, 48)
   46109      363934 :          pack_tmp = ISHFT(pack_tmp, -48)
   46110      363934 :          idata = idata + 1
   46111      363934 :          data_tmp = full_data(idata)
   46112      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46113      363934 :          data_tmp = IAND(data_tmp, mask_left(48))
   46114      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46115      363934 :          ipack = ipack + 1
   46116      363934 :          packed_data(ipack) = pack_tmp
   46117      363934 :          data_tmp = full_data(idata)
   46118      363934 :          pack_tmp = ISHFT(data_tmp, 56)
   46119      363934 :          pack_tmp = ISHFT(pack_tmp, -56)
   46120      363934 :          idata = idata + 1
   46121      363934 :          data_tmp = full_data(idata)
   46122      363934 :          data_tmp = ISHFT(data_tmp, 8)
   46123      363934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46124             :          pack_tmp = ISHFT(pack_tmp, 0)
   46125      363934 :          pack_tmp = ISHFT(pack_tmp, 0)
   46126      363934 :          ipack = ipack + 1
   46127      363940 :          packed_data(ipack) = pack_tmp
   46128             :       END DO
   46129       22816 :       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       22816 :    END SUBROUTINE ints2bits_56
   46133             : 
   46134             : ! **************************************************************************************************
   46135             : !> \brief ...
   46136             : !> \param Ndata ...
   46137             : !> \param packed_data ...
   46138             : !> \param full_data ...
   46139             : ! **************************************************************************************************
   46140      100464 :    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      100464 :       ipack = 0
   46151      100464 :       idata = 0
   46152      100464 :       pack_tmp = 0
   46153      100464 :       Ndata_rep = (Ndata/64)*64
   46154      100464 :       DO kdata = 1, Ndata_rep, 64
   46155     1549182 :          idata = idata + 1
   46156     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46157     1549182 :          ipack = ipack + 1
   46158     1549182 :          pack_tmp = packed_data(ipack)
   46159     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46160     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46161     1549182 :          idata = idata + 1
   46162     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46163     1549182 :          ipack = ipack + 1
   46164     1549182 :          pack_tmp = packed_data(ipack)
   46165     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46166     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46167     1549182 :          idata = idata + 1
   46168     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46169     1549182 :          ipack = ipack + 1
   46170     1549182 :          pack_tmp = packed_data(ipack)
   46171     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46172     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46173     1549182 :          idata = idata + 1
   46174     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46175     1549182 :          ipack = ipack + 1
   46176     1549182 :          pack_tmp = packed_data(ipack)
   46177     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46178     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46179     1549182 :          idata = idata + 1
   46180     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46181     1549182 :          ipack = ipack + 1
   46182     1549182 :          pack_tmp = packed_data(ipack)
   46183     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46184     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46185     1549182 :          idata = idata + 1
   46186     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46187     1549182 :          ipack = ipack + 1
   46188     1549182 :          pack_tmp = packed_data(ipack)
   46189     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46190     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46191     1549182 :          idata = idata + 1
   46192     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46193     1549182 :          ipack = ipack + 1
   46194     1549182 :          pack_tmp = packed_data(ipack)
   46195     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46196     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46197     1549182 :          idata = idata + 1
   46198     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46199     1549182 :          full_data(idata) = data_tmp
   46200     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46201     1549182 :          idata = idata + 1
   46202     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46203     1549182 :          ipack = ipack + 1
   46204     1549182 :          pack_tmp = packed_data(ipack)
   46205     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46206     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46207     1549182 :          idata = idata + 1
   46208     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46209     1549182 :          ipack = ipack + 1
   46210     1549182 :          pack_tmp = packed_data(ipack)
   46211     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46212     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46213     1549182 :          idata = idata + 1
   46214     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46215     1549182 :          ipack = ipack + 1
   46216     1549182 :          pack_tmp = packed_data(ipack)
   46217     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46218     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46219     1549182 :          idata = idata + 1
   46220     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46221     1549182 :          ipack = ipack + 1
   46222     1549182 :          pack_tmp = packed_data(ipack)
   46223     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46224     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46225     1549182 :          idata = idata + 1
   46226     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46227     1549182 :          ipack = ipack + 1
   46228     1549182 :          pack_tmp = packed_data(ipack)
   46229     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46230     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46231     1549182 :          idata = idata + 1
   46232     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46233     1549182 :          ipack = ipack + 1
   46234     1549182 :          pack_tmp = packed_data(ipack)
   46235     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46236     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46237     1549182 :          idata = idata + 1
   46238     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46239     1549182 :          ipack = ipack + 1
   46240     1549182 :          pack_tmp = packed_data(ipack)
   46241     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46242     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46243     1549182 :          idata = idata + 1
   46244     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46245     1549182 :          full_data(idata) = data_tmp
   46246     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46247     1549182 :          idata = idata + 1
   46248     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46249     1549182 :          ipack = ipack + 1
   46250     1549182 :          pack_tmp = packed_data(ipack)
   46251     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46252     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46253     1549182 :          idata = idata + 1
   46254     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46255     1549182 :          ipack = ipack + 1
   46256     1549182 :          pack_tmp = packed_data(ipack)
   46257     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46258     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46259     1549182 :          idata = idata + 1
   46260     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46261     1549182 :          ipack = ipack + 1
   46262     1549182 :          pack_tmp = packed_data(ipack)
   46263     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46264     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46265     1549182 :          idata = idata + 1
   46266     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46267     1549182 :          ipack = ipack + 1
   46268     1549182 :          pack_tmp = packed_data(ipack)
   46269     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46270     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46271     1549182 :          idata = idata + 1
   46272     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46273     1549182 :          ipack = ipack + 1
   46274     1549182 :          pack_tmp = packed_data(ipack)
   46275     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46276     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46277     1549182 :          idata = idata + 1
   46278     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46279     1549182 :          ipack = ipack + 1
   46280     1549182 :          pack_tmp = packed_data(ipack)
   46281     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46282     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46283     1549182 :          idata = idata + 1
   46284     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46285     1549182 :          ipack = ipack + 1
   46286     1549182 :          pack_tmp = packed_data(ipack)
   46287     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46288     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46289     1549182 :          idata = idata + 1
   46290     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46291     1549182 :          full_data(idata) = data_tmp
   46292     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46293     1549182 :          idata = idata + 1
   46294     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46295     1549182 :          ipack = ipack + 1
   46296     1549182 :          pack_tmp = packed_data(ipack)
   46297     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46298     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46299     1549182 :          idata = idata + 1
   46300     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46301     1549182 :          ipack = ipack + 1
   46302     1549182 :          pack_tmp = packed_data(ipack)
   46303     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46304     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46305     1549182 :          idata = idata + 1
   46306     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46307     1549182 :          ipack = ipack + 1
   46308     1549182 :          pack_tmp = packed_data(ipack)
   46309     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46310     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46311     1549182 :          idata = idata + 1
   46312     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46313     1549182 :          ipack = ipack + 1
   46314     1549182 :          pack_tmp = packed_data(ipack)
   46315     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46316     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46317     1549182 :          idata = idata + 1
   46318     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46319     1549182 :          ipack = ipack + 1
   46320     1549182 :          pack_tmp = packed_data(ipack)
   46321     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46322     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46323     1549182 :          idata = idata + 1
   46324     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46325     1549182 :          ipack = ipack + 1
   46326     1549182 :          pack_tmp = packed_data(ipack)
   46327     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46328     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46329     1549182 :          idata = idata + 1
   46330     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46331     1549182 :          ipack = ipack + 1
   46332     1549182 :          pack_tmp = packed_data(ipack)
   46333     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46334     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46335     1549182 :          idata = idata + 1
   46336     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46337     1549182 :          full_data(idata) = data_tmp
   46338     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46339     1549182 :          idata = idata + 1
   46340     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46341     1549182 :          ipack = ipack + 1
   46342     1549182 :          pack_tmp = packed_data(ipack)
   46343     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46344     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46345     1549182 :          idata = idata + 1
   46346     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46347     1549182 :          ipack = ipack + 1
   46348     1549182 :          pack_tmp = packed_data(ipack)
   46349     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46350     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46351     1549182 :          idata = idata + 1
   46352     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46353     1549182 :          ipack = ipack + 1
   46354     1549182 :          pack_tmp = packed_data(ipack)
   46355     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46356     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46357     1549182 :          idata = idata + 1
   46358     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46359     1549182 :          ipack = ipack + 1
   46360     1549182 :          pack_tmp = packed_data(ipack)
   46361     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46362     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46363     1549182 :          idata = idata + 1
   46364     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46365     1549182 :          ipack = ipack + 1
   46366     1549182 :          pack_tmp = packed_data(ipack)
   46367     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46368     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46369     1549182 :          idata = idata + 1
   46370     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46371     1549182 :          ipack = ipack + 1
   46372     1549182 :          pack_tmp = packed_data(ipack)
   46373     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46374     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46375     1549182 :          idata = idata + 1
   46376     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46377     1549182 :          ipack = ipack + 1
   46378     1549182 :          pack_tmp = packed_data(ipack)
   46379     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46380     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46381     1549182 :          idata = idata + 1
   46382     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46383     1549182 :          full_data(idata) = data_tmp
   46384     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46385     1549182 :          idata = idata + 1
   46386     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46387     1549182 :          ipack = ipack + 1
   46388     1549182 :          pack_tmp = packed_data(ipack)
   46389     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46390     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46391     1549182 :          idata = idata + 1
   46392     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46393     1549182 :          ipack = ipack + 1
   46394     1549182 :          pack_tmp = packed_data(ipack)
   46395     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46396     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46397     1549182 :          idata = idata + 1
   46398     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46399     1549182 :          ipack = ipack + 1
   46400     1549182 :          pack_tmp = packed_data(ipack)
   46401     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46402     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46403     1549182 :          idata = idata + 1
   46404     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46405     1549182 :          ipack = ipack + 1
   46406     1549182 :          pack_tmp = packed_data(ipack)
   46407     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46408     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46409     1549182 :          idata = idata + 1
   46410     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46411     1549182 :          ipack = ipack + 1
   46412     1549182 :          pack_tmp = packed_data(ipack)
   46413     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46414     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46415     1549182 :          idata = idata + 1
   46416     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46417     1549182 :          ipack = ipack + 1
   46418     1549182 :          pack_tmp = packed_data(ipack)
   46419     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46420     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46421     1549182 :          idata = idata + 1
   46422     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46423     1549182 :          ipack = ipack + 1
   46424     1549182 :          pack_tmp = packed_data(ipack)
   46425     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46426     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46427     1549182 :          idata = idata + 1
   46428     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46429     1549182 :          full_data(idata) = data_tmp
   46430     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46431     1549182 :          idata = idata + 1
   46432     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46433     1549182 :          ipack = ipack + 1
   46434     1549182 :          pack_tmp = packed_data(ipack)
   46435     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46436     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46437     1549182 :          idata = idata + 1
   46438     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46439     1549182 :          ipack = ipack + 1
   46440     1549182 :          pack_tmp = packed_data(ipack)
   46441     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46442     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46443     1549182 :          idata = idata + 1
   46444     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46445     1549182 :          ipack = ipack + 1
   46446     1549182 :          pack_tmp = packed_data(ipack)
   46447     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46448     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46449     1549182 :          idata = idata + 1
   46450     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46451     1549182 :          ipack = ipack + 1
   46452     1549182 :          pack_tmp = packed_data(ipack)
   46453     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46454     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46455     1549182 :          idata = idata + 1
   46456     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46457     1549182 :          ipack = ipack + 1
   46458     1549182 :          pack_tmp = packed_data(ipack)
   46459     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46460     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46461     1549182 :          idata = idata + 1
   46462     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46463     1549182 :          ipack = ipack + 1
   46464     1549182 :          pack_tmp = packed_data(ipack)
   46465     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46466     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46467     1549182 :          idata = idata + 1
   46468     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46469     1549182 :          ipack = ipack + 1
   46470     1549182 :          pack_tmp = packed_data(ipack)
   46471     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46472     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46473     1549182 :          idata = idata + 1
   46474     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46475     1549182 :          full_data(idata) = data_tmp
   46476     1549182 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46477     1549182 :          idata = idata + 1
   46478     1549182 :          data_tmp = ISHFT(pack_tmp, 56)
   46479     1549182 :          ipack = ipack + 1
   46480     1549182 :          pack_tmp = packed_data(ipack)
   46481     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46482     1549182 :          pack_tmp = ISHFT(pack_tmp, -56)
   46483     1549182 :          idata = idata + 1
   46484     1549182 :          data_tmp = ISHFT(pack_tmp, 48)
   46485     1549182 :          ipack = ipack + 1
   46486     1549182 :          pack_tmp = packed_data(ipack)
   46487     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46488     1549182 :          pack_tmp = ISHFT(pack_tmp, -48)
   46489     1549182 :          idata = idata + 1
   46490     1549182 :          data_tmp = ISHFT(pack_tmp, 40)
   46491     1549182 :          ipack = ipack + 1
   46492     1549182 :          pack_tmp = packed_data(ipack)
   46493     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46494     1549182 :          pack_tmp = ISHFT(pack_tmp, -40)
   46495     1549182 :          idata = idata + 1
   46496     1549182 :          data_tmp = ISHFT(pack_tmp, 32)
   46497     1549182 :          ipack = ipack + 1
   46498     1549182 :          pack_tmp = packed_data(ipack)
   46499     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46500     1549182 :          pack_tmp = ISHFT(pack_tmp, -32)
   46501     1549182 :          idata = idata + 1
   46502     1549182 :          data_tmp = ISHFT(pack_tmp, 24)
   46503     1549182 :          ipack = ipack + 1
   46504     1549182 :          pack_tmp = packed_data(ipack)
   46505     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46506     1549182 :          pack_tmp = ISHFT(pack_tmp, -24)
   46507     1549182 :          idata = idata + 1
   46508     1549182 :          data_tmp = ISHFT(pack_tmp, 16)
   46509     1549182 :          ipack = ipack + 1
   46510     1549182 :          pack_tmp = packed_data(ipack)
   46511     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46512     1549182 :          pack_tmp = ISHFT(pack_tmp, -16)
   46513     1549182 :          idata = idata + 1
   46514     1549182 :          data_tmp = ISHFT(pack_tmp, 8)
   46515     1549182 :          ipack = ipack + 1
   46516     1549182 :          pack_tmp = packed_data(ipack)
   46517     1549182 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46518     1549182 :          pack_tmp = ISHFT(pack_tmp, -8)
   46519     1549182 :          idata = idata + 1
   46520     1549182 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46521     1549182 :          full_data(idata) = data_tmp
   46522     1549548 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46523             :       END DO
   46524      100464 :       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      100464 :    END SUBROUTINE bits2ints_56
   46528             : 
   46529             : ! **************************************************************************************************
   46530             : !> \brief ...
   46531             : !> \param Ndata ...
   46532             : !> \param packed_data ...
   46533             : !> \param full_data ...
   46534             : ! **************************************************************************************************
   46535       22740 :    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       22740 :       idata = 0
   46546       22740 :       ipack = 0
   46547       22740 :       Ndata_rep = (Ndata/64)*64
   46548       22740 :       DO kdata = 1, Ndata_rep, 64
   46549      363330 :          pack_tmp = 0
   46550      363330 :          idata = idata + 1
   46551      363330 :          data_tmp = full_data(idata)
   46552      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46553      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46554      363330 :          pack_tmp = ISHFT(pack_tmp, -7)
   46555      363330 :          idata = idata + 1
   46556      363330 :          data_tmp = full_data(idata)
   46557      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46558      363330 :          data_tmp = IAND(data_tmp, mask_left(7))
   46559      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46560      363330 :          ipack = ipack + 1
   46561      363330 :          packed_data(ipack) = pack_tmp
   46562      363330 :          data_tmp = full_data(idata)
   46563      363330 :          pack_tmp = ISHFT(data_tmp, 14)
   46564      363330 :          pack_tmp = ISHFT(pack_tmp, -14)
   46565      363330 :          idata = idata + 1
   46566      363330 :          data_tmp = full_data(idata)
   46567      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46568      363330 :          data_tmp = IAND(data_tmp, mask_left(14))
   46569      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46570      363330 :          ipack = ipack + 1
   46571      363330 :          packed_data(ipack) = pack_tmp
   46572      363330 :          data_tmp = full_data(idata)
   46573      363330 :          pack_tmp = ISHFT(data_tmp, 21)
   46574      363330 :          pack_tmp = ISHFT(pack_tmp, -21)
   46575      363330 :          idata = idata + 1
   46576      363330 :          data_tmp = full_data(idata)
   46577      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46578      363330 :          data_tmp = IAND(data_tmp, mask_left(21))
   46579      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46580      363330 :          ipack = ipack + 1
   46581      363330 :          packed_data(ipack) = pack_tmp
   46582      363330 :          data_tmp = full_data(idata)
   46583      363330 :          pack_tmp = ISHFT(data_tmp, 28)
   46584      363330 :          pack_tmp = ISHFT(pack_tmp, -28)
   46585      363330 :          idata = idata + 1
   46586      363330 :          data_tmp = full_data(idata)
   46587      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46588      363330 :          data_tmp = IAND(data_tmp, mask_left(28))
   46589      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46590      363330 :          ipack = ipack + 1
   46591      363330 :          packed_data(ipack) = pack_tmp
   46592      363330 :          data_tmp = full_data(idata)
   46593      363330 :          pack_tmp = ISHFT(data_tmp, 35)
   46594      363330 :          pack_tmp = ISHFT(pack_tmp, -35)
   46595      363330 :          idata = idata + 1
   46596      363330 :          data_tmp = full_data(idata)
   46597      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46598      363330 :          data_tmp = IAND(data_tmp, mask_left(35))
   46599      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46600      363330 :          ipack = ipack + 1
   46601      363330 :          packed_data(ipack) = pack_tmp
   46602      363330 :          data_tmp = full_data(idata)
   46603      363330 :          pack_tmp = ISHFT(data_tmp, 42)
   46604      363330 :          pack_tmp = ISHFT(pack_tmp, -42)
   46605      363330 :          idata = idata + 1
   46606      363330 :          data_tmp = full_data(idata)
   46607      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46608      363330 :          data_tmp = IAND(data_tmp, mask_left(42))
   46609      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46610      363330 :          ipack = ipack + 1
   46611      363330 :          packed_data(ipack) = pack_tmp
   46612      363330 :          data_tmp = full_data(idata)
   46613      363330 :          pack_tmp = ISHFT(data_tmp, 49)
   46614      363330 :          pack_tmp = ISHFT(pack_tmp, -49)
   46615      363330 :          idata = idata + 1
   46616      363330 :          data_tmp = full_data(idata)
   46617      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46618      363330 :          data_tmp = IAND(data_tmp, mask_left(49))
   46619      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46620      363330 :          ipack = ipack + 1
   46621      363330 :          packed_data(ipack) = pack_tmp
   46622      363330 :          data_tmp = full_data(idata)
   46623      363330 :          pack_tmp = ISHFT(data_tmp, 56)
   46624      363330 :          pack_tmp = ISHFT(pack_tmp, -56)
   46625      363330 :          idata = idata + 1
   46626      363330 :          data_tmp = full_data(idata)
   46627      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46628      363330 :          data_tmp = IAND(data_tmp, mask_left(56))
   46629      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46630      363330 :          ipack = ipack + 1
   46631      363330 :          packed_data(ipack) = pack_tmp
   46632      363330 :          data_tmp = full_data(idata)
   46633      363330 :          pack_tmp = ISHFT(data_tmp, 63)
   46634      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   46635      363330 :          idata = idata + 1
   46636      363330 :          data_tmp = full_data(idata)
   46637      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46638      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46639      363330 :          pack_tmp = ISHFT(pack_tmp, -6)
   46640      363330 :          idata = idata + 1
   46641      363330 :          data_tmp = full_data(idata)
   46642      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46643      363330 :          data_tmp = IAND(data_tmp, mask_left(6))
   46644      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46645      363330 :          ipack = ipack + 1
   46646      363330 :          packed_data(ipack) = pack_tmp
   46647      363330 :          data_tmp = full_data(idata)
   46648      363330 :          pack_tmp = ISHFT(data_tmp, 13)
   46649      363330 :          pack_tmp = ISHFT(pack_tmp, -13)
   46650      363330 :          idata = idata + 1
   46651      363330 :          data_tmp = full_data(idata)
   46652      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46653      363330 :          data_tmp = IAND(data_tmp, mask_left(13))
   46654      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46655      363330 :          ipack = ipack + 1
   46656      363330 :          packed_data(ipack) = pack_tmp
   46657      363330 :          data_tmp = full_data(idata)
   46658      363330 :          pack_tmp = ISHFT(data_tmp, 20)
   46659      363330 :          pack_tmp = ISHFT(pack_tmp, -20)
   46660      363330 :          idata = idata + 1
   46661      363330 :          data_tmp = full_data(idata)
   46662      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46663      363330 :          data_tmp = IAND(data_tmp, mask_left(20))
   46664      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46665      363330 :          ipack = ipack + 1
   46666      363330 :          packed_data(ipack) = pack_tmp
   46667      363330 :          data_tmp = full_data(idata)
   46668      363330 :          pack_tmp = ISHFT(data_tmp, 27)
   46669      363330 :          pack_tmp = ISHFT(pack_tmp, -27)
   46670      363330 :          idata = idata + 1
   46671      363330 :          data_tmp = full_data(idata)
   46672      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46673      363330 :          data_tmp = IAND(data_tmp, mask_left(27))
   46674      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46675      363330 :          ipack = ipack + 1
   46676      363330 :          packed_data(ipack) = pack_tmp
   46677      363330 :          data_tmp = full_data(idata)
   46678      363330 :          pack_tmp = ISHFT(data_tmp, 34)
   46679      363330 :          pack_tmp = ISHFT(pack_tmp, -34)
   46680      363330 :          idata = idata + 1
   46681      363330 :          data_tmp = full_data(idata)
   46682      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46683      363330 :          data_tmp = IAND(data_tmp, mask_left(34))
   46684      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46685      363330 :          ipack = ipack + 1
   46686      363330 :          packed_data(ipack) = pack_tmp
   46687      363330 :          data_tmp = full_data(idata)
   46688      363330 :          pack_tmp = ISHFT(data_tmp, 41)
   46689      363330 :          pack_tmp = ISHFT(pack_tmp, -41)
   46690      363330 :          idata = idata + 1
   46691      363330 :          data_tmp = full_data(idata)
   46692      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46693      363330 :          data_tmp = IAND(data_tmp, mask_left(41))
   46694      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46695      363330 :          ipack = ipack + 1
   46696      363330 :          packed_data(ipack) = pack_tmp
   46697      363330 :          data_tmp = full_data(idata)
   46698      363330 :          pack_tmp = ISHFT(data_tmp, 48)
   46699      363330 :          pack_tmp = ISHFT(pack_tmp, -48)
   46700      363330 :          idata = idata + 1
   46701      363330 :          data_tmp = full_data(idata)
   46702      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46703      363330 :          data_tmp = IAND(data_tmp, mask_left(48))
   46704      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46705      363330 :          ipack = ipack + 1
   46706      363330 :          packed_data(ipack) = pack_tmp
   46707      363330 :          data_tmp = full_data(idata)
   46708      363330 :          pack_tmp = ISHFT(data_tmp, 55)
   46709      363330 :          pack_tmp = ISHFT(pack_tmp, -55)
   46710      363330 :          idata = idata + 1
   46711      363330 :          data_tmp = full_data(idata)
   46712      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46713      363330 :          data_tmp = IAND(data_tmp, mask_left(55))
   46714      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46715      363330 :          ipack = ipack + 1
   46716      363330 :          packed_data(ipack) = pack_tmp
   46717      363330 :          data_tmp = full_data(idata)
   46718      363330 :          pack_tmp = ISHFT(data_tmp, 62)
   46719      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   46720      363330 :          idata = idata + 1
   46721      363330 :          data_tmp = full_data(idata)
   46722      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46723      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46724      363330 :          pack_tmp = ISHFT(pack_tmp, -5)
   46725      363330 :          idata = idata + 1
   46726      363330 :          data_tmp = full_data(idata)
   46727      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46728      363330 :          data_tmp = IAND(data_tmp, mask_left(5))
   46729      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46730      363330 :          ipack = ipack + 1
   46731      363330 :          packed_data(ipack) = pack_tmp
   46732      363330 :          data_tmp = full_data(idata)
   46733      363330 :          pack_tmp = ISHFT(data_tmp, 12)
   46734      363330 :          pack_tmp = ISHFT(pack_tmp, -12)
   46735      363330 :          idata = idata + 1
   46736      363330 :          data_tmp = full_data(idata)
   46737      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46738      363330 :          data_tmp = IAND(data_tmp, mask_left(12))
   46739      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46740      363330 :          ipack = ipack + 1
   46741      363330 :          packed_data(ipack) = pack_tmp
   46742      363330 :          data_tmp = full_data(idata)
   46743      363330 :          pack_tmp = ISHFT(data_tmp, 19)
   46744      363330 :          pack_tmp = ISHFT(pack_tmp, -19)
   46745      363330 :          idata = idata + 1
   46746      363330 :          data_tmp = full_data(idata)
   46747      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46748      363330 :          data_tmp = IAND(data_tmp, mask_left(19))
   46749      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46750      363330 :          ipack = ipack + 1
   46751      363330 :          packed_data(ipack) = pack_tmp
   46752      363330 :          data_tmp = full_data(idata)
   46753      363330 :          pack_tmp = ISHFT(data_tmp, 26)
   46754      363330 :          pack_tmp = ISHFT(pack_tmp, -26)
   46755      363330 :          idata = idata + 1
   46756      363330 :          data_tmp = full_data(idata)
   46757      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46758      363330 :          data_tmp = IAND(data_tmp, mask_left(26))
   46759      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46760      363330 :          ipack = ipack + 1
   46761      363330 :          packed_data(ipack) = pack_tmp
   46762      363330 :          data_tmp = full_data(idata)
   46763      363330 :          pack_tmp = ISHFT(data_tmp, 33)
   46764      363330 :          pack_tmp = ISHFT(pack_tmp, -33)
   46765      363330 :          idata = idata + 1
   46766      363330 :          data_tmp = full_data(idata)
   46767      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46768      363330 :          data_tmp = IAND(data_tmp, mask_left(33))
   46769      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46770      363330 :          ipack = ipack + 1
   46771      363330 :          packed_data(ipack) = pack_tmp
   46772      363330 :          data_tmp = full_data(idata)
   46773      363330 :          pack_tmp = ISHFT(data_tmp, 40)
   46774      363330 :          pack_tmp = ISHFT(pack_tmp, -40)
   46775      363330 :          idata = idata + 1
   46776      363330 :          data_tmp = full_data(idata)
   46777      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46778      363330 :          data_tmp = IAND(data_tmp, mask_left(40))
   46779      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46780      363330 :          ipack = ipack + 1
   46781      363330 :          packed_data(ipack) = pack_tmp
   46782      363330 :          data_tmp = full_data(idata)
   46783      363330 :          pack_tmp = ISHFT(data_tmp, 47)
   46784      363330 :          pack_tmp = ISHFT(pack_tmp, -47)
   46785      363330 :          idata = idata + 1
   46786      363330 :          data_tmp = full_data(idata)
   46787      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46788      363330 :          data_tmp = IAND(data_tmp, mask_left(47))
   46789      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46790      363330 :          ipack = ipack + 1
   46791      363330 :          packed_data(ipack) = pack_tmp
   46792      363330 :          data_tmp = full_data(idata)
   46793      363330 :          pack_tmp = ISHFT(data_tmp, 54)
   46794      363330 :          pack_tmp = ISHFT(pack_tmp, -54)
   46795      363330 :          idata = idata + 1
   46796      363330 :          data_tmp = full_data(idata)
   46797      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46798      363330 :          data_tmp = IAND(data_tmp, mask_left(54))
   46799      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46800      363330 :          ipack = ipack + 1
   46801      363330 :          packed_data(ipack) = pack_tmp
   46802      363330 :          data_tmp = full_data(idata)
   46803      363330 :          pack_tmp = ISHFT(data_tmp, 61)
   46804      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   46805      363330 :          idata = idata + 1
   46806      363330 :          data_tmp = full_data(idata)
   46807      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46808      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46809      363330 :          pack_tmp = ISHFT(pack_tmp, -4)
   46810      363330 :          idata = idata + 1
   46811      363330 :          data_tmp = full_data(idata)
   46812      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46813      363330 :          data_tmp = IAND(data_tmp, mask_left(4))
   46814      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46815      363330 :          ipack = ipack + 1
   46816      363330 :          packed_data(ipack) = pack_tmp
   46817      363330 :          data_tmp = full_data(idata)
   46818      363330 :          pack_tmp = ISHFT(data_tmp, 11)
   46819      363330 :          pack_tmp = ISHFT(pack_tmp, -11)
   46820      363330 :          idata = idata + 1
   46821      363330 :          data_tmp = full_data(idata)
   46822      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46823      363330 :          data_tmp = IAND(data_tmp, mask_left(11))
   46824      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46825      363330 :          ipack = ipack + 1
   46826      363330 :          packed_data(ipack) = pack_tmp
   46827      363330 :          data_tmp = full_data(idata)
   46828      363330 :          pack_tmp = ISHFT(data_tmp, 18)
   46829      363330 :          pack_tmp = ISHFT(pack_tmp, -18)
   46830      363330 :          idata = idata + 1
   46831      363330 :          data_tmp = full_data(idata)
   46832      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46833      363330 :          data_tmp = IAND(data_tmp, mask_left(18))
   46834      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46835      363330 :          ipack = ipack + 1
   46836      363330 :          packed_data(ipack) = pack_tmp
   46837      363330 :          data_tmp = full_data(idata)
   46838      363330 :          pack_tmp = ISHFT(data_tmp, 25)
   46839      363330 :          pack_tmp = ISHFT(pack_tmp, -25)
   46840      363330 :          idata = idata + 1
   46841      363330 :          data_tmp = full_data(idata)
   46842      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46843      363330 :          data_tmp = IAND(data_tmp, mask_left(25))
   46844      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46845      363330 :          ipack = ipack + 1
   46846      363330 :          packed_data(ipack) = pack_tmp
   46847      363330 :          data_tmp = full_data(idata)
   46848      363330 :          pack_tmp = ISHFT(data_tmp, 32)
   46849      363330 :          pack_tmp = ISHFT(pack_tmp, -32)
   46850      363330 :          idata = idata + 1
   46851      363330 :          data_tmp = full_data(idata)
   46852      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46853      363330 :          data_tmp = IAND(data_tmp, mask_left(32))
   46854      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46855      363330 :          ipack = ipack + 1
   46856      363330 :          packed_data(ipack) = pack_tmp
   46857      363330 :          data_tmp = full_data(idata)
   46858      363330 :          pack_tmp = ISHFT(data_tmp, 39)
   46859      363330 :          pack_tmp = ISHFT(pack_tmp, -39)
   46860      363330 :          idata = idata + 1
   46861      363330 :          data_tmp = full_data(idata)
   46862      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46863      363330 :          data_tmp = IAND(data_tmp, mask_left(39))
   46864      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46865      363330 :          ipack = ipack + 1
   46866      363330 :          packed_data(ipack) = pack_tmp
   46867      363330 :          data_tmp = full_data(idata)
   46868      363330 :          pack_tmp = ISHFT(data_tmp, 46)
   46869      363330 :          pack_tmp = ISHFT(pack_tmp, -46)
   46870      363330 :          idata = idata + 1
   46871      363330 :          data_tmp = full_data(idata)
   46872      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46873      363330 :          data_tmp = IAND(data_tmp, mask_left(46))
   46874      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46875      363330 :          ipack = ipack + 1
   46876      363330 :          packed_data(ipack) = pack_tmp
   46877      363330 :          data_tmp = full_data(idata)
   46878      363330 :          pack_tmp = ISHFT(data_tmp, 53)
   46879      363330 :          pack_tmp = ISHFT(pack_tmp, -53)
   46880      363330 :          idata = idata + 1
   46881      363330 :          data_tmp = full_data(idata)
   46882      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46883      363330 :          data_tmp = IAND(data_tmp, mask_left(53))
   46884      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46885      363330 :          ipack = ipack + 1
   46886      363330 :          packed_data(ipack) = pack_tmp
   46887      363330 :          data_tmp = full_data(idata)
   46888      363330 :          pack_tmp = ISHFT(data_tmp, 60)
   46889      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   46890      363330 :          idata = idata + 1
   46891      363330 :          data_tmp = full_data(idata)
   46892      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46893      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46894      363330 :          pack_tmp = ISHFT(pack_tmp, -3)
   46895      363330 :          idata = idata + 1
   46896      363330 :          data_tmp = full_data(idata)
   46897      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46898      363330 :          data_tmp = IAND(data_tmp, mask_left(3))
   46899      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46900      363330 :          ipack = ipack + 1
   46901      363330 :          packed_data(ipack) = pack_tmp
   46902      363330 :          data_tmp = full_data(idata)
   46903      363330 :          pack_tmp = ISHFT(data_tmp, 10)
   46904      363330 :          pack_tmp = ISHFT(pack_tmp, -10)
   46905      363330 :          idata = idata + 1
   46906      363330 :          data_tmp = full_data(idata)
   46907      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46908      363330 :          data_tmp = IAND(data_tmp, mask_left(10))
   46909      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46910      363330 :          ipack = ipack + 1
   46911      363330 :          packed_data(ipack) = pack_tmp
   46912      363330 :          data_tmp = full_data(idata)
   46913      363330 :          pack_tmp = ISHFT(data_tmp, 17)
   46914      363330 :          pack_tmp = ISHFT(pack_tmp, -17)
   46915      363330 :          idata = idata + 1
   46916      363330 :          data_tmp = full_data(idata)
   46917      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46918      363330 :          data_tmp = IAND(data_tmp, mask_left(17))
   46919      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46920      363330 :          ipack = ipack + 1
   46921      363330 :          packed_data(ipack) = pack_tmp
   46922      363330 :          data_tmp = full_data(idata)
   46923      363330 :          pack_tmp = ISHFT(data_tmp, 24)
   46924      363330 :          pack_tmp = ISHFT(pack_tmp, -24)
   46925      363330 :          idata = idata + 1
   46926      363330 :          data_tmp = full_data(idata)
   46927      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46928      363330 :          data_tmp = IAND(data_tmp, mask_left(24))
   46929      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46930      363330 :          ipack = ipack + 1
   46931      363330 :          packed_data(ipack) = pack_tmp
   46932      363330 :          data_tmp = full_data(idata)
   46933      363330 :          pack_tmp = ISHFT(data_tmp, 31)
   46934      363330 :          pack_tmp = ISHFT(pack_tmp, -31)
   46935      363330 :          idata = idata + 1
   46936      363330 :          data_tmp = full_data(idata)
   46937      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46938      363330 :          data_tmp = IAND(data_tmp, mask_left(31))
   46939      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46940      363330 :          ipack = ipack + 1
   46941      363330 :          packed_data(ipack) = pack_tmp
   46942      363330 :          data_tmp = full_data(idata)
   46943      363330 :          pack_tmp = ISHFT(data_tmp, 38)
   46944      363330 :          pack_tmp = ISHFT(pack_tmp, -38)
   46945      363330 :          idata = idata + 1
   46946      363330 :          data_tmp = full_data(idata)
   46947      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46948      363330 :          data_tmp = IAND(data_tmp, mask_left(38))
   46949      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46950      363330 :          ipack = ipack + 1
   46951      363330 :          packed_data(ipack) = pack_tmp
   46952      363330 :          data_tmp = full_data(idata)
   46953      363330 :          pack_tmp = ISHFT(data_tmp, 45)
   46954      363330 :          pack_tmp = ISHFT(pack_tmp, -45)
   46955      363330 :          idata = idata + 1
   46956      363330 :          data_tmp = full_data(idata)
   46957      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46958      363330 :          data_tmp = IAND(data_tmp, mask_left(45))
   46959      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46960      363330 :          ipack = ipack + 1
   46961      363330 :          packed_data(ipack) = pack_tmp
   46962      363330 :          data_tmp = full_data(idata)
   46963      363330 :          pack_tmp = ISHFT(data_tmp, 52)
   46964      363330 :          pack_tmp = ISHFT(pack_tmp, -52)
   46965      363330 :          idata = idata + 1
   46966      363330 :          data_tmp = full_data(idata)
   46967      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46968      363330 :          data_tmp = IAND(data_tmp, mask_left(52))
   46969      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46970      363330 :          ipack = ipack + 1
   46971      363330 :          packed_data(ipack) = pack_tmp
   46972      363330 :          data_tmp = full_data(idata)
   46973      363330 :          pack_tmp = ISHFT(data_tmp, 59)
   46974      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   46975      363330 :          idata = idata + 1
   46976      363330 :          data_tmp = full_data(idata)
   46977      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46978      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46979      363330 :          pack_tmp = ISHFT(pack_tmp, -2)
   46980      363330 :          idata = idata + 1
   46981      363330 :          data_tmp = full_data(idata)
   46982      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46983      363330 :          data_tmp = IAND(data_tmp, mask_left(2))
   46984      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46985      363330 :          ipack = ipack + 1
   46986      363330 :          packed_data(ipack) = pack_tmp
   46987      363330 :          data_tmp = full_data(idata)
   46988      363330 :          pack_tmp = ISHFT(data_tmp, 9)
   46989      363330 :          pack_tmp = ISHFT(pack_tmp, -9)
   46990      363330 :          idata = idata + 1
   46991      363330 :          data_tmp = full_data(idata)
   46992      363330 :          data_tmp = ISHFT(data_tmp, 7)
   46993      363330 :          data_tmp = IAND(data_tmp, mask_left(9))
   46994      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46995      363330 :          ipack = ipack + 1
   46996      363330 :          packed_data(ipack) = pack_tmp
   46997      363330 :          data_tmp = full_data(idata)
   46998      363330 :          pack_tmp = ISHFT(data_tmp, 16)
   46999      363330 :          pack_tmp = ISHFT(pack_tmp, -16)
   47000      363330 :          idata = idata + 1
   47001      363330 :          data_tmp = full_data(idata)
   47002      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47003      363330 :          data_tmp = IAND(data_tmp, mask_left(16))
   47004      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47005      363330 :          ipack = ipack + 1
   47006      363330 :          packed_data(ipack) = pack_tmp
   47007      363330 :          data_tmp = full_data(idata)
   47008      363330 :          pack_tmp = ISHFT(data_tmp, 23)
   47009      363330 :          pack_tmp = ISHFT(pack_tmp, -23)
   47010      363330 :          idata = idata + 1
   47011      363330 :          data_tmp = full_data(idata)
   47012      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47013      363330 :          data_tmp = IAND(data_tmp, mask_left(23))
   47014      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47015      363330 :          ipack = ipack + 1
   47016      363330 :          packed_data(ipack) = pack_tmp
   47017      363330 :          data_tmp = full_data(idata)
   47018      363330 :          pack_tmp = ISHFT(data_tmp, 30)
   47019      363330 :          pack_tmp = ISHFT(pack_tmp, -30)
   47020      363330 :          idata = idata + 1
   47021      363330 :          data_tmp = full_data(idata)
   47022      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47023      363330 :          data_tmp = IAND(data_tmp, mask_left(30))
   47024      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47025      363330 :          ipack = ipack + 1
   47026      363330 :          packed_data(ipack) = pack_tmp
   47027      363330 :          data_tmp = full_data(idata)
   47028      363330 :          pack_tmp = ISHFT(data_tmp, 37)
   47029      363330 :          pack_tmp = ISHFT(pack_tmp, -37)
   47030      363330 :          idata = idata + 1
   47031      363330 :          data_tmp = full_data(idata)
   47032      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47033      363330 :          data_tmp = IAND(data_tmp, mask_left(37))
   47034      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47035      363330 :          ipack = ipack + 1
   47036      363330 :          packed_data(ipack) = pack_tmp
   47037      363330 :          data_tmp = full_data(idata)
   47038      363330 :          pack_tmp = ISHFT(data_tmp, 44)
   47039      363330 :          pack_tmp = ISHFT(pack_tmp, -44)
   47040      363330 :          idata = idata + 1
   47041      363330 :          data_tmp = full_data(idata)
   47042      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47043      363330 :          data_tmp = IAND(data_tmp, mask_left(44))
   47044      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47045      363330 :          ipack = ipack + 1
   47046      363330 :          packed_data(ipack) = pack_tmp
   47047      363330 :          data_tmp = full_data(idata)
   47048      363330 :          pack_tmp = ISHFT(data_tmp, 51)
   47049      363330 :          pack_tmp = ISHFT(pack_tmp, -51)
   47050      363330 :          idata = idata + 1
   47051      363330 :          data_tmp = full_data(idata)
   47052      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47053      363330 :          data_tmp = IAND(data_tmp, mask_left(51))
   47054      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47055      363330 :          ipack = ipack + 1
   47056      363330 :          packed_data(ipack) = pack_tmp
   47057      363330 :          data_tmp = full_data(idata)
   47058      363330 :          pack_tmp = ISHFT(data_tmp, 58)
   47059      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   47060      363330 :          idata = idata + 1
   47061      363330 :          data_tmp = full_data(idata)
   47062      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47063      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47064      363330 :          pack_tmp = ISHFT(pack_tmp, -1)
   47065      363330 :          idata = idata + 1
   47066      363330 :          data_tmp = full_data(idata)
   47067      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47068      363330 :          data_tmp = IAND(data_tmp, mask_left(1))
   47069      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47070      363330 :          ipack = ipack + 1
   47071      363330 :          packed_data(ipack) = pack_tmp
   47072      363330 :          data_tmp = full_data(idata)
   47073      363330 :          pack_tmp = ISHFT(data_tmp, 8)
   47074      363330 :          pack_tmp = ISHFT(pack_tmp, -8)
   47075      363330 :          idata = idata + 1
   47076      363330 :          data_tmp = full_data(idata)
   47077      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47078      363330 :          data_tmp = IAND(data_tmp, mask_left(8))
   47079      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47080      363330 :          ipack = ipack + 1
   47081      363330 :          packed_data(ipack) = pack_tmp
   47082      363330 :          data_tmp = full_data(idata)
   47083      363330 :          pack_tmp = ISHFT(data_tmp, 15)
   47084      363330 :          pack_tmp = ISHFT(pack_tmp, -15)
   47085      363330 :          idata = idata + 1
   47086      363330 :          data_tmp = full_data(idata)
   47087      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47088      363330 :          data_tmp = IAND(data_tmp, mask_left(15))
   47089      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47090      363330 :          ipack = ipack + 1
   47091      363330 :          packed_data(ipack) = pack_tmp
   47092      363330 :          data_tmp = full_data(idata)
   47093      363330 :          pack_tmp = ISHFT(data_tmp, 22)
   47094      363330 :          pack_tmp = ISHFT(pack_tmp, -22)
   47095      363330 :          idata = idata + 1
   47096      363330 :          data_tmp = full_data(idata)
   47097      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47098      363330 :          data_tmp = IAND(data_tmp, mask_left(22))
   47099      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47100      363330 :          ipack = ipack + 1
   47101      363330 :          packed_data(ipack) = pack_tmp
   47102      363330 :          data_tmp = full_data(idata)
   47103      363330 :          pack_tmp = ISHFT(data_tmp, 29)
   47104      363330 :          pack_tmp = ISHFT(pack_tmp, -29)
   47105      363330 :          idata = idata + 1
   47106      363330 :          data_tmp = full_data(idata)
   47107      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47108      363330 :          data_tmp = IAND(data_tmp, mask_left(29))
   47109      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47110      363330 :          ipack = ipack + 1
   47111      363330 :          packed_data(ipack) = pack_tmp
   47112      363330 :          data_tmp = full_data(idata)
   47113      363330 :          pack_tmp = ISHFT(data_tmp, 36)
   47114      363330 :          pack_tmp = ISHFT(pack_tmp, -36)
   47115      363330 :          idata = idata + 1
   47116      363330 :          data_tmp = full_data(idata)
   47117      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47118      363330 :          data_tmp = IAND(data_tmp, mask_left(36))
   47119      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47120      363330 :          ipack = ipack + 1
   47121      363330 :          packed_data(ipack) = pack_tmp
   47122      363330 :          data_tmp = full_data(idata)
   47123      363330 :          pack_tmp = ISHFT(data_tmp, 43)
   47124      363330 :          pack_tmp = ISHFT(pack_tmp, -43)
   47125      363330 :          idata = idata + 1
   47126      363330 :          data_tmp = full_data(idata)
   47127      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47128      363330 :          data_tmp = IAND(data_tmp, mask_left(43))
   47129      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47130      363330 :          ipack = ipack + 1
   47131      363330 :          packed_data(ipack) = pack_tmp
   47132      363330 :          data_tmp = full_data(idata)
   47133      363330 :          pack_tmp = ISHFT(data_tmp, 50)
   47134      363330 :          pack_tmp = ISHFT(pack_tmp, -50)
   47135      363330 :          idata = idata + 1
   47136      363330 :          data_tmp = full_data(idata)
   47137      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47138      363330 :          data_tmp = IAND(data_tmp, mask_left(50))
   47139      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47140      363330 :          ipack = ipack + 1
   47141      363330 :          packed_data(ipack) = pack_tmp
   47142      363330 :          data_tmp = full_data(idata)
   47143      363330 :          pack_tmp = ISHFT(data_tmp, 57)
   47144      363330 :          pack_tmp = ISHFT(pack_tmp, -57)
   47145      363330 :          idata = idata + 1
   47146      363330 :          data_tmp = full_data(idata)
   47147      363330 :          data_tmp = ISHFT(data_tmp, 7)
   47148      363330 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47149             :          pack_tmp = ISHFT(pack_tmp, 0)
   47150      363330 :          pack_tmp = ISHFT(pack_tmp, 0)
   47151      363330 :          ipack = ipack + 1
   47152      363332 :          packed_data(ipack) = pack_tmp
   47153             :       END DO
   47154       22740 :       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       22740 :    END SUBROUTINE ints2bits_57
   47158             : 
   47159             : ! **************************************************************************************************
   47160             : !> \brief ...
   47161             : !> \param Ndata ...
   47162             : !> \param packed_data ...
   47163             : !> \param full_data ...
   47164             : ! **************************************************************************************************
   47165       96788 :    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       96788 :       ipack = 0
   47176       96788 :       idata = 0
   47177       96788 :       pack_tmp = 0
   47178       96788 :       Ndata_rep = (Ndata/64)*64
   47179       96788 :       DO kdata = 1, Ndata_rep, 64
   47180     1519538 :          idata = idata + 1
   47181     1519538 :          data_tmp = ISHFT(pack_tmp, 57)
   47182     1519538 :          ipack = ipack + 1
   47183     1519538 :          pack_tmp = packed_data(ipack)
   47184     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   47185     1519538 :          pack_tmp = ISHFT(pack_tmp, -57)
   47186     1519538 :          idata = idata + 1
   47187     1519538 :          data_tmp = ISHFT(pack_tmp, 50)
   47188     1519538 :          ipack = ipack + 1
   47189     1519538 :          pack_tmp = packed_data(ipack)
   47190     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   47191     1519538 :          pack_tmp = ISHFT(pack_tmp, -50)
   47192     1519538 :          idata = idata + 1
   47193     1519538 :          data_tmp = ISHFT(pack_tmp, 43)
   47194     1519538 :          ipack = ipack + 1
   47195     1519538 :          pack_tmp = packed_data(ipack)
   47196     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   47197     1519538 :          pack_tmp = ISHFT(pack_tmp, -43)
   47198     1519538 :          idata = idata + 1
   47199     1519538 :          data_tmp = ISHFT(pack_tmp, 36)
   47200     1519538 :          ipack = ipack + 1
   47201     1519538 :          pack_tmp = packed_data(ipack)
   47202     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   47203     1519538 :          pack_tmp = ISHFT(pack_tmp, -36)
   47204     1519538 :          idata = idata + 1
   47205     1519538 :          data_tmp = ISHFT(pack_tmp, 29)
   47206     1519538 :          ipack = ipack + 1
   47207     1519538 :          pack_tmp = packed_data(ipack)
   47208     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   47209     1519538 :          pack_tmp = ISHFT(pack_tmp, -29)
   47210     1519538 :          idata = idata + 1
   47211     1519538 :          data_tmp = ISHFT(pack_tmp, 22)
   47212     1519538 :          ipack = ipack + 1
   47213     1519538 :          pack_tmp = packed_data(ipack)
   47214     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   47215     1519538 :          pack_tmp = ISHFT(pack_tmp, -22)
   47216     1519538 :          idata = idata + 1
   47217     1519538 :          data_tmp = ISHFT(pack_tmp, 15)
   47218     1519538 :          ipack = ipack + 1
   47219     1519538 :          pack_tmp = packed_data(ipack)
   47220     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   47221     1519538 :          pack_tmp = ISHFT(pack_tmp, -15)
   47222     1519538 :          idata = idata + 1
   47223     1519538 :          data_tmp = ISHFT(pack_tmp, 8)
   47224     1519538 :          ipack = ipack + 1
   47225     1519538 :          pack_tmp = packed_data(ipack)
   47226     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   47227     1519538 :          pack_tmp = ISHFT(pack_tmp, -8)
   47228     1519538 :          idata = idata + 1
   47229     1519538 :          data_tmp = ISHFT(pack_tmp, 1)
   47230     1519538 :          ipack = ipack + 1
   47231     1519538 :          pack_tmp = packed_data(ipack)
   47232     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   47233     1519538 :          pack_tmp = ISHFT(pack_tmp, -1)
   47234     1519538 :          idata = idata + 1
   47235     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47236     1519538 :          full_data(idata) = data_tmp
   47237     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47238     1519538 :          idata = idata + 1
   47239     1519538 :          data_tmp = ISHFT(pack_tmp, 51)
   47240     1519538 :          ipack = ipack + 1
   47241     1519538 :          pack_tmp = packed_data(ipack)
   47242     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   47243     1519538 :          pack_tmp = ISHFT(pack_tmp, -51)
   47244     1519538 :          idata = idata + 1
   47245     1519538 :          data_tmp = ISHFT(pack_tmp, 44)
   47246     1519538 :          ipack = ipack + 1
   47247     1519538 :          pack_tmp = packed_data(ipack)
   47248     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   47249     1519538 :          pack_tmp = ISHFT(pack_tmp, -44)
   47250     1519538 :          idata = idata + 1
   47251     1519538 :          data_tmp = ISHFT(pack_tmp, 37)
   47252     1519538 :          ipack = ipack + 1
   47253     1519538 :          pack_tmp = packed_data(ipack)
   47254     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   47255     1519538 :          pack_tmp = ISHFT(pack_tmp, -37)
   47256     1519538 :          idata = idata + 1
   47257     1519538 :          data_tmp = ISHFT(pack_tmp, 30)
   47258     1519538 :          ipack = ipack + 1
   47259     1519538 :          pack_tmp = packed_data(ipack)
   47260     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   47261     1519538 :          pack_tmp = ISHFT(pack_tmp, -30)
   47262     1519538 :          idata = idata + 1
   47263     1519538 :          data_tmp = ISHFT(pack_tmp, 23)
   47264     1519538 :          ipack = ipack + 1
   47265     1519538 :          pack_tmp = packed_data(ipack)
   47266     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   47267     1519538 :          pack_tmp = ISHFT(pack_tmp, -23)
   47268     1519538 :          idata = idata + 1
   47269     1519538 :          data_tmp = ISHFT(pack_tmp, 16)
   47270     1519538 :          ipack = ipack + 1
   47271     1519538 :          pack_tmp = packed_data(ipack)
   47272     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   47273     1519538 :          pack_tmp = ISHFT(pack_tmp, -16)
   47274     1519538 :          idata = idata + 1
   47275     1519538 :          data_tmp = ISHFT(pack_tmp, 9)
   47276     1519538 :          ipack = ipack + 1
   47277     1519538 :          pack_tmp = packed_data(ipack)
   47278     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   47279     1519538 :          pack_tmp = ISHFT(pack_tmp, -9)
   47280     1519538 :          idata = idata + 1
   47281     1519538 :          data_tmp = ISHFT(pack_tmp, 2)
   47282     1519538 :          ipack = ipack + 1
   47283     1519538 :          pack_tmp = packed_data(ipack)
   47284     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   47285     1519538 :          pack_tmp = ISHFT(pack_tmp, -2)
   47286     1519538 :          idata = idata + 1
   47287     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47288     1519538 :          full_data(idata) = data_tmp
   47289     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47290     1519538 :          idata = idata + 1
   47291     1519538 :          data_tmp = ISHFT(pack_tmp, 52)
   47292     1519538 :          ipack = ipack + 1
   47293     1519538 :          pack_tmp = packed_data(ipack)
   47294     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   47295     1519538 :          pack_tmp = ISHFT(pack_tmp, -52)
   47296     1519538 :          idata = idata + 1
   47297     1519538 :          data_tmp = ISHFT(pack_tmp, 45)
   47298     1519538 :          ipack = ipack + 1
   47299     1519538 :          pack_tmp = packed_data(ipack)
   47300     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   47301     1519538 :          pack_tmp = ISHFT(pack_tmp, -45)
   47302     1519538 :          idata = idata + 1
   47303     1519538 :          data_tmp = ISHFT(pack_tmp, 38)
   47304     1519538 :          ipack = ipack + 1
   47305     1519538 :          pack_tmp = packed_data(ipack)
   47306     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   47307     1519538 :          pack_tmp = ISHFT(pack_tmp, -38)
   47308     1519538 :          idata = idata + 1
   47309     1519538 :          data_tmp = ISHFT(pack_tmp, 31)
   47310     1519538 :          ipack = ipack + 1
   47311     1519538 :          pack_tmp = packed_data(ipack)
   47312     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   47313     1519538 :          pack_tmp = ISHFT(pack_tmp, -31)
   47314     1519538 :          idata = idata + 1
   47315     1519538 :          data_tmp = ISHFT(pack_tmp, 24)
   47316     1519538 :          ipack = ipack + 1
   47317     1519538 :          pack_tmp = packed_data(ipack)
   47318     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   47319     1519538 :          pack_tmp = ISHFT(pack_tmp, -24)
   47320     1519538 :          idata = idata + 1
   47321     1519538 :          data_tmp = ISHFT(pack_tmp, 17)
   47322     1519538 :          ipack = ipack + 1
   47323     1519538 :          pack_tmp = packed_data(ipack)
   47324     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   47325     1519538 :          pack_tmp = ISHFT(pack_tmp, -17)
   47326     1519538 :          idata = idata + 1
   47327     1519538 :          data_tmp = ISHFT(pack_tmp, 10)
   47328     1519538 :          ipack = ipack + 1
   47329     1519538 :          pack_tmp = packed_data(ipack)
   47330     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   47331     1519538 :          pack_tmp = ISHFT(pack_tmp, -10)
   47332     1519538 :          idata = idata + 1
   47333     1519538 :          data_tmp = ISHFT(pack_tmp, 3)
   47334     1519538 :          ipack = ipack + 1
   47335     1519538 :          pack_tmp = packed_data(ipack)
   47336     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   47337     1519538 :          pack_tmp = ISHFT(pack_tmp, -3)
   47338     1519538 :          idata = idata + 1
   47339     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47340     1519538 :          full_data(idata) = data_tmp
   47341     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47342     1519538 :          idata = idata + 1
   47343     1519538 :          data_tmp = ISHFT(pack_tmp, 53)
   47344     1519538 :          ipack = ipack + 1
   47345     1519538 :          pack_tmp = packed_data(ipack)
   47346     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   47347     1519538 :          pack_tmp = ISHFT(pack_tmp, -53)
   47348     1519538 :          idata = idata + 1
   47349     1519538 :          data_tmp = ISHFT(pack_tmp, 46)
   47350     1519538 :          ipack = ipack + 1
   47351     1519538 :          pack_tmp = packed_data(ipack)
   47352     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   47353     1519538 :          pack_tmp = ISHFT(pack_tmp, -46)
   47354     1519538 :          idata = idata + 1
   47355     1519538 :          data_tmp = ISHFT(pack_tmp, 39)
   47356     1519538 :          ipack = ipack + 1
   47357     1519538 :          pack_tmp = packed_data(ipack)
   47358     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   47359     1519538 :          pack_tmp = ISHFT(pack_tmp, -39)
   47360     1519538 :          idata = idata + 1
   47361     1519538 :          data_tmp = ISHFT(pack_tmp, 32)
   47362     1519538 :          ipack = ipack + 1
   47363     1519538 :          pack_tmp = packed_data(ipack)
   47364     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   47365     1519538 :          pack_tmp = ISHFT(pack_tmp, -32)
   47366     1519538 :          idata = idata + 1
   47367     1519538 :          data_tmp = ISHFT(pack_tmp, 25)
   47368     1519538 :          ipack = ipack + 1
   47369     1519538 :          pack_tmp = packed_data(ipack)
   47370     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   47371     1519538 :          pack_tmp = ISHFT(pack_tmp, -25)
   47372     1519538 :          idata = idata + 1
   47373     1519538 :          data_tmp = ISHFT(pack_tmp, 18)
   47374     1519538 :          ipack = ipack + 1
   47375     1519538 :          pack_tmp = packed_data(ipack)
   47376     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   47377     1519538 :          pack_tmp = ISHFT(pack_tmp, -18)
   47378     1519538 :          idata = idata + 1
   47379     1519538 :          data_tmp = ISHFT(pack_tmp, 11)
   47380     1519538 :          ipack = ipack + 1
   47381     1519538 :          pack_tmp = packed_data(ipack)
   47382     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   47383     1519538 :          pack_tmp = ISHFT(pack_tmp, -11)
   47384     1519538 :          idata = idata + 1
   47385     1519538 :          data_tmp = ISHFT(pack_tmp, 4)
   47386     1519538 :          ipack = ipack + 1
   47387     1519538 :          pack_tmp = packed_data(ipack)
   47388     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   47389     1519538 :          pack_tmp = ISHFT(pack_tmp, -4)
   47390     1519538 :          idata = idata + 1
   47391     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47392     1519538 :          full_data(idata) = data_tmp
   47393     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47394     1519538 :          idata = idata + 1
   47395     1519538 :          data_tmp = ISHFT(pack_tmp, 54)
   47396     1519538 :          ipack = ipack + 1
   47397     1519538 :          pack_tmp = packed_data(ipack)
   47398     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   47399     1519538 :          pack_tmp = ISHFT(pack_tmp, -54)
   47400     1519538 :          idata = idata + 1
   47401     1519538 :          data_tmp = ISHFT(pack_tmp, 47)
   47402     1519538 :          ipack = ipack + 1
   47403     1519538 :          pack_tmp = packed_data(ipack)
   47404     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   47405     1519538 :          pack_tmp = ISHFT(pack_tmp, -47)
   47406     1519538 :          idata = idata + 1
   47407     1519538 :          data_tmp = ISHFT(pack_tmp, 40)
   47408     1519538 :          ipack = ipack + 1
   47409     1519538 :          pack_tmp = packed_data(ipack)
   47410     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   47411     1519538 :          pack_tmp = ISHFT(pack_tmp, -40)
   47412     1519538 :          idata = idata + 1
   47413     1519538 :          data_tmp = ISHFT(pack_tmp, 33)
   47414     1519538 :          ipack = ipack + 1
   47415     1519538 :          pack_tmp = packed_data(ipack)
   47416     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   47417     1519538 :          pack_tmp = ISHFT(pack_tmp, -33)
   47418     1519538 :          idata = idata + 1
   47419     1519538 :          data_tmp = ISHFT(pack_tmp, 26)
   47420     1519538 :          ipack = ipack + 1
   47421     1519538 :          pack_tmp = packed_data(ipack)
   47422     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   47423     1519538 :          pack_tmp = ISHFT(pack_tmp, -26)
   47424     1519538 :          idata = idata + 1
   47425     1519538 :          data_tmp = ISHFT(pack_tmp, 19)
   47426     1519538 :          ipack = ipack + 1
   47427     1519538 :          pack_tmp = packed_data(ipack)
   47428     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   47429     1519538 :          pack_tmp = ISHFT(pack_tmp, -19)
   47430     1519538 :          idata = idata + 1
   47431     1519538 :          data_tmp = ISHFT(pack_tmp, 12)
   47432     1519538 :          ipack = ipack + 1
   47433     1519538 :          pack_tmp = packed_data(ipack)
   47434     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   47435     1519538 :          pack_tmp = ISHFT(pack_tmp, -12)
   47436     1519538 :          idata = idata + 1
   47437     1519538 :          data_tmp = ISHFT(pack_tmp, 5)
   47438     1519538 :          ipack = ipack + 1
   47439     1519538 :          pack_tmp = packed_data(ipack)
   47440     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   47441     1519538 :          pack_tmp = ISHFT(pack_tmp, -5)
   47442     1519538 :          idata = idata + 1
   47443     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47444     1519538 :          full_data(idata) = data_tmp
   47445     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47446     1519538 :          idata = idata + 1
   47447     1519538 :          data_tmp = ISHFT(pack_tmp, 55)
   47448     1519538 :          ipack = ipack + 1
   47449     1519538 :          pack_tmp = packed_data(ipack)
   47450     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   47451     1519538 :          pack_tmp = ISHFT(pack_tmp, -55)
   47452     1519538 :          idata = idata + 1
   47453     1519538 :          data_tmp = ISHFT(pack_tmp, 48)
   47454     1519538 :          ipack = ipack + 1
   47455     1519538 :          pack_tmp = packed_data(ipack)
   47456     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   47457     1519538 :          pack_tmp = ISHFT(pack_tmp, -48)
   47458     1519538 :          idata = idata + 1
   47459     1519538 :          data_tmp = ISHFT(pack_tmp, 41)
   47460     1519538 :          ipack = ipack + 1
   47461     1519538 :          pack_tmp = packed_data(ipack)
   47462     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   47463     1519538 :          pack_tmp = ISHFT(pack_tmp, -41)
   47464     1519538 :          idata = idata + 1
   47465     1519538 :          data_tmp = ISHFT(pack_tmp, 34)
   47466     1519538 :          ipack = ipack + 1
   47467     1519538 :          pack_tmp = packed_data(ipack)
   47468     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   47469     1519538 :          pack_tmp = ISHFT(pack_tmp, -34)
   47470     1519538 :          idata = idata + 1
   47471     1519538 :          data_tmp = ISHFT(pack_tmp, 27)
   47472     1519538 :          ipack = ipack + 1
   47473     1519538 :          pack_tmp = packed_data(ipack)
   47474     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   47475     1519538 :          pack_tmp = ISHFT(pack_tmp, -27)
   47476     1519538 :          idata = idata + 1
   47477     1519538 :          data_tmp = ISHFT(pack_tmp, 20)
   47478     1519538 :          ipack = ipack + 1
   47479     1519538 :          pack_tmp = packed_data(ipack)
   47480     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   47481     1519538 :          pack_tmp = ISHFT(pack_tmp, -20)
   47482     1519538 :          idata = idata + 1
   47483     1519538 :          data_tmp = ISHFT(pack_tmp, 13)
   47484     1519538 :          ipack = ipack + 1
   47485     1519538 :          pack_tmp = packed_data(ipack)
   47486     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   47487     1519538 :          pack_tmp = ISHFT(pack_tmp, -13)
   47488     1519538 :          idata = idata + 1
   47489     1519538 :          data_tmp = ISHFT(pack_tmp, 6)
   47490     1519538 :          ipack = ipack + 1
   47491     1519538 :          pack_tmp = packed_data(ipack)
   47492     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   47493     1519538 :          pack_tmp = ISHFT(pack_tmp, -6)
   47494     1519538 :          idata = idata + 1
   47495     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47496     1519538 :          full_data(idata) = data_tmp
   47497     1519538 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47498     1519538 :          idata = idata + 1
   47499     1519538 :          data_tmp = ISHFT(pack_tmp, 56)
   47500     1519538 :          ipack = ipack + 1
   47501     1519538 :          pack_tmp = packed_data(ipack)
   47502     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   47503     1519538 :          pack_tmp = ISHFT(pack_tmp, -56)
   47504     1519538 :          idata = idata + 1
   47505     1519538 :          data_tmp = ISHFT(pack_tmp, 49)
   47506     1519538 :          ipack = ipack + 1
   47507     1519538 :          pack_tmp = packed_data(ipack)
   47508     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   47509     1519538 :          pack_tmp = ISHFT(pack_tmp, -49)
   47510     1519538 :          idata = idata + 1
   47511     1519538 :          data_tmp = ISHFT(pack_tmp, 42)
   47512     1519538 :          ipack = ipack + 1
   47513     1519538 :          pack_tmp = packed_data(ipack)
   47514     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   47515     1519538 :          pack_tmp = ISHFT(pack_tmp, -42)
   47516     1519538 :          idata = idata + 1
   47517     1519538 :          data_tmp = ISHFT(pack_tmp, 35)
   47518     1519538 :          ipack = ipack + 1
   47519     1519538 :          pack_tmp = packed_data(ipack)
   47520     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   47521     1519538 :          pack_tmp = ISHFT(pack_tmp, -35)
   47522     1519538 :          idata = idata + 1
   47523     1519538 :          data_tmp = ISHFT(pack_tmp, 28)
   47524     1519538 :          ipack = ipack + 1
   47525     1519538 :          pack_tmp = packed_data(ipack)
   47526     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   47527     1519538 :          pack_tmp = ISHFT(pack_tmp, -28)
   47528     1519538 :          idata = idata + 1
   47529     1519538 :          data_tmp = ISHFT(pack_tmp, 21)
   47530     1519538 :          ipack = ipack + 1
   47531     1519538 :          pack_tmp = packed_data(ipack)
   47532     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   47533     1519538 :          pack_tmp = ISHFT(pack_tmp, -21)
   47534     1519538 :          idata = idata + 1
   47535     1519538 :          data_tmp = ISHFT(pack_tmp, 14)
   47536     1519538 :          ipack = ipack + 1
   47537     1519538 :          pack_tmp = packed_data(ipack)
   47538     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   47539     1519538 :          pack_tmp = ISHFT(pack_tmp, -14)
   47540     1519538 :          idata = idata + 1
   47541     1519538 :          data_tmp = ISHFT(pack_tmp, 7)
   47542     1519538 :          ipack = ipack + 1
   47543     1519538 :          pack_tmp = packed_data(ipack)
   47544     1519538 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   47545     1519538 :          pack_tmp = ISHFT(pack_tmp, -7)
   47546     1519538 :          idata = idata + 1
   47547     1519538 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47548     1519538 :          full_data(idata) = data_tmp
   47549     1519660 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47550             :       END DO
   47551       96788 :       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       96788 :    END SUBROUTINE bits2ints_57
   47555             : 
   47556             : ! **************************************************************************************************
   47557             : !> \brief ...
   47558             : !> \param Ndata ...
   47559             : !> \param packed_data ...
   47560             : !> \param full_data ...
   47561             : ! **************************************************************************************************
   47562       22702 :    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       22702 :       idata = 0
   47573       22702 :       ipack = 0
   47574       22702 :       Ndata_rep = (Ndata/64)*64
   47575       22702 :       DO kdata = 1, Ndata_rep, 64
   47576      363028 :          pack_tmp = 0
   47577      363028 :          idata = idata + 1
   47578      363028 :          data_tmp = full_data(idata)
   47579      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47580      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47581      363028 :          pack_tmp = ISHFT(pack_tmp, -6)
   47582      363028 :          idata = idata + 1
   47583      363028 :          data_tmp = full_data(idata)
   47584      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47585      363028 :          data_tmp = IAND(data_tmp, mask_left(6))
   47586      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47587      363028 :          ipack = ipack + 1
   47588      363028 :          packed_data(ipack) = pack_tmp
   47589      363028 :          data_tmp = full_data(idata)
   47590      363028 :          pack_tmp = ISHFT(data_tmp, 12)
   47591      363028 :          pack_tmp = ISHFT(pack_tmp, -12)
   47592      363028 :          idata = idata + 1
   47593      363028 :          data_tmp = full_data(idata)
   47594      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47595      363028 :          data_tmp = IAND(data_tmp, mask_left(12))
   47596      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47597      363028 :          ipack = ipack + 1
   47598      363028 :          packed_data(ipack) = pack_tmp
   47599      363028 :          data_tmp = full_data(idata)
   47600      363028 :          pack_tmp = ISHFT(data_tmp, 18)
   47601      363028 :          pack_tmp = ISHFT(pack_tmp, -18)
   47602      363028 :          idata = idata + 1
   47603      363028 :          data_tmp = full_data(idata)
   47604      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47605      363028 :          data_tmp = IAND(data_tmp, mask_left(18))
   47606      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47607      363028 :          ipack = ipack + 1
   47608      363028 :          packed_data(ipack) = pack_tmp
   47609      363028 :          data_tmp = full_data(idata)
   47610      363028 :          pack_tmp = ISHFT(data_tmp, 24)
   47611      363028 :          pack_tmp = ISHFT(pack_tmp, -24)
   47612      363028 :          idata = idata + 1
   47613      363028 :          data_tmp = full_data(idata)
   47614      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47615      363028 :          data_tmp = IAND(data_tmp, mask_left(24))
   47616      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47617      363028 :          ipack = ipack + 1
   47618      363028 :          packed_data(ipack) = pack_tmp
   47619      363028 :          data_tmp = full_data(idata)
   47620      363028 :          pack_tmp = ISHFT(data_tmp, 30)
   47621      363028 :          pack_tmp = ISHFT(pack_tmp, -30)
   47622      363028 :          idata = idata + 1
   47623      363028 :          data_tmp = full_data(idata)
   47624      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47625      363028 :          data_tmp = IAND(data_tmp, mask_left(30))
   47626      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47627      363028 :          ipack = ipack + 1
   47628      363028 :          packed_data(ipack) = pack_tmp
   47629      363028 :          data_tmp = full_data(idata)
   47630      363028 :          pack_tmp = ISHFT(data_tmp, 36)
   47631      363028 :          pack_tmp = ISHFT(pack_tmp, -36)
   47632      363028 :          idata = idata + 1
   47633      363028 :          data_tmp = full_data(idata)
   47634      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47635      363028 :          data_tmp = IAND(data_tmp, mask_left(36))
   47636      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47637      363028 :          ipack = ipack + 1
   47638      363028 :          packed_data(ipack) = pack_tmp
   47639      363028 :          data_tmp = full_data(idata)
   47640      363028 :          pack_tmp = ISHFT(data_tmp, 42)
   47641      363028 :          pack_tmp = ISHFT(pack_tmp, -42)
   47642      363028 :          idata = idata + 1
   47643      363028 :          data_tmp = full_data(idata)
   47644      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47645      363028 :          data_tmp = IAND(data_tmp, mask_left(42))
   47646      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47647      363028 :          ipack = ipack + 1
   47648      363028 :          packed_data(ipack) = pack_tmp
   47649      363028 :          data_tmp = full_data(idata)
   47650      363028 :          pack_tmp = ISHFT(data_tmp, 48)
   47651      363028 :          pack_tmp = ISHFT(pack_tmp, -48)
   47652      363028 :          idata = idata + 1
   47653      363028 :          data_tmp = full_data(idata)
   47654      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47655      363028 :          data_tmp = IAND(data_tmp, mask_left(48))
   47656      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47657      363028 :          ipack = ipack + 1
   47658      363028 :          packed_data(ipack) = pack_tmp
   47659      363028 :          data_tmp = full_data(idata)
   47660      363028 :          pack_tmp = ISHFT(data_tmp, 54)
   47661      363028 :          pack_tmp = ISHFT(pack_tmp, -54)
   47662      363028 :          idata = idata + 1
   47663      363028 :          data_tmp = full_data(idata)
   47664      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47665      363028 :          data_tmp = IAND(data_tmp, mask_left(54))
   47666      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47667      363028 :          ipack = ipack + 1
   47668      363028 :          packed_data(ipack) = pack_tmp
   47669      363028 :          data_tmp = full_data(idata)
   47670      363028 :          pack_tmp = ISHFT(data_tmp, 60)
   47671      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   47672      363028 :          idata = idata + 1
   47673      363028 :          data_tmp = full_data(idata)
   47674      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47675      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47676      363028 :          pack_tmp = ISHFT(pack_tmp, -2)
   47677      363028 :          idata = idata + 1
   47678      363028 :          data_tmp = full_data(idata)
   47679      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47680      363028 :          data_tmp = IAND(data_tmp, mask_left(2))
   47681      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47682      363028 :          ipack = ipack + 1
   47683      363028 :          packed_data(ipack) = pack_tmp
   47684      363028 :          data_tmp = full_data(idata)
   47685      363028 :          pack_tmp = ISHFT(data_tmp, 8)
   47686      363028 :          pack_tmp = ISHFT(pack_tmp, -8)
   47687      363028 :          idata = idata + 1
   47688      363028 :          data_tmp = full_data(idata)
   47689      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47690      363028 :          data_tmp = IAND(data_tmp, mask_left(8))
   47691      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47692      363028 :          ipack = ipack + 1
   47693      363028 :          packed_data(ipack) = pack_tmp
   47694      363028 :          data_tmp = full_data(idata)
   47695      363028 :          pack_tmp = ISHFT(data_tmp, 14)
   47696      363028 :          pack_tmp = ISHFT(pack_tmp, -14)
   47697      363028 :          idata = idata + 1
   47698      363028 :          data_tmp = full_data(idata)
   47699      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47700      363028 :          data_tmp = IAND(data_tmp, mask_left(14))
   47701      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47702      363028 :          ipack = ipack + 1
   47703      363028 :          packed_data(ipack) = pack_tmp
   47704      363028 :          data_tmp = full_data(idata)
   47705      363028 :          pack_tmp = ISHFT(data_tmp, 20)
   47706      363028 :          pack_tmp = ISHFT(pack_tmp, -20)
   47707      363028 :          idata = idata + 1
   47708      363028 :          data_tmp = full_data(idata)
   47709      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47710      363028 :          data_tmp = IAND(data_tmp, mask_left(20))
   47711      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47712      363028 :          ipack = ipack + 1
   47713      363028 :          packed_data(ipack) = pack_tmp
   47714      363028 :          data_tmp = full_data(idata)
   47715      363028 :          pack_tmp = ISHFT(data_tmp, 26)
   47716      363028 :          pack_tmp = ISHFT(pack_tmp, -26)
   47717      363028 :          idata = idata + 1
   47718      363028 :          data_tmp = full_data(idata)
   47719      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47720      363028 :          data_tmp = IAND(data_tmp, mask_left(26))
   47721      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47722      363028 :          ipack = ipack + 1
   47723      363028 :          packed_data(ipack) = pack_tmp
   47724      363028 :          data_tmp = full_data(idata)
   47725      363028 :          pack_tmp = ISHFT(data_tmp, 32)
   47726      363028 :          pack_tmp = ISHFT(pack_tmp, -32)
   47727      363028 :          idata = idata + 1
   47728      363028 :          data_tmp = full_data(idata)
   47729      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47730      363028 :          data_tmp = IAND(data_tmp, mask_left(32))
   47731      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47732      363028 :          ipack = ipack + 1
   47733      363028 :          packed_data(ipack) = pack_tmp
   47734      363028 :          data_tmp = full_data(idata)
   47735      363028 :          pack_tmp = ISHFT(data_tmp, 38)
   47736      363028 :          pack_tmp = ISHFT(pack_tmp, -38)
   47737      363028 :          idata = idata + 1
   47738      363028 :          data_tmp = full_data(idata)
   47739      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47740      363028 :          data_tmp = IAND(data_tmp, mask_left(38))
   47741      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47742      363028 :          ipack = ipack + 1
   47743      363028 :          packed_data(ipack) = pack_tmp
   47744      363028 :          data_tmp = full_data(idata)
   47745      363028 :          pack_tmp = ISHFT(data_tmp, 44)
   47746      363028 :          pack_tmp = ISHFT(pack_tmp, -44)
   47747      363028 :          idata = idata + 1
   47748      363028 :          data_tmp = full_data(idata)
   47749      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47750      363028 :          data_tmp = IAND(data_tmp, mask_left(44))
   47751      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47752      363028 :          ipack = ipack + 1
   47753      363028 :          packed_data(ipack) = pack_tmp
   47754      363028 :          data_tmp = full_data(idata)
   47755      363028 :          pack_tmp = ISHFT(data_tmp, 50)
   47756      363028 :          pack_tmp = ISHFT(pack_tmp, -50)
   47757      363028 :          idata = idata + 1
   47758      363028 :          data_tmp = full_data(idata)
   47759      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47760      363028 :          data_tmp = IAND(data_tmp, mask_left(50))
   47761      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47762      363028 :          ipack = ipack + 1
   47763      363028 :          packed_data(ipack) = pack_tmp
   47764      363028 :          data_tmp = full_data(idata)
   47765      363028 :          pack_tmp = ISHFT(data_tmp, 56)
   47766      363028 :          pack_tmp = ISHFT(pack_tmp, -56)
   47767      363028 :          idata = idata + 1
   47768      363028 :          data_tmp = full_data(idata)
   47769      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47770      363028 :          data_tmp = IAND(data_tmp, mask_left(56))
   47771      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47772      363028 :          ipack = ipack + 1
   47773      363028 :          packed_data(ipack) = pack_tmp
   47774      363028 :          data_tmp = full_data(idata)
   47775      363028 :          pack_tmp = ISHFT(data_tmp, 62)
   47776      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   47777      363028 :          idata = idata + 1
   47778      363028 :          data_tmp = full_data(idata)
   47779      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47780      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47781      363028 :          pack_tmp = ISHFT(pack_tmp, -4)
   47782      363028 :          idata = idata + 1
   47783      363028 :          data_tmp = full_data(idata)
   47784      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47785      363028 :          data_tmp = IAND(data_tmp, mask_left(4))
   47786      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47787      363028 :          ipack = ipack + 1
   47788      363028 :          packed_data(ipack) = pack_tmp
   47789      363028 :          data_tmp = full_data(idata)
   47790      363028 :          pack_tmp = ISHFT(data_tmp, 10)
   47791      363028 :          pack_tmp = ISHFT(pack_tmp, -10)
   47792      363028 :          idata = idata + 1
   47793      363028 :          data_tmp = full_data(idata)
   47794      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47795      363028 :          data_tmp = IAND(data_tmp, mask_left(10))
   47796      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47797      363028 :          ipack = ipack + 1
   47798      363028 :          packed_data(ipack) = pack_tmp
   47799      363028 :          data_tmp = full_data(idata)
   47800      363028 :          pack_tmp = ISHFT(data_tmp, 16)
   47801      363028 :          pack_tmp = ISHFT(pack_tmp, -16)
   47802      363028 :          idata = idata + 1
   47803      363028 :          data_tmp = full_data(idata)
   47804      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47805      363028 :          data_tmp = IAND(data_tmp, mask_left(16))
   47806      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47807      363028 :          ipack = ipack + 1
   47808      363028 :          packed_data(ipack) = pack_tmp
   47809      363028 :          data_tmp = full_data(idata)
   47810      363028 :          pack_tmp = ISHFT(data_tmp, 22)
   47811      363028 :          pack_tmp = ISHFT(pack_tmp, -22)
   47812      363028 :          idata = idata + 1
   47813      363028 :          data_tmp = full_data(idata)
   47814      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47815      363028 :          data_tmp = IAND(data_tmp, mask_left(22))
   47816      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47817      363028 :          ipack = ipack + 1
   47818      363028 :          packed_data(ipack) = pack_tmp
   47819      363028 :          data_tmp = full_data(idata)
   47820      363028 :          pack_tmp = ISHFT(data_tmp, 28)
   47821      363028 :          pack_tmp = ISHFT(pack_tmp, -28)
   47822      363028 :          idata = idata + 1
   47823      363028 :          data_tmp = full_data(idata)
   47824      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47825      363028 :          data_tmp = IAND(data_tmp, mask_left(28))
   47826      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47827      363028 :          ipack = ipack + 1
   47828      363028 :          packed_data(ipack) = pack_tmp
   47829      363028 :          data_tmp = full_data(idata)
   47830      363028 :          pack_tmp = ISHFT(data_tmp, 34)
   47831      363028 :          pack_tmp = ISHFT(pack_tmp, -34)
   47832      363028 :          idata = idata + 1
   47833      363028 :          data_tmp = full_data(idata)
   47834      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47835      363028 :          data_tmp = IAND(data_tmp, mask_left(34))
   47836      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47837      363028 :          ipack = ipack + 1
   47838      363028 :          packed_data(ipack) = pack_tmp
   47839      363028 :          data_tmp = full_data(idata)
   47840      363028 :          pack_tmp = ISHFT(data_tmp, 40)
   47841      363028 :          pack_tmp = ISHFT(pack_tmp, -40)
   47842      363028 :          idata = idata + 1
   47843      363028 :          data_tmp = full_data(idata)
   47844      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47845      363028 :          data_tmp = IAND(data_tmp, mask_left(40))
   47846      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47847      363028 :          ipack = ipack + 1
   47848      363028 :          packed_data(ipack) = pack_tmp
   47849      363028 :          data_tmp = full_data(idata)
   47850      363028 :          pack_tmp = ISHFT(data_tmp, 46)
   47851      363028 :          pack_tmp = ISHFT(pack_tmp, -46)
   47852      363028 :          idata = idata + 1
   47853      363028 :          data_tmp = full_data(idata)
   47854      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47855      363028 :          data_tmp = IAND(data_tmp, mask_left(46))
   47856      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47857      363028 :          ipack = ipack + 1
   47858      363028 :          packed_data(ipack) = pack_tmp
   47859      363028 :          data_tmp = full_data(idata)
   47860      363028 :          pack_tmp = ISHFT(data_tmp, 52)
   47861      363028 :          pack_tmp = ISHFT(pack_tmp, -52)
   47862      363028 :          idata = idata + 1
   47863      363028 :          data_tmp = full_data(idata)
   47864      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47865      363028 :          data_tmp = IAND(data_tmp, mask_left(52))
   47866      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47867      363028 :          ipack = ipack + 1
   47868      363028 :          packed_data(ipack) = pack_tmp
   47869      363028 :          data_tmp = full_data(idata)
   47870      363028 :          pack_tmp = ISHFT(data_tmp, 58)
   47871      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   47872      363028 :          idata = idata + 1
   47873      363028 :          data_tmp = full_data(idata)
   47874      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47875      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47876      363028 :          pack_tmp = ISHFT(pack_tmp, 0)
   47877      363028 :          idata = idata + 1
   47878      363028 :          data_tmp = full_data(idata)
   47879      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47880      363028 :          data_tmp = IAND(data_tmp, mask_left(0))
   47881      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47882      363028 :          ipack = ipack + 1
   47883      363028 :          packed_data(ipack) = pack_tmp
   47884      363028 :          data_tmp = full_data(idata)
   47885      363028 :          pack_tmp = ISHFT(data_tmp, 6)
   47886      363028 :          pack_tmp = ISHFT(pack_tmp, -6)
   47887      363028 :          idata = idata + 1
   47888      363028 :          data_tmp = full_data(idata)
   47889      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47890      363028 :          data_tmp = IAND(data_tmp, mask_left(6))
   47891      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47892      363028 :          ipack = ipack + 1
   47893      363028 :          packed_data(ipack) = pack_tmp
   47894      363028 :          data_tmp = full_data(idata)
   47895      363028 :          pack_tmp = ISHFT(data_tmp, 12)
   47896      363028 :          pack_tmp = ISHFT(pack_tmp, -12)
   47897      363028 :          idata = idata + 1
   47898      363028 :          data_tmp = full_data(idata)
   47899      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47900      363028 :          data_tmp = IAND(data_tmp, mask_left(12))
   47901      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47902      363028 :          ipack = ipack + 1
   47903      363028 :          packed_data(ipack) = pack_tmp
   47904      363028 :          data_tmp = full_data(idata)
   47905      363028 :          pack_tmp = ISHFT(data_tmp, 18)
   47906      363028 :          pack_tmp = ISHFT(pack_tmp, -18)
   47907      363028 :          idata = idata + 1
   47908      363028 :          data_tmp = full_data(idata)
   47909      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47910      363028 :          data_tmp = IAND(data_tmp, mask_left(18))
   47911      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47912      363028 :          ipack = ipack + 1
   47913      363028 :          packed_data(ipack) = pack_tmp
   47914      363028 :          data_tmp = full_data(idata)
   47915      363028 :          pack_tmp = ISHFT(data_tmp, 24)
   47916      363028 :          pack_tmp = ISHFT(pack_tmp, -24)
   47917      363028 :          idata = idata + 1
   47918      363028 :          data_tmp = full_data(idata)
   47919      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47920      363028 :          data_tmp = IAND(data_tmp, mask_left(24))
   47921      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47922      363028 :          ipack = ipack + 1
   47923      363028 :          packed_data(ipack) = pack_tmp
   47924      363028 :          data_tmp = full_data(idata)
   47925      363028 :          pack_tmp = ISHFT(data_tmp, 30)
   47926      363028 :          pack_tmp = ISHFT(pack_tmp, -30)
   47927      363028 :          idata = idata + 1
   47928      363028 :          data_tmp = full_data(idata)
   47929      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47930      363028 :          data_tmp = IAND(data_tmp, mask_left(30))
   47931      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47932      363028 :          ipack = ipack + 1
   47933      363028 :          packed_data(ipack) = pack_tmp
   47934      363028 :          data_tmp = full_data(idata)
   47935      363028 :          pack_tmp = ISHFT(data_tmp, 36)
   47936      363028 :          pack_tmp = ISHFT(pack_tmp, -36)
   47937      363028 :          idata = idata + 1
   47938      363028 :          data_tmp = full_data(idata)
   47939      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47940      363028 :          data_tmp = IAND(data_tmp, mask_left(36))
   47941      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47942      363028 :          ipack = ipack + 1
   47943      363028 :          packed_data(ipack) = pack_tmp
   47944      363028 :          data_tmp = full_data(idata)
   47945      363028 :          pack_tmp = ISHFT(data_tmp, 42)
   47946      363028 :          pack_tmp = ISHFT(pack_tmp, -42)
   47947      363028 :          idata = idata + 1
   47948      363028 :          data_tmp = full_data(idata)
   47949      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47950      363028 :          data_tmp = IAND(data_tmp, mask_left(42))
   47951      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47952      363028 :          ipack = ipack + 1
   47953      363028 :          packed_data(ipack) = pack_tmp
   47954      363028 :          data_tmp = full_data(idata)
   47955      363028 :          pack_tmp = ISHFT(data_tmp, 48)
   47956      363028 :          pack_tmp = ISHFT(pack_tmp, -48)
   47957      363028 :          idata = idata + 1
   47958      363028 :          data_tmp = full_data(idata)
   47959      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47960      363028 :          data_tmp = IAND(data_tmp, mask_left(48))
   47961      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47962      363028 :          ipack = ipack + 1
   47963      363028 :          packed_data(ipack) = pack_tmp
   47964      363028 :          data_tmp = full_data(idata)
   47965      363028 :          pack_tmp = ISHFT(data_tmp, 54)
   47966      363028 :          pack_tmp = ISHFT(pack_tmp, -54)
   47967      363028 :          idata = idata + 1
   47968      363028 :          data_tmp = full_data(idata)
   47969      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47970      363028 :          data_tmp = IAND(data_tmp, mask_left(54))
   47971      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47972      363028 :          ipack = ipack + 1
   47973      363028 :          packed_data(ipack) = pack_tmp
   47974      363028 :          data_tmp = full_data(idata)
   47975      363028 :          pack_tmp = ISHFT(data_tmp, 60)
   47976      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   47977      363028 :          idata = idata + 1
   47978      363028 :          data_tmp = full_data(idata)
   47979      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47980      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47981      363028 :          pack_tmp = ISHFT(pack_tmp, -2)
   47982      363028 :          idata = idata + 1
   47983      363028 :          data_tmp = full_data(idata)
   47984      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47985      363028 :          data_tmp = IAND(data_tmp, mask_left(2))
   47986      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47987      363028 :          ipack = ipack + 1
   47988      363028 :          packed_data(ipack) = pack_tmp
   47989      363028 :          data_tmp = full_data(idata)
   47990      363028 :          pack_tmp = ISHFT(data_tmp, 8)
   47991      363028 :          pack_tmp = ISHFT(pack_tmp, -8)
   47992      363028 :          idata = idata + 1
   47993      363028 :          data_tmp = full_data(idata)
   47994      363028 :          data_tmp = ISHFT(data_tmp, 6)
   47995      363028 :          data_tmp = IAND(data_tmp, mask_left(8))
   47996      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47997      363028 :          ipack = ipack + 1
   47998      363028 :          packed_data(ipack) = pack_tmp
   47999      363028 :          data_tmp = full_data(idata)
   48000      363028 :          pack_tmp = ISHFT(data_tmp, 14)
   48001      363028 :          pack_tmp = ISHFT(pack_tmp, -14)
   48002      363028 :          idata = idata + 1
   48003      363028 :          data_tmp = full_data(idata)
   48004      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48005      363028 :          data_tmp = IAND(data_tmp, mask_left(14))
   48006      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48007      363028 :          ipack = ipack + 1
   48008      363028 :          packed_data(ipack) = pack_tmp
   48009      363028 :          data_tmp = full_data(idata)
   48010      363028 :          pack_tmp = ISHFT(data_tmp, 20)
   48011      363028 :          pack_tmp = ISHFT(pack_tmp, -20)
   48012      363028 :          idata = idata + 1
   48013      363028 :          data_tmp = full_data(idata)
   48014      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48015      363028 :          data_tmp = IAND(data_tmp, mask_left(20))
   48016      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48017      363028 :          ipack = ipack + 1
   48018      363028 :          packed_data(ipack) = pack_tmp
   48019      363028 :          data_tmp = full_data(idata)
   48020      363028 :          pack_tmp = ISHFT(data_tmp, 26)
   48021      363028 :          pack_tmp = ISHFT(pack_tmp, -26)
   48022      363028 :          idata = idata + 1
   48023      363028 :          data_tmp = full_data(idata)
   48024      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48025      363028 :          data_tmp = IAND(data_tmp, mask_left(26))
   48026      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48027      363028 :          ipack = ipack + 1
   48028      363028 :          packed_data(ipack) = pack_tmp
   48029      363028 :          data_tmp = full_data(idata)
   48030      363028 :          pack_tmp = ISHFT(data_tmp, 32)
   48031      363028 :          pack_tmp = ISHFT(pack_tmp, -32)
   48032      363028 :          idata = idata + 1
   48033      363028 :          data_tmp = full_data(idata)
   48034      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48035      363028 :          data_tmp = IAND(data_tmp, mask_left(32))
   48036      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48037      363028 :          ipack = ipack + 1
   48038      363028 :          packed_data(ipack) = pack_tmp
   48039      363028 :          data_tmp = full_data(idata)
   48040      363028 :          pack_tmp = ISHFT(data_tmp, 38)
   48041      363028 :          pack_tmp = ISHFT(pack_tmp, -38)
   48042      363028 :          idata = idata + 1
   48043      363028 :          data_tmp = full_data(idata)
   48044      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48045      363028 :          data_tmp = IAND(data_tmp, mask_left(38))
   48046      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48047      363028 :          ipack = ipack + 1
   48048      363028 :          packed_data(ipack) = pack_tmp
   48049      363028 :          data_tmp = full_data(idata)
   48050      363028 :          pack_tmp = ISHFT(data_tmp, 44)
   48051      363028 :          pack_tmp = ISHFT(pack_tmp, -44)
   48052      363028 :          idata = idata + 1
   48053      363028 :          data_tmp = full_data(idata)
   48054      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48055      363028 :          data_tmp = IAND(data_tmp, mask_left(44))
   48056      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48057      363028 :          ipack = ipack + 1
   48058      363028 :          packed_data(ipack) = pack_tmp
   48059      363028 :          data_tmp = full_data(idata)
   48060      363028 :          pack_tmp = ISHFT(data_tmp, 50)
   48061      363028 :          pack_tmp = ISHFT(pack_tmp, -50)
   48062      363028 :          idata = idata + 1
   48063      363028 :          data_tmp = full_data(idata)
   48064      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48065      363028 :          data_tmp = IAND(data_tmp, mask_left(50))
   48066      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48067      363028 :          ipack = ipack + 1
   48068      363028 :          packed_data(ipack) = pack_tmp
   48069      363028 :          data_tmp = full_data(idata)
   48070      363028 :          pack_tmp = ISHFT(data_tmp, 56)
   48071      363028 :          pack_tmp = ISHFT(pack_tmp, -56)
   48072      363028 :          idata = idata + 1
   48073      363028 :          data_tmp = full_data(idata)
   48074      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48075      363028 :          data_tmp = IAND(data_tmp, mask_left(56))
   48076      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48077      363028 :          ipack = ipack + 1
   48078      363028 :          packed_data(ipack) = pack_tmp
   48079      363028 :          data_tmp = full_data(idata)
   48080      363028 :          pack_tmp = ISHFT(data_tmp, 62)
   48081      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   48082      363028 :          idata = idata + 1
   48083      363028 :          data_tmp = full_data(idata)
   48084      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48085      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48086      363028 :          pack_tmp = ISHFT(pack_tmp, -4)
   48087      363028 :          idata = idata + 1
   48088      363028 :          data_tmp = full_data(idata)
   48089      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48090      363028 :          data_tmp = IAND(data_tmp, mask_left(4))
   48091      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48092      363028 :          ipack = ipack + 1
   48093      363028 :          packed_data(ipack) = pack_tmp
   48094      363028 :          data_tmp = full_data(idata)
   48095      363028 :          pack_tmp = ISHFT(data_tmp, 10)
   48096      363028 :          pack_tmp = ISHFT(pack_tmp, -10)
   48097      363028 :          idata = idata + 1
   48098      363028 :          data_tmp = full_data(idata)
   48099      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48100      363028 :          data_tmp = IAND(data_tmp, mask_left(10))
   48101      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48102      363028 :          ipack = ipack + 1
   48103      363028 :          packed_data(ipack) = pack_tmp
   48104      363028 :          data_tmp = full_data(idata)
   48105      363028 :          pack_tmp = ISHFT(data_tmp, 16)
   48106      363028 :          pack_tmp = ISHFT(pack_tmp, -16)
   48107      363028 :          idata = idata + 1
   48108      363028 :          data_tmp = full_data(idata)
   48109      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48110      363028 :          data_tmp = IAND(data_tmp, mask_left(16))
   48111      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48112      363028 :          ipack = ipack + 1
   48113      363028 :          packed_data(ipack) = pack_tmp
   48114      363028 :          data_tmp = full_data(idata)
   48115      363028 :          pack_tmp = ISHFT(data_tmp, 22)
   48116      363028 :          pack_tmp = ISHFT(pack_tmp, -22)
   48117      363028 :          idata = idata + 1
   48118      363028 :          data_tmp = full_data(idata)
   48119      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48120      363028 :          data_tmp = IAND(data_tmp, mask_left(22))
   48121      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48122      363028 :          ipack = ipack + 1
   48123      363028 :          packed_data(ipack) = pack_tmp
   48124      363028 :          data_tmp = full_data(idata)
   48125      363028 :          pack_tmp = ISHFT(data_tmp, 28)
   48126      363028 :          pack_tmp = ISHFT(pack_tmp, -28)
   48127      363028 :          idata = idata + 1
   48128      363028 :          data_tmp = full_data(idata)
   48129      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48130      363028 :          data_tmp = IAND(data_tmp, mask_left(28))
   48131      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48132      363028 :          ipack = ipack + 1
   48133      363028 :          packed_data(ipack) = pack_tmp
   48134      363028 :          data_tmp = full_data(idata)
   48135      363028 :          pack_tmp = ISHFT(data_tmp, 34)
   48136      363028 :          pack_tmp = ISHFT(pack_tmp, -34)
   48137      363028 :          idata = idata + 1
   48138      363028 :          data_tmp = full_data(idata)
   48139      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48140      363028 :          data_tmp = IAND(data_tmp, mask_left(34))
   48141      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48142      363028 :          ipack = ipack + 1
   48143      363028 :          packed_data(ipack) = pack_tmp
   48144      363028 :          data_tmp = full_data(idata)
   48145      363028 :          pack_tmp = ISHFT(data_tmp, 40)
   48146      363028 :          pack_tmp = ISHFT(pack_tmp, -40)
   48147      363028 :          idata = idata + 1
   48148      363028 :          data_tmp = full_data(idata)
   48149      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48150      363028 :          data_tmp = IAND(data_tmp, mask_left(40))
   48151      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48152      363028 :          ipack = ipack + 1
   48153      363028 :          packed_data(ipack) = pack_tmp
   48154      363028 :          data_tmp = full_data(idata)
   48155      363028 :          pack_tmp = ISHFT(data_tmp, 46)
   48156      363028 :          pack_tmp = ISHFT(pack_tmp, -46)
   48157      363028 :          idata = idata + 1
   48158      363028 :          data_tmp = full_data(idata)
   48159      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48160      363028 :          data_tmp = IAND(data_tmp, mask_left(46))
   48161      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48162      363028 :          ipack = ipack + 1
   48163      363028 :          packed_data(ipack) = pack_tmp
   48164      363028 :          data_tmp = full_data(idata)
   48165      363028 :          pack_tmp = ISHFT(data_tmp, 52)
   48166      363028 :          pack_tmp = ISHFT(pack_tmp, -52)
   48167      363028 :          idata = idata + 1
   48168      363028 :          data_tmp = full_data(idata)
   48169      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48170      363028 :          data_tmp = IAND(data_tmp, mask_left(52))
   48171      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48172      363028 :          ipack = ipack + 1
   48173      363028 :          packed_data(ipack) = pack_tmp
   48174      363028 :          data_tmp = full_data(idata)
   48175      363028 :          pack_tmp = ISHFT(data_tmp, 58)
   48176      363028 :          pack_tmp = ISHFT(pack_tmp, -58)
   48177      363028 :          idata = idata + 1
   48178      363028 :          data_tmp = full_data(idata)
   48179      363028 :          data_tmp = ISHFT(data_tmp, 6)
   48180      363028 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48181             :          pack_tmp = ISHFT(pack_tmp, 0)
   48182      363028 :          pack_tmp = ISHFT(pack_tmp, 0)
   48183      363028 :          ipack = ipack + 1
   48184      363028 :          packed_data(ipack) = pack_tmp
   48185             :       END DO
   48186       22702 :       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       22702 :    END SUBROUTINE ints2bits_58
   48190             : 
   48191             : ! **************************************************************************************************
   48192             : !> \brief ...
   48193             : !> \param Ndata ...
   48194             : !> \param packed_data ...
   48195             : !> \param full_data ...
   48196             : ! **************************************************************************************************
   48197       94710 :    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       94710 :       ipack = 0
   48208       94710 :       idata = 0
   48209       94710 :       pack_tmp = 0
   48210       94710 :       Ndata_rep = (Ndata/64)*64
   48211       94710 :       DO kdata = 1, Ndata_rep, 64
   48212     1502916 :          idata = idata + 1
   48213     1502916 :          data_tmp = ISHFT(pack_tmp, 58)
   48214     1502916 :          ipack = ipack + 1
   48215     1502916 :          pack_tmp = packed_data(ipack)
   48216     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48217     1502916 :          pack_tmp = ISHFT(pack_tmp, -58)
   48218     1502916 :          idata = idata + 1
   48219     1502916 :          data_tmp = ISHFT(pack_tmp, 52)
   48220     1502916 :          ipack = ipack + 1
   48221     1502916 :          pack_tmp = packed_data(ipack)
   48222     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48223     1502916 :          pack_tmp = ISHFT(pack_tmp, -52)
   48224     1502916 :          idata = idata + 1
   48225     1502916 :          data_tmp = ISHFT(pack_tmp, 46)
   48226     1502916 :          ipack = ipack + 1
   48227     1502916 :          pack_tmp = packed_data(ipack)
   48228     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48229     1502916 :          pack_tmp = ISHFT(pack_tmp, -46)
   48230     1502916 :          idata = idata + 1
   48231     1502916 :          data_tmp = ISHFT(pack_tmp, 40)
   48232     1502916 :          ipack = ipack + 1
   48233     1502916 :          pack_tmp = packed_data(ipack)
   48234     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48235     1502916 :          pack_tmp = ISHFT(pack_tmp, -40)
   48236     1502916 :          idata = idata + 1
   48237     1502916 :          data_tmp = ISHFT(pack_tmp, 34)
   48238     1502916 :          ipack = ipack + 1
   48239     1502916 :          pack_tmp = packed_data(ipack)
   48240     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48241     1502916 :          pack_tmp = ISHFT(pack_tmp, -34)
   48242     1502916 :          idata = idata + 1
   48243     1502916 :          data_tmp = ISHFT(pack_tmp, 28)
   48244     1502916 :          ipack = ipack + 1
   48245     1502916 :          pack_tmp = packed_data(ipack)
   48246     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48247     1502916 :          pack_tmp = ISHFT(pack_tmp, -28)
   48248     1502916 :          idata = idata + 1
   48249     1502916 :          data_tmp = ISHFT(pack_tmp, 22)
   48250     1502916 :          ipack = ipack + 1
   48251     1502916 :          pack_tmp = packed_data(ipack)
   48252     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48253     1502916 :          pack_tmp = ISHFT(pack_tmp, -22)
   48254     1502916 :          idata = idata + 1
   48255     1502916 :          data_tmp = ISHFT(pack_tmp, 16)
   48256     1502916 :          ipack = ipack + 1
   48257     1502916 :          pack_tmp = packed_data(ipack)
   48258     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48259     1502916 :          pack_tmp = ISHFT(pack_tmp, -16)
   48260     1502916 :          idata = idata + 1
   48261     1502916 :          data_tmp = ISHFT(pack_tmp, 10)
   48262     1502916 :          ipack = ipack + 1
   48263     1502916 :          pack_tmp = packed_data(ipack)
   48264     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48265     1502916 :          pack_tmp = ISHFT(pack_tmp, -10)
   48266     1502916 :          idata = idata + 1
   48267     1502916 :          data_tmp = ISHFT(pack_tmp, 4)
   48268     1502916 :          ipack = ipack + 1
   48269     1502916 :          pack_tmp = packed_data(ipack)
   48270     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48271     1502916 :          pack_tmp = ISHFT(pack_tmp, -4)
   48272     1502916 :          idata = idata + 1
   48273     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48274     1502916 :          full_data(idata) = data_tmp
   48275     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48276     1502916 :          idata = idata + 1
   48277     1502916 :          data_tmp = ISHFT(pack_tmp, 56)
   48278     1502916 :          ipack = ipack + 1
   48279     1502916 :          pack_tmp = packed_data(ipack)
   48280     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48281     1502916 :          pack_tmp = ISHFT(pack_tmp, -56)
   48282     1502916 :          idata = idata + 1
   48283     1502916 :          data_tmp = ISHFT(pack_tmp, 50)
   48284     1502916 :          ipack = ipack + 1
   48285     1502916 :          pack_tmp = packed_data(ipack)
   48286     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48287     1502916 :          pack_tmp = ISHFT(pack_tmp, -50)
   48288     1502916 :          idata = idata + 1
   48289     1502916 :          data_tmp = ISHFT(pack_tmp, 44)
   48290     1502916 :          ipack = ipack + 1
   48291     1502916 :          pack_tmp = packed_data(ipack)
   48292     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48293     1502916 :          pack_tmp = ISHFT(pack_tmp, -44)
   48294     1502916 :          idata = idata + 1
   48295     1502916 :          data_tmp = ISHFT(pack_tmp, 38)
   48296     1502916 :          ipack = ipack + 1
   48297     1502916 :          pack_tmp = packed_data(ipack)
   48298     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48299     1502916 :          pack_tmp = ISHFT(pack_tmp, -38)
   48300     1502916 :          idata = idata + 1
   48301     1502916 :          data_tmp = ISHFT(pack_tmp, 32)
   48302     1502916 :          ipack = ipack + 1
   48303     1502916 :          pack_tmp = packed_data(ipack)
   48304     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48305     1502916 :          pack_tmp = ISHFT(pack_tmp, -32)
   48306     1502916 :          idata = idata + 1
   48307     1502916 :          data_tmp = ISHFT(pack_tmp, 26)
   48308     1502916 :          ipack = ipack + 1
   48309     1502916 :          pack_tmp = packed_data(ipack)
   48310     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48311     1502916 :          pack_tmp = ISHFT(pack_tmp, -26)
   48312     1502916 :          idata = idata + 1
   48313     1502916 :          data_tmp = ISHFT(pack_tmp, 20)
   48314     1502916 :          ipack = ipack + 1
   48315     1502916 :          pack_tmp = packed_data(ipack)
   48316     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48317     1502916 :          pack_tmp = ISHFT(pack_tmp, -20)
   48318     1502916 :          idata = idata + 1
   48319     1502916 :          data_tmp = ISHFT(pack_tmp, 14)
   48320     1502916 :          ipack = ipack + 1
   48321     1502916 :          pack_tmp = packed_data(ipack)
   48322     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48323     1502916 :          pack_tmp = ISHFT(pack_tmp, -14)
   48324     1502916 :          idata = idata + 1
   48325     1502916 :          data_tmp = ISHFT(pack_tmp, 8)
   48326     1502916 :          ipack = ipack + 1
   48327     1502916 :          pack_tmp = packed_data(ipack)
   48328     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48329     1502916 :          pack_tmp = ISHFT(pack_tmp, -8)
   48330     1502916 :          idata = idata + 1
   48331     1502916 :          data_tmp = ISHFT(pack_tmp, 2)
   48332     1502916 :          ipack = ipack + 1
   48333     1502916 :          pack_tmp = packed_data(ipack)
   48334     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48335     1502916 :          pack_tmp = ISHFT(pack_tmp, -2)
   48336     1502916 :          idata = idata + 1
   48337     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48338     1502916 :          full_data(idata) = data_tmp
   48339     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48340     1502916 :          idata = idata + 1
   48341     1502916 :          data_tmp = ISHFT(pack_tmp, 54)
   48342     1502916 :          ipack = ipack + 1
   48343     1502916 :          pack_tmp = packed_data(ipack)
   48344     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48345     1502916 :          pack_tmp = ISHFT(pack_tmp, -54)
   48346     1502916 :          idata = idata + 1
   48347     1502916 :          data_tmp = ISHFT(pack_tmp, 48)
   48348     1502916 :          ipack = ipack + 1
   48349     1502916 :          pack_tmp = packed_data(ipack)
   48350     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48351     1502916 :          pack_tmp = ISHFT(pack_tmp, -48)
   48352     1502916 :          idata = idata + 1
   48353     1502916 :          data_tmp = ISHFT(pack_tmp, 42)
   48354     1502916 :          ipack = ipack + 1
   48355     1502916 :          pack_tmp = packed_data(ipack)
   48356     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48357     1502916 :          pack_tmp = ISHFT(pack_tmp, -42)
   48358     1502916 :          idata = idata + 1
   48359     1502916 :          data_tmp = ISHFT(pack_tmp, 36)
   48360     1502916 :          ipack = ipack + 1
   48361     1502916 :          pack_tmp = packed_data(ipack)
   48362     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48363     1502916 :          pack_tmp = ISHFT(pack_tmp, -36)
   48364     1502916 :          idata = idata + 1
   48365     1502916 :          data_tmp = ISHFT(pack_tmp, 30)
   48366     1502916 :          ipack = ipack + 1
   48367     1502916 :          pack_tmp = packed_data(ipack)
   48368     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48369     1502916 :          pack_tmp = ISHFT(pack_tmp, -30)
   48370     1502916 :          idata = idata + 1
   48371     1502916 :          data_tmp = ISHFT(pack_tmp, 24)
   48372     1502916 :          ipack = ipack + 1
   48373     1502916 :          pack_tmp = packed_data(ipack)
   48374     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48375     1502916 :          pack_tmp = ISHFT(pack_tmp, -24)
   48376     1502916 :          idata = idata + 1
   48377     1502916 :          data_tmp = ISHFT(pack_tmp, 18)
   48378     1502916 :          ipack = ipack + 1
   48379     1502916 :          pack_tmp = packed_data(ipack)
   48380     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48381     1502916 :          pack_tmp = ISHFT(pack_tmp, -18)
   48382     1502916 :          idata = idata + 1
   48383     1502916 :          data_tmp = ISHFT(pack_tmp, 12)
   48384     1502916 :          ipack = ipack + 1
   48385     1502916 :          pack_tmp = packed_data(ipack)
   48386     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48387     1502916 :          pack_tmp = ISHFT(pack_tmp, -12)
   48388     1502916 :          idata = idata + 1
   48389     1502916 :          data_tmp = ISHFT(pack_tmp, 6)
   48390     1502916 :          ipack = ipack + 1
   48391     1502916 :          pack_tmp = packed_data(ipack)
   48392     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48393     1502916 :          pack_tmp = ISHFT(pack_tmp, -6)
   48394     1502916 :          idata = idata + 1
   48395     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48396     1502916 :          full_data(idata) = data_tmp
   48397     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48398     1502916 :          idata = idata + 1
   48399     1502916 :          data_tmp = ISHFT(pack_tmp, 58)
   48400     1502916 :          ipack = ipack + 1
   48401     1502916 :          pack_tmp = packed_data(ipack)
   48402     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48403     1502916 :          pack_tmp = ISHFT(pack_tmp, -58)
   48404     1502916 :          idata = idata + 1
   48405     1502916 :          data_tmp = ISHFT(pack_tmp, 52)
   48406     1502916 :          ipack = ipack + 1
   48407     1502916 :          pack_tmp = packed_data(ipack)
   48408     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48409     1502916 :          pack_tmp = ISHFT(pack_tmp, -52)
   48410     1502916 :          idata = idata + 1
   48411     1502916 :          data_tmp = ISHFT(pack_tmp, 46)
   48412     1502916 :          ipack = ipack + 1
   48413     1502916 :          pack_tmp = packed_data(ipack)
   48414     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48415     1502916 :          pack_tmp = ISHFT(pack_tmp, -46)
   48416     1502916 :          idata = idata + 1
   48417     1502916 :          data_tmp = ISHFT(pack_tmp, 40)
   48418     1502916 :          ipack = ipack + 1
   48419     1502916 :          pack_tmp = packed_data(ipack)
   48420     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48421     1502916 :          pack_tmp = ISHFT(pack_tmp, -40)
   48422     1502916 :          idata = idata + 1
   48423     1502916 :          data_tmp = ISHFT(pack_tmp, 34)
   48424     1502916 :          ipack = ipack + 1
   48425     1502916 :          pack_tmp = packed_data(ipack)
   48426     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48427     1502916 :          pack_tmp = ISHFT(pack_tmp, -34)
   48428     1502916 :          idata = idata + 1
   48429     1502916 :          data_tmp = ISHFT(pack_tmp, 28)
   48430     1502916 :          ipack = ipack + 1
   48431     1502916 :          pack_tmp = packed_data(ipack)
   48432     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48433     1502916 :          pack_tmp = ISHFT(pack_tmp, -28)
   48434     1502916 :          idata = idata + 1
   48435     1502916 :          data_tmp = ISHFT(pack_tmp, 22)
   48436     1502916 :          ipack = ipack + 1
   48437     1502916 :          pack_tmp = packed_data(ipack)
   48438     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48439     1502916 :          pack_tmp = ISHFT(pack_tmp, -22)
   48440     1502916 :          idata = idata + 1
   48441     1502916 :          data_tmp = ISHFT(pack_tmp, 16)
   48442     1502916 :          ipack = ipack + 1
   48443     1502916 :          pack_tmp = packed_data(ipack)
   48444     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48445     1502916 :          pack_tmp = ISHFT(pack_tmp, -16)
   48446     1502916 :          idata = idata + 1
   48447     1502916 :          data_tmp = ISHFT(pack_tmp, 10)
   48448     1502916 :          ipack = ipack + 1
   48449     1502916 :          pack_tmp = packed_data(ipack)
   48450     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48451     1502916 :          pack_tmp = ISHFT(pack_tmp, -10)
   48452     1502916 :          idata = idata + 1
   48453     1502916 :          data_tmp = ISHFT(pack_tmp, 4)
   48454     1502916 :          ipack = ipack + 1
   48455     1502916 :          pack_tmp = packed_data(ipack)
   48456     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48457     1502916 :          pack_tmp = ISHFT(pack_tmp, -4)
   48458     1502916 :          idata = idata + 1
   48459     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48460     1502916 :          full_data(idata) = data_tmp
   48461     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48462     1502916 :          idata = idata + 1
   48463     1502916 :          data_tmp = ISHFT(pack_tmp, 56)
   48464     1502916 :          ipack = ipack + 1
   48465     1502916 :          pack_tmp = packed_data(ipack)
   48466     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48467     1502916 :          pack_tmp = ISHFT(pack_tmp, -56)
   48468     1502916 :          idata = idata + 1
   48469     1502916 :          data_tmp = ISHFT(pack_tmp, 50)
   48470     1502916 :          ipack = ipack + 1
   48471     1502916 :          pack_tmp = packed_data(ipack)
   48472     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48473     1502916 :          pack_tmp = ISHFT(pack_tmp, -50)
   48474     1502916 :          idata = idata + 1
   48475     1502916 :          data_tmp = ISHFT(pack_tmp, 44)
   48476     1502916 :          ipack = ipack + 1
   48477     1502916 :          pack_tmp = packed_data(ipack)
   48478     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48479     1502916 :          pack_tmp = ISHFT(pack_tmp, -44)
   48480     1502916 :          idata = idata + 1
   48481     1502916 :          data_tmp = ISHFT(pack_tmp, 38)
   48482     1502916 :          ipack = ipack + 1
   48483     1502916 :          pack_tmp = packed_data(ipack)
   48484     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48485     1502916 :          pack_tmp = ISHFT(pack_tmp, -38)
   48486     1502916 :          idata = idata + 1
   48487     1502916 :          data_tmp = ISHFT(pack_tmp, 32)
   48488     1502916 :          ipack = ipack + 1
   48489     1502916 :          pack_tmp = packed_data(ipack)
   48490     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48491     1502916 :          pack_tmp = ISHFT(pack_tmp, -32)
   48492     1502916 :          idata = idata + 1
   48493     1502916 :          data_tmp = ISHFT(pack_tmp, 26)
   48494     1502916 :          ipack = ipack + 1
   48495     1502916 :          pack_tmp = packed_data(ipack)
   48496     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48497     1502916 :          pack_tmp = ISHFT(pack_tmp, -26)
   48498     1502916 :          idata = idata + 1
   48499     1502916 :          data_tmp = ISHFT(pack_tmp, 20)
   48500     1502916 :          ipack = ipack + 1
   48501     1502916 :          pack_tmp = packed_data(ipack)
   48502     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48503     1502916 :          pack_tmp = ISHFT(pack_tmp, -20)
   48504     1502916 :          idata = idata + 1
   48505     1502916 :          data_tmp = ISHFT(pack_tmp, 14)
   48506     1502916 :          ipack = ipack + 1
   48507     1502916 :          pack_tmp = packed_data(ipack)
   48508     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48509     1502916 :          pack_tmp = ISHFT(pack_tmp, -14)
   48510     1502916 :          idata = idata + 1
   48511     1502916 :          data_tmp = ISHFT(pack_tmp, 8)
   48512     1502916 :          ipack = ipack + 1
   48513     1502916 :          pack_tmp = packed_data(ipack)
   48514     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48515     1502916 :          pack_tmp = ISHFT(pack_tmp, -8)
   48516     1502916 :          idata = idata + 1
   48517     1502916 :          data_tmp = ISHFT(pack_tmp, 2)
   48518     1502916 :          ipack = ipack + 1
   48519     1502916 :          pack_tmp = packed_data(ipack)
   48520     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48521     1502916 :          pack_tmp = ISHFT(pack_tmp, -2)
   48522     1502916 :          idata = idata + 1
   48523     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48524     1502916 :          full_data(idata) = data_tmp
   48525     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48526     1502916 :          idata = idata + 1
   48527     1502916 :          data_tmp = ISHFT(pack_tmp, 54)
   48528     1502916 :          ipack = ipack + 1
   48529     1502916 :          pack_tmp = packed_data(ipack)
   48530     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48531     1502916 :          pack_tmp = ISHFT(pack_tmp, -54)
   48532     1502916 :          idata = idata + 1
   48533     1502916 :          data_tmp = ISHFT(pack_tmp, 48)
   48534     1502916 :          ipack = ipack + 1
   48535     1502916 :          pack_tmp = packed_data(ipack)
   48536     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48537     1502916 :          pack_tmp = ISHFT(pack_tmp, -48)
   48538     1502916 :          idata = idata + 1
   48539     1502916 :          data_tmp = ISHFT(pack_tmp, 42)
   48540     1502916 :          ipack = ipack + 1
   48541     1502916 :          pack_tmp = packed_data(ipack)
   48542     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48543     1502916 :          pack_tmp = ISHFT(pack_tmp, -42)
   48544     1502916 :          idata = idata + 1
   48545     1502916 :          data_tmp = ISHFT(pack_tmp, 36)
   48546     1502916 :          ipack = ipack + 1
   48547     1502916 :          pack_tmp = packed_data(ipack)
   48548     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48549     1502916 :          pack_tmp = ISHFT(pack_tmp, -36)
   48550     1502916 :          idata = idata + 1
   48551     1502916 :          data_tmp = ISHFT(pack_tmp, 30)
   48552     1502916 :          ipack = ipack + 1
   48553     1502916 :          pack_tmp = packed_data(ipack)
   48554     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48555     1502916 :          pack_tmp = ISHFT(pack_tmp, -30)
   48556     1502916 :          idata = idata + 1
   48557     1502916 :          data_tmp = ISHFT(pack_tmp, 24)
   48558     1502916 :          ipack = ipack + 1
   48559     1502916 :          pack_tmp = packed_data(ipack)
   48560     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48561     1502916 :          pack_tmp = ISHFT(pack_tmp, -24)
   48562     1502916 :          idata = idata + 1
   48563     1502916 :          data_tmp = ISHFT(pack_tmp, 18)
   48564     1502916 :          ipack = ipack + 1
   48565     1502916 :          pack_tmp = packed_data(ipack)
   48566     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48567     1502916 :          pack_tmp = ISHFT(pack_tmp, -18)
   48568     1502916 :          idata = idata + 1
   48569     1502916 :          data_tmp = ISHFT(pack_tmp, 12)
   48570     1502916 :          ipack = ipack + 1
   48571     1502916 :          pack_tmp = packed_data(ipack)
   48572     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48573     1502916 :          pack_tmp = ISHFT(pack_tmp, -12)
   48574     1502916 :          idata = idata + 1
   48575     1502916 :          data_tmp = ISHFT(pack_tmp, 6)
   48576     1502916 :          ipack = ipack + 1
   48577     1502916 :          pack_tmp = packed_data(ipack)
   48578     1502916 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48579     1502916 :          pack_tmp = ISHFT(pack_tmp, -6)
   48580     1502916 :          idata = idata + 1
   48581     1502916 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48582     1502916 :          full_data(idata) = data_tmp
   48583     1502916 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48584             :       END DO
   48585       94710 :       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       94710 :    END SUBROUTINE bits2ints_58
   48589             : 
   48590             : ! **************************************************************************************************
   48591             : !> \brief ...
   48592             : !> \param Ndata ...
   48593             : !> \param packed_data ...
   48594             : !> \param full_data ...
   48595             : ! **************************************************************************************************
   48596       22678 :    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       22678 :       idata = 0
   48607       22678 :       ipack = 0
   48608       22678 :       Ndata_rep = (Ndata/64)*64
   48609       22678 :       DO kdata = 1, Ndata_rep, 64
   48610      362848 :          pack_tmp = 0
   48611      362848 :          idata = idata + 1
   48612      362848 :          data_tmp = full_data(idata)
   48613      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48614      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48615      362848 :          pack_tmp = ISHFT(pack_tmp, -5)
   48616      362848 :          idata = idata + 1
   48617      362848 :          data_tmp = full_data(idata)
   48618      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48619      362848 :          data_tmp = IAND(data_tmp, mask_left(5))
   48620      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48621      362848 :          ipack = ipack + 1
   48622      362848 :          packed_data(ipack) = pack_tmp
   48623      362848 :          data_tmp = full_data(idata)
   48624      362848 :          pack_tmp = ISHFT(data_tmp, 10)
   48625      362848 :          pack_tmp = ISHFT(pack_tmp, -10)
   48626      362848 :          idata = idata + 1
   48627      362848 :          data_tmp = full_data(idata)
   48628      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48629      362848 :          data_tmp = IAND(data_tmp, mask_left(10))
   48630      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48631      362848 :          ipack = ipack + 1
   48632      362848 :          packed_data(ipack) = pack_tmp
   48633      362848 :          data_tmp = full_data(idata)
   48634      362848 :          pack_tmp = ISHFT(data_tmp, 15)
   48635      362848 :          pack_tmp = ISHFT(pack_tmp, -15)
   48636      362848 :          idata = idata + 1
   48637      362848 :          data_tmp = full_data(idata)
   48638      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48639      362848 :          data_tmp = IAND(data_tmp, mask_left(15))
   48640      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48641      362848 :          ipack = ipack + 1
   48642      362848 :          packed_data(ipack) = pack_tmp
   48643      362848 :          data_tmp = full_data(idata)
   48644      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   48645      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   48646      362848 :          idata = idata + 1
   48647      362848 :          data_tmp = full_data(idata)
   48648      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48649      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   48650      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48651      362848 :          ipack = ipack + 1
   48652      362848 :          packed_data(ipack) = pack_tmp
   48653      362848 :          data_tmp = full_data(idata)
   48654      362848 :          pack_tmp = ISHFT(data_tmp, 25)
   48655      362848 :          pack_tmp = ISHFT(pack_tmp, -25)
   48656      362848 :          idata = idata + 1
   48657      362848 :          data_tmp = full_data(idata)
   48658      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48659      362848 :          data_tmp = IAND(data_tmp, mask_left(25))
   48660      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48661      362848 :          ipack = ipack + 1
   48662      362848 :          packed_data(ipack) = pack_tmp
   48663      362848 :          data_tmp = full_data(idata)
   48664      362848 :          pack_tmp = ISHFT(data_tmp, 30)
   48665      362848 :          pack_tmp = ISHFT(pack_tmp, -30)
   48666      362848 :          idata = idata + 1
   48667      362848 :          data_tmp = full_data(idata)
   48668      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48669      362848 :          data_tmp = IAND(data_tmp, mask_left(30))
   48670      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48671      362848 :          ipack = ipack + 1
   48672      362848 :          packed_data(ipack) = pack_tmp
   48673      362848 :          data_tmp = full_data(idata)
   48674      362848 :          pack_tmp = ISHFT(data_tmp, 35)
   48675      362848 :          pack_tmp = ISHFT(pack_tmp, -35)
   48676      362848 :          idata = idata + 1
   48677      362848 :          data_tmp = full_data(idata)
   48678      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48679      362848 :          data_tmp = IAND(data_tmp, mask_left(35))
   48680      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48681      362848 :          ipack = ipack + 1
   48682      362848 :          packed_data(ipack) = pack_tmp
   48683      362848 :          data_tmp = full_data(idata)
   48684      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   48685      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   48686      362848 :          idata = idata + 1
   48687      362848 :          data_tmp = full_data(idata)
   48688      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48689      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   48690      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48691      362848 :          ipack = ipack + 1
   48692      362848 :          packed_data(ipack) = pack_tmp
   48693      362848 :          data_tmp = full_data(idata)
   48694      362848 :          pack_tmp = ISHFT(data_tmp, 45)
   48695      362848 :          pack_tmp = ISHFT(pack_tmp, -45)
   48696      362848 :          idata = idata + 1
   48697      362848 :          data_tmp = full_data(idata)
   48698      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48699      362848 :          data_tmp = IAND(data_tmp, mask_left(45))
   48700      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48701      362848 :          ipack = ipack + 1
   48702      362848 :          packed_data(ipack) = pack_tmp
   48703      362848 :          data_tmp = full_data(idata)
   48704      362848 :          pack_tmp = ISHFT(data_tmp, 50)
   48705      362848 :          pack_tmp = ISHFT(pack_tmp, -50)
   48706      362848 :          idata = idata + 1
   48707      362848 :          data_tmp = full_data(idata)
   48708      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48709      362848 :          data_tmp = IAND(data_tmp, mask_left(50))
   48710      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48711      362848 :          ipack = ipack + 1
   48712      362848 :          packed_data(ipack) = pack_tmp
   48713      362848 :          data_tmp = full_data(idata)
   48714      362848 :          pack_tmp = ISHFT(data_tmp, 55)
   48715      362848 :          pack_tmp = ISHFT(pack_tmp, -55)
   48716      362848 :          idata = idata + 1
   48717      362848 :          data_tmp = full_data(idata)
   48718      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48719      362848 :          data_tmp = IAND(data_tmp, mask_left(55))
   48720      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48721      362848 :          ipack = ipack + 1
   48722      362848 :          packed_data(ipack) = pack_tmp
   48723      362848 :          data_tmp = full_data(idata)
   48724      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   48725      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   48726      362848 :          idata = idata + 1
   48727      362848 :          data_tmp = full_data(idata)
   48728      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48729      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48730      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
   48731      362848 :          idata = idata + 1
   48732      362848 :          data_tmp = full_data(idata)
   48733      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48734      362848 :          data_tmp = IAND(data_tmp, mask_left(1))
   48735      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48736      362848 :          ipack = ipack + 1
   48737      362848 :          packed_data(ipack) = pack_tmp
   48738      362848 :          data_tmp = full_data(idata)
   48739      362848 :          pack_tmp = ISHFT(data_tmp, 6)
   48740      362848 :          pack_tmp = ISHFT(pack_tmp, -6)
   48741      362848 :          idata = idata + 1
   48742      362848 :          data_tmp = full_data(idata)
   48743      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48744      362848 :          data_tmp = IAND(data_tmp, mask_left(6))
   48745      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48746      362848 :          ipack = ipack + 1
   48747      362848 :          packed_data(ipack) = pack_tmp
   48748      362848 :          data_tmp = full_data(idata)
   48749      362848 :          pack_tmp = ISHFT(data_tmp, 11)
   48750      362848 :          pack_tmp = ISHFT(pack_tmp, -11)
   48751      362848 :          idata = idata + 1
   48752      362848 :          data_tmp = full_data(idata)
   48753      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48754      362848 :          data_tmp = IAND(data_tmp, mask_left(11))
   48755      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48756      362848 :          ipack = ipack + 1
   48757      362848 :          packed_data(ipack) = pack_tmp
   48758      362848 :          data_tmp = full_data(idata)
   48759      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   48760      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   48761      362848 :          idata = idata + 1
   48762      362848 :          data_tmp = full_data(idata)
   48763      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48764      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   48765      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48766      362848 :          ipack = ipack + 1
   48767      362848 :          packed_data(ipack) = pack_tmp
   48768      362848 :          data_tmp = full_data(idata)
   48769      362848 :          pack_tmp = ISHFT(data_tmp, 21)
   48770      362848 :          pack_tmp = ISHFT(pack_tmp, -21)
   48771      362848 :          idata = idata + 1
   48772      362848 :          data_tmp = full_data(idata)
   48773      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48774      362848 :          data_tmp = IAND(data_tmp, mask_left(21))
   48775      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48776      362848 :          ipack = ipack + 1
   48777      362848 :          packed_data(ipack) = pack_tmp
   48778      362848 :          data_tmp = full_data(idata)
   48779      362848 :          pack_tmp = ISHFT(data_tmp, 26)
   48780      362848 :          pack_tmp = ISHFT(pack_tmp, -26)
   48781      362848 :          idata = idata + 1
   48782      362848 :          data_tmp = full_data(idata)
   48783      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48784      362848 :          data_tmp = IAND(data_tmp, mask_left(26))
   48785      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48786      362848 :          ipack = ipack + 1
   48787      362848 :          packed_data(ipack) = pack_tmp
   48788      362848 :          data_tmp = full_data(idata)
   48789      362848 :          pack_tmp = ISHFT(data_tmp, 31)
   48790      362848 :          pack_tmp = ISHFT(pack_tmp, -31)
   48791      362848 :          idata = idata + 1
   48792      362848 :          data_tmp = full_data(idata)
   48793      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48794      362848 :          data_tmp = IAND(data_tmp, mask_left(31))
   48795      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48796      362848 :          ipack = ipack + 1
   48797      362848 :          packed_data(ipack) = pack_tmp
   48798      362848 :          data_tmp = full_data(idata)
   48799      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   48800      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   48801      362848 :          idata = idata + 1
   48802      362848 :          data_tmp = full_data(idata)
   48803      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48804      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   48805      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48806      362848 :          ipack = ipack + 1
   48807      362848 :          packed_data(ipack) = pack_tmp
   48808      362848 :          data_tmp = full_data(idata)
   48809      362848 :          pack_tmp = ISHFT(data_tmp, 41)
   48810      362848 :          pack_tmp = ISHFT(pack_tmp, -41)
   48811      362848 :          idata = idata + 1
   48812      362848 :          data_tmp = full_data(idata)
   48813      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48814      362848 :          data_tmp = IAND(data_tmp, mask_left(41))
   48815      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48816      362848 :          ipack = ipack + 1
   48817      362848 :          packed_data(ipack) = pack_tmp
   48818      362848 :          data_tmp = full_data(idata)
   48819      362848 :          pack_tmp = ISHFT(data_tmp, 46)
   48820      362848 :          pack_tmp = ISHFT(pack_tmp, -46)
   48821      362848 :          idata = idata + 1
   48822      362848 :          data_tmp = full_data(idata)
   48823      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48824      362848 :          data_tmp = IAND(data_tmp, mask_left(46))
   48825      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48826      362848 :          ipack = ipack + 1
   48827      362848 :          packed_data(ipack) = pack_tmp
   48828      362848 :          data_tmp = full_data(idata)
   48829      362848 :          pack_tmp = ISHFT(data_tmp, 51)
   48830      362848 :          pack_tmp = ISHFT(pack_tmp, -51)
   48831      362848 :          idata = idata + 1
   48832      362848 :          data_tmp = full_data(idata)
   48833      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48834      362848 :          data_tmp = IAND(data_tmp, mask_left(51))
   48835      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48836      362848 :          ipack = ipack + 1
   48837      362848 :          packed_data(ipack) = pack_tmp
   48838      362848 :          data_tmp = full_data(idata)
   48839      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   48840      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   48841      362848 :          idata = idata + 1
   48842      362848 :          data_tmp = full_data(idata)
   48843      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48844      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   48845      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48846      362848 :          ipack = ipack + 1
   48847      362848 :          packed_data(ipack) = pack_tmp
   48848      362848 :          data_tmp = full_data(idata)
   48849      362848 :          pack_tmp = ISHFT(data_tmp, 61)
   48850      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   48851      362848 :          idata = idata + 1
   48852      362848 :          data_tmp = full_data(idata)
   48853      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48854      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48855      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
   48856      362848 :          idata = idata + 1
   48857      362848 :          data_tmp = full_data(idata)
   48858      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48859      362848 :          data_tmp = IAND(data_tmp, mask_left(2))
   48860      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48861      362848 :          ipack = ipack + 1
   48862      362848 :          packed_data(ipack) = pack_tmp
   48863      362848 :          data_tmp = full_data(idata)
   48864      362848 :          pack_tmp = ISHFT(data_tmp, 7)
   48865      362848 :          pack_tmp = ISHFT(pack_tmp, -7)
   48866      362848 :          idata = idata + 1
   48867      362848 :          data_tmp = full_data(idata)
   48868      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48869      362848 :          data_tmp = IAND(data_tmp, mask_left(7))
   48870      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48871      362848 :          ipack = ipack + 1
   48872      362848 :          packed_data(ipack) = pack_tmp
   48873      362848 :          data_tmp = full_data(idata)
   48874      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   48875      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   48876      362848 :          idata = idata + 1
   48877      362848 :          data_tmp = full_data(idata)
   48878      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48879      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   48880      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48881      362848 :          ipack = ipack + 1
   48882      362848 :          packed_data(ipack) = pack_tmp
   48883      362848 :          data_tmp = full_data(idata)
   48884      362848 :          pack_tmp = ISHFT(data_tmp, 17)
   48885      362848 :          pack_tmp = ISHFT(pack_tmp, -17)
   48886      362848 :          idata = idata + 1
   48887      362848 :          data_tmp = full_data(idata)
   48888      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48889      362848 :          data_tmp = IAND(data_tmp, mask_left(17))
   48890      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48891      362848 :          ipack = ipack + 1
   48892      362848 :          packed_data(ipack) = pack_tmp
   48893      362848 :          data_tmp = full_data(idata)
   48894      362848 :          pack_tmp = ISHFT(data_tmp, 22)
   48895      362848 :          pack_tmp = ISHFT(pack_tmp, -22)
   48896      362848 :          idata = idata + 1
   48897      362848 :          data_tmp = full_data(idata)
   48898      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48899      362848 :          data_tmp = IAND(data_tmp, mask_left(22))
   48900      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48901      362848 :          ipack = ipack + 1
   48902      362848 :          packed_data(ipack) = pack_tmp
   48903      362848 :          data_tmp = full_data(idata)
   48904      362848 :          pack_tmp = ISHFT(data_tmp, 27)
   48905      362848 :          pack_tmp = ISHFT(pack_tmp, -27)
   48906      362848 :          idata = idata + 1
   48907      362848 :          data_tmp = full_data(idata)
   48908      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48909      362848 :          data_tmp = IAND(data_tmp, mask_left(27))
   48910      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48911      362848 :          ipack = ipack + 1
   48912      362848 :          packed_data(ipack) = pack_tmp
   48913      362848 :          data_tmp = full_data(idata)
   48914      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   48915      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   48916      362848 :          idata = idata + 1
   48917      362848 :          data_tmp = full_data(idata)
   48918      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48919      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   48920      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48921      362848 :          ipack = ipack + 1
   48922      362848 :          packed_data(ipack) = pack_tmp
   48923      362848 :          data_tmp = full_data(idata)
   48924      362848 :          pack_tmp = ISHFT(data_tmp, 37)
   48925      362848 :          pack_tmp = ISHFT(pack_tmp, -37)
   48926      362848 :          idata = idata + 1
   48927      362848 :          data_tmp = full_data(idata)
   48928      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48929      362848 :          data_tmp = IAND(data_tmp, mask_left(37))
   48930      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48931      362848 :          ipack = ipack + 1
   48932      362848 :          packed_data(ipack) = pack_tmp
   48933      362848 :          data_tmp = full_data(idata)
   48934      362848 :          pack_tmp = ISHFT(data_tmp, 42)
   48935      362848 :          pack_tmp = ISHFT(pack_tmp, -42)
   48936      362848 :          idata = idata + 1
   48937      362848 :          data_tmp = full_data(idata)
   48938      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48939      362848 :          data_tmp = IAND(data_tmp, mask_left(42))
   48940      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48941      362848 :          ipack = ipack + 1
   48942      362848 :          packed_data(ipack) = pack_tmp
   48943      362848 :          data_tmp = full_data(idata)
   48944      362848 :          pack_tmp = ISHFT(data_tmp, 47)
   48945      362848 :          pack_tmp = ISHFT(pack_tmp, -47)
   48946      362848 :          idata = idata + 1
   48947      362848 :          data_tmp = full_data(idata)
   48948      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48949      362848 :          data_tmp = IAND(data_tmp, mask_left(47))
   48950      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48951      362848 :          ipack = ipack + 1
   48952      362848 :          packed_data(ipack) = pack_tmp
   48953      362848 :          data_tmp = full_data(idata)
   48954      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   48955      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   48956      362848 :          idata = idata + 1
   48957      362848 :          data_tmp = full_data(idata)
   48958      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48959      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   48960      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48961      362848 :          ipack = ipack + 1
   48962      362848 :          packed_data(ipack) = pack_tmp
   48963      362848 :          data_tmp = full_data(idata)
   48964      362848 :          pack_tmp = ISHFT(data_tmp, 57)
   48965      362848 :          pack_tmp = ISHFT(pack_tmp, -57)
   48966      362848 :          idata = idata + 1
   48967      362848 :          data_tmp = full_data(idata)
   48968      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48969      362848 :          data_tmp = IAND(data_tmp, mask_left(57))
   48970      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48971      362848 :          ipack = ipack + 1
   48972      362848 :          packed_data(ipack) = pack_tmp
   48973      362848 :          data_tmp = full_data(idata)
   48974      362848 :          pack_tmp = ISHFT(data_tmp, 62)
   48975      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   48976      362848 :          idata = idata + 1
   48977      362848 :          data_tmp = full_data(idata)
   48978      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48979      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48980      362848 :          pack_tmp = ISHFT(pack_tmp, -3)
   48981      362848 :          idata = idata + 1
   48982      362848 :          data_tmp = full_data(idata)
   48983      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48984      362848 :          data_tmp = IAND(data_tmp, mask_left(3))
   48985      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48986      362848 :          ipack = ipack + 1
   48987      362848 :          packed_data(ipack) = pack_tmp
   48988      362848 :          data_tmp = full_data(idata)
   48989      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   48990      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   48991      362848 :          idata = idata + 1
   48992      362848 :          data_tmp = full_data(idata)
   48993      362848 :          data_tmp = ISHFT(data_tmp, 5)
   48994      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   48995      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48996      362848 :          ipack = ipack + 1
   48997      362848 :          packed_data(ipack) = pack_tmp
   48998      362848 :          data_tmp = full_data(idata)
   48999      362848 :          pack_tmp = ISHFT(data_tmp, 13)
   49000      362848 :          pack_tmp = ISHFT(pack_tmp, -13)
   49001      362848 :          idata = idata + 1
   49002      362848 :          data_tmp = full_data(idata)
   49003      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49004      362848 :          data_tmp = IAND(data_tmp, mask_left(13))
   49005      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49006      362848 :          ipack = ipack + 1
   49007      362848 :          packed_data(ipack) = pack_tmp
   49008      362848 :          data_tmp = full_data(idata)
   49009      362848 :          pack_tmp = ISHFT(data_tmp, 18)
   49010      362848 :          pack_tmp = ISHFT(pack_tmp, -18)
   49011      362848 :          idata = idata + 1
   49012      362848 :          data_tmp = full_data(idata)
   49013      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49014      362848 :          data_tmp = IAND(data_tmp, mask_left(18))
   49015      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49016      362848 :          ipack = ipack + 1
   49017      362848 :          packed_data(ipack) = pack_tmp
   49018      362848 :          data_tmp = full_data(idata)
   49019      362848 :          pack_tmp = ISHFT(data_tmp, 23)
   49020      362848 :          pack_tmp = ISHFT(pack_tmp, -23)
   49021      362848 :          idata = idata + 1
   49022      362848 :          data_tmp = full_data(idata)
   49023      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49024      362848 :          data_tmp = IAND(data_tmp, mask_left(23))
   49025      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49026      362848 :          ipack = ipack + 1
   49027      362848 :          packed_data(ipack) = pack_tmp
   49028      362848 :          data_tmp = full_data(idata)
   49029      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   49030      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   49031      362848 :          idata = idata + 1
   49032      362848 :          data_tmp = full_data(idata)
   49033      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49034      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   49035      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49036      362848 :          ipack = ipack + 1
   49037      362848 :          packed_data(ipack) = pack_tmp
   49038      362848 :          data_tmp = full_data(idata)
   49039      362848 :          pack_tmp = ISHFT(data_tmp, 33)
   49040      362848 :          pack_tmp = ISHFT(pack_tmp, -33)
   49041      362848 :          idata = idata + 1
   49042      362848 :          data_tmp = full_data(idata)
   49043      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49044      362848 :          data_tmp = IAND(data_tmp, mask_left(33))
   49045      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49046      362848 :          ipack = ipack + 1
   49047      362848 :          packed_data(ipack) = pack_tmp
   49048      362848 :          data_tmp = full_data(idata)
   49049      362848 :          pack_tmp = ISHFT(data_tmp, 38)
   49050      362848 :          pack_tmp = ISHFT(pack_tmp, -38)
   49051      362848 :          idata = idata + 1
   49052      362848 :          data_tmp = full_data(idata)
   49053      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49054      362848 :          data_tmp = IAND(data_tmp, mask_left(38))
   49055      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49056      362848 :          ipack = ipack + 1
   49057      362848 :          packed_data(ipack) = pack_tmp
   49058      362848 :          data_tmp = full_data(idata)
   49059      362848 :          pack_tmp = ISHFT(data_tmp, 43)
   49060      362848 :          pack_tmp = ISHFT(pack_tmp, -43)
   49061      362848 :          idata = idata + 1
   49062      362848 :          data_tmp = full_data(idata)
   49063      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49064      362848 :          data_tmp = IAND(data_tmp, mask_left(43))
   49065      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49066      362848 :          ipack = ipack + 1
   49067      362848 :          packed_data(ipack) = pack_tmp
   49068      362848 :          data_tmp = full_data(idata)
   49069      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   49070      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   49071      362848 :          idata = idata + 1
   49072      362848 :          data_tmp = full_data(idata)
   49073      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49074      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   49075      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49076      362848 :          ipack = ipack + 1
   49077      362848 :          packed_data(ipack) = pack_tmp
   49078      362848 :          data_tmp = full_data(idata)
   49079      362848 :          pack_tmp = ISHFT(data_tmp, 53)
   49080      362848 :          pack_tmp = ISHFT(pack_tmp, -53)
   49081      362848 :          idata = idata + 1
   49082      362848 :          data_tmp = full_data(idata)
   49083      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49084      362848 :          data_tmp = IAND(data_tmp, mask_left(53))
   49085      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49086      362848 :          ipack = ipack + 1
   49087      362848 :          packed_data(ipack) = pack_tmp
   49088      362848 :          data_tmp = full_data(idata)
   49089      362848 :          pack_tmp = ISHFT(data_tmp, 58)
   49090      362848 :          pack_tmp = ISHFT(pack_tmp, -58)
   49091      362848 :          idata = idata + 1
   49092      362848 :          data_tmp = full_data(idata)
   49093      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49094      362848 :          data_tmp = IAND(data_tmp, mask_left(58))
   49095      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49096      362848 :          ipack = ipack + 1
   49097      362848 :          packed_data(ipack) = pack_tmp
   49098      362848 :          data_tmp = full_data(idata)
   49099      362848 :          pack_tmp = ISHFT(data_tmp, 63)
   49100      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   49101      362848 :          idata = idata + 1
   49102      362848 :          data_tmp = full_data(idata)
   49103      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49104      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49105      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   49106      362848 :          idata = idata + 1
   49107      362848 :          data_tmp = full_data(idata)
   49108      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49109      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   49110      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49111      362848 :          ipack = ipack + 1
   49112      362848 :          packed_data(ipack) = pack_tmp
   49113      362848 :          data_tmp = full_data(idata)
   49114      362848 :          pack_tmp = ISHFT(data_tmp, 9)
   49115      362848 :          pack_tmp = ISHFT(pack_tmp, -9)
   49116      362848 :          idata = idata + 1
   49117      362848 :          data_tmp = full_data(idata)
   49118      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49119      362848 :          data_tmp = IAND(data_tmp, mask_left(9))
   49120      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49121      362848 :          ipack = ipack + 1
   49122      362848 :          packed_data(ipack) = pack_tmp
   49123      362848 :          data_tmp = full_data(idata)
   49124      362848 :          pack_tmp = ISHFT(data_tmp, 14)
   49125      362848 :          pack_tmp = ISHFT(pack_tmp, -14)
   49126      362848 :          idata = idata + 1
   49127      362848 :          data_tmp = full_data(idata)
   49128      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49129      362848 :          data_tmp = IAND(data_tmp, mask_left(14))
   49130      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49131      362848 :          ipack = ipack + 1
   49132      362848 :          packed_data(ipack) = pack_tmp
   49133      362848 :          data_tmp = full_data(idata)
   49134      362848 :          pack_tmp = ISHFT(data_tmp, 19)
   49135      362848 :          pack_tmp = ISHFT(pack_tmp, -19)
   49136      362848 :          idata = idata + 1
   49137      362848 :          data_tmp = full_data(idata)
   49138      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49139      362848 :          data_tmp = IAND(data_tmp, mask_left(19))
   49140      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49141      362848 :          ipack = ipack + 1
   49142      362848 :          packed_data(ipack) = pack_tmp
   49143      362848 :          data_tmp = full_data(idata)
   49144      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   49145      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   49146      362848 :          idata = idata + 1
   49147      362848 :          data_tmp = full_data(idata)
   49148      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49149      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   49150      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49151      362848 :          ipack = ipack + 1
   49152      362848 :          packed_data(ipack) = pack_tmp
   49153      362848 :          data_tmp = full_data(idata)
   49154      362848 :          pack_tmp = ISHFT(data_tmp, 29)
   49155      362848 :          pack_tmp = ISHFT(pack_tmp, -29)
   49156      362848 :          idata = idata + 1
   49157      362848 :          data_tmp = full_data(idata)
   49158      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49159      362848 :          data_tmp = IAND(data_tmp, mask_left(29))
   49160      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49161      362848 :          ipack = ipack + 1
   49162      362848 :          packed_data(ipack) = pack_tmp
   49163      362848 :          data_tmp = full_data(idata)
   49164      362848 :          pack_tmp = ISHFT(data_tmp, 34)
   49165      362848 :          pack_tmp = ISHFT(pack_tmp, -34)
   49166      362848 :          idata = idata + 1
   49167      362848 :          data_tmp = full_data(idata)
   49168      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49169      362848 :          data_tmp = IAND(data_tmp, mask_left(34))
   49170      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49171      362848 :          ipack = ipack + 1
   49172      362848 :          packed_data(ipack) = pack_tmp
   49173      362848 :          data_tmp = full_data(idata)
   49174      362848 :          pack_tmp = ISHFT(data_tmp, 39)
   49175      362848 :          pack_tmp = ISHFT(pack_tmp, -39)
   49176      362848 :          idata = idata + 1
   49177      362848 :          data_tmp = full_data(idata)
   49178      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49179      362848 :          data_tmp = IAND(data_tmp, mask_left(39))
   49180      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49181      362848 :          ipack = ipack + 1
   49182      362848 :          packed_data(ipack) = pack_tmp
   49183      362848 :          data_tmp = full_data(idata)
   49184      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   49185      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   49186      362848 :          idata = idata + 1
   49187      362848 :          data_tmp = full_data(idata)
   49188      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49189      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   49190      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49191      362848 :          ipack = ipack + 1
   49192      362848 :          packed_data(ipack) = pack_tmp
   49193      362848 :          data_tmp = full_data(idata)
   49194      362848 :          pack_tmp = ISHFT(data_tmp, 49)
   49195      362848 :          pack_tmp = ISHFT(pack_tmp, -49)
   49196      362848 :          idata = idata + 1
   49197      362848 :          data_tmp = full_data(idata)
   49198      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49199      362848 :          data_tmp = IAND(data_tmp, mask_left(49))
   49200      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49201      362848 :          ipack = ipack + 1
   49202      362848 :          packed_data(ipack) = pack_tmp
   49203      362848 :          data_tmp = full_data(idata)
   49204      362848 :          pack_tmp = ISHFT(data_tmp, 54)
   49205      362848 :          pack_tmp = ISHFT(pack_tmp, -54)
   49206      362848 :          idata = idata + 1
   49207      362848 :          data_tmp = full_data(idata)
   49208      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49209      362848 :          data_tmp = IAND(data_tmp, mask_left(54))
   49210      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49211      362848 :          ipack = ipack + 1
   49212      362848 :          packed_data(ipack) = pack_tmp
   49213      362848 :          data_tmp = full_data(idata)
   49214      362848 :          pack_tmp = ISHFT(data_tmp, 59)
   49215      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   49216      362848 :          idata = idata + 1
   49217      362848 :          data_tmp = full_data(idata)
   49218      362848 :          data_tmp = ISHFT(data_tmp, 5)
   49219      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49220             :          pack_tmp = ISHFT(pack_tmp, 0)
   49221      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   49222      362848 :          ipack = ipack + 1
   49223      362848 :          packed_data(ipack) = pack_tmp
   49224             :       END DO
   49225       22678 :       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       22678 :    END SUBROUTINE ints2bits_59
   49229             : 
   49230             : ! **************************************************************************************************
   49231             : !> \brief ...
   49232             : !> \param Ndata ...
   49233             : !> \param packed_data ...
   49234             : !> \param full_data ...
   49235             : ! **************************************************************************************************
   49236       93246 :    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       93246 :       ipack = 0
   49247       93246 :       idata = 0
   49248       93246 :       pack_tmp = 0
   49249       93246 :       Ndata_rep = (Ndata/64)*64
   49250       93246 :       DO kdata = 1, Ndata_rep, 64
   49251     1491936 :          idata = idata + 1
   49252     1491936 :          data_tmp = ISHFT(pack_tmp, 59)
   49253     1491936 :          ipack = ipack + 1
   49254     1491936 :          pack_tmp = packed_data(ipack)
   49255     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   49256     1491936 :          pack_tmp = ISHFT(pack_tmp, -59)
   49257     1491936 :          idata = idata + 1
   49258     1491936 :          data_tmp = ISHFT(pack_tmp, 54)
   49259     1491936 :          ipack = ipack + 1
   49260     1491936 :          pack_tmp = packed_data(ipack)
   49261     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   49262     1491936 :          pack_tmp = ISHFT(pack_tmp, -54)
   49263     1491936 :          idata = idata + 1
   49264     1491936 :          data_tmp = ISHFT(pack_tmp, 49)
   49265     1491936 :          ipack = ipack + 1
   49266     1491936 :          pack_tmp = packed_data(ipack)
   49267     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   49268     1491936 :          pack_tmp = ISHFT(pack_tmp, -49)
   49269     1491936 :          idata = idata + 1
   49270     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   49271     1491936 :          ipack = ipack + 1
   49272     1491936 :          pack_tmp = packed_data(ipack)
   49273     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   49274     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   49275     1491936 :          idata = idata + 1
   49276     1491936 :          data_tmp = ISHFT(pack_tmp, 39)
   49277     1491936 :          ipack = ipack + 1
   49278     1491936 :          pack_tmp = packed_data(ipack)
   49279     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   49280     1491936 :          pack_tmp = ISHFT(pack_tmp, -39)
   49281     1491936 :          idata = idata + 1
   49282     1491936 :          data_tmp = ISHFT(pack_tmp, 34)
   49283     1491936 :          ipack = ipack + 1
   49284     1491936 :          pack_tmp = packed_data(ipack)
   49285     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   49286     1491936 :          pack_tmp = ISHFT(pack_tmp, -34)
   49287     1491936 :          idata = idata + 1
   49288     1491936 :          data_tmp = ISHFT(pack_tmp, 29)
   49289     1491936 :          ipack = ipack + 1
   49290     1491936 :          pack_tmp = packed_data(ipack)
   49291     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   49292     1491936 :          pack_tmp = ISHFT(pack_tmp, -29)
   49293     1491936 :          idata = idata + 1
   49294     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   49295     1491936 :          ipack = ipack + 1
   49296     1491936 :          pack_tmp = packed_data(ipack)
   49297     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   49298     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   49299     1491936 :          idata = idata + 1
   49300     1491936 :          data_tmp = ISHFT(pack_tmp, 19)
   49301     1491936 :          ipack = ipack + 1
   49302     1491936 :          pack_tmp = packed_data(ipack)
   49303     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   49304     1491936 :          pack_tmp = ISHFT(pack_tmp, -19)
   49305     1491936 :          idata = idata + 1
   49306     1491936 :          data_tmp = ISHFT(pack_tmp, 14)
   49307     1491936 :          ipack = ipack + 1
   49308     1491936 :          pack_tmp = packed_data(ipack)
   49309     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   49310     1491936 :          pack_tmp = ISHFT(pack_tmp, -14)
   49311     1491936 :          idata = idata + 1
   49312     1491936 :          data_tmp = ISHFT(pack_tmp, 9)
   49313     1491936 :          ipack = ipack + 1
   49314     1491936 :          pack_tmp = packed_data(ipack)
   49315     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   49316     1491936 :          pack_tmp = ISHFT(pack_tmp, -9)
   49317     1491936 :          idata = idata + 1
   49318     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   49319     1491936 :          ipack = ipack + 1
   49320     1491936 :          pack_tmp = packed_data(ipack)
   49321     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   49322     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   49323     1491936 :          idata = idata + 1
   49324     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49325     1491936 :          full_data(idata) = data_tmp
   49326     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49327     1491936 :          idata = idata + 1
   49328     1491936 :          data_tmp = ISHFT(pack_tmp, 58)
   49329     1491936 :          ipack = ipack + 1
   49330     1491936 :          pack_tmp = packed_data(ipack)
   49331     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   49332     1491936 :          pack_tmp = ISHFT(pack_tmp, -58)
   49333     1491936 :          idata = idata + 1
   49334     1491936 :          data_tmp = ISHFT(pack_tmp, 53)
   49335     1491936 :          ipack = ipack + 1
   49336     1491936 :          pack_tmp = packed_data(ipack)
   49337     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   49338     1491936 :          pack_tmp = ISHFT(pack_tmp, -53)
   49339     1491936 :          idata = idata + 1
   49340     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   49341     1491936 :          ipack = ipack + 1
   49342     1491936 :          pack_tmp = packed_data(ipack)
   49343     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   49344     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   49345     1491936 :          idata = idata + 1
   49346     1491936 :          data_tmp = ISHFT(pack_tmp, 43)
   49347     1491936 :          ipack = ipack + 1
   49348     1491936 :          pack_tmp = packed_data(ipack)
   49349     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   49350     1491936 :          pack_tmp = ISHFT(pack_tmp, -43)
   49351     1491936 :          idata = idata + 1
   49352     1491936 :          data_tmp = ISHFT(pack_tmp, 38)
   49353     1491936 :          ipack = ipack + 1
   49354     1491936 :          pack_tmp = packed_data(ipack)
   49355     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   49356     1491936 :          pack_tmp = ISHFT(pack_tmp, -38)
   49357     1491936 :          idata = idata + 1
   49358     1491936 :          data_tmp = ISHFT(pack_tmp, 33)
   49359     1491936 :          ipack = ipack + 1
   49360     1491936 :          pack_tmp = packed_data(ipack)
   49361     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   49362     1491936 :          pack_tmp = ISHFT(pack_tmp, -33)
   49363     1491936 :          idata = idata + 1
   49364     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   49365     1491936 :          ipack = ipack + 1
   49366     1491936 :          pack_tmp = packed_data(ipack)
   49367     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   49368     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   49369     1491936 :          idata = idata + 1
   49370     1491936 :          data_tmp = ISHFT(pack_tmp, 23)
   49371     1491936 :          ipack = ipack + 1
   49372     1491936 :          pack_tmp = packed_data(ipack)
   49373     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   49374     1491936 :          pack_tmp = ISHFT(pack_tmp, -23)
   49375     1491936 :          idata = idata + 1
   49376     1491936 :          data_tmp = ISHFT(pack_tmp, 18)
   49377     1491936 :          ipack = ipack + 1
   49378     1491936 :          pack_tmp = packed_data(ipack)
   49379     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   49380     1491936 :          pack_tmp = ISHFT(pack_tmp, -18)
   49381     1491936 :          idata = idata + 1
   49382     1491936 :          data_tmp = ISHFT(pack_tmp, 13)
   49383     1491936 :          ipack = ipack + 1
   49384     1491936 :          pack_tmp = packed_data(ipack)
   49385     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   49386     1491936 :          pack_tmp = ISHFT(pack_tmp, -13)
   49387     1491936 :          idata = idata + 1
   49388     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   49389     1491936 :          ipack = ipack + 1
   49390     1491936 :          pack_tmp = packed_data(ipack)
   49391     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   49392     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   49393     1491936 :          idata = idata + 1
   49394     1491936 :          data_tmp = ISHFT(pack_tmp, 3)
   49395     1491936 :          ipack = ipack + 1
   49396     1491936 :          pack_tmp = packed_data(ipack)
   49397     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   49398     1491936 :          pack_tmp = ISHFT(pack_tmp, -3)
   49399     1491936 :          idata = idata + 1
   49400     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49401     1491936 :          full_data(idata) = data_tmp
   49402     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49403     1491936 :          idata = idata + 1
   49404     1491936 :          data_tmp = ISHFT(pack_tmp, 57)
   49405     1491936 :          ipack = ipack + 1
   49406     1491936 :          pack_tmp = packed_data(ipack)
   49407     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   49408     1491936 :          pack_tmp = ISHFT(pack_tmp, -57)
   49409     1491936 :          idata = idata + 1
   49410     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   49411     1491936 :          ipack = ipack + 1
   49412     1491936 :          pack_tmp = packed_data(ipack)
   49413     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   49414     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   49415     1491936 :          idata = idata + 1
   49416     1491936 :          data_tmp = ISHFT(pack_tmp, 47)
   49417     1491936 :          ipack = ipack + 1
   49418     1491936 :          pack_tmp = packed_data(ipack)
   49419     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   49420     1491936 :          pack_tmp = ISHFT(pack_tmp, -47)
   49421     1491936 :          idata = idata + 1
   49422     1491936 :          data_tmp = ISHFT(pack_tmp, 42)
   49423     1491936 :          ipack = ipack + 1
   49424     1491936 :          pack_tmp = packed_data(ipack)
   49425     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   49426     1491936 :          pack_tmp = ISHFT(pack_tmp, -42)
   49427     1491936 :          idata = idata + 1
   49428     1491936 :          data_tmp = ISHFT(pack_tmp, 37)
   49429     1491936 :          ipack = ipack + 1
   49430     1491936 :          pack_tmp = packed_data(ipack)
   49431     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   49432     1491936 :          pack_tmp = ISHFT(pack_tmp, -37)
   49433     1491936 :          idata = idata + 1
   49434     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   49435     1491936 :          ipack = ipack + 1
   49436     1491936 :          pack_tmp = packed_data(ipack)
   49437     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   49438     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   49439     1491936 :          idata = idata + 1
   49440     1491936 :          data_tmp = ISHFT(pack_tmp, 27)
   49441     1491936 :          ipack = ipack + 1
   49442     1491936 :          pack_tmp = packed_data(ipack)
   49443     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   49444     1491936 :          pack_tmp = ISHFT(pack_tmp, -27)
   49445     1491936 :          idata = idata + 1
   49446     1491936 :          data_tmp = ISHFT(pack_tmp, 22)
   49447     1491936 :          ipack = ipack + 1
   49448     1491936 :          pack_tmp = packed_data(ipack)
   49449     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   49450     1491936 :          pack_tmp = ISHFT(pack_tmp, -22)
   49451     1491936 :          idata = idata + 1
   49452     1491936 :          data_tmp = ISHFT(pack_tmp, 17)
   49453     1491936 :          ipack = ipack + 1
   49454     1491936 :          pack_tmp = packed_data(ipack)
   49455     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   49456     1491936 :          pack_tmp = ISHFT(pack_tmp, -17)
   49457     1491936 :          idata = idata + 1
   49458     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   49459     1491936 :          ipack = ipack + 1
   49460     1491936 :          pack_tmp = packed_data(ipack)
   49461     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   49462     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   49463     1491936 :          idata = idata + 1
   49464     1491936 :          data_tmp = ISHFT(pack_tmp, 7)
   49465     1491936 :          ipack = ipack + 1
   49466     1491936 :          pack_tmp = packed_data(ipack)
   49467     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   49468     1491936 :          pack_tmp = ISHFT(pack_tmp, -7)
   49469     1491936 :          idata = idata + 1
   49470     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
   49471     1491936 :          ipack = ipack + 1
   49472     1491936 :          pack_tmp = packed_data(ipack)
   49473     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   49474     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
   49475     1491936 :          idata = idata + 1
   49476     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49477     1491936 :          full_data(idata) = data_tmp
   49478     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49479     1491936 :          idata = idata + 1
   49480     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   49481     1491936 :          ipack = ipack + 1
   49482     1491936 :          pack_tmp = packed_data(ipack)
   49483     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   49484     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   49485     1491936 :          idata = idata + 1
   49486     1491936 :          data_tmp = ISHFT(pack_tmp, 51)
   49487     1491936 :          ipack = ipack + 1
   49488     1491936 :          pack_tmp = packed_data(ipack)
   49489     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   49490     1491936 :          pack_tmp = ISHFT(pack_tmp, -51)
   49491     1491936 :          idata = idata + 1
   49492     1491936 :          data_tmp = ISHFT(pack_tmp, 46)
   49493     1491936 :          ipack = ipack + 1
   49494     1491936 :          pack_tmp = packed_data(ipack)
   49495     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   49496     1491936 :          pack_tmp = ISHFT(pack_tmp, -46)
   49497     1491936 :          idata = idata + 1
   49498     1491936 :          data_tmp = ISHFT(pack_tmp, 41)
   49499     1491936 :          ipack = ipack + 1
   49500     1491936 :          pack_tmp = packed_data(ipack)
   49501     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   49502     1491936 :          pack_tmp = ISHFT(pack_tmp, -41)
   49503     1491936 :          idata = idata + 1
   49504     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   49505     1491936 :          ipack = ipack + 1
   49506     1491936 :          pack_tmp = packed_data(ipack)
   49507     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   49508     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   49509     1491936 :          idata = idata + 1
   49510     1491936 :          data_tmp = ISHFT(pack_tmp, 31)
   49511     1491936 :          ipack = ipack + 1
   49512     1491936 :          pack_tmp = packed_data(ipack)
   49513     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   49514     1491936 :          pack_tmp = ISHFT(pack_tmp, -31)
   49515     1491936 :          idata = idata + 1
   49516     1491936 :          data_tmp = ISHFT(pack_tmp, 26)
   49517     1491936 :          ipack = ipack + 1
   49518     1491936 :          pack_tmp = packed_data(ipack)
   49519     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   49520     1491936 :          pack_tmp = ISHFT(pack_tmp, -26)
   49521     1491936 :          idata = idata + 1
   49522     1491936 :          data_tmp = ISHFT(pack_tmp, 21)
   49523     1491936 :          ipack = ipack + 1
   49524     1491936 :          pack_tmp = packed_data(ipack)
   49525     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   49526     1491936 :          pack_tmp = ISHFT(pack_tmp, -21)
   49527     1491936 :          idata = idata + 1
   49528     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   49529     1491936 :          ipack = ipack + 1
   49530     1491936 :          pack_tmp = packed_data(ipack)
   49531     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   49532     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   49533     1491936 :          idata = idata + 1
   49534     1491936 :          data_tmp = ISHFT(pack_tmp, 11)
   49535     1491936 :          ipack = ipack + 1
   49536     1491936 :          pack_tmp = packed_data(ipack)
   49537     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   49538     1491936 :          pack_tmp = ISHFT(pack_tmp, -11)
   49539     1491936 :          idata = idata + 1
   49540     1491936 :          data_tmp = ISHFT(pack_tmp, 6)
   49541     1491936 :          ipack = ipack + 1
   49542     1491936 :          pack_tmp = packed_data(ipack)
   49543     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   49544     1491936 :          pack_tmp = ISHFT(pack_tmp, -6)
   49545     1491936 :          idata = idata + 1
   49546     1491936 :          data_tmp = ISHFT(pack_tmp, 1)
   49547     1491936 :          ipack = ipack + 1
   49548     1491936 :          pack_tmp = packed_data(ipack)
   49549     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   49550     1491936 :          pack_tmp = ISHFT(pack_tmp, -1)
   49551     1491936 :          idata = idata + 1
   49552     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49553     1491936 :          full_data(idata) = data_tmp
   49554     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49555     1491936 :          idata = idata + 1
   49556     1491936 :          data_tmp = ISHFT(pack_tmp, 55)
   49557     1491936 :          ipack = ipack + 1
   49558     1491936 :          pack_tmp = packed_data(ipack)
   49559     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   49560     1491936 :          pack_tmp = ISHFT(pack_tmp, -55)
   49561     1491936 :          idata = idata + 1
   49562     1491936 :          data_tmp = ISHFT(pack_tmp, 50)
   49563     1491936 :          ipack = ipack + 1
   49564     1491936 :          pack_tmp = packed_data(ipack)
   49565     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   49566     1491936 :          pack_tmp = ISHFT(pack_tmp, -50)
   49567     1491936 :          idata = idata + 1
   49568     1491936 :          data_tmp = ISHFT(pack_tmp, 45)
   49569     1491936 :          ipack = ipack + 1
   49570     1491936 :          pack_tmp = packed_data(ipack)
   49571     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   49572     1491936 :          pack_tmp = ISHFT(pack_tmp, -45)
   49573     1491936 :          idata = idata + 1
   49574     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   49575     1491936 :          ipack = ipack + 1
   49576     1491936 :          pack_tmp = packed_data(ipack)
   49577     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   49578     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   49579     1491936 :          idata = idata + 1
   49580     1491936 :          data_tmp = ISHFT(pack_tmp, 35)
   49581     1491936 :          ipack = ipack + 1
   49582     1491936 :          pack_tmp = packed_data(ipack)
   49583     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   49584     1491936 :          pack_tmp = ISHFT(pack_tmp, -35)
   49585     1491936 :          idata = idata + 1
   49586     1491936 :          data_tmp = ISHFT(pack_tmp, 30)
   49587     1491936 :          ipack = ipack + 1
   49588     1491936 :          pack_tmp = packed_data(ipack)
   49589     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   49590     1491936 :          pack_tmp = ISHFT(pack_tmp, -30)
   49591     1491936 :          idata = idata + 1
   49592     1491936 :          data_tmp = ISHFT(pack_tmp, 25)
   49593     1491936 :          ipack = ipack + 1
   49594     1491936 :          pack_tmp = packed_data(ipack)
   49595     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   49596     1491936 :          pack_tmp = ISHFT(pack_tmp, -25)
   49597     1491936 :          idata = idata + 1
   49598     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   49599     1491936 :          ipack = ipack + 1
   49600     1491936 :          pack_tmp = packed_data(ipack)
   49601     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   49602     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   49603     1491936 :          idata = idata + 1
   49604     1491936 :          data_tmp = ISHFT(pack_tmp, 15)
   49605     1491936 :          ipack = ipack + 1
   49606     1491936 :          pack_tmp = packed_data(ipack)
   49607     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   49608     1491936 :          pack_tmp = ISHFT(pack_tmp, -15)
   49609     1491936 :          idata = idata + 1
   49610     1491936 :          data_tmp = ISHFT(pack_tmp, 10)
   49611     1491936 :          ipack = ipack + 1
   49612     1491936 :          pack_tmp = packed_data(ipack)
   49613     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   49614     1491936 :          pack_tmp = ISHFT(pack_tmp, -10)
   49615     1491936 :          idata = idata + 1
   49616     1491936 :          data_tmp = ISHFT(pack_tmp, 5)
   49617     1491936 :          ipack = ipack + 1
   49618     1491936 :          pack_tmp = packed_data(ipack)
   49619     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   49620     1491936 :          pack_tmp = ISHFT(pack_tmp, -5)
   49621     1491936 :          idata = idata + 1
   49622     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49623     1491936 :          full_data(idata) = data_tmp
   49624     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49625             :       END DO
   49626       93246 :       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       93246 :    END SUBROUTINE bits2ints_59
   49630             : 
   49631             : ! **************************************************************************************************
   49632             : !> \brief ...
   49633             : !> \param Ndata ...
   49634             : !> \param packed_data ...
   49635             : !> \param full_data ...
   49636             : ! **************************************************************************************************
   49637       22678 :    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       22678 :       idata = 0
   49648       22678 :       ipack = 0
   49649       22678 :       Ndata_rep = (Ndata/64)*64
   49650       22678 :       DO kdata = 1, Ndata_rep, 64
   49651      362848 :          pack_tmp = 0
   49652      362848 :          idata = idata + 1
   49653      362848 :          data_tmp = full_data(idata)
   49654      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49655      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49656      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   49657      362848 :          idata = idata + 1
   49658      362848 :          data_tmp = full_data(idata)
   49659      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49660      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   49661      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49662      362848 :          ipack = ipack + 1
   49663      362848 :          packed_data(ipack) = pack_tmp
   49664      362848 :          data_tmp = full_data(idata)
   49665      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   49666      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   49667      362848 :          idata = idata + 1
   49668      362848 :          data_tmp = full_data(idata)
   49669      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49670      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   49671      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49672      362848 :          ipack = ipack + 1
   49673      362848 :          packed_data(ipack) = pack_tmp
   49674      362848 :          data_tmp = full_data(idata)
   49675      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   49676      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   49677      362848 :          idata = idata + 1
   49678      362848 :          data_tmp = full_data(idata)
   49679      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49680      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   49681      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49682      362848 :          ipack = ipack + 1
   49683      362848 :          packed_data(ipack) = pack_tmp
   49684      362848 :          data_tmp = full_data(idata)
   49685      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   49686      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   49687      362848 :          idata = idata + 1
   49688      362848 :          data_tmp = full_data(idata)
   49689      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49690      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   49691      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49692      362848 :          ipack = ipack + 1
   49693      362848 :          packed_data(ipack) = pack_tmp
   49694      362848 :          data_tmp = full_data(idata)
   49695      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   49696      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   49697      362848 :          idata = idata + 1
   49698      362848 :          data_tmp = full_data(idata)
   49699      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49700      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   49701      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49702      362848 :          ipack = ipack + 1
   49703      362848 :          packed_data(ipack) = pack_tmp
   49704      362848 :          data_tmp = full_data(idata)
   49705      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   49706      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   49707      362848 :          idata = idata + 1
   49708      362848 :          data_tmp = full_data(idata)
   49709      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49710      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   49711      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49712      362848 :          ipack = ipack + 1
   49713      362848 :          packed_data(ipack) = pack_tmp
   49714      362848 :          data_tmp = full_data(idata)
   49715      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   49716      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   49717      362848 :          idata = idata + 1
   49718      362848 :          data_tmp = full_data(idata)
   49719      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49720      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   49721      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49722      362848 :          ipack = ipack + 1
   49723      362848 :          packed_data(ipack) = pack_tmp
   49724      362848 :          data_tmp = full_data(idata)
   49725      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   49726      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   49727      362848 :          idata = idata + 1
   49728      362848 :          data_tmp = full_data(idata)
   49729      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49730      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   49731      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49732      362848 :          ipack = ipack + 1
   49733      362848 :          packed_data(ipack) = pack_tmp
   49734      362848 :          data_tmp = full_data(idata)
   49735      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   49736      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   49737      362848 :          idata = idata + 1
   49738      362848 :          data_tmp = full_data(idata)
   49739      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49740      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   49741      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49742      362848 :          ipack = ipack + 1
   49743      362848 :          packed_data(ipack) = pack_tmp
   49744      362848 :          data_tmp = full_data(idata)
   49745      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   49746      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   49747      362848 :          idata = idata + 1
   49748      362848 :          data_tmp = full_data(idata)
   49749      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49750      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   49751      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49752      362848 :          ipack = ipack + 1
   49753      362848 :          packed_data(ipack) = pack_tmp
   49754      362848 :          data_tmp = full_data(idata)
   49755      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   49756      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   49757      362848 :          idata = idata + 1
   49758      362848 :          data_tmp = full_data(idata)
   49759      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49760      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   49761      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49762      362848 :          ipack = ipack + 1
   49763      362848 :          packed_data(ipack) = pack_tmp
   49764      362848 :          data_tmp = full_data(idata)
   49765      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   49766      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   49767      362848 :          idata = idata + 1
   49768      362848 :          data_tmp = full_data(idata)
   49769      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49770      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   49771      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49772      362848 :          ipack = ipack + 1
   49773      362848 :          packed_data(ipack) = pack_tmp
   49774      362848 :          data_tmp = full_data(idata)
   49775      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   49776      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   49777      362848 :          idata = idata + 1
   49778      362848 :          data_tmp = full_data(idata)
   49779      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49780      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   49781      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49782      362848 :          ipack = ipack + 1
   49783      362848 :          packed_data(ipack) = pack_tmp
   49784      362848 :          data_tmp = full_data(idata)
   49785      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   49786      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   49787      362848 :          idata = idata + 1
   49788      362848 :          data_tmp = full_data(idata)
   49789      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49790      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   49791      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49792      362848 :          ipack = ipack + 1
   49793      362848 :          packed_data(ipack) = pack_tmp
   49794      362848 :          data_tmp = full_data(idata)
   49795      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   49796      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   49797      362848 :          idata = idata + 1
   49798      362848 :          data_tmp = full_data(idata)
   49799      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49800      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49801      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   49802      362848 :          idata = idata + 1
   49803      362848 :          data_tmp = full_data(idata)
   49804      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49805      362848 :          data_tmp = IAND(data_tmp, mask_left(0))
   49806      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49807      362848 :          ipack = ipack + 1
   49808      362848 :          packed_data(ipack) = pack_tmp
   49809      362848 :          data_tmp = full_data(idata)
   49810      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   49811      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   49812      362848 :          idata = idata + 1
   49813      362848 :          data_tmp = full_data(idata)
   49814      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49815      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   49816      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49817      362848 :          ipack = ipack + 1
   49818      362848 :          packed_data(ipack) = pack_tmp
   49819      362848 :          data_tmp = full_data(idata)
   49820      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   49821      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   49822      362848 :          idata = idata + 1
   49823      362848 :          data_tmp = full_data(idata)
   49824      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49825      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   49826      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49827      362848 :          ipack = ipack + 1
   49828      362848 :          packed_data(ipack) = pack_tmp
   49829      362848 :          data_tmp = full_data(idata)
   49830      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   49831      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   49832      362848 :          idata = idata + 1
   49833      362848 :          data_tmp = full_data(idata)
   49834      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49835      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   49836      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49837      362848 :          ipack = ipack + 1
   49838      362848 :          packed_data(ipack) = pack_tmp
   49839      362848 :          data_tmp = full_data(idata)
   49840      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   49841      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   49842      362848 :          idata = idata + 1
   49843      362848 :          data_tmp = full_data(idata)
   49844      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49845      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   49846      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49847      362848 :          ipack = ipack + 1
   49848      362848 :          packed_data(ipack) = pack_tmp
   49849      362848 :          data_tmp = full_data(idata)
   49850      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   49851      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   49852      362848 :          idata = idata + 1
   49853      362848 :          data_tmp = full_data(idata)
   49854      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49855      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   49856      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49857      362848 :          ipack = ipack + 1
   49858      362848 :          packed_data(ipack) = pack_tmp
   49859      362848 :          data_tmp = full_data(idata)
   49860      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   49861      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   49862      362848 :          idata = idata + 1
   49863      362848 :          data_tmp = full_data(idata)
   49864      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49865      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   49866      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49867      362848 :          ipack = ipack + 1
   49868      362848 :          packed_data(ipack) = pack_tmp
   49869      362848 :          data_tmp = full_data(idata)
   49870      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   49871      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   49872      362848 :          idata = idata + 1
   49873      362848 :          data_tmp = full_data(idata)
   49874      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49875      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   49876      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49877      362848 :          ipack = ipack + 1
   49878      362848 :          packed_data(ipack) = pack_tmp
   49879      362848 :          data_tmp = full_data(idata)
   49880      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   49881      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   49882      362848 :          idata = idata + 1
   49883      362848 :          data_tmp = full_data(idata)
   49884      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49885      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   49886      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49887      362848 :          ipack = ipack + 1
   49888      362848 :          packed_data(ipack) = pack_tmp
   49889      362848 :          data_tmp = full_data(idata)
   49890      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   49891      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   49892      362848 :          idata = idata + 1
   49893      362848 :          data_tmp = full_data(idata)
   49894      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49895      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   49896      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49897      362848 :          ipack = ipack + 1
   49898      362848 :          packed_data(ipack) = pack_tmp
   49899      362848 :          data_tmp = full_data(idata)
   49900      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   49901      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   49902      362848 :          idata = idata + 1
   49903      362848 :          data_tmp = full_data(idata)
   49904      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49905      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   49906      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49907      362848 :          ipack = ipack + 1
   49908      362848 :          packed_data(ipack) = pack_tmp
   49909      362848 :          data_tmp = full_data(idata)
   49910      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   49911      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   49912      362848 :          idata = idata + 1
   49913      362848 :          data_tmp = full_data(idata)
   49914      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49915      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   49916      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49917      362848 :          ipack = ipack + 1
   49918      362848 :          packed_data(ipack) = pack_tmp
   49919      362848 :          data_tmp = full_data(idata)
   49920      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   49921      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   49922      362848 :          idata = idata + 1
   49923      362848 :          data_tmp = full_data(idata)
   49924      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49925      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   49926      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49927      362848 :          ipack = ipack + 1
   49928      362848 :          packed_data(ipack) = pack_tmp
   49929      362848 :          data_tmp = full_data(idata)
   49930      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   49931      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   49932      362848 :          idata = idata + 1
   49933      362848 :          data_tmp = full_data(idata)
   49934      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49935      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   49936      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49937      362848 :          ipack = ipack + 1
   49938      362848 :          packed_data(ipack) = pack_tmp
   49939      362848 :          data_tmp = full_data(idata)
   49940      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   49941      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   49942      362848 :          idata = idata + 1
   49943      362848 :          data_tmp = full_data(idata)
   49944      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49945      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   49946      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49947      362848 :          ipack = ipack + 1
   49948      362848 :          packed_data(ipack) = pack_tmp
   49949      362848 :          data_tmp = full_data(idata)
   49950      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   49951      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   49952      362848 :          idata = idata + 1
   49953      362848 :          data_tmp = full_data(idata)
   49954      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49955      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49956      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   49957      362848 :          idata = idata + 1
   49958      362848 :          data_tmp = full_data(idata)
   49959      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49960      362848 :          data_tmp = IAND(data_tmp, mask_left(0))
   49961      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49962      362848 :          ipack = ipack + 1
   49963      362848 :          packed_data(ipack) = pack_tmp
   49964      362848 :          data_tmp = full_data(idata)
   49965      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   49966      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   49967      362848 :          idata = idata + 1
   49968      362848 :          data_tmp = full_data(idata)
   49969      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49970      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   49971      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49972      362848 :          ipack = ipack + 1
   49973      362848 :          packed_data(ipack) = pack_tmp
   49974      362848 :          data_tmp = full_data(idata)
   49975      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   49976      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   49977      362848 :          idata = idata + 1
   49978      362848 :          data_tmp = full_data(idata)
   49979      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49980      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   49981      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49982      362848 :          ipack = ipack + 1
   49983      362848 :          packed_data(ipack) = pack_tmp
   49984      362848 :          data_tmp = full_data(idata)
   49985      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   49986      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   49987      362848 :          idata = idata + 1
   49988      362848 :          data_tmp = full_data(idata)
   49989      362848 :          data_tmp = ISHFT(data_tmp, 4)
   49990      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   49991      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49992      362848 :          ipack = ipack + 1
   49993      362848 :          packed_data(ipack) = pack_tmp
   49994      362848 :          data_tmp = full_data(idata)
   49995      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   49996      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   49997      362848 :          idata = idata + 1
   49998      362848 :          data_tmp = full_data(idata)
   49999      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50000      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   50001      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50002      362848 :          ipack = ipack + 1
   50003      362848 :          packed_data(ipack) = pack_tmp
   50004      362848 :          data_tmp = full_data(idata)
   50005      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   50006      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   50007      362848 :          idata = idata + 1
   50008      362848 :          data_tmp = full_data(idata)
   50009      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50010      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   50011      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50012      362848 :          ipack = ipack + 1
   50013      362848 :          packed_data(ipack) = pack_tmp
   50014      362848 :          data_tmp = full_data(idata)
   50015      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   50016      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   50017      362848 :          idata = idata + 1
   50018      362848 :          data_tmp = full_data(idata)
   50019      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50020      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   50021      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50022      362848 :          ipack = ipack + 1
   50023      362848 :          packed_data(ipack) = pack_tmp
   50024      362848 :          data_tmp = full_data(idata)
   50025      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   50026      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   50027      362848 :          idata = idata + 1
   50028      362848 :          data_tmp = full_data(idata)
   50029      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50030      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   50031      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50032      362848 :          ipack = ipack + 1
   50033      362848 :          packed_data(ipack) = pack_tmp
   50034      362848 :          data_tmp = full_data(idata)
   50035      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   50036      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   50037      362848 :          idata = idata + 1
   50038      362848 :          data_tmp = full_data(idata)
   50039      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50040      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   50041      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50042      362848 :          ipack = ipack + 1
   50043      362848 :          packed_data(ipack) = pack_tmp
   50044      362848 :          data_tmp = full_data(idata)
   50045      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   50046      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   50047      362848 :          idata = idata + 1
   50048      362848 :          data_tmp = full_data(idata)
   50049      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50050      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   50051      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50052      362848 :          ipack = ipack + 1
   50053      362848 :          packed_data(ipack) = pack_tmp
   50054      362848 :          data_tmp = full_data(idata)
   50055      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   50056      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   50057      362848 :          idata = idata + 1
   50058      362848 :          data_tmp = full_data(idata)
   50059      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50060      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   50061      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50062      362848 :          ipack = ipack + 1
   50063      362848 :          packed_data(ipack) = pack_tmp
   50064      362848 :          data_tmp = full_data(idata)
   50065      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   50066      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   50067      362848 :          idata = idata + 1
   50068      362848 :          data_tmp = full_data(idata)
   50069      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50070      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   50071      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50072      362848 :          ipack = ipack + 1
   50073      362848 :          packed_data(ipack) = pack_tmp
   50074      362848 :          data_tmp = full_data(idata)
   50075      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   50076      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   50077      362848 :          idata = idata + 1
   50078      362848 :          data_tmp = full_data(idata)
   50079      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50080      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   50081      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50082      362848 :          ipack = ipack + 1
   50083      362848 :          packed_data(ipack) = pack_tmp
   50084      362848 :          data_tmp = full_data(idata)
   50085      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   50086      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   50087      362848 :          idata = idata + 1
   50088      362848 :          data_tmp = full_data(idata)
   50089      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50090      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   50091      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50092      362848 :          ipack = ipack + 1
   50093      362848 :          packed_data(ipack) = pack_tmp
   50094      362848 :          data_tmp = full_data(idata)
   50095      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   50096      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   50097      362848 :          idata = idata + 1
   50098      362848 :          data_tmp = full_data(idata)
   50099      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50100      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   50101      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50102      362848 :          ipack = ipack + 1
   50103      362848 :          packed_data(ipack) = pack_tmp
   50104      362848 :          data_tmp = full_data(idata)
   50105      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   50106      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   50107      362848 :          idata = idata + 1
   50108      362848 :          data_tmp = full_data(idata)
   50109      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50110      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50111      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   50112      362848 :          idata = idata + 1
   50113      362848 :          data_tmp = full_data(idata)
   50114      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50115      362848 :          data_tmp = IAND(data_tmp, mask_left(0))
   50116      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50117      362848 :          ipack = ipack + 1
   50118      362848 :          packed_data(ipack) = pack_tmp
   50119      362848 :          data_tmp = full_data(idata)
   50120      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   50121      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   50122      362848 :          idata = idata + 1
   50123      362848 :          data_tmp = full_data(idata)
   50124      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50125      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   50126      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50127      362848 :          ipack = ipack + 1
   50128      362848 :          packed_data(ipack) = pack_tmp
   50129      362848 :          data_tmp = full_data(idata)
   50130      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   50131      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   50132      362848 :          idata = idata + 1
   50133      362848 :          data_tmp = full_data(idata)
   50134      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50135      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   50136      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50137      362848 :          ipack = ipack + 1
   50138      362848 :          packed_data(ipack) = pack_tmp
   50139      362848 :          data_tmp = full_data(idata)
   50140      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   50141      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   50142      362848 :          idata = idata + 1
   50143      362848 :          data_tmp = full_data(idata)
   50144      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50145      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   50146      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50147      362848 :          ipack = ipack + 1
   50148      362848 :          packed_data(ipack) = pack_tmp
   50149      362848 :          data_tmp = full_data(idata)
   50150      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   50151      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   50152      362848 :          idata = idata + 1
   50153      362848 :          data_tmp = full_data(idata)
   50154      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50155      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   50156      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50157      362848 :          ipack = ipack + 1
   50158      362848 :          packed_data(ipack) = pack_tmp
   50159      362848 :          data_tmp = full_data(idata)
   50160      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   50161      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   50162      362848 :          idata = idata + 1
   50163      362848 :          data_tmp = full_data(idata)
   50164      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50165      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   50166      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50167      362848 :          ipack = ipack + 1
   50168      362848 :          packed_data(ipack) = pack_tmp
   50169      362848 :          data_tmp = full_data(idata)
   50170      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   50171      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   50172      362848 :          idata = idata + 1
   50173      362848 :          data_tmp = full_data(idata)
   50174      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50175      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   50176      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50177      362848 :          ipack = ipack + 1
   50178      362848 :          packed_data(ipack) = pack_tmp
   50179      362848 :          data_tmp = full_data(idata)
   50180      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   50181      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   50182      362848 :          idata = idata + 1
   50183      362848 :          data_tmp = full_data(idata)
   50184      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50185      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   50186      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50187      362848 :          ipack = ipack + 1
   50188      362848 :          packed_data(ipack) = pack_tmp
   50189      362848 :          data_tmp = full_data(idata)
   50190      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   50191      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   50192      362848 :          idata = idata + 1
   50193      362848 :          data_tmp = full_data(idata)
   50194      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50195      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   50196      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50197      362848 :          ipack = ipack + 1
   50198      362848 :          packed_data(ipack) = pack_tmp
   50199      362848 :          data_tmp = full_data(idata)
   50200      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   50201      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   50202      362848 :          idata = idata + 1
   50203      362848 :          data_tmp = full_data(idata)
   50204      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50205      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   50206      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50207      362848 :          ipack = ipack + 1
   50208      362848 :          packed_data(ipack) = pack_tmp
   50209      362848 :          data_tmp = full_data(idata)
   50210      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   50211      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   50212      362848 :          idata = idata + 1
   50213      362848 :          data_tmp = full_data(idata)
   50214      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50215      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   50216      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50217      362848 :          ipack = ipack + 1
   50218      362848 :          packed_data(ipack) = pack_tmp
   50219      362848 :          data_tmp = full_data(idata)
   50220      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   50221      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   50222      362848 :          idata = idata + 1
   50223      362848 :          data_tmp = full_data(idata)
   50224      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50225      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   50226      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50227      362848 :          ipack = ipack + 1
   50228      362848 :          packed_data(ipack) = pack_tmp
   50229      362848 :          data_tmp = full_data(idata)
   50230      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   50231      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   50232      362848 :          idata = idata + 1
   50233      362848 :          data_tmp = full_data(idata)
   50234      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50235      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   50236      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50237      362848 :          ipack = ipack + 1
   50238      362848 :          packed_data(ipack) = pack_tmp
   50239      362848 :          data_tmp = full_data(idata)
   50240      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   50241      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   50242      362848 :          idata = idata + 1
   50243      362848 :          data_tmp = full_data(idata)
   50244      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50245      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   50246      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50247      362848 :          ipack = ipack + 1
   50248      362848 :          packed_data(ipack) = pack_tmp
   50249      362848 :          data_tmp = full_data(idata)
   50250      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   50251      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   50252      362848 :          idata = idata + 1
   50253      362848 :          data_tmp = full_data(idata)
   50254      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50255      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   50256      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50257      362848 :          ipack = ipack + 1
   50258      362848 :          packed_data(ipack) = pack_tmp
   50259      362848 :          data_tmp = full_data(idata)
   50260      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   50261      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   50262      362848 :          idata = idata + 1
   50263      362848 :          data_tmp = full_data(idata)
   50264      362848 :          data_tmp = ISHFT(data_tmp, 4)
   50265      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50266             :          pack_tmp = ISHFT(pack_tmp, 0)
   50267      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   50268      362848 :          ipack = ipack + 1
   50269      362848 :          packed_data(ipack) = pack_tmp
   50270             :       END DO
   50271       22678 :       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       22678 :    END SUBROUTINE ints2bits_60
   50275             : 
   50276             : ! **************************************************************************************************
   50277             : !> \brief ...
   50278             : !> \param Ndata ...
   50279             : !> \param packed_data ...
   50280             : !> \param full_data ...
   50281             : ! **************************************************************************************************
   50282       93246 :    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       93246 :       ipack = 0
   50293       93246 :       idata = 0
   50294       93246 :       pack_tmp = 0
   50295       93246 :       Ndata_rep = (Ndata/64)*64
   50296       93246 :       DO kdata = 1, Ndata_rep, 64
   50297     1491936 :          idata = idata + 1
   50298     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   50299     1491936 :          ipack = ipack + 1
   50300     1491936 :          pack_tmp = packed_data(ipack)
   50301     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50302     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   50303     1491936 :          idata = idata + 1
   50304     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   50305     1491936 :          ipack = ipack + 1
   50306     1491936 :          pack_tmp = packed_data(ipack)
   50307     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50308     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   50309     1491936 :          idata = idata + 1
   50310     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   50311     1491936 :          ipack = ipack + 1
   50312     1491936 :          pack_tmp = packed_data(ipack)
   50313     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50314     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   50315     1491936 :          idata = idata + 1
   50316     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   50317     1491936 :          ipack = ipack + 1
   50318     1491936 :          pack_tmp = packed_data(ipack)
   50319     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50320     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   50321     1491936 :          idata = idata + 1
   50322     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   50323     1491936 :          ipack = ipack + 1
   50324     1491936 :          pack_tmp = packed_data(ipack)
   50325     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50326     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   50327     1491936 :          idata = idata + 1
   50328     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   50329     1491936 :          ipack = ipack + 1
   50330     1491936 :          pack_tmp = packed_data(ipack)
   50331     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50332     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   50333     1491936 :          idata = idata + 1
   50334     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   50335     1491936 :          ipack = ipack + 1
   50336     1491936 :          pack_tmp = packed_data(ipack)
   50337     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50338     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   50339     1491936 :          idata = idata + 1
   50340     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   50341     1491936 :          ipack = ipack + 1
   50342     1491936 :          pack_tmp = packed_data(ipack)
   50343     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50344     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   50345     1491936 :          idata = idata + 1
   50346     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   50347     1491936 :          ipack = ipack + 1
   50348     1491936 :          pack_tmp = packed_data(ipack)
   50349     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50350     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   50351     1491936 :          idata = idata + 1
   50352     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   50353     1491936 :          ipack = ipack + 1
   50354     1491936 :          pack_tmp = packed_data(ipack)
   50355     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50356     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   50357     1491936 :          idata = idata + 1
   50358     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   50359     1491936 :          ipack = ipack + 1
   50360     1491936 :          pack_tmp = packed_data(ipack)
   50361     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50362     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   50363     1491936 :          idata = idata + 1
   50364     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   50365     1491936 :          ipack = ipack + 1
   50366     1491936 :          pack_tmp = packed_data(ipack)
   50367     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50368     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   50369     1491936 :          idata = idata + 1
   50370     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   50371     1491936 :          ipack = ipack + 1
   50372     1491936 :          pack_tmp = packed_data(ipack)
   50373     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50374     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   50375     1491936 :          idata = idata + 1
   50376     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   50377     1491936 :          ipack = ipack + 1
   50378     1491936 :          pack_tmp = packed_data(ipack)
   50379     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50380     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   50381     1491936 :          idata = idata + 1
   50382     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   50383     1491936 :          ipack = ipack + 1
   50384     1491936 :          pack_tmp = packed_data(ipack)
   50385     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50386     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   50387     1491936 :          idata = idata + 1
   50388     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50389     1491936 :          full_data(idata) = data_tmp
   50390     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50391     1491936 :          idata = idata + 1
   50392     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   50393     1491936 :          ipack = ipack + 1
   50394     1491936 :          pack_tmp = packed_data(ipack)
   50395     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50396     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   50397     1491936 :          idata = idata + 1
   50398     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   50399     1491936 :          ipack = ipack + 1
   50400     1491936 :          pack_tmp = packed_data(ipack)
   50401     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50402     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   50403     1491936 :          idata = idata + 1
   50404     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   50405     1491936 :          ipack = ipack + 1
   50406     1491936 :          pack_tmp = packed_data(ipack)
   50407     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50408     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   50409     1491936 :          idata = idata + 1
   50410     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   50411     1491936 :          ipack = ipack + 1
   50412     1491936 :          pack_tmp = packed_data(ipack)
   50413     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50414     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   50415     1491936 :          idata = idata + 1
   50416     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   50417     1491936 :          ipack = ipack + 1
   50418     1491936 :          pack_tmp = packed_data(ipack)
   50419     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50420     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   50421     1491936 :          idata = idata + 1
   50422     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   50423     1491936 :          ipack = ipack + 1
   50424     1491936 :          pack_tmp = packed_data(ipack)
   50425     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50426     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   50427     1491936 :          idata = idata + 1
   50428     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   50429     1491936 :          ipack = ipack + 1
   50430     1491936 :          pack_tmp = packed_data(ipack)
   50431     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50432     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   50433     1491936 :          idata = idata + 1
   50434     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   50435     1491936 :          ipack = ipack + 1
   50436     1491936 :          pack_tmp = packed_data(ipack)
   50437     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50438     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   50439     1491936 :          idata = idata + 1
   50440     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   50441     1491936 :          ipack = ipack + 1
   50442     1491936 :          pack_tmp = packed_data(ipack)
   50443     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50444     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   50445     1491936 :          idata = idata + 1
   50446     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   50447     1491936 :          ipack = ipack + 1
   50448     1491936 :          pack_tmp = packed_data(ipack)
   50449     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50450     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   50451     1491936 :          idata = idata + 1
   50452     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   50453     1491936 :          ipack = ipack + 1
   50454     1491936 :          pack_tmp = packed_data(ipack)
   50455     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50456     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   50457     1491936 :          idata = idata + 1
   50458     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   50459     1491936 :          ipack = ipack + 1
   50460     1491936 :          pack_tmp = packed_data(ipack)
   50461     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50462     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   50463     1491936 :          idata = idata + 1
   50464     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   50465     1491936 :          ipack = ipack + 1
   50466     1491936 :          pack_tmp = packed_data(ipack)
   50467     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50468     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   50469     1491936 :          idata = idata + 1
   50470     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   50471     1491936 :          ipack = ipack + 1
   50472     1491936 :          pack_tmp = packed_data(ipack)
   50473     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50474     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   50475     1491936 :          idata = idata + 1
   50476     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   50477     1491936 :          ipack = ipack + 1
   50478     1491936 :          pack_tmp = packed_data(ipack)
   50479     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50480     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   50481     1491936 :          idata = idata + 1
   50482     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50483     1491936 :          full_data(idata) = data_tmp
   50484     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50485     1491936 :          idata = idata + 1
   50486     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   50487     1491936 :          ipack = ipack + 1
   50488     1491936 :          pack_tmp = packed_data(ipack)
   50489     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50490     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   50491     1491936 :          idata = idata + 1
   50492     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   50493     1491936 :          ipack = ipack + 1
   50494     1491936 :          pack_tmp = packed_data(ipack)
   50495     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50496     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   50497     1491936 :          idata = idata + 1
   50498     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   50499     1491936 :          ipack = ipack + 1
   50500     1491936 :          pack_tmp = packed_data(ipack)
   50501     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50502     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   50503     1491936 :          idata = idata + 1
   50504     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   50505     1491936 :          ipack = ipack + 1
   50506     1491936 :          pack_tmp = packed_data(ipack)
   50507     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50508     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   50509     1491936 :          idata = idata + 1
   50510     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   50511     1491936 :          ipack = ipack + 1
   50512     1491936 :          pack_tmp = packed_data(ipack)
   50513     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50514     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   50515     1491936 :          idata = idata + 1
   50516     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   50517     1491936 :          ipack = ipack + 1
   50518     1491936 :          pack_tmp = packed_data(ipack)
   50519     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50520     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   50521     1491936 :          idata = idata + 1
   50522     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   50523     1491936 :          ipack = ipack + 1
   50524     1491936 :          pack_tmp = packed_data(ipack)
   50525     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50526     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   50527     1491936 :          idata = idata + 1
   50528     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   50529     1491936 :          ipack = ipack + 1
   50530     1491936 :          pack_tmp = packed_data(ipack)
   50531     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50532     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   50533     1491936 :          idata = idata + 1
   50534     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   50535     1491936 :          ipack = ipack + 1
   50536     1491936 :          pack_tmp = packed_data(ipack)
   50537     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50538     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   50539     1491936 :          idata = idata + 1
   50540     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   50541     1491936 :          ipack = ipack + 1
   50542     1491936 :          pack_tmp = packed_data(ipack)
   50543     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50544     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   50545     1491936 :          idata = idata + 1
   50546     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   50547     1491936 :          ipack = ipack + 1
   50548     1491936 :          pack_tmp = packed_data(ipack)
   50549     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50550     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   50551     1491936 :          idata = idata + 1
   50552     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   50553     1491936 :          ipack = ipack + 1
   50554     1491936 :          pack_tmp = packed_data(ipack)
   50555     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50556     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   50557     1491936 :          idata = idata + 1
   50558     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   50559     1491936 :          ipack = ipack + 1
   50560     1491936 :          pack_tmp = packed_data(ipack)
   50561     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50562     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   50563     1491936 :          idata = idata + 1
   50564     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   50565     1491936 :          ipack = ipack + 1
   50566     1491936 :          pack_tmp = packed_data(ipack)
   50567     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50568     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   50569     1491936 :          idata = idata + 1
   50570     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   50571     1491936 :          ipack = ipack + 1
   50572     1491936 :          pack_tmp = packed_data(ipack)
   50573     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50574     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   50575     1491936 :          idata = idata + 1
   50576     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50577     1491936 :          full_data(idata) = data_tmp
   50578     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50579     1491936 :          idata = idata + 1
   50580     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   50581     1491936 :          ipack = ipack + 1
   50582     1491936 :          pack_tmp = packed_data(ipack)
   50583     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50584     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   50585     1491936 :          idata = idata + 1
   50586     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   50587     1491936 :          ipack = ipack + 1
   50588     1491936 :          pack_tmp = packed_data(ipack)
   50589     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50590     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   50591     1491936 :          idata = idata + 1
   50592     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   50593     1491936 :          ipack = ipack + 1
   50594     1491936 :          pack_tmp = packed_data(ipack)
   50595     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50596     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   50597     1491936 :          idata = idata + 1
   50598     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   50599     1491936 :          ipack = ipack + 1
   50600     1491936 :          pack_tmp = packed_data(ipack)
   50601     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50602     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   50603     1491936 :          idata = idata + 1
   50604     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   50605     1491936 :          ipack = ipack + 1
   50606     1491936 :          pack_tmp = packed_data(ipack)
   50607     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50608     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   50609     1491936 :          idata = idata + 1
   50610     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   50611     1491936 :          ipack = ipack + 1
   50612     1491936 :          pack_tmp = packed_data(ipack)
   50613     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50614     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   50615     1491936 :          idata = idata + 1
   50616     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   50617     1491936 :          ipack = ipack + 1
   50618     1491936 :          pack_tmp = packed_data(ipack)
   50619     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50620     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   50621     1491936 :          idata = idata + 1
   50622     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   50623     1491936 :          ipack = ipack + 1
   50624     1491936 :          pack_tmp = packed_data(ipack)
   50625     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50626     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   50627     1491936 :          idata = idata + 1
   50628     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   50629     1491936 :          ipack = ipack + 1
   50630     1491936 :          pack_tmp = packed_data(ipack)
   50631     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50632     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   50633     1491936 :          idata = idata + 1
   50634     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   50635     1491936 :          ipack = ipack + 1
   50636     1491936 :          pack_tmp = packed_data(ipack)
   50637     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50638     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   50639     1491936 :          idata = idata + 1
   50640     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   50641     1491936 :          ipack = ipack + 1
   50642     1491936 :          pack_tmp = packed_data(ipack)
   50643     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50644     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   50645     1491936 :          idata = idata + 1
   50646     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   50647     1491936 :          ipack = ipack + 1
   50648     1491936 :          pack_tmp = packed_data(ipack)
   50649     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50650     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   50651     1491936 :          idata = idata + 1
   50652     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   50653     1491936 :          ipack = ipack + 1
   50654     1491936 :          pack_tmp = packed_data(ipack)
   50655     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50656     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   50657     1491936 :          idata = idata + 1
   50658     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   50659     1491936 :          ipack = ipack + 1
   50660     1491936 :          pack_tmp = packed_data(ipack)
   50661     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50662     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   50663     1491936 :          idata = idata + 1
   50664     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   50665     1491936 :          ipack = ipack + 1
   50666     1491936 :          pack_tmp = packed_data(ipack)
   50667     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50668     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   50669     1491936 :          idata = idata + 1
   50670     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50671     1491936 :          full_data(idata) = data_tmp
   50672     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50673             :       END DO
   50674       93246 :       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       93246 :    END SUBROUTINE bits2ints_60
   50678             : 
   50679             : ! **************************************************************************************************
   50680             : !> \brief ...
   50681             : !> \param Ndata ...
   50682             : !> \param packed_data ...
   50683             : !> \param full_data ...
   50684             : ! **************************************************************************************************
   50685       22678 :    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       22678 :       idata = 0
   50696       22678 :       ipack = 0
   50697       22678 :       Ndata_rep = (Ndata/64)*64
   50698       22678 :       DO kdata = 1, Ndata_rep, 64
   50699      362848 :          pack_tmp = 0
   50700      362848 :          idata = idata + 1
   50701      362848 :          data_tmp = full_data(idata)
   50702      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50703      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50704      362848 :          pack_tmp = ISHFT(pack_tmp, -3)
   50705      362848 :          idata = idata + 1
   50706      362848 :          data_tmp = full_data(idata)
   50707      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50708      362848 :          data_tmp = IAND(data_tmp, mask_left(3))
   50709      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50710      362848 :          ipack = ipack + 1
   50711      362848 :          packed_data(ipack) = pack_tmp
   50712      362848 :          data_tmp = full_data(idata)
   50713      362848 :          pack_tmp = ISHFT(data_tmp, 6)
   50714      362848 :          pack_tmp = ISHFT(pack_tmp, -6)
   50715      362848 :          idata = idata + 1
   50716      362848 :          data_tmp = full_data(idata)
   50717      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50718      362848 :          data_tmp = IAND(data_tmp, mask_left(6))
   50719      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50720      362848 :          ipack = ipack + 1
   50721      362848 :          packed_data(ipack) = pack_tmp
   50722      362848 :          data_tmp = full_data(idata)
   50723      362848 :          pack_tmp = ISHFT(data_tmp, 9)
   50724      362848 :          pack_tmp = ISHFT(pack_tmp, -9)
   50725      362848 :          idata = idata + 1
   50726      362848 :          data_tmp = full_data(idata)
   50727      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50728      362848 :          data_tmp = IAND(data_tmp, mask_left(9))
   50729      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50730      362848 :          ipack = ipack + 1
   50731      362848 :          packed_data(ipack) = pack_tmp
   50732      362848 :          data_tmp = full_data(idata)
   50733      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   50734      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   50735      362848 :          idata = idata + 1
   50736      362848 :          data_tmp = full_data(idata)
   50737      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50738      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   50739      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50740      362848 :          ipack = ipack + 1
   50741      362848 :          packed_data(ipack) = pack_tmp
   50742      362848 :          data_tmp = full_data(idata)
   50743      362848 :          pack_tmp = ISHFT(data_tmp, 15)
   50744      362848 :          pack_tmp = ISHFT(pack_tmp, -15)
   50745      362848 :          idata = idata + 1
   50746      362848 :          data_tmp = full_data(idata)
   50747      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50748      362848 :          data_tmp = IAND(data_tmp, mask_left(15))
   50749      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50750      362848 :          ipack = ipack + 1
   50751      362848 :          packed_data(ipack) = pack_tmp
   50752      362848 :          data_tmp = full_data(idata)
   50753      362848 :          pack_tmp = ISHFT(data_tmp, 18)
   50754      362848 :          pack_tmp = ISHFT(pack_tmp, -18)
   50755      362848 :          idata = idata + 1
   50756      362848 :          data_tmp = full_data(idata)
   50757      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50758      362848 :          data_tmp = IAND(data_tmp, mask_left(18))
   50759      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50760      362848 :          ipack = ipack + 1
   50761      362848 :          packed_data(ipack) = pack_tmp
   50762      362848 :          data_tmp = full_data(idata)
   50763      362848 :          pack_tmp = ISHFT(data_tmp, 21)
   50764      362848 :          pack_tmp = ISHFT(pack_tmp, -21)
   50765      362848 :          idata = idata + 1
   50766      362848 :          data_tmp = full_data(idata)
   50767      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50768      362848 :          data_tmp = IAND(data_tmp, mask_left(21))
   50769      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50770      362848 :          ipack = ipack + 1
   50771      362848 :          packed_data(ipack) = pack_tmp
   50772      362848 :          data_tmp = full_data(idata)
   50773      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   50774      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   50775      362848 :          idata = idata + 1
   50776      362848 :          data_tmp = full_data(idata)
   50777      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50778      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   50779      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50780      362848 :          ipack = ipack + 1
   50781      362848 :          packed_data(ipack) = pack_tmp
   50782      362848 :          data_tmp = full_data(idata)
   50783      362848 :          pack_tmp = ISHFT(data_tmp, 27)
   50784      362848 :          pack_tmp = ISHFT(pack_tmp, -27)
   50785      362848 :          idata = idata + 1
   50786      362848 :          data_tmp = full_data(idata)
   50787      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50788      362848 :          data_tmp = IAND(data_tmp, mask_left(27))
   50789      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50790      362848 :          ipack = ipack + 1
   50791      362848 :          packed_data(ipack) = pack_tmp
   50792      362848 :          data_tmp = full_data(idata)
   50793      362848 :          pack_tmp = ISHFT(data_tmp, 30)
   50794      362848 :          pack_tmp = ISHFT(pack_tmp, -30)
   50795      362848 :          idata = idata + 1
   50796      362848 :          data_tmp = full_data(idata)
   50797      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50798      362848 :          data_tmp = IAND(data_tmp, mask_left(30))
   50799      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50800      362848 :          ipack = ipack + 1
   50801      362848 :          packed_data(ipack) = pack_tmp
   50802      362848 :          data_tmp = full_data(idata)
   50803      362848 :          pack_tmp = ISHFT(data_tmp, 33)
   50804      362848 :          pack_tmp = ISHFT(pack_tmp, -33)
   50805      362848 :          idata = idata + 1
   50806      362848 :          data_tmp = full_data(idata)
   50807      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50808      362848 :          data_tmp = IAND(data_tmp, mask_left(33))
   50809      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50810      362848 :          ipack = ipack + 1
   50811      362848 :          packed_data(ipack) = pack_tmp
   50812      362848 :          data_tmp = full_data(idata)
   50813      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   50814      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   50815      362848 :          idata = idata + 1
   50816      362848 :          data_tmp = full_data(idata)
   50817      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50818      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   50819      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50820      362848 :          ipack = ipack + 1
   50821      362848 :          packed_data(ipack) = pack_tmp
   50822      362848 :          data_tmp = full_data(idata)
   50823      362848 :          pack_tmp = ISHFT(data_tmp, 39)
   50824      362848 :          pack_tmp = ISHFT(pack_tmp, -39)
   50825      362848 :          idata = idata + 1
   50826      362848 :          data_tmp = full_data(idata)
   50827      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50828      362848 :          data_tmp = IAND(data_tmp, mask_left(39))
   50829      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50830      362848 :          ipack = ipack + 1
   50831      362848 :          packed_data(ipack) = pack_tmp
   50832      362848 :          data_tmp = full_data(idata)
   50833      362848 :          pack_tmp = ISHFT(data_tmp, 42)
   50834      362848 :          pack_tmp = ISHFT(pack_tmp, -42)
   50835      362848 :          idata = idata + 1
   50836      362848 :          data_tmp = full_data(idata)
   50837      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50838      362848 :          data_tmp = IAND(data_tmp, mask_left(42))
   50839      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50840      362848 :          ipack = ipack + 1
   50841      362848 :          packed_data(ipack) = pack_tmp
   50842      362848 :          data_tmp = full_data(idata)
   50843      362848 :          pack_tmp = ISHFT(data_tmp, 45)
   50844      362848 :          pack_tmp = ISHFT(pack_tmp, -45)
   50845      362848 :          idata = idata + 1
   50846      362848 :          data_tmp = full_data(idata)
   50847      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50848      362848 :          data_tmp = IAND(data_tmp, mask_left(45))
   50849      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50850      362848 :          ipack = ipack + 1
   50851      362848 :          packed_data(ipack) = pack_tmp
   50852      362848 :          data_tmp = full_data(idata)
   50853      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   50854      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   50855      362848 :          idata = idata + 1
   50856      362848 :          data_tmp = full_data(idata)
   50857      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50858      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   50859      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50860      362848 :          ipack = ipack + 1
   50861      362848 :          packed_data(ipack) = pack_tmp
   50862      362848 :          data_tmp = full_data(idata)
   50863      362848 :          pack_tmp = ISHFT(data_tmp, 51)
   50864      362848 :          pack_tmp = ISHFT(pack_tmp, -51)
   50865      362848 :          idata = idata + 1
   50866      362848 :          data_tmp = full_data(idata)
   50867      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50868      362848 :          data_tmp = IAND(data_tmp, mask_left(51))
   50869      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50870      362848 :          ipack = ipack + 1
   50871      362848 :          packed_data(ipack) = pack_tmp
   50872      362848 :          data_tmp = full_data(idata)
   50873      362848 :          pack_tmp = ISHFT(data_tmp, 54)
   50874      362848 :          pack_tmp = ISHFT(pack_tmp, -54)
   50875      362848 :          idata = idata + 1
   50876      362848 :          data_tmp = full_data(idata)
   50877      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50878      362848 :          data_tmp = IAND(data_tmp, mask_left(54))
   50879      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50880      362848 :          ipack = ipack + 1
   50881      362848 :          packed_data(ipack) = pack_tmp
   50882      362848 :          data_tmp = full_data(idata)
   50883      362848 :          pack_tmp = ISHFT(data_tmp, 57)
   50884      362848 :          pack_tmp = ISHFT(pack_tmp, -57)
   50885      362848 :          idata = idata + 1
   50886      362848 :          data_tmp = full_data(idata)
   50887      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50888      362848 :          data_tmp = IAND(data_tmp, mask_left(57))
   50889      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50890      362848 :          ipack = ipack + 1
   50891      362848 :          packed_data(ipack) = pack_tmp
   50892      362848 :          data_tmp = full_data(idata)
   50893      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   50894      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   50895      362848 :          idata = idata + 1
   50896      362848 :          data_tmp = full_data(idata)
   50897      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50898      362848 :          data_tmp = IAND(data_tmp, mask_left(60))
   50899      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50900      362848 :          ipack = ipack + 1
   50901      362848 :          packed_data(ipack) = pack_tmp
   50902      362848 :          data_tmp = full_data(idata)
   50903      362848 :          pack_tmp = ISHFT(data_tmp, 63)
   50904      362848 :          pack_tmp = ISHFT(pack_tmp, -61)
   50905      362848 :          idata = idata + 1
   50906      362848 :          data_tmp = full_data(idata)
   50907      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50908      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50909      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
   50910      362848 :          idata = idata + 1
   50911      362848 :          data_tmp = full_data(idata)
   50912      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50913      362848 :          data_tmp = IAND(data_tmp, mask_left(2))
   50914      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50915      362848 :          ipack = ipack + 1
   50916      362848 :          packed_data(ipack) = pack_tmp
   50917      362848 :          data_tmp = full_data(idata)
   50918      362848 :          pack_tmp = ISHFT(data_tmp, 5)
   50919      362848 :          pack_tmp = ISHFT(pack_tmp, -5)
   50920      362848 :          idata = idata + 1
   50921      362848 :          data_tmp = full_data(idata)
   50922      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50923      362848 :          data_tmp = IAND(data_tmp, mask_left(5))
   50924      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50925      362848 :          ipack = ipack + 1
   50926      362848 :          packed_data(ipack) = pack_tmp
   50927      362848 :          data_tmp = full_data(idata)
   50928      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   50929      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   50930      362848 :          idata = idata + 1
   50931      362848 :          data_tmp = full_data(idata)
   50932      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50933      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   50934      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50935      362848 :          ipack = ipack + 1
   50936      362848 :          packed_data(ipack) = pack_tmp
   50937      362848 :          data_tmp = full_data(idata)
   50938      362848 :          pack_tmp = ISHFT(data_tmp, 11)
   50939      362848 :          pack_tmp = ISHFT(pack_tmp, -11)
   50940      362848 :          idata = idata + 1
   50941      362848 :          data_tmp = full_data(idata)
   50942      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50943      362848 :          data_tmp = IAND(data_tmp, mask_left(11))
   50944      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50945      362848 :          ipack = ipack + 1
   50946      362848 :          packed_data(ipack) = pack_tmp
   50947      362848 :          data_tmp = full_data(idata)
   50948      362848 :          pack_tmp = ISHFT(data_tmp, 14)
   50949      362848 :          pack_tmp = ISHFT(pack_tmp, -14)
   50950      362848 :          idata = idata + 1
   50951      362848 :          data_tmp = full_data(idata)
   50952      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50953      362848 :          data_tmp = IAND(data_tmp, mask_left(14))
   50954      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50955      362848 :          ipack = ipack + 1
   50956      362848 :          packed_data(ipack) = pack_tmp
   50957      362848 :          data_tmp = full_data(idata)
   50958      362848 :          pack_tmp = ISHFT(data_tmp, 17)
   50959      362848 :          pack_tmp = ISHFT(pack_tmp, -17)
   50960      362848 :          idata = idata + 1
   50961      362848 :          data_tmp = full_data(idata)
   50962      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50963      362848 :          data_tmp = IAND(data_tmp, mask_left(17))
   50964      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50965      362848 :          ipack = ipack + 1
   50966      362848 :          packed_data(ipack) = pack_tmp
   50967      362848 :          data_tmp = full_data(idata)
   50968      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   50969      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   50970      362848 :          idata = idata + 1
   50971      362848 :          data_tmp = full_data(idata)
   50972      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50973      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   50974      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50975      362848 :          ipack = ipack + 1
   50976      362848 :          packed_data(ipack) = pack_tmp
   50977      362848 :          data_tmp = full_data(idata)
   50978      362848 :          pack_tmp = ISHFT(data_tmp, 23)
   50979      362848 :          pack_tmp = ISHFT(pack_tmp, -23)
   50980      362848 :          idata = idata + 1
   50981      362848 :          data_tmp = full_data(idata)
   50982      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50983      362848 :          data_tmp = IAND(data_tmp, mask_left(23))
   50984      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50985      362848 :          ipack = ipack + 1
   50986      362848 :          packed_data(ipack) = pack_tmp
   50987      362848 :          data_tmp = full_data(idata)
   50988      362848 :          pack_tmp = ISHFT(data_tmp, 26)
   50989      362848 :          pack_tmp = ISHFT(pack_tmp, -26)
   50990      362848 :          idata = idata + 1
   50991      362848 :          data_tmp = full_data(idata)
   50992      362848 :          data_tmp = ISHFT(data_tmp, 3)
   50993      362848 :          data_tmp = IAND(data_tmp, mask_left(26))
   50994      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50995      362848 :          ipack = ipack + 1
   50996      362848 :          packed_data(ipack) = pack_tmp
   50997      362848 :          data_tmp = full_data(idata)
   50998      362848 :          pack_tmp = ISHFT(data_tmp, 29)
   50999      362848 :          pack_tmp = ISHFT(pack_tmp, -29)
   51000      362848 :          idata = idata + 1
   51001      362848 :          data_tmp = full_data(idata)
   51002      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51003      362848 :          data_tmp = IAND(data_tmp, mask_left(29))
   51004      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51005      362848 :          ipack = ipack + 1
   51006      362848 :          packed_data(ipack) = pack_tmp
   51007      362848 :          data_tmp = full_data(idata)
   51008      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   51009      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   51010      362848 :          idata = idata + 1
   51011      362848 :          data_tmp = full_data(idata)
   51012      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51013      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   51014      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51015      362848 :          ipack = ipack + 1
   51016      362848 :          packed_data(ipack) = pack_tmp
   51017      362848 :          data_tmp = full_data(idata)
   51018      362848 :          pack_tmp = ISHFT(data_tmp, 35)
   51019      362848 :          pack_tmp = ISHFT(pack_tmp, -35)
   51020      362848 :          idata = idata + 1
   51021      362848 :          data_tmp = full_data(idata)
   51022      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51023      362848 :          data_tmp = IAND(data_tmp, mask_left(35))
   51024      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51025      362848 :          ipack = ipack + 1
   51026      362848 :          packed_data(ipack) = pack_tmp
   51027      362848 :          data_tmp = full_data(idata)
   51028      362848 :          pack_tmp = ISHFT(data_tmp, 38)
   51029      362848 :          pack_tmp = ISHFT(pack_tmp, -38)
   51030      362848 :          idata = idata + 1
   51031      362848 :          data_tmp = full_data(idata)
   51032      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51033      362848 :          data_tmp = IAND(data_tmp, mask_left(38))
   51034      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51035      362848 :          ipack = ipack + 1
   51036      362848 :          packed_data(ipack) = pack_tmp
   51037      362848 :          data_tmp = full_data(idata)
   51038      362848 :          pack_tmp = ISHFT(data_tmp, 41)
   51039      362848 :          pack_tmp = ISHFT(pack_tmp, -41)
   51040      362848 :          idata = idata + 1
   51041      362848 :          data_tmp = full_data(idata)
   51042      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51043      362848 :          data_tmp = IAND(data_tmp, mask_left(41))
   51044      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51045      362848 :          ipack = ipack + 1
   51046      362848 :          packed_data(ipack) = pack_tmp
   51047      362848 :          data_tmp = full_data(idata)
   51048      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   51049      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   51050      362848 :          idata = idata + 1
   51051      362848 :          data_tmp = full_data(idata)
   51052      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51053      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   51054      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51055      362848 :          ipack = ipack + 1
   51056      362848 :          packed_data(ipack) = pack_tmp
   51057      362848 :          data_tmp = full_data(idata)
   51058      362848 :          pack_tmp = ISHFT(data_tmp, 47)
   51059      362848 :          pack_tmp = ISHFT(pack_tmp, -47)
   51060      362848 :          idata = idata + 1
   51061      362848 :          data_tmp = full_data(idata)
   51062      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51063      362848 :          data_tmp = IAND(data_tmp, mask_left(47))
   51064      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51065      362848 :          ipack = ipack + 1
   51066      362848 :          packed_data(ipack) = pack_tmp
   51067      362848 :          data_tmp = full_data(idata)
   51068      362848 :          pack_tmp = ISHFT(data_tmp, 50)
   51069      362848 :          pack_tmp = ISHFT(pack_tmp, -50)
   51070      362848 :          idata = idata + 1
   51071      362848 :          data_tmp = full_data(idata)
   51072      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51073      362848 :          data_tmp = IAND(data_tmp, mask_left(50))
   51074      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51075      362848 :          ipack = ipack + 1
   51076      362848 :          packed_data(ipack) = pack_tmp
   51077      362848 :          data_tmp = full_data(idata)
   51078      362848 :          pack_tmp = ISHFT(data_tmp, 53)
   51079      362848 :          pack_tmp = ISHFT(pack_tmp, -53)
   51080      362848 :          idata = idata + 1
   51081      362848 :          data_tmp = full_data(idata)
   51082      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51083      362848 :          data_tmp = IAND(data_tmp, mask_left(53))
   51084      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51085      362848 :          ipack = ipack + 1
   51086      362848 :          packed_data(ipack) = pack_tmp
   51087      362848 :          data_tmp = full_data(idata)
   51088      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   51089      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   51090      362848 :          idata = idata + 1
   51091      362848 :          data_tmp = full_data(idata)
   51092      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51093      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   51094      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51095      362848 :          ipack = ipack + 1
   51096      362848 :          packed_data(ipack) = pack_tmp
   51097      362848 :          data_tmp = full_data(idata)
   51098      362848 :          pack_tmp = ISHFT(data_tmp, 59)
   51099      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   51100      362848 :          idata = idata + 1
   51101      362848 :          data_tmp = full_data(idata)
   51102      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51103      362848 :          data_tmp = IAND(data_tmp, mask_left(59))
   51104      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51105      362848 :          ipack = ipack + 1
   51106      362848 :          packed_data(ipack) = pack_tmp
   51107      362848 :          data_tmp = full_data(idata)
   51108      362848 :          pack_tmp = ISHFT(data_tmp, 62)
   51109      362848 :          pack_tmp = ISHFT(pack_tmp, -61)
   51110      362848 :          idata = idata + 1
   51111      362848 :          data_tmp = full_data(idata)
   51112      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51113      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51114      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
   51115      362848 :          idata = idata + 1
   51116      362848 :          data_tmp = full_data(idata)
   51117      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51118      362848 :          data_tmp = IAND(data_tmp, mask_left(1))
   51119      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51120      362848 :          ipack = ipack + 1
   51121      362848 :          packed_data(ipack) = pack_tmp
   51122      362848 :          data_tmp = full_data(idata)
   51123      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   51124      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   51125      362848 :          idata = idata + 1
   51126      362848 :          data_tmp = full_data(idata)
   51127      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51128      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   51129      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51130      362848 :          ipack = ipack + 1
   51131      362848 :          packed_data(ipack) = pack_tmp
   51132      362848 :          data_tmp = full_data(idata)
   51133      362848 :          pack_tmp = ISHFT(data_tmp, 7)
   51134      362848 :          pack_tmp = ISHFT(pack_tmp, -7)
   51135      362848 :          idata = idata + 1
   51136      362848 :          data_tmp = full_data(idata)
   51137      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51138      362848 :          data_tmp = IAND(data_tmp, mask_left(7))
   51139      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51140      362848 :          ipack = ipack + 1
   51141      362848 :          packed_data(ipack) = pack_tmp
   51142      362848 :          data_tmp = full_data(idata)
   51143      362848 :          pack_tmp = ISHFT(data_tmp, 10)
   51144      362848 :          pack_tmp = ISHFT(pack_tmp, -10)
   51145      362848 :          idata = idata + 1
   51146      362848 :          data_tmp = full_data(idata)
   51147      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51148      362848 :          data_tmp = IAND(data_tmp, mask_left(10))
   51149      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51150      362848 :          ipack = ipack + 1
   51151      362848 :          packed_data(ipack) = pack_tmp
   51152      362848 :          data_tmp = full_data(idata)
   51153      362848 :          pack_tmp = ISHFT(data_tmp, 13)
   51154      362848 :          pack_tmp = ISHFT(pack_tmp, -13)
   51155      362848 :          idata = idata + 1
   51156      362848 :          data_tmp = full_data(idata)
   51157      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51158      362848 :          data_tmp = IAND(data_tmp, mask_left(13))
   51159      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51160      362848 :          ipack = ipack + 1
   51161      362848 :          packed_data(ipack) = pack_tmp
   51162      362848 :          data_tmp = full_data(idata)
   51163      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   51164      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   51165      362848 :          idata = idata + 1
   51166      362848 :          data_tmp = full_data(idata)
   51167      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51168      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   51169      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51170      362848 :          ipack = ipack + 1
   51171      362848 :          packed_data(ipack) = pack_tmp
   51172      362848 :          data_tmp = full_data(idata)
   51173      362848 :          pack_tmp = ISHFT(data_tmp, 19)
   51174      362848 :          pack_tmp = ISHFT(pack_tmp, -19)
   51175      362848 :          idata = idata + 1
   51176      362848 :          data_tmp = full_data(idata)
   51177      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51178      362848 :          data_tmp = IAND(data_tmp, mask_left(19))
   51179      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51180      362848 :          ipack = ipack + 1
   51181      362848 :          packed_data(ipack) = pack_tmp
   51182      362848 :          data_tmp = full_data(idata)
   51183      362848 :          pack_tmp = ISHFT(data_tmp, 22)
   51184      362848 :          pack_tmp = ISHFT(pack_tmp, -22)
   51185      362848 :          idata = idata + 1
   51186      362848 :          data_tmp = full_data(idata)
   51187      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51188      362848 :          data_tmp = IAND(data_tmp, mask_left(22))
   51189      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51190      362848 :          ipack = ipack + 1
   51191      362848 :          packed_data(ipack) = pack_tmp
   51192      362848 :          data_tmp = full_data(idata)
   51193      362848 :          pack_tmp = ISHFT(data_tmp, 25)
   51194      362848 :          pack_tmp = ISHFT(pack_tmp, -25)
   51195      362848 :          idata = idata + 1
   51196      362848 :          data_tmp = full_data(idata)
   51197      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51198      362848 :          data_tmp = IAND(data_tmp, mask_left(25))
   51199      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51200      362848 :          ipack = ipack + 1
   51201      362848 :          packed_data(ipack) = pack_tmp
   51202      362848 :          data_tmp = full_data(idata)
   51203      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   51204      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   51205      362848 :          idata = idata + 1
   51206      362848 :          data_tmp = full_data(idata)
   51207      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51208      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   51209      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51210      362848 :          ipack = ipack + 1
   51211      362848 :          packed_data(ipack) = pack_tmp
   51212      362848 :          data_tmp = full_data(idata)
   51213      362848 :          pack_tmp = ISHFT(data_tmp, 31)
   51214      362848 :          pack_tmp = ISHFT(pack_tmp, -31)
   51215      362848 :          idata = idata + 1
   51216      362848 :          data_tmp = full_data(idata)
   51217      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51218      362848 :          data_tmp = IAND(data_tmp, mask_left(31))
   51219      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51220      362848 :          ipack = ipack + 1
   51221      362848 :          packed_data(ipack) = pack_tmp
   51222      362848 :          data_tmp = full_data(idata)
   51223      362848 :          pack_tmp = ISHFT(data_tmp, 34)
   51224      362848 :          pack_tmp = ISHFT(pack_tmp, -34)
   51225      362848 :          idata = idata + 1
   51226      362848 :          data_tmp = full_data(idata)
   51227      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51228      362848 :          data_tmp = IAND(data_tmp, mask_left(34))
   51229      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51230      362848 :          ipack = ipack + 1
   51231      362848 :          packed_data(ipack) = pack_tmp
   51232      362848 :          data_tmp = full_data(idata)
   51233      362848 :          pack_tmp = ISHFT(data_tmp, 37)
   51234      362848 :          pack_tmp = ISHFT(pack_tmp, -37)
   51235      362848 :          idata = idata + 1
   51236      362848 :          data_tmp = full_data(idata)
   51237      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51238      362848 :          data_tmp = IAND(data_tmp, mask_left(37))
   51239      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51240      362848 :          ipack = ipack + 1
   51241      362848 :          packed_data(ipack) = pack_tmp
   51242      362848 :          data_tmp = full_data(idata)
   51243      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   51244      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   51245      362848 :          idata = idata + 1
   51246      362848 :          data_tmp = full_data(idata)
   51247      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51248      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   51249      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51250      362848 :          ipack = ipack + 1
   51251      362848 :          packed_data(ipack) = pack_tmp
   51252      362848 :          data_tmp = full_data(idata)
   51253      362848 :          pack_tmp = ISHFT(data_tmp, 43)
   51254      362848 :          pack_tmp = ISHFT(pack_tmp, -43)
   51255      362848 :          idata = idata + 1
   51256      362848 :          data_tmp = full_data(idata)
   51257      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51258      362848 :          data_tmp = IAND(data_tmp, mask_left(43))
   51259      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51260      362848 :          ipack = ipack + 1
   51261      362848 :          packed_data(ipack) = pack_tmp
   51262      362848 :          data_tmp = full_data(idata)
   51263      362848 :          pack_tmp = ISHFT(data_tmp, 46)
   51264      362848 :          pack_tmp = ISHFT(pack_tmp, -46)
   51265      362848 :          idata = idata + 1
   51266      362848 :          data_tmp = full_data(idata)
   51267      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51268      362848 :          data_tmp = IAND(data_tmp, mask_left(46))
   51269      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51270      362848 :          ipack = ipack + 1
   51271      362848 :          packed_data(ipack) = pack_tmp
   51272      362848 :          data_tmp = full_data(idata)
   51273      362848 :          pack_tmp = ISHFT(data_tmp, 49)
   51274      362848 :          pack_tmp = ISHFT(pack_tmp, -49)
   51275      362848 :          idata = idata + 1
   51276      362848 :          data_tmp = full_data(idata)
   51277      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51278      362848 :          data_tmp = IAND(data_tmp, mask_left(49))
   51279      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51280      362848 :          ipack = ipack + 1
   51281      362848 :          packed_data(ipack) = pack_tmp
   51282      362848 :          data_tmp = full_data(idata)
   51283      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   51284      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   51285      362848 :          idata = idata + 1
   51286      362848 :          data_tmp = full_data(idata)
   51287      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51288      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   51289      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51290      362848 :          ipack = ipack + 1
   51291      362848 :          packed_data(ipack) = pack_tmp
   51292      362848 :          data_tmp = full_data(idata)
   51293      362848 :          pack_tmp = ISHFT(data_tmp, 55)
   51294      362848 :          pack_tmp = ISHFT(pack_tmp, -55)
   51295      362848 :          idata = idata + 1
   51296      362848 :          data_tmp = full_data(idata)
   51297      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51298      362848 :          data_tmp = IAND(data_tmp, mask_left(55))
   51299      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51300      362848 :          ipack = ipack + 1
   51301      362848 :          packed_data(ipack) = pack_tmp
   51302      362848 :          data_tmp = full_data(idata)
   51303      362848 :          pack_tmp = ISHFT(data_tmp, 58)
   51304      362848 :          pack_tmp = ISHFT(pack_tmp, -58)
   51305      362848 :          idata = idata + 1
   51306      362848 :          data_tmp = full_data(idata)
   51307      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51308      362848 :          data_tmp = IAND(data_tmp, mask_left(58))
   51309      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51310      362848 :          ipack = ipack + 1
   51311      362848 :          packed_data(ipack) = pack_tmp
   51312      362848 :          data_tmp = full_data(idata)
   51313      362848 :          pack_tmp = ISHFT(data_tmp, 61)
   51314      362848 :          pack_tmp = ISHFT(pack_tmp, -61)
   51315      362848 :          idata = idata + 1
   51316      362848 :          data_tmp = full_data(idata)
   51317      362848 :          data_tmp = ISHFT(data_tmp, 3)
   51318      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51319             :          pack_tmp = ISHFT(pack_tmp, 0)
   51320      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   51321      362848 :          ipack = ipack + 1
   51322      362848 :          packed_data(ipack) = pack_tmp
   51323             :       END DO
   51324       22678 :       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       22678 :    END SUBROUTINE ints2bits_61
   51328             : 
   51329             : ! **************************************************************************************************
   51330             : !> \brief ...
   51331             : !> \param Ndata ...
   51332             : !> \param packed_data ...
   51333             : !> \param full_data ...
   51334             : ! **************************************************************************************************
   51335       93246 :    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       93246 :       ipack = 0
   51346       93246 :       idata = 0
   51347       93246 :       pack_tmp = 0
   51348       93246 :       Ndata_rep = (Ndata/64)*64
   51349       93246 :       DO kdata = 1, Ndata_rep, 64
   51350     1491936 :          idata = idata + 1
   51351     1491936 :          data_tmp = ISHFT(pack_tmp, 61)
   51352     1491936 :          ipack = ipack + 1
   51353     1491936 :          pack_tmp = packed_data(ipack)
   51354     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   51355     1491936 :          pack_tmp = ISHFT(pack_tmp, -61)
   51356     1491936 :          idata = idata + 1
   51357     1491936 :          data_tmp = ISHFT(pack_tmp, 58)
   51358     1491936 :          ipack = ipack + 1
   51359     1491936 :          pack_tmp = packed_data(ipack)
   51360     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   51361     1491936 :          pack_tmp = ISHFT(pack_tmp, -58)
   51362     1491936 :          idata = idata + 1
   51363     1491936 :          data_tmp = ISHFT(pack_tmp, 55)
   51364     1491936 :          ipack = ipack + 1
   51365     1491936 :          pack_tmp = packed_data(ipack)
   51366     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   51367     1491936 :          pack_tmp = ISHFT(pack_tmp, -55)
   51368     1491936 :          idata = idata + 1
   51369     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   51370     1491936 :          ipack = ipack + 1
   51371     1491936 :          pack_tmp = packed_data(ipack)
   51372     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   51373     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   51374     1491936 :          idata = idata + 1
   51375     1491936 :          data_tmp = ISHFT(pack_tmp, 49)
   51376     1491936 :          ipack = ipack + 1
   51377     1491936 :          pack_tmp = packed_data(ipack)
   51378     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   51379     1491936 :          pack_tmp = ISHFT(pack_tmp, -49)
   51380     1491936 :          idata = idata + 1
   51381     1491936 :          data_tmp = ISHFT(pack_tmp, 46)
   51382     1491936 :          ipack = ipack + 1
   51383     1491936 :          pack_tmp = packed_data(ipack)
   51384     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   51385     1491936 :          pack_tmp = ISHFT(pack_tmp, -46)
   51386     1491936 :          idata = idata + 1
   51387     1491936 :          data_tmp = ISHFT(pack_tmp, 43)
   51388     1491936 :          ipack = ipack + 1
   51389     1491936 :          pack_tmp = packed_data(ipack)
   51390     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   51391     1491936 :          pack_tmp = ISHFT(pack_tmp, -43)
   51392     1491936 :          idata = idata + 1
   51393     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   51394     1491936 :          ipack = ipack + 1
   51395     1491936 :          pack_tmp = packed_data(ipack)
   51396     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   51397     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   51398     1491936 :          idata = idata + 1
   51399     1491936 :          data_tmp = ISHFT(pack_tmp, 37)
   51400     1491936 :          ipack = ipack + 1
   51401     1491936 :          pack_tmp = packed_data(ipack)
   51402     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   51403     1491936 :          pack_tmp = ISHFT(pack_tmp, -37)
   51404     1491936 :          idata = idata + 1
   51405     1491936 :          data_tmp = ISHFT(pack_tmp, 34)
   51406     1491936 :          ipack = ipack + 1
   51407     1491936 :          pack_tmp = packed_data(ipack)
   51408     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   51409     1491936 :          pack_tmp = ISHFT(pack_tmp, -34)
   51410     1491936 :          idata = idata + 1
   51411     1491936 :          data_tmp = ISHFT(pack_tmp, 31)
   51412     1491936 :          ipack = ipack + 1
   51413     1491936 :          pack_tmp = packed_data(ipack)
   51414     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   51415     1491936 :          pack_tmp = ISHFT(pack_tmp, -31)
   51416     1491936 :          idata = idata + 1
   51417     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   51418     1491936 :          ipack = ipack + 1
   51419     1491936 :          pack_tmp = packed_data(ipack)
   51420     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   51421     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   51422     1491936 :          idata = idata + 1
   51423     1491936 :          data_tmp = ISHFT(pack_tmp, 25)
   51424     1491936 :          ipack = ipack + 1
   51425     1491936 :          pack_tmp = packed_data(ipack)
   51426     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   51427     1491936 :          pack_tmp = ISHFT(pack_tmp, -25)
   51428     1491936 :          idata = idata + 1
   51429     1491936 :          data_tmp = ISHFT(pack_tmp, 22)
   51430     1491936 :          ipack = ipack + 1
   51431     1491936 :          pack_tmp = packed_data(ipack)
   51432     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   51433     1491936 :          pack_tmp = ISHFT(pack_tmp, -22)
   51434     1491936 :          idata = idata + 1
   51435     1491936 :          data_tmp = ISHFT(pack_tmp, 19)
   51436     1491936 :          ipack = ipack + 1
   51437     1491936 :          pack_tmp = packed_data(ipack)
   51438     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   51439     1491936 :          pack_tmp = ISHFT(pack_tmp, -19)
   51440     1491936 :          idata = idata + 1
   51441     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   51442     1491936 :          ipack = ipack + 1
   51443     1491936 :          pack_tmp = packed_data(ipack)
   51444     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   51445     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   51446     1491936 :          idata = idata + 1
   51447     1491936 :          data_tmp = ISHFT(pack_tmp, 13)
   51448     1491936 :          ipack = ipack + 1
   51449     1491936 :          pack_tmp = packed_data(ipack)
   51450     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   51451     1491936 :          pack_tmp = ISHFT(pack_tmp, -13)
   51452     1491936 :          idata = idata + 1
   51453     1491936 :          data_tmp = ISHFT(pack_tmp, 10)
   51454     1491936 :          ipack = ipack + 1
   51455     1491936 :          pack_tmp = packed_data(ipack)
   51456     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   51457     1491936 :          pack_tmp = ISHFT(pack_tmp, -10)
   51458     1491936 :          idata = idata + 1
   51459     1491936 :          data_tmp = ISHFT(pack_tmp, 7)
   51460     1491936 :          ipack = ipack + 1
   51461     1491936 :          pack_tmp = packed_data(ipack)
   51462     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   51463     1491936 :          pack_tmp = ISHFT(pack_tmp, -7)
   51464     1491936 :          idata = idata + 1
   51465     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   51466     1491936 :          ipack = ipack + 1
   51467     1491936 :          pack_tmp = packed_data(ipack)
   51468     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   51469     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   51470     1491936 :          idata = idata + 1
   51471     1491936 :          data_tmp = ISHFT(pack_tmp, 1)
   51472     1491936 :          ipack = ipack + 1
   51473     1491936 :          pack_tmp = packed_data(ipack)
   51474     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   51475     1491936 :          pack_tmp = ISHFT(pack_tmp, -1)
   51476     1491936 :          idata = idata + 1
   51477     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51478     1491936 :          full_data(idata) = data_tmp
   51479     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51480     1491936 :          idata = idata + 1
   51481     1491936 :          data_tmp = ISHFT(pack_tmp, 59)
   51482     1491936 :          ipack = ipack + 1
   51483     1491936 :          pack_tmp = packed_data(ipack)
   51484     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   51485     1491936 :          pack_tmp = ISHFT(pack_tmp, -59)
   51486     1491936 :          idata = idata + 1
   51487     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   51488     1491936 :          ipack = ipack + 1
   51489     1491936 :          pack_tmp = packed_data(ipack)
   51490     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   51491     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   51492     1491936 :          idata = idata + 1
   51493     1491936 :          data_tmp = ISHFT(pack_tmp, 53)
   51494     1491936 :          ipack = ipack + 1
   51495     1491936 :          pack_tmp = packed_data(ipack)
   51496     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   51497     1491936 :          pack_tmp = ISHFT(pack_tmp, -53)
   51498     1491936 :          idata = idata + 1
   51499     1491936 :          data_tmp = ISHFT(pack_tmp, 50)
   51500     1491936 :          ipack = ipack + 1
   51501     1491936 :          pack_tmp = packed_data(ipack)
   51502     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   51503     1491936 :          pack_tmp = ISHFT(pack_tmp, -50)
   51504     1491936 :          idata = idata + 1
   51505     1491936 :          data_tmp = ISHFT(pack_tmp, 47)
   51506     1491936 :          ipack = ipack + 1
   51507     1491936 :          pack_tmp = packed_data(ipack)
   51508     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   51509     1491936 :          pack_tmp = ISHFT(pack_tmp, -47)
   51510     1491936 :          idata = idata + 1
   51511     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   51512     1491936 :          ipack = ipack + 1
   51513     1491936 :          pack_tmp = packed_data(ipack)
   51514     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   51515     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   51516     1491936 :          idata = idata + 1
   51517     1491936 :          data_tmp = ISHFT(pack_tmp, 41)
   51518     1491936 :          ipack = ipack + 1
   51519     1491936 :          pack_tmp = packed_data(ipack)
   51520     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   51521     1491936 :          pack_tmp = ISHFT(pack_tmp, -41)
   51522     1491936 :          idata = idata + 1
   51523     1491936 :          data_tmp = ISHFT(pack_tmp, 38)
   51524     1491936 :          ipack = ipack + 1
   51525     1491936 :          pack_tmp = packed_data(ipack)
   51526     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   51527     1491936 :          pack_tmp = ISHFT(pack_tmp, -38)
   51528     1491936 :          idata = idata + 1
   51529     1491936 :          data_tmp = ISHFT(pack_tmp, 35)
   51530     1491936 :          ipack = ipack + 1
   51531     1491936 :          pack_tmp = packed_data(ipack)
   51532     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   51533     1491936 :          pack_tmp = ISHFT(pack_tmp, -35)
   51534     1491936 :          idata = idata + 1
   51535     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   51536     1491936 :          ipack = ipack + 1
   51537     1491936 :          pack_tmp = packed_data(ipack)
   51538     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   51539     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   51540     1491936 :          idata = idata + 1
   51541     1491936 :          data_tmp = ISHFT(pack_tmp, 29)
   51542     1491936 :          ipack = ipack + 1
   51543     1491936 :          pack_tmp = packed_data(ipack)
   51544     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   51545     1491936 :          pack_tmp = ISHFT(pack_tmp, -29)
   51546     1491936 :          idata = idata + 1
   51547     1491936 :          data_tmp = ISHFT(pack_tmp, 26)
   51548     1491936 :          ipack = ipack + 1
   51549     1491936 :          pack_tmp = packed_data(ipack)
   51550     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   51551     1491936 :          pack_tmp = ISHFT(pack_tmp, -26)
   51552     1491936 :          idata = idata + 1
   51553     1491936 :          data_tmp = ISHFT(pack_tmp, 23)
   51554     1491936 :          ipack = ipack + 1
   51555     1491936 :          pack_tmp = packed_data(ipack)
   51556     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   51557     1491936 :          pack_tmp = ISHFT(pack_tmp, -23)
   51558     1491936 :          idata = idata + 1
   51559     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   51560     1491936 :          ipack = ipack + 1
   51561     1491936 :          pack_tmp = packed_data(ipack)
   51562     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   51563     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   51564     1491936 :          idata = idata + 1
   51565     1491936 :          data_tmp = ISHFT(pack_tmp, 17)
   51566     1491936 :          ipack = ipack + 1
   51567     1491936 :          pack_tmp = packed_data(ipack)
   51568     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   51569     1491936 :          pack_tmp = ISHFT(pack_tmp, -17)
   51570     1491936 :          idata = idata + 1
   51571     1491936 :          data_tmp = ISHFT(pack_tmp, 14)
   51572     1491936 :          ipack = ipack + 1
   51573     1491936 :          pack_tmp = packed_data(ipack)
   51574     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   51575     1491936 :          pack_tmp = ISHFT(pack_tmp, -14)
   51576     1491936 :          idata = idata + 1
   51577     1491936 :          data_tmp = ISHFT(pack_tmp, 11)
   51578     1491936 :          ipack = ipack + 1
   51579     1491936 :          pack_tmp = packed_data(ipack)
   51580     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   51581     1491936 :          pack_tmp = ISHFT(pack_tmp, -11)
   51582     1491936 :          idata = idata + 1
   51583     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   51584     1491936 :          ipack = ipack + 1
   51585     1491936 :          pack_tmp = packed_data(ipack)
   51586     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   51587     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   51588     1491936 :          idata = idata + 1
   51589     1491936 :          data_tmp = ISHFT(pack_tmp, 5)
   51590     1491936 :          ipack = ipack + 1
   51591     1491936 :          pack_tmp = packed_data(ipack)
   51592     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   51593     1491936 :          pack_tmp = ISHFT(pack_tmp, -5)
   51594     1491936 :          idata = idata + 1
   51595     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
   51596     1491936 :          ipack = ipack + 1
   51597     1491936 :          pack_tmp = packed_data(ipack)
   51598     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   51599     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
   51600     1491936 :          idata = idata + 1
   51601     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51602     1491936 :          full_data(idata) = data_tmp
   51603     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51604     1491936 :          idata = idata + 1
   51605     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   51606     1491936 :          ipack = ipack + 1
   51607     1491936 :          pack_tmp = packed_data(ipack)
   51608     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   51609     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   51610     1491936 :          idata = idata + 1
   51611     1491936 :          data_tmp = ISHFT(pack_tmp, 57)
   51612     1491936 :          ipack = ipack + 1
   51613     1491936 :          pack_tmp = packed_data(ipack)
   51614     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   51615     1491936 :          pack_tmp = ISHFT(pack_tmp, -57)
   51616     1491936 :          idata = idata + 1
   51617     1491936 :          data_tmp = ISHFT(pack_tmp, 54)
   51618     1491936 :          ipack = ipack + 1
   51619     1491936 :          pack_tmp = packed_data(ipack)
   51620     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   51621     1491936 :          pack_tmp = ISHFT(pack_tmp, -54)
   51622     1491936 :          idata = idata + 1
   51623     1491936 :          data_tmp = ISHFT(pack_tmp, 51)
   51624     1491936 :          ipack = ipack + 1
   51625     1491936 :          pack_tmp = packed_data(ipack)
   51626     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   51627     1491936 :          pack_tmp = ISHFT(pack_tmp, -51)
   51628     1491936 :          idata = idata + 1
   51629     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   51630     1491936 :          ipack = ipack + 1
   51631     1491936 :          pack_tmp = packed_data(ipack)
   51632     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   51633     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   51634     1491936 :          idata = idata + 1
   51635     1491936 :          data_tmp = ISHFT(pack_tmp, 45)
   51636     1491936 :          ipack = ipack + 1
   51637     1491936 :          pack_tmp = packed_data(ipack)
   51638     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   51639     1491936 :          pack_tmp = ISHFT(pack_tmp, -45)
   51640     1491936 :          idata = idata + 1
   51641     1491936 :          data_tmp = ISHFT(pack_tmp, 42)
   51642     1491936 :          ipack = ipack + 1
   51643     1491936 :          pack_tmp = packed_data(ipack)
   51644     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   51645     1491936 :          pack_tmp = ISHFT(pack_tmp, -42)
   51646     1491936 :          idata = idata + 1
   51647     1491936 :          data_tmp = ISHFT(pack_tmp, 39)
   51648     1491936 :          ipack = ipack + 1
   51649     1491936 :          pack_tmp = packed_data(ipack)
   51650     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   51651     1491936 :          pack_tmp = ISHFT(pack_tmp, -39)
   51652     1491936 :          idata = idata + 1
   51653     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   51654     1491936 :          ipack = ipack + 1
   51655     1491936 :          pack_tmp = packed_data(ipack)
   51656     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   51657     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   51658     1491936 :          idata = idata + 1
   51659     1491936 :          data_tmp = ISHFT(pack_tmp, 33)
   51660     1491936 :          ipack = ipack + 1
   51661     1491936 :          pack_tmp = packed_data(ipack)
   51662     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   51663     1491936 :          pack_tmp = ISHFT(pack_tmp, -33)
   51664     1491936 :          idata = idata + 1
   51665     1491936 :          data_tmp = ISHFT(pack_tmp, 30)
   51666     1491936 :          ipack = ipack + 1
   51667     1491936 :          pack_tmp = packed_data(ipack)
   51668     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   51669     1491936 :          pack_tmp = ISHFT(pack_tmp, -30)
   51670     1491936 :          idata = idata + 1
   51671     1491936 :          data_tmp = ISHFT(pack_tmp, 27)
   51672     1491936 :          ipack = ipack + 1
   51673     1491936 :          pack_tmp = packed_data(ipack)
   51674     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   51675     1491936 :          pack_tmp = ISHFT(pack_tmp, -27)
   51676     1491936 :          idata = idata + 1
   51677     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   51678     1491936 :          ipack = ipack + 1
   51679     1491936 :          pack_tmp = packed_data(ipack)
   51680     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   51681     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   51682     1491936 :          idata = idata + 1
   51683     1491936 :          data_tmp = ISHFT(pack_tmp, 21)
   51684     1491936 :          ipack = ipack + 1
   51685     1491936 :          pack_tmp = packed_data(ipack)
   51686     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   51687     1491936 :          pack_tmp = ISHFT(pack_tmp, -21)
   51688     1491936 :          idata = idata + 1
   51689     1491936 :          data_tmp = ISHFT(pack_tmp, 18)
   51690     1491936 :          ipack = ipack + 1
   51691     1491936 :          pack_tmp = packed_data(ipack)
   51692     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   51693     1491936 :          pack_tmp = ISHFT(pack_tmp, -18)
   51694     1491936 :          idata = idata + 1
   51695     1491936 :          data_tmp = ISHFT(pack_tmp, 15)
   51696     1491936 :          ipack = ipack + 1
   51697     1491936 :          pack_tmp = packed_data(ipack)
   51698     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   51699     1491936 :          pack_tmp = ISHFT(pack_tmp, -15)
   51700     1491936 :          idata = idata + 1
   51701     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   51702     1491936 :          ipack = ipack + 1
   51703     1491936 :          pack_tmp = packed_data(ipack)
   51704     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   51705     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   51706     1491936 :          idata = idata + 1
   51707     1491936 :          data_tmp = ISHFT(pack_tmp, 9)
   51708     1491936 :          ipack = ipack + 1
   51709     1491936 :          pack_tmp = packed_data(ipack)
   51710     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   51711     1491936 :          pack_tmp = ISHFT(pack_tmp, -9)
   51712     1491936 :          idata = idata + 1
   51713     1491936 :          data_tmp = ISHFT(pack_tmp, 6)
   51714     1491936 :          ipack = ipack + 1
   51715     1491936 :          pack_tmp = packed_data(ipack)
   51716     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   51717     1491936 :          pack_tmp = ISHFT(pack_tmp, -6)
   51718     1491936 :          idata = idata + 1
   51719     1491936 :          data_tmp = ISHFT(pack_tmp, 3)
   51720     1491936 :          ipack = ipack + 1
   51721     1491936 :          pack_tmp = packed_data(ipack)
   51722     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   51723     1491936 :          pack_tmp = ISHFT(pack_tmp, -3)
   51724     1491936 :          idata = idata + 1
   51725     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51726     1491936 :          full_data(idata) = data_tmp
   51727     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51728             :       END DO
   51729       93246 :       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       93246 :    END SUBROUTINE bits2ints_61
   51733             : 
   51734             : ! **************************************************************************************************
   51735             : !> \brief ...
   51736             : !> \param Ndata ...
   51737             : !> \param packed_data ...
   51738             : !> \param full_data ...
   51739             : ! **************************************************************************************************
   51740       22678 :    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       22678 :       idata = 0
   51751       22678 :       ipack = 0
   51752       22678 :       Ndata_rep = (Ndata/64)*64
   51753       22678 :       DO kdata = 1, Ndata_rep, 64
   51754      362848 :          pack_tmp = 0
   51755      362848 :          idata = idata + 1
   51756      362848 :          data_tmp = full_data(idata)
   51757      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51758      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51759      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
   51760      362848 :          idata = idata + 1
   51761      362848 :          data_tmp = full_data(idata)
   51762      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51763      362848 :          data_tmp = IAND(data_tmp, mask_left(2))
   51764      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51765      362848 :          ipack = ipack + 1
   51766      362848 :          packed_data(ipack) = pack_tmp
   51767      362848 :          data_tmp = full_data(idata)
   51768      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   51769      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   51770      362848 :          idata = idata + 1
   51771      362848 :          data_tmp = full_data(idata)
   51772      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51773      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   51774      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51775      362848 :          ipack = ipack + 1
   51776      362848 :          packed_data(ipack) = pack_tmp
   51777      362848 :          data_tmp = full_data(idata)
   51778      362848 :          pack_tmp = ISHFT(data_tmp, 6)
   51779      362848 :          pack_tmp = ISHFT(pack_tmp, -6)
   51780      362848 :          idata = idata + 1
   51781      362848 :          data_tmp = full_data(idata)
   51782      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51783      362848 :          data_tmp = IAND(data_tmp, mask_left(6))
   51784      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51785      362848 :          ipack = ipack + 1
   51786      362848 :          packed_data(ipack) = pack_tmp
   51787      362848 :          data_tmp = full_data(idata)
   51788      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   51789      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   51790      362848 :          idata = idata + 1
   51791      362848 :          data_tmp = full_data(idata)
   51792      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51793      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   51794      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51795      362848 :          ipack = ipack + 1
   51796      362848 :          packed_data(ipack) = pack_tmp
   51797      362848 :          data_tmp = full_data(idata)
   51798      362848 :          pack_tmp = ISHFT(data_tmp, 10)
   51799      362848 :          pack_tmp = ISHFT(pack_tmp, -10)
   51800      362848 :          idata = idata + 1
   51801      362848 :          data_tmp = full_data(idata)
   51802      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51803      362848 :          data_tmp = IAND(data_tmp, mask_left(10))
   51804      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51805      362848 :          ipack = ipack + 1
   51806      362848 :          packed_data(ipack) = pack_tmp
   51807      362848 :          data_tmp = full_data(idata)
   51808      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   51809      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   51810      362848 :          idata = idata + 1
   51811      362848 :          data_tmp = full_data(idata)
   51812      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51813      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   51814      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51815      362848 :          ipack = ipack + 1
   51816      362848 :          packed_data(ipack) = pack_tmp
   51817      362848 :          data_tmp = full_data(idata)
   51818      362848 :          pack_tmp = ISHFT(data_tmp, 14)
   51819      362848 :          pack_tmp = ISHFT(pack_tmp, -14)
   51820      362848 :          idata = idata + 1
   51821      362848 :          data_tmp = full_data(idata)
   51822      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51823      362848 :          data_tmp = IAND(data_tmp, mask_left(14))
   51824      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51825      362848 :          ipack = ipack + 1
   51826      362848 :          packed_data(ipack) = pack_tmp
   51827      362848 :          data_tmp = full_data(idata)
   51828      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   51829      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   51830      362848 :          idata = idata + 1
   51831      362848 :          data_tmp = full_data(idata)
   51832      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51833      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   51834      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51835      362848 :          ipack = ipack + 1
   51836      362848 :          packed_data(ipack) = pack_tmp
   51837      362848 :          data_tmp = full_data(idata)
   51838      362848 :          pack_tmp = ISHFT(data_tmp, 18)
   51839      362848 :          pack_tmp = ISHFT(pack_tmp, -18)
   51840      362848 :          idata = idata + 1
   51841      362848 :          data_tmp = full_data(idata)
   51842      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51843      362848 :          data_tmp = IAND(data_tmp, mask_left(18))
   51844      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51845      362848 :          ipack = ipack + 1
   51846      362848 :          packed_data(ipack) = pack_tmp
   51847      362848 :          data_tmp = full_data(idata)
   51848      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   51849      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   51850      362848 :          idata = idata + 1
   51851      362848 :          data_tmp = full_data(idata)
   51852      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51853      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   51854      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51855      362848 :          ipack = ipack + 1
   51856      362848 :          packed_data(ipack) = pack_tmp
   51857      362848 :          data_tmp = full_data(idata)
   51858      362848 :          pack_tmp = ISHFT(data_tmp, 22)
   51859      362848 :          pack_tmp = ISHFT(pack_tmp, -22)
   51860      362848 :          idata = idata + 1
   51861      362848 :          data_tmp = full_data(idata)
   51862      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51863      362848 :          data_tmp = IAND(data_tmp, mask_left(22))
   51864      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51865      362848 :          ipack = ipack + 1
   51866      362848 :          packed_data(ipack) = pack_tmp
   51867      362848 :          data_tmp = full_data(idata)
   51868      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   51869      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   51870      362848 :          idata = idata + 1
   51871      362848 :          data_tmp = full_data(idata)
   51872      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51873      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   51874      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51875      362848 :          ipack = ipack + 1
   51876      362848 :          packed_data(ipack) = pack_tmp
   51877      362848 :          data_tmp = full_data(idata)
   51878      362848 :          pack_tmp = ISHFT(data_tmp, 26)
   51879      362848 :          pack_tmp = ISHFT(pack_tmp, -26)
   51880      362848 :          idata = idata + 1
   51881      362848 :          data_tmp = full_data(idata)
   51882      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51883      362848 :          data_tmp = IAND(data_tmp, mask_left(26))
   51884      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51885      362848 :          ipack = ipack + 1
   51886      362848 :          packed_data(ipack) = pack_tmp
   51887      362848 :          data_tmp = full_data(idata)
   51888      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   51889      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   51890      362848 :          idata = idata + 1
   51891      362848 :          data_tmp = full_data(idata)
   51892      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51893      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   51894      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51895      362848 :          ipack = ipack + 1
   51896      362848 :          packed_data(ipack) = pack_tmp
   51897      362848 :          data_tmp = full_data(idata)
   51898      362848 :          pack_tmp = ISHFT(data_tmp, 30)
   51899      362848 :          pack_tmp = ISHFT(pack_tmp, -30)
   51900      362848 :          idata = idata + 1
   51901      362848 :          data_tmp = full_data(idata)
   51902      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51903      362848 :          data_tmp = IAND(data_tmp, mask_left(30))
   51904      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51905      362848 :          ipack = ipack + 1
   51906      362848 :          packed_data(ipack) = pack_tmp
   51907      362848 :          data_tmp = full_data(idata)
   51908      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   51909      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   51910      362848 :          idata = idata + 1
   51911      362848 :          data_tmp = full_data(idata)
   51912      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51913      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   51914      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51915      362848 :          ipack = ipack + 1
   51916      362848 :          packed_data(ipack) = pack_tmp
   51917      362848 :          data_tmp = full_data(idata)
   51918      362848 :          pack_tmp = ISHFT(data_tmp, 34)
   51919      362848 :          pack_tmp = ISHFT(pack_tmp, -34)
   51920      362848 :          idata = idata + 1
   51921      362848 :          data_tmp = full_data(idata)
   51922      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51923      362848 :          data_tmp = IAND(data_tmp, mask_left(34))
   51924      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51925      362848 :          ipack = ipack + 1
   51926      362848 :          packed_data(ipack) = pack_tmp
   51927      362848 :          data_tmp = full_data(idata)
   51928      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   51929      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   51930      362848 :          idata = idata + 1
   51931      362848 :          data_tmp = full_data(idata)
   51932      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51933      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   51934      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51935      362848 :          ipack = ipack + 1
   51936      362848 :          packed_data(ipack) = pack_tmp
   51937      362848 :          data_tmp = full_data(idata)
   51938      362848 :          pack_tmp = ISHFT(data_tmp, 38)
   51939      362848 :          pack_tmp = ISHFT(pack_tmp, -38)
   51940      362848 :          idata = idata + 1
   51941      362848 :          data_tmp = full_data(idata)
   51942      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51943      362848 :          data_tmp = IAND(data_tmp, mask_left(38))
   51944      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51945      362848 :          ipack = ipack + 1
   51946      362848 :          packed_data(ipack) = pack_tmp
   51947      362848 :          data_tmp = full_data(idata)
   51948      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   51949      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   51950      362848 :          idata = idata + 1
   51951      362848 :          data_tmp = full_data(idata)
   51952      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51953      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   51954      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51955      362848 :          ipack = ipack + 1
   51956      362848 :          packed_data(ipack) = pack_tmp
   51957      362848 :          data_tmp = full_data(idata)
   51958      362848 :          pack_tmp = ISHFT(data_tmp, 42)
   51959      362848 :          pack_tmp = ISHFT(pack_tmp, -42)
   51960      362848 :          idata = idata + 1
   51961      362848 :          data_tmp = full_data(idata)
   51962      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51963      362848 :          data_tmp = IAND(data_tmp, mask_left(42))
   51964      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51965      362848 :          ipack = ipack + 1
   51966      362848 :          packed_data(ipack) = pack_tmp
   51967      362848 :          data_tmp = full_data(idata)
   51968      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   51969      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   51970      362848 :          idata = idata + 1
   51971      362848 :          data_tmp = full_data(idata)
   51972      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51973      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   51974      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51975      362848 :          ipack = ipack + 1
   51976      362848 :          packed_data(ipack) = pack_tmp
   51977      362848 :          data_tmp = full_data(idata)
   51978      362848 :          pack_tmp = ISHFT(data_tmp, 46)
   51979      362848 :          pack_tmp = ISHFT(pack_tmp, -46)
   51980      362848 :          idata = idata + 1
   51981      362848 :          data_tmp = full_data(idata)
   51982      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51983      362848 :          data_tmp = IAND(data_tmp, mask_left(46))
   51984      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51985      362848 :          ipack = ipack + 1
   51986      362848 :          packed_data(ipack) = pack_tmp
   51987      362848 :          data_tmp = full_data(idata)
   51988      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   51989      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   51990      362848 :          idata = idata + 1
   51991      362848 :          data_tmp = full_data(idata)
   51992      362848 :          data_tmp = ISHFT(data_tmp, 2)
   51993      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   51994      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51995      362848 :          ipack = ipack + 1
   51996      362848 :          packed_data(ipack) = pack_tmp
   51997      362848 :          data_tmp = full_data(idata)
   51998      362848 :          pack_tmp = ISHFT(data_tmp, 50)
   51999      362848 :          pack_tmp = ISHFT(pack_tmp, -50)
   52000      362848 :          idata = idata + 1
   52001      362848 :          data_tmp = full_data(idata)
   52002      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52003      362848 :          data_tmp = IAND(data_tmp, mask_left(50))
   52004      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52005      362848 :          ipack = ipack + 1
   52006      362848 :          packed_data(ipack) = pack_tmp
   52007      362848 :          data_tmp = full_data(idata)
   52008      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   52009      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   52010      362848 :          idata = idata + 1
   52011      362848 :          data_tmp = full_data(idata)
   52012      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52013      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   52014      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52015      362848 :          ipack = ipack + 1
   52016      362848 :          packed_data(ipack) = pack_tmp
   52017      362848 :          data_tmp = full_data(idata)
   52018      362848 :          pack_tmp = ISHFT(data_tmp, 54)
   52019      362848 :          pack_tmp = ISHFT(pack_tmp, -54)
   52020      362848 :          idata = idata + 1
   52021      362848 :          data_tmp = full_data(idata)
   52022      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52023      362848 :          data_tmp = IAND(data_tmp, mask_left(54))
   52024      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52025      362848 :          ipack = ipack + 1
   52026      362848 :          packed_data(ipack) = pack_tmp
   52027      362848 :          data_tmp = full_data(idata)
   52028      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   52029      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   52030      362848 :          idata = idata + 1
   52031      362848 :          data_tmp = full_data(idata)
   52032      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52033      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   52034      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52035      362848 :          ipack = ipack + 1
   52036      362848 :          packed_data(ipack) = pack_tmp
   52037      362848 :          data_tmp = full_data(idata)
   52038      362848 :          pack_tmp = ISHFT(data_tmp, 58)
   52039      362848 :          pack_tmp = ISHFT(pack_tmp, -58)
   52040      362848 :          idata = idata + 1
   52041      362848 :          data_tmp = full_data(idata)
   52042      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52043      362848 :          data_tmp = IAND(data_tmp, mask_left(58))
   52044      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52045      362848 :          ipack = ipack + 1
   52046      362848 :          packed_data(ipack) = pack_tmp
   52047      362848 :          data_tmp = full_data(idata)
   52048      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   52049      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   52050      362848 :          idata = idata + 1
   52051      362848 :          data_tmp = full_data(idata)
   52052      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52053      362848 :          data_tmp = IAND(data_tmp, mask_left(60))
   52054      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52055      362848 :          ipack = ipack + 1
   52056      362848 :          packed_data(ipack) = pack_tmp
   52057      362848 :          data_tmp = full_data(idata)
   52058      362848 :          pack_tmp = ISHFT(data_tmp, 62)
   52059      362848 :          pack_tmp = ISHFT(pack_tmp, -62)
   52060      362848 :          idata = idata + 1
   52061      362848 :          data_tmp = full_data(idata)
   52062      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52063      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52064      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   52065      362848 :          idata = idata + 1
   52066      362848 :          data_tmp = full_data(idata)
   52067      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52068      362848 :          data_tmp = IAND(data_tmp, mask_left(0))
   52069      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52070      362848 :          ipack = ipack + 1
   52071      362848 :          packed_data(ipack) = pack_tmp
   52072      362848 :          data_tmp = full_data(idata)
   52073      362848 :          pack_tmp = ISHFT(data_tmp, 2)
   52074      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
   52075      362848 :          idata = idata + 1
   52076      362848 :          data_tmp = full_data(idata)
   52077      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52078      362848 :          data_tmp = IAND(data_tmp, mask_left(2))
   52079      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52080      362848 :          ipack = ipack + 1
   52081      362848 :          packed_data(ipack) = pack_tmp
   52082      362848 :          data_tmp = full_data(idata)
   52083      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   52084      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   52085      362848 :          idata = idata + 1
   52086      362848 :          data_tmp = full_data(idata)
   52087      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52088      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   52089      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52090      362848 :          ipack = ipack + 1
   52091      362848 :          packed_data(ipack) = pack_tmp
   52092      362848 :          data_tmp = full_data(idata)
   52093      362848 :          pack_tmp = ISHFT(data_tmp, 6)
   52094      362848 :          pack_tmp = ISHFT(pack_tmp, -6)
   52095      362848 :          idata = idata + 1
   52096      362848 :          data_tmp = full_data(idata)
   52097      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52098      362848 :          data_tmp = IAND(data_tmp, mask_left(6))
   52099      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52100      362848 :          ipack = ipack + 1
   52101      362848 :          packed_data(ipack) = pack_tmp
   52102      362848 :          data_tmp = full_data(idata)
   52103      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   52104      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   52105      362848 :          idata = idata + 1
   52106      362848 :          data_tmp = full_data(idata)
   52107      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52108      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   52109      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52110      362848 :          ipack = ipack + 1
   52111      362848 :          packed_data(ipack) = pack_tmp
   52112      362848 :          data_tmp = full_data(idata)
   52113      362848 :          pack_tmp = ISHFT(data_tmp, 10)
   52114      362848 :          pack_tmp = ISHFT(pack_tmp, -10)
   52115      362848 :          idata = idata + 1
   52116      362848 :          data_tmp = full_data(idata)
   52117      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52118      362848 :          data_tmp = IAND(data_tmp, mask_left(10))
   52119      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52120      362848 :          ipack = ipack + 1
   52121      362848 :          packed_data(ipack) = pack_tmp
   52122      362848 :          data_tmp = full_data(idata)
   52123      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   52124      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   52125      362848 :          idata = idata + 1
   52126      362848 :          data_tmp = full_data(idata)
   52127      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52128      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   52129      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52130      362848 :          ipack = ipack + 1
   52131      362848 :          packed_data(ipack) = pack_tmp
   52132      362848 :          data_tmp = full_data(idata)
   52133      362848 :          pack_tmp = ISHFT(data_tmp, 14)
   52134      362848 :          pack_tmp = ISHFT(pack_tmp, -14)
   52135      362848 :          idata = idata + 1
   52136      362848 :          data_tmp = full_data(idata)
   52137      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52138      362848 :          data_tmp = IAND(data_tmp, mask_left(14))
   52139      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52140      362848 :          ipack = ipack + 1
   52141      362848 :          packed_data(ipack) = pack_tmp
   52142      362848 :          data_tmp = full_data(idata)
   52143      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   52144      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   52145      362848 :          idata = idata + 1
   52146      362848 :          data_tmp = full_data(idata)
   52147      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52148      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   52149      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52150      362848 :          ipack = ipack + 1
   52151      362848 :          packed_data(ipack) = pack_tmp
   52152      362848 :          data_tmp = full_data(idata)
   52153      362848 :          pack_tmp = ISHFT(data_tmp, 18)
   52154      362848 :          pack_tmp = ISHFT(pack_tmp, -18)
   52155      362848 :          idata = idata + 1
   52156      362848 :          data_tmp = full_data(idata)
   52157      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52158      362848 :          data_tmp = IAND(data_tmp, mask_left(18))
   52159      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52160      362848 :          ipack = ipack + 1
   52161      362848 :          packed_data(ipack) = pack_tmp
   52162      362848 :          data_tmp = full_data(idata)
   52163      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   52164      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   52165      362848 :          idata = idata + 1
   52166      362848 :          data_tmp = full_data(idata)
   52167      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52168      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   52169      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52170      362848 :          ipack = ipack + 1
   52171      362848 :          packed_data(ipack) = pack_tmp
   52172      362848 :          data_tmp = full_data(idata)
   52173      362848 :          pack_tmp = ISHFT(data_tmp, 22)
   52174      362848 :          pack_tmp = ISHFT(pack_tmp, -22)
   52175      362848 :          idata = idata + 1
   52176      362848 :          data_tmp = full_data(idata)
   52177      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52178      362848 :          data_tmp = IAND(data_tmp, mask_left(22))
   52179      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52180      362848 :          ipack = ipack + 1
   52181      362848 :          packed_data(ipack) = pack_tmp
   52182      362848 :          data_tmp = full_data(idata)
   52183      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   52184      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   52185      362848 :          idata = idata + 1
   52186      362848 :          data_tmp = full_data(idata)
   52187      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52188      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   52189      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52190      362848 :          ipack = ipack + 1
   52191      362848 :          packed_data(ipack) = pack_tmp
   52192      362848 :          data_tmp = full_data(idata)
   52193      362848 :          pack_tmp = ISHFT(data_tmp, 26)
   52194      362848 :          pack_tmp = ISHFT(pack_tmp, -26)
   52195      362848 :          idata = idata + 1
   52196      362848 :          data_tmp = full_data(idata)
   52197      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52198      362848 :          data_tmp = IAND(data_tmp, mask_left(26))
   52199      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52200      362848 :          ipack = ipack + 1
   52201      362848 :          packed_data(ipack) = pack_tmp
   52202      362848 :          data_tmp = full_data(idata)
   52203      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   52204      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   52205      362848 :          idata = idata + 1
   52206      362848 :          data_tmp = full_data(idata)
   52207      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52208      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   52209      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52210      362848 :          ipack = ipack + 1
   52211      362848 :          packed_data(ipack) = pack_tmp
   52212      362848 :          data_tmp = full_data(idata)
   52213      362848 :          pack_tmp = ISHFT(data_tmp, 30)
   52214      362848 :          pack_tmp = ISHFT(pack_tmp, -30)
   52215      362848 :          idata = idata + 1
   52216      362848 :          data_tmp = full_data(idata)
   52217      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52218      362848 :          data_tmp = IAND(data_tmp, mask_left(30))
   52219      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52220      362848 :          ipack = ipack + 1
   52221      362848 :          packed_data(ipack) = pack_tmp
   52222      362848 :          data_tmp = full_data(idata)
   52223      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   52224      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   52225      362848 :          idata = idata + 1
   52226      362848 :          data_tmp = full_data(idata)
   52227      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52228      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   52229      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52230      362848 :          ipack = ipack + 1
   52231      362848 :          packed_data(ipack) = pack_tmp
   52232      362848 :          data_tmp = full_data(idata)
   52233      362848 :          pack_tmp = ISHFT(data_tmp, 34)
   52234      362848 :          pack_tmp = ISHFT(pack_tmp, -34)
   52235      362848 :          idata = idata + 1
   52236      362848 :          data_tmp = full_data(idata)
   52237      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52238      362848 :          data_tmp = IAND(data_tmp, mask_left(34))
   52239      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52240      362848 :          ipack = ipack + 1
   52241      362848 :          packed_data(ipack) = pack_tmp
   52242      362848 :          data_tmp = full_data(idata)
   52243      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   52244      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   52245      362848 :          idata = idata + 1
   52246      362848 :          data_tmp = full_data(idata)
   52247      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52248      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   52249      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52250      362848 :          ipack = ipack + 1
   52251      362848 :          packed_data(ipack) = pack_tmp
   52252      362848 :          data_tmp = full_data(idata)
   52253      362848 :          pack_tmp = ISHFT(data_tmp, 38)
   52254      362848 :          pack_tmp = ISHFT(pack_tmp, -38)
   52255      362848 :          idata = idata + 1
   52256      362848 :          data_tmp = full_data(idata)
   52257      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52258      362848 :          data_tmp = IAND(data_tmp, mask_left(38))
   52259      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52260      362848 :          ipack = ipack + 1
   52261      362848 :          packed_data(ipack) = pack_tmp
   52262      362848 :          data_tmp = full_data(idata)
   52263      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   52264      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   52265      362848 :          idata = idata + 1
   52266      362848 :          data_tmp = full_data(idata)
   52267      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52268      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   52269      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52270      362848 :          ipack = ipack + 1
   52271      362848 :          packed_data(ipack) = pack_tmp
   52272      362848 :          data_tmp = full_data(idata)
   52273      362848 :          pack_tmp = ISHFT(data_tmp, 42)
   52274      362848 :          pack_tmp = ISHFT(pack_tmp, -42)
   52275      362848 :          idata = idata + 1
   52276      362848 :          data_tmp = full_data(idata)
   52277      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52278      362848 :          data_tmp = IAND(data_tmp, mask_left(42))
   52279      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52280      362848 :          ipack = ipack + 1
   52281      362848 :          packed_data(ipack) = pack_tmp
   52282      362848 :          data_tmp = full_data(idata)
   52283      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   52284      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   52285      362848 :          idata = idata + 1
   52286      362848 :          data_tmp = full_data(idata)
   52287      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52288      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   52289      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52290      362848 :          ipack = ipack + 1
   52291      362848 :          packed_data(ipack) = pack_tmp
   52292      362848 :          data_tmp = full_data(idata)
   52293      362848 :          pack_tmp = ISHFT(data_tmp, 46)
   52294      362848 :          pack_tmp = ISHFT(pack_tmp, -46)
   52295      362848 :          idata = idata + 1
   52296      362848 :          data_tmp = full_data(idata)
   52297      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52298      362848 :          data_tmp = IAND(data_tmp, mask_left(46))
   52299      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52300      362848 :          ipack = ipack + 1
   52301      362848 :          packed_data(ipack) = pack_tmp
   52302      362848 :          data_tmp = full_data(idata)
   52303      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   52304      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   52305      362848 :          idata = idata + 1
   52306      362848 :          data_tmp = full_data(idata)
   52307      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52308      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   52309      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52310      362848 :          ipack = ipack + 1
   52311      362848 :          packed_data(ipack) = pack_tmp
   52312      362848 :          data_tmp = full_data(idata)
   52313      362848 :          pack_tmp = ISHFT(data_tmp, 50)
   52314      362848 :          pack_tmp = ISHFT(pack_tmp, -50)
   52315      362848 :          idata = idata + 1
   52316      362848 :          data_tmp = full_data(idata)
   52317      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52318      362848 :          data_tmp = IAND(data_tmp, mask_left(50))
   52319      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52320      362848 :          ipack = ipack + 1
   52321      362848 :          packed_data(ipack) = pack_tmp
   52322      362848 :          data_tmp = full_data(idata)
   52323      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   52324      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   52325      362848 :          idata = idata + 1
   52326      362848 :          data_tmp = full_data(idata)
   52327      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52328      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   52329      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52330      362848 :          ipack = ipack + 1
   52331      362848 :          packed_data(ipack) = pack_tmp
   52332      362848 :          data_tmp = full_data(idata)
   52333      362848 :          pack_tmp = ISHFT(data_tmp, 54)
   52334      362848 :          pack_tmp = ISHFT(pack_tmp, -54)
   52335      362848 :          idata = idata + 1
   52336      362848 :          data_tmp = full_data(idata)
   52337      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52338      362848 :          data_tmp = IAND(data_tmp, mask_left(54))
   52339      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52340      362848 :          ipack = ipack + 1
   52341      362848 :          packed_data(ipack) = pack_tmp
   52342      362848 :          data_tmp = full_data(idata)
   52343      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   52344      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   52345      362848 :          idata = idata + 1
   52346      362848 :          data_tmp = full_data(idata)
   52347      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52348      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   52349      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52350      362848 :          ipack = ipack + 1
   52351      362848 :          packed_data(ipack) = pack_tmp
   52352      362848 :          data_tmp = full_data(idata)
   52353      362848 :          pack_tmp = ISHFT(data_tmp, 58)
   52354      362848 :          pack_tmp = ISHFT(pack_tmp, -58)
   52355      362848 :          idata = idata + 1
   52356      362848 :          data_tmp = full_data(idata)
   52357      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52358      362848 :          data_tmp = IAND(data_tmp, mask_left(58))
   52359      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52360      362848 :          ipack = ipack + 1
   52361      362848 :          packed_data(ipack) = pack_tmp
   52362      362848 :          data_tmp = full_data(idata)
   52363      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   52364      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   52365      362848 :          idata = idata + 1
   52366      362848 :          data_tmp = full_data(idata)
   52367      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52368      362848 :          data_tmp = IAND(data_tmp, mask_left(60))
   52369      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52370      362848 :          ipack = ipack + 1
   52371      362848 :          packed_data(ipack) = pack_tmp
   52372      362848 :          data_tmp = full_data(idata)
   52373      362848 :          pack_tmp = ISHFT(data_tmp, 62)
   52374      362848 :          pack_tmp = ISHFT(pack_tmp, -62)
   52375      362848 :          idata = idata + 1
   52376      362848 :          data_tmp = full_data(idata)
   52377      362848 :          data_tmp = ISHFT(data_tmp, 2)
   52378      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52379             :          pack_tmp = ISHFT(pack_tmp, 0)
   52380      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   52381      362848 :          ipack = ipack + 1
   52382      362848 :          packed_data(ipack) = pack_tmp
   52383             :       END DO
   52384       22678 :       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       22678 :    END SUBROUTINE ints2bits_62
   52388             : 
   52389             : ! **************************************************************************************************
   52390             : !> \brief ...
   52391             : !> \param Ndata ...
   52392             : !> \param packed_data ...
   52393             : !> \param full_data ...
   52394             : ! **************************************************************************************************
   52395       93246 :    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       93246 :       ipack = 0
   52406       93246 :       idata = 0
   52407       93246 :       pack_tmp = 0
   52408       93246 :       Ndata_rep = (Ndata/64)*64
   52409       93246 :       DO kdata = 1, Ndata_rep, 64
   52410     1491936 :          idata = idata + 1
   52411     1491936 :          data_tmp = ISHFT(pack_tmp, 62)
   52412     1491936 :          ipack = ipack + 1
   52413     1491936 :          pack_tmp = packed_data(ipack)
   52414     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52415     1491936 :          pack_tmp = ISHFT(pack_tmp, -62)
   52416     1491936 :          idata = idata + 1
   52417     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   52418     1491936 :          ipack = ipack + 1
   52419     1491936 :          pack_tmp = packed_data(ipack)
   52420     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52421     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   52422     1491936 :          idata = idata + 1
   52423     1491936 :          data_tmp = ISHFT(pack_tmp, 58)
   52424     1491936 :          ipack = ipack + 1
   52425     1491936 :          pack_tmp = packed_data(ipack)
   52426     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52427     1491936 :          pack_tmp = ISHFT(pack_tmp, -58)
   52428     1491936 :          idata = idata + 1
   52429     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   52430     1491936 :          ipack = ipack + 1
   52431     1491936 :          pack_tmp = packed_data(ipack)
   52432     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52433     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   52434     1491936 :          idata = idata + 1
   52435     1491936 :          data_tmp = ISHFT(pack_tmp, 54)
   52436     1491936 :          ipack = ipack + 1
   52437     1491936 :          pack_tmp = packed_data(ipack)
   52438     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52439     1491936 :          pack_tmp = ISHFT(pack_tmp, -54)
   52440     1491936 :          idata = idata + 1
   52441     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   52442     1491936 :          ipack = ipack + 1
   52443     1491936 :          pack_tmp = packed_data(ipack)
   52444     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52445     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   52446     1491936 :          idata = idata + 1
   52447     1491936 :          data_tmp = ISHFT(pack_tmp, 50)
   52448     1491936 :          ipack = ipack + 1
   52449     1491936 :          pack_tmp = packed_data(ipack)
   52450     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52451     1491936 :          pack_tmp = ISHFT(pack_tmp, -50)
   52452     1491936 :          idata = idata + 1
   52453     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   52454     1491936 :          ipack = ipack + 1
   52455     1491936 :          pack_tmp = packed_data(ipack)
   52456     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52457     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   52458     1491936 :          idata = idata + 1
   52459     1491936 :          data_tmp = ISHFT(pack_tmp, 46)
   52460     1491936 :          ipack = ipack + 1
   52461     1491936 :          pack_tmp = packed_data(ipack)
   52462     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52463     1491936 :          pack_tmp = ISHFT(pack_tmp, -46)
   52464     1491936 :          idata = idata + 1
   52465     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   52466     1491936 :          ipack = ipack + 1
   52467     1491936 :          pack_tmp = packed_data(ipack)
   52468     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52469     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   52470     1491936 :          idata = idata + 1
   52471     1491936 :          data_tmp = ISHFT(pack_tmp, 42)
   52472     1491936 :          ipack = ipack + 1
   52473     1491936 :          pack_tmp = packed_data(ipack)
   52474     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52475     1491936 :          pack_tmp = ISHFT(pack_tmp, -42)
   52476     1491936 :          idata = idata + 1
   52477     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   52478     1491936 :          ipack = ipack + 1
   52479     1491936 :          pack_tmp = packed_data(ipack)
   52480     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52481     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   52482     1491936 :          idata = idata + 1
   52483     1491936 :          data_tmp = ISHFT(pack_tmp, 38)
   52484     1491936 :          ipack = ipack + 1
   52485     1491936 :          pack_tmp = packed_data(ipack)
   52486     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52487     1491936 :          pack_tmp = ISHFT(pack_tmp, -38)
   52488     1491936 :          idata = idata + 1
   52489     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   52490     1491936 :          ipack = ipack + 1
   52491     1491936 :          pack_tmp = packed_data(ipack)
   52492     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52493     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   52494     1491936 :          idata = idata + 1
   52495     1491936 :          data_tmp = ISHFT(pack_tmp, 34)
   52496     1491936 :          ipack = ipack + 1
   52497     1491936 :          pack_tmp = packed_data(ipack)
   52498     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52499     1491936 :          pack_tmp = ISHFT(pack_tmp, -34)
   52500     1491936 :          idata = idata + 1
   52501     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   52502     1491936 :          ipack = ipack + 1
   52503     1491936 :          pack_tmp = packed_data(ipack)
   52504     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52505     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   52506     1491936 :          idata = idata + 1
   52507     1491936 :          data_tmp = ISHFT(pack_tmp, 30)
   52508     1491936 :          ipack = ipack + 1
   52509     1491936 :          pack_tmp = packed_data(ipack)
   52510     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52511     1491936 :          pack_tmp = ISHFT(pack_tmp, -30)
   52512     1491936 :          idata = idata + 1
   52513     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   52514     1491936 :          ipack = ipack + 1
   52515     1491936 :          pack_tmp = packed_data(ipack)
   52516     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52517     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   52518     1491936 :          idata = idata + 1
   52519     1491936 :          data_tmp = ISHFT(pack_tmp, 26)
   52520     1491936 :          ipack = ipack + 1
   52521     1491936 :          pack_tmp = packed_data(ipack)
   52522     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52523     1491936 :          pack_tmp = ISHFT(pack_tmp, -26)
   52524     1491936 :          idata = idata + 1
   52525     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   52526     1491936 :          ipack = ipack + 1
   52527     1491936 :          pack_tmp = packed_data(ipack)
   52528     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52529     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   52530     1491936 :          idata = idata + 1
   52531     1491936 :          data_tmp = ISHFT(pack_tmp, 22)
   52532     1491936 :          ipack = ipack + 1
   52533     1491936 :          pack_tmp = packed_data(ipack)
   52534     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52535     1491936 :          pack_tmp = ISHFT(pack_tmp, -22)
   52536     1491936 :          idata = idata + 1
   52537     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   52538     1491936 :          ipack = ipack + 1
   52539     1491936 :          pack_tmp = packed_data(ipack)
   52540     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52541     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   52542     1491936 :          idata = idata + 1
   52543     1491936 :          data_tmp = ISHFT(pack_tmp, 18)
   52544     1491936 :          ipack = ipack + 1
   52545     1491936 :          pack_tmp = packed_data(ipack)
   52546     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52547     1491936 :          pack_tmp = ISHFT(pack_tmp, -18)
   52548     1491936 :          idata = idata + 1
   52549     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   52550     1491936 :          ipack = ipack + 1
   52551     1491936 :          pack_tmp = packed_data(ipack)
   52552     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52553     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   52554     1491936 :          idata = idata + 1
   52555     1491936 :          data_tmp = ISHFT(pack_tmp, 14)
   52556     1491936 :          ipack = ipack + 1
   52557     1491936 :          pack_tmp = packed_data(ipack)
   52558     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52559     1491936 :          pack_tmp = ISHFT(pack_tmp, -14)
   52560     1491936 :          idata = idata + 1
   52561     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   52562     1491936 :          ipack = ipack + 1
   52563     1491936 :          pack_tmp = packed_data(ipack)
   52564     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52565     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   52566     1491936 :          idata = idata + 1
   52567     1491936 :          data_tmp = ISHFT(pack_tmp, 10)
   52568     1491936 :          ipack = ipack + 1
   52569     1491936 :          pack_tmp = packed_data(ipack)
   52570     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52571     1491936 :          pack_tmp = ISHFT(pack_tmp, -10)
   52572     1491936 :          idata = idata + 1
   52573     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   52574     1491936 :          ipack = ipack + 1
   52575     1491936 :          pack_tmp = packed_data(ipack)
   52576     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52577     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   52578     1491936 :          idata = idata + 1
   52579     1491936 :          data_tmp = ISHFT(pack_tmp, 6)
   52580     1491936 :          ipack = ipack + 1
   52581     1491936 :          pack_tmp = packed_data(ipack)
   52582     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52583     1491936 :          pack_tmp = ISHFT(pack_tmp, -6)
   52584     1491936 :          idata = idata + 1
   52585     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   52586     1491936 :          ipack = ipack + 1
   52587     1491936 :          pack_tmp = packed_data(ipack)
   52588     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52589     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   52590     1491936 :          idata = idata + 1
   52591     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
   52592     1491936 :          ipack = ipack + 1
   52593     1491936 :          pack_tmp = packed_data(ipack)
   52594     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52595     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
   52596     1491936 :          idata = idata + 1
   52597     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52598     1491936 :          full_data(idata) = data_tmp
   52599     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52600     1491936 :          idata = idata + 1
   52601     1491936 :          data_tmp = ISHFT(pack_tmp, 62)
   52602     1491936 :          ipack = ipack + 1
   52603     1491936 :          pack_tmp = packed_data(ipack)
   52604     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52605     1491936 :          pack_tmp = ISHFT(pack_tmp, -62)
   52606     1491936 :          idata = idata + 1
   52607     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   52608     1491936 :          ipack = ipack + 1
   52609     1491936 :          pack_tmp = packed_data(ipack)
   52610     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52611     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   52612     1491936 :          idata = idata + 1
   52613     1491936 :          data_tmp = ISHFT(pack_tmp, 58)
   52614     1491936 :          ipack = ipack + 1
   52615     1491936 :          pack_tmp = packed_data(ipack)
   52616     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52617     1491936 :          pack_tmp = ISHFT(pack_tmp, -58)
   52618     1491936 :          idata = idata + 1
   52619     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   52620     1491936 :          ipack = ipack + 1
   52621     1491936 :          pack_tmp = packed_data(ipack)
   52622     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52623     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   52624     1491936 :          idata = idata + 1
   52625     1491936 :          data_tmp = ISHFT(pack_tmp, 54)
   52626     1491936 :          ipack = ipack + 1
   52627     1491936 :          pack_tmp = packed_data(ipack)
   52628     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52629     1491936 :          pack_tmp = ISHFT(pack_tmp, -54)
   52630     1491936 :          idata = idata + 1
   52631     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   52632     1491936 :          ipack = ipack + 1
   52633     1491936 :          pack_tmp = packed_data(ipack)
   52634     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52635     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   52636     1491936 :          idata = idata + 1
   52637     1491936 :          data_tmp = ISHFT(pack_tmp, 50)
   52638     1491936 :          ipack = ipack + 1
   52639     1491936 :          pack_tmp = packed_data(ipack)
   52640     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52641     1491936 :          pack_tmp = ISHFT(pack_tmp, -50)
   52642     1491936 :          idata = idata + 1
   52643     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   52644     1491936 :          ipack = ipack + 1
   52645     1491936 :          pack_tmp = packed_data(ipack)
   52646     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52647     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   52648     1491936 :          idata = idata + 1
   52649     1491936 :          data_tmp = ISHFT(pack_tmp, 46)
   52650     1491936 :          ipack = ipack + 1
   52651     1491936 :          pack_tmp = packed_data(ipack)
   52652     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52653     1491936 :          pack_tmp = ISHFT(pack_tmp, -46)
   52654     1491936 :          idata = idata + 1
   52655     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   52656     1491936 :          ipack = ipack + 1
   52657     1491936 :          pack_tmp = packed_data(ipack)
   52658     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52659     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   52660     1491936 :          idata = idata + 1
   52661     1491936 :          data_tmp = ISHFT(pack_tmp, 42)
   52662     1491936 :          ipack = ipack + 1
   52663     1491936 :          pack_tmp = packed_data(ipack)
   52664     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52665     1491936 :          pack_tmp = ISHFT(pack_tmp, -42)
   52666     1491936 :          idata = idata + 1
   52667     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   52668     1491936 :          ipack = ipack + 1
   52669     1491936 :          pack_tmp = packed_data(ipack)
   52670     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52671     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   52672     1491936 :          idata = idata + 1
   52673     1491936 :          data_tmp = ISHFT(pack_tmp, 38)
   52674     1491936 :          ipack = ipack + 1
   52675     1491936 :          pack_tmp = packed_data(ipack)
   52676     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52677     1491936 :          pack_tmp = ISHFT(pack_tmp, -38)
   52678     1491936 :          idata = idata + 1
   52679     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   52680     1491936 :          ipack = ipack + 1
   52681     1491936 :          pack_tmp = packed_data(ipack)
   52682     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52683     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   52684     1491936 :          idata = idata + 1
   52685     1491936 :          data_tmp = ISHFT(pack_tmp, 34)
   52686     1491936 :          ipack = ipack + 1
   52687     1491936 :          pack_tmp = packed_data(ipack)
   52688     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52689     1491936 :          pack_tmp = ISHFT(pack_tmp, -34)
   52690     1491936 :          idata = idata + 1
   52691     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   52692     1491936 :          ipack = ipack + 1
   52693     1491936 :          pack_tmp = packed_data(ipack)
   52694     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52695     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   52696     1491936 :          idata = idata + 1
   52697     1491936 :          data_tmp = ISHFT(pack_tmp, 30)
   52698     1491936 :          ipack = ipack + 1
   52699     1491936 :          pack_tmp = packed_data(ipack)
   52700     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52701     1491936 :          pack_tmp = ISHFT(pack_tmp, -30)
   52702     1491936 :          idata = idata + 1
   52703     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   52704     1491936 :          ipack = ipack + 1
   52705     1491936 :          pack_tmp = packed_data(ipack)
   52706     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52707     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   52708     1491936 :          idata = idata + 1
   52709     1491936 :          data_tmp = ISHFT(pack_tmp, 26)
   52710     1491936 :          ipack = ipack + 1
   52711     1491936 :          pack_tmp = packed_data(ipack)
   52712     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52713     1491936 :          pack_tmp = ISHFT(pack_tmp, -26)
   52714     1491936 :          idata = idata + 1
   52715     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   52716     1491936 :          ipack = ipack + 1
   52717     1491936 :          pack_tmp = packed_data(ipack)
   52718     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52719     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   52720     1491936 :          idata = idata + 1
   52721     1491936 :          data_tmp = ISHFT(pack_tmp, 22)
   52722     1491936 :          ipack = ipack + 1
   52723     1491936 :          pack_tmp = packed_data(ipack)
   52724     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52725     1491936 :          pack_tmp = ISHFT(pack_tmp, -22)
   52726     1491936 :          idata = idata + 1
   52727     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   52728     1491936 :          ipack = ipack + 1
   52729     1491936 :          pack_tmp = packed_data(ipack)
   52730     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52731     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   52732     1491936 :          idata = idata + 1
   52733     1491936 :          data_tmp = ISHFT(pack_tmp, 18)
   52734     1491936 :          ipack = ipack + 1
   52735     1491936 :          pack_tmp = packed_data(ipack)
   52736     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52737     1491936 :          pack_tmp = ISHFT(pack_tmp, -18)
   52738     1491936 :          idata = idata + 1
   52739     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   52740     1491936 :          ipack = ipack + 1
   52741     1491936 :          pack_tmp = packed_data(ipack)
   52742     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52743     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   52744     1491936 :          idata = idata + 1
   52745     1491936 :          data_tmp = ISHFT(pack_tmp, 14)
   52746     1491936 :          ipack = ipack + 1
   52747     1491936 :          pack_tmp = packed_data(ipack)
   52748     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52749     1491936 :          pack_tmp = ISHFT(pack_tmp, -14)
   52750     1491936 :          idata = idata + 1
   52751     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   52752     1491936 :          ipack = ipack + 1
   52753     1491936 :          pack_tmp = packed_data(ipack)
   52754     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52755     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   52756     1491936 :          idata = idata + 1
   52757     1491936 :          data_tmp = ISHFT(pack_tmp, 10)
   52758     1491936 :          ipack = ipack + 1
   52759     1491936 :          pack_tmp = packed_data(ipack)
   52760     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52761     1491936 :          pack_tmp = ISHFT(pack_tmp, -10)
   52762     1491936 :          idata = idata + 1
   52763     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   52764     1491936 :          ipack = ipack + 1
   52765     1491936 :          pack_tmp = packed_data(ipack)
   52766     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52767     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   52768     1491936 :          idata = idata + 1
   52769     1491936 :          data_tmp = ISHFT(pack_tmp, 6)
   52770     1491936 :          ipack = ipack + 1
   52771     1491936 :          pack_tmp = packed_data(ipack)
   52772     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52773     1491936 :          pack_tmp = ISHFT(pack_tmp, -6)
   52774     1491936 :          idata = idata + 1
   52775     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   52776     1491936 :          ipack = ipack + 1
   52777     1491936 :          pack_tmp = packed_data(ipack)
   52778     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52779     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   52780     1491936 :          idata = idata + 1
   52781     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
   52782     1491936 :          ipack = ipack + 1
   52783     1491936 :          pack_tmp = packed_data(ipack)
   52784     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52785     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
   52786     1491936 :          idata = idata + 1
   52787     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52788     1491936 :          full_data(idata) = data_tmp
   52789     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52790             :       END DO
   52791       93246 :       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       93246 :    END SUBROUTINE bits2ints_62
   52795             : 
   52796             : ! **************************************************************************************************
   52797             : !> \brief ...
   52798             : !> \param Ndata ...
   52799             : !> \param packed_data ...
   52800             : !> \param full_data ...
   52801             : ! **************************************************************************************************
   52802       22678 :    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       22678 :       idata = 0
   52813       22678 :       ipack = 0
   52814       22678 :       Ndata_rep = (Ndata/64)*64
   52815       22678 :       DO kdata = 1, Ndata_rep, 64
   52816      362848 :          pack_tmp = 0
   52817      362848 :          idata = idata + 1
   52818      362848 :          data_tmp = full_data(idata)
   52819      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52820      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52821      362848 :          pack_tmp = ISHFT(pack_tmp, -1)
   52822      362848 :          idata = idata + 1
   52823      362848 :          data_tmp = full_data(idata)
   52824      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52825      362848 :          data_tmp = IAND(data_tmp, mask_left(1))
   52826      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52827      362848 :          ipack = ipack + 1
   52828      362848 :          packed_data(ipack) = pack_tmp
   52829      362848 :          data_tmp = full_data(idata)
   52830      362848 :          pack_tmp = ISHFT(data_tmp, 2)
   52831      362848 :          pack_tmp = ISHFT(pack_tmp, -2)
   52832      362848 :          idata = idata + 1
   52833      362848 :          data_tmp = full_data(idata)
   52834      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52835      362848 :          data_tmp = IAND(data_tmp, mask_left(2))
   52836      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52837      362848 :          ipack = ipack + 1
   52838      362848 :          packed_data(ipack) = pack_tmp
   52839      362848 :          data_tmp = full_data(idata)
   52840      362848 :          pack_tmp = ISHFT(data_tmp, 3)
   52841      362848 :          pack_tmp = ISHFT(pack_tmp, -3)
   52842      362848 :          idata = idata + 1
   52843      362848 :          data_tmp = full_data(idata)
   52844      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52845      362848 :          data_tmp = IAND(data_tmp, mask_left(3))
   52846      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52847      362848 :          ipack = ipack + 1
   52848      362848 :          packed_data(ipack) = pack_tmp
   52849      362848 :          data_tmp = full_data(idata)
   52850      362848 :          pack_tmp = ISHFT(data_tmp, 4)
   52851      362848 :          pack_tmp = ISHFT(pack_tmp, -4)
   52852      362848 :          idata = idata + 1
   52853      362848 :          data_tmp = full_data(idata)
   52854      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52855      362848 :          data_tmp = IAND(data_tmp, mask_left(4))
   52856      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52857      362848 :          ipack = ipack + 1
   52858      362848 :          packed_data(ipack) = pack_tmp
   52859      362848 :          data_tmp = full_data(idata)
   52860      362848 :          pack_tmp = ISHFT(data_tmp, 5)
   52861      362848 :          pack_tmp = ISHFT(pack_tmp, -5)
   52862      362848 :          idata = idata + 1
   52863      362848 :          data_tmp = full_data(idata)
   52864      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52865      362848 :          data_tmp = IAND(data_tmp, mask_left(5))
   52866      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52867      362848 :          ipack = ipack + 1
   52868      362848 :          packed_data(ipack) = pack_tmp
   52869      362848 :          data_tmp = full_data(idata)
   52870      362848 :          pack_tmp = ISHFT(data_tmp, 6)
   52871      362848 :          pack_tmp = ISHFT(pack_tmp, -6)
   52872      362848 :          idata = idata + 1
   52873      362848 :          data_tmp = full_data(idata)
   52874      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52875      362848 :          data_tmp = IAND(data_tmp, mask_left(6))
   52876      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52877      362848 :          ipack = ipack + 1
   52878      362848 :          packed_data(ipack) = pack_tmp
   52879      362848 :          data_tmp = full_data(idata)
   52880      362848 :          pack_tmp = ISHFT(data_tmp, 7)
   52881      362848 :          pack_tmp = ISHFT(pack_tmp, -7)
   52882      362848 :          idata = idata + 1
   52883      362848 :          data_tmp = full_data(idata)
   52884      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52885      362848 :          data_tmp = IAND(data_tmp, mask_left(7))
   52886      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52887      362848 :          ipack = ipack + 1
   52888      362848 :          packed_data(ipack) = pack_tmp
   52889      362848 :          data_tmp = full_data(idata)
   52890      362848 :          pack_tmp = ISHFT(data_tmp, 8)
   52891      362848 :          pack_tmp = ISHFT(pack_tmp, -8)
   52892      362848 :          idata = idata + 1
   52893      362848 :          data_tmp = full_data(idata)
   52894      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52895      362848 :          data_tmp = IAND(data_tmp, mask_left(8))
   52896      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52897      362848 :          ipack = ipack + 1
   52898      362848 :          packed_data(ipack) = pack_tmp
   52899      362848 :          data_tmp = full_data(idata)
   52900      362848 :          pack_tmp = ISHFT(data_tmp, 9)
   52901      362848 :          pack_tmp = ISHFT(pack_tmp, -9)
   52902      362848 :          idata = idata + 1
   52903      362848 :          data_tmp = full_data(idata)
   52904      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52905      362848 :          data_tmp = IAND(data_tmp, mask_left(9))
   52906      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52907      362848 :          ipack = ipack + 1
   52908      362848 :          packed_data(ipack) = pack_tmp
   52909      362848 :          data_tmp = full_data(idata)
   52910      362848 :          pack_tmp = ISHFT(data_tmp, 10)
   52911      362848 :          pack_tmp = ISHFT(pack_tmp, -10)
   52912      362848 :          idata = idata + 1
   52913      362848 :          data_tmp = full_data(idata)
   52914      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52915      362848 :          data_tmp = IAND(data_tmp, mask_left(10))
   52916      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52917      362848 :          ipack = ipack + 1
   52918      362848 :          packed_data(ipack) = pack_tmp
   52919      362848 :          data_tmp = full_data(idata)
   52920      362848 :          pack_tmp = ISHFT(data_tmp, 11)
   52921      362848 :          pack_tmp = ISHFT(pack_tmp, -11)
   52922      362848 :          idata = idata + 1
   52923      362848 :          data_tmp = full_data(idata)
   52924      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52925      362848 :          data_tmp = IAND(data_tmp, mask_left(11))
   52926      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52927      362848 :          ipack = ipack + 1
   52928      362848 :          packed_data(ipack) = pack_tmp
   52929      362848 :          data_tmp = full_data(idata)
   52930      362848 :          pack_tmp = ISHFT(data_tmp, 12)
   52931      362848 :          pack_tmp = ISHFT(pack_tmp, -12)
   52932      362848 :          idata = idata + 1
   52933      362848 :          data_tmp = full_data(idata)
   52934      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52935      362848 :          data_tmp = IAND(data_tmp, mask_left(12))
   52936      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52937      362848 :          ipack = ipack + 1
   52938      362848 :          packed_data(ipack) = pack_tmp
   52939      362848 :          data_tmp = full_data(idata)
   52940      362848 :          pack_tmp = ISHFT(data_tmp, 13)
   52941      362848 :          pack_tmp = ISHFT(pack_tmp, -13)
   52942      362848 :          idata = idata + 1
   52943      362848 :          data_tmp = full_data(idata)
   52944      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52945      362848 :          data_tmp = IAND(data_tmp, mask_left(13))
   52946      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52947      362848 :          ipack = ipack + 1
   52948      362848 :          packed_data(ipack) = pack_tmp
   52949      362848 :          data_tmp = full_data(idata)
   52950      362848 :          pack_tmp = ISHFT(data_tmp, 14)
   52951      362848 :          pack_tmp = ISHFT(pack_tmp, -14)
   52952      362848 :          idata = idata + 1
   52953      362848 :          data_tmp = full_data(idata)
   52954      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52955      362848 :          data_tmp = IAND(data_tmp, mask_left(14))
   52956      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52957      362848 :          ipack = ipack + 1
   52958      362848 :          packed_data(ipack) = pack_tmp
   52959      362848 :          data_tmp = full_data(idata)
   52960      362848 :          pack_tmp = ISHFT(data_tmp, 15)
   52961      362848 :          pack_tmp = ISHFT(pack_tmp, -15)
   52962      362848 :          idata = idata + 1
   52963      362848 :          data_tmp = full_data(idata)
   52964      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52965      362848 :          data_tmp = IAND(data_tmp, mask_left(15))
   52966      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52967      362848 :          ipack = ipack + 1
   52968      362848 :          packed_data(ipack) = pack_tmp
   52969      362848 :          data_tmp = full_data(idata)
   52970      362848 :          pack_tmp = ISHFT(data_tmp, 16)
   52971      362848 :          pack_tmp = ISHFT(pack_tmp, -16)
   52972      362848 :          idata = idata + 1
   52973      362848 :          data_tmp = full_data(idata)
   52974      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52975      362848 :          data_tmp = IAND(data_tmp, mask_left(16))
   52976      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52977      362848 :          ipack = ipack + 1
   52978      362848 :          packed_data(ipack) = pack_tmp
   52979      362848 :          data_tmp = full_data(idata)
   52980      362848 :          pack_tmp = ISHFT(data_tmp, 17)
   52981      362848 :          pack_tmp = ISHFT(pack_tmp, -17)
   52982      362848 :          idata = idata + 1
   52983      362848 :          data_tmp = full_data(idata)
   52984      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52985      362848 :          data_tmp = IAND(data_tmp, mask_left(17))
   52986      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52987      362848 :          ipack = ipack + 1
   52988      362848 :          packed_data(ipack) = pack_tmp
   52989      362848 :          data_tmp = full_data(idata)
   52990      362848 :          pack_tmp = ISHFT(data_tmp, 18)
   52991      362848 :          pack_tmp = ISHFT(pack_tmp, -18)
   52992      362848 :          idata = idata + 1
   52993      362848 :          data_tmp = full_data(idata)
   52994      362848 :          data_tmp = ISHFT(data_tmp, 1)
   52995      362848 :          data_tmp = IAND(data_tmp, mask_left(18))
   52996      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52997      362848 :          ipack = ipack + 1
   52998      362848 :          packed_data(ipack) = pack_tmp
   52999      362848 :          data_tmp = full_data(idata)
   53000      362848 :          pack_tmp = ISHFT(data_tmp, 19)
   53001      362848 :          pack_tmp = ISHFT(pack_tmp, -19)
   53002      362848 :          idata = idata + 1
   53003      362848 :          data_tmp = full_data(idata)
   53004      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53005      362848 :          data_tmp = IAND(data_tmp, mask_left(19))
   53006      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53007      362848 :          ipack = ipack + 1
   53008      362848 :          packed_data(ipack) = pack_tmp
   53009      362848 :          data_tmp = full_data(idata)
   53010      362848 :          pack_tmp = ISHFT(data_tmp, 20)
   53011      362848 :          pack_tmp = ISHFT(pack_tmp, -20)
   53012      362848 :          idata = idata + 1
   53013      362848 :          data_tmp = full_data(idata)
   53014      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53015      362848 :          data_tmp = IAND(data_tmp, mask_left(20))
   53016      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53017      362848 :          ipack = ipack + 1
   53018      362848 :          packed_data(ipack) = pack_tmp
   53019      362848 :          data_tmp = full_data(idata)
   53020      362848 :          pack_tmp = ISHFT(data_tmp, 21)
   53021      362848 :          pack_tmp = ISHFT(pack_tmp, -21)
   53022      362848 :          idata = idata + 1
   53023      362848 :          data_tmp = full_data(idata)
   53024      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53025      362848 :          data_tmp = IAND(data_tmp, mask_left(21))
   53026      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53027      362848 :          ipack = ipack + 1
   53028      362848 :          packed_data(ipack) = pack_tmp
   53029      362848 :          data_tmp = full_data(idata)
   53030      362848 :          pack_tmp = ISHFT(data_tmp, 22)
   53031      362848 :          pack_tmp = ISHFT(pack_tmp, -22)
   53032      362848 :          idata = idata + 1
   53033      362848 :          data_tmp = full_data(idata)
   53034      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53035      362848 :          data_tmp = IAND(data_tmp, mask_left(22))
   53036      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53037      362848 :          ipack = ipack + 1
   53038      362848 :          packed_data(ipack) = pack_tmp
   53039      362848 :          data_tmp = full_data(idata)
   53040      362848 :          pack_tmp = ISHFT(data_tmp, 23)
   53041      362848 :          pack_tmp = ISHFT(pack_tmp, -23)
   53042      362848 :          idata = idata + 1
   53043      362848 :          data_tmp = full_data(idata)
   53044      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53045      362848 :          data_tmp = IAND(data_tmp, mask_left(23))
   53046      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53047      362848 :          ipack = ipack + 1
   53048      362848 :          packed_data(ipack) = pack_tmp
   53049      362848 :          data_tmp = full_data(idata)
   53050      362848 :          pack_tmp = ISHFT(data_tmp, 24)
   53051      362848 :          pack_tmp = ISHFT(pack_tmp, -24)
   53052      362848 :          idata = idata + 1
   53053      362848 :          data_tmp = full_data(idata)
   53054      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53055      362848 :          data_tmp = IAND(data_tmp, mask_left(24))
   53056      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53057      362848 :          ipack = ipack + 1
   53058      362848 :          packed_data(ipack) = pack_tmp
   53059      362848 :          data_tmp = full_data(idata)
   53060      362848 :          pack_tmp = ISHFT(data_tmp, 25)
   53061      362848 :          pack_tmp = ISHFT(pack_tmp, -25)
   53062      362848 :          idata = idata + 1
   53063      362848 :          data_tmp = full_data(idata)
   53064      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53065      362848 :          data_tmp = IAND(data_tmp, mask_left(25))
   53066      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53067      362848 :          ipack = ipack + 1
   53068      362848 :          packed_data(ipack) = pack_tmp
   53069      362848 :          data_tmp = full_data(idata)
   53070      362848 :          pack_tmp = ISHFT(data_tmp, 26)
   53071      362848 :          pack_tmp = ISHFT(pack_tmp, -26)
   53072      362848 :          idata = idata + 1
   53073      362848 :          data_tmp = full_data(idata)
   53074      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53075      362848 :          data_tmp = IAND(data_tmp, mask_left(26))
   53076      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53077      362848 :          ipack = ipack + 1
   53078      362848 :          packed_data(ipack) = pack_tmp
   53079      362848 :          data_tmp = full_data(idata)
   53080      362848 :          pack_tmp = ISHFT(data_tmp, 27)
   53081      362848 :          pack_tmp = ISHFT(pack_tmp, -27)
   53082      362848 :          idata = idata + 1
   53083      362848 :          data_tmp = full_data(idata)
   53084      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53085      362848 :          data_tmp = IAND(data_tmp, mask_left(27))
   53086      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53087      362848 :          ipack = ipack + 1
   53088      362848 :          packed_data(ipack) = pack_tmp
   53089      362848 :          data_tmp = full_data(idata)
   53090      362848 :          pack_tmp = ISHFT(data_tmp, 28)
   53091      362848 :          pack_tmp = ISHFT(pack_tmp, -28)
   53092      362848 :          idata = idata + 1
   53093      362848 :          data_tmp = full_data(idata)
   53094      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53095      362848 :          data_tmp = IAND(data_tmp, mask_left(28))
   53096      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53097      362848 :          ipack = ipack + 1
   53098      362848 :          packed_data(ipack) = pack_tmp
   53099      362848 :          data_tmp = full_data(idata)
   53100      362848 :          pack_tmp = ISHFT(data_tmp, 29)
   53101      362848 :          pack_tmp = ISHFT(pack_tmp, -29)
   53102      362848 :          idata = idata + 1
   53103      362848 :          data_tmp = full_data(idata)
   53104      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53105      362848 :          data_tmp = IAND(data_tmp, mask_left(29))
   53106      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53107      362848 :          ipack = ipack + 1
   53108      362848 :          packed_data(ipack) = pack_tmp
   53109      362848 :          data_tmp = full_data(idata)
   53110      362848 :          pack_tmp = ISHFT(data_tmp, 30)
   53111      362848 :          pack_tmp = ISHFT(pack_tmp, -30)
   53112      362848 :          idata = idata + 1
   53113      362848 :          data_tmp = full_data(idata)
   53114      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53115      362848 :          data_tmp = IAND(data_tmp, mask_left(30))
   53116      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53117      362848 :          ipack = ipack + 1
   53118      362848 :          packed_data(ipack) = pack_tmp
   53119      362848 :          data_tmp = full_data(idata)
   53120      362848 :          pack_tmp = ISHFT(data_tmp, 31)
   53121      362848 :          pack_tmp = ISHFT(pack_tmp, -31)
   53122      362848 :          idata = idata + 1
   53123      362848 :          data_tmp = full_data(idata)
   53124      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53125      362848 :          data_tmp = IAND(data_tmp, mask_left(31))
   53126      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53127      362848 :          ipack = ipack + 1
   53128      362848 :          packed_data(ipack) = pack_tmp
   53129      362848 :          data_tmp = full_data(idata)
   53130      362848 :          pack_tmp = ISHFT(data_tmp, 32)
   53131      362848 :          pack_tmp = ISHFT(pack_tmp, -32)
   53132      362848 :          idata = idata + 1
   53133      362848 :          data_tmp = full_data(idata)
   53134      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53135      362848 :          data_tmp = IAND(data_tmp, mask_left(32))
   53136      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53137      362848 :          ipack = ipack + 1
   53138      362848 :          packed_data(ipack) = pack_tmp
   53139      362848 :          data_tmp = full_data(idata)
   53140      362848 :          pack_tmp = ISHFT(data_tmp, 33)
   53141      362848 :          pack_tmp = ISHFT(pack_tmp, -33)
   53142      362848 :          idata = idata + 1
   53143      362848 :          data_tmp = full_data(idata)
   53144      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53145      362848 :          data_tmp = IAND(data_tmp, mask_left(33))
   53146      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53147      362848 :          ipack = ipack + 1
   53148      362848 :          packed_data(ipack) = pack_tmp
   53149      362848 :          data_tmp = full_data(idata)
   53150      362848 :          pack_tmp = ISHFT(data_tmp, 34)
   53151      362848 :          pack_tmp = ISHFT(pack_tmp, -34)
   53152      362848 :          idata = idata + 1
   53153      362848 :          data_tmp = full_data(idata)
   53154      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53155      362848 :          data_tmp = IAND(data_tmp, mask_left(34))
   53156      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53157      362848 :          ipack = ipack + 1
   53158      362848 :          packed_data(ipack) = pack_tmp
   53159      362848 :          data_tmp = full_data(idata)
   53160      362848 :          pack_tmp = ISHFT(data_tmp, 35)
   53161      362848 :          pack_tmp = ISHFT(pack_tmp, -35)
   53162      362848 :          idata = idata + 1
   53163      362848 :          data_tmp = full_data(idata)
   53164      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53165      362848 :          data_tmp = IAND(data_tmp, mask_left(35))
   53166      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53167      362848 :          ipack = ipack + 1
   53168      362848 :          packed_data(ipack) = pack_tmp
   53169      362848 :          data_tmp = full_data(idata)
   53170      362848 :          pack_tmp = ISHFT(data_tmp, 36)
   53171      362848 :          pack_tmp = ISHFT(pack_tmp, -36)
   53172      362848 :          idata = idata + 1
   53173      362848 :          data_tmp = full_data(idata)
   53174      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53175      362848 :          data_tmp = IAND(data_tmp, mask_left(36))
   53176      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53177      362848 :          ipack = ipack + 1
   53178      362848 :          packed_data(ipack) = pack_tmp
   53179      362848 :          data_tmp = full_data(idata)
   53180      362848 :          pack_tmp = ISHFT(data_tmp, 37)
   53181      362848 :          pack_tmp = ISHFT(pack_tmp, -37)
   53182      362848 :          idata = idata + 1
   53183      362848 :          data_tmp = full_data(idata)
   53184      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53185      362848 :          data_tmp = IAND(data_tmp, mask_left(37))
   53186      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53187      362848 :          ipack = ipack + 1
   53188      362848 :          packed_data(ipack) = pack_tmp
   53189      362848 :          data_tmp = full_data(idata)
   53190      362848 :          pack_tmp = ISHFT(data_tmp, 38)
   53191      362848 :          pack_tmp = ISHFT(pack_tmp, -38)
   53192      362848 :          idata = idata + 1
   53193      362848 :          data_tmp = full_data(idata)
   53194      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53195      362848 :          data_tmp = IAND(data_tmp, mask_left(38))
   53196      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53197      362848 :          ipack = ipack + 1
   53198      362848 :          packed_data(ipack) = pack_tmp
   53199      362848 :          data_tmp = full_data(idata)
   53200      362848 :          pack_tmp = ISHFT(data_tmp, 39)
   53201      362848 :          pack_tmp = ISHFT(pack_tmp, -39)
   53202      362848 :          idata = idata + 1
   53203      362848 :          data_tmp = full_data(idata)
   53204      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53205      362848 :          data_tmp = IAND(data_tmp, mask_left(39))
   53206      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53207      362848 :          ipack = ipack + 1
   53208      362848 :          packed_data(ipack) = pack_tmp
   53209      362848 :          data_tmp = full_data(idata)
   53210      362848 :          pack_tmp = ISHFT(data_tmp, 40)
   53211      362848 :          pack_tmp = ISHFT(pack_tmp, -40)
   53212      362848 :          idata = idata + 1
   53213      362848 :          data_tmp = full_data(idata)
   53214      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53215      362848 :          data_tmp = IAND(data_tmp, mask_left(40))
   53216      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53217      362848 :          ipack = ipack + 1
   53218      362848 :          packed_data(ipack) = pack_tmp
   53219      362848 :          data_tmp = full_data(idata)
   53220      362848 :          pack_tmp = ISHFT(data_tmp, 41)
   53221      362848 :          pack_tmp = ISHFT(pack_tmp, -41)
   53222      362848 :          idata = idata + 1
   53223      362848 :          data_tmp = full_data(idata)
   53224      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53225      362848 :          data_tmp = IAND(data_tmp, mask_left(41))
   53226      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53227      362848 :          ipack = ipack + 1
   53228      362848 :          packed_data(ipack) = pack_tmp
   53229      362848 :          data_tmp = full_data(idata)
   53230      362848 :          pack_tmp = ISHFT(data_tmp, 42)
   53231      362848 :          pack_tmp = ISHFT(pack_tmp, -42)
   53232      362848 :          idata = idata + 1
   53233      362848 :          data_tmp = full_data(idata)
   53234      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53235      362848 :          data_tmp = IAND(data_tmp, mask_left(42))
   53236      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53237      362848 :          ipack = ipack + 1
   53238      362848 :          packed_data(ipack) = pack_tmp
   53239      362848 :          data_tmp = full_data(idata)
   53240      362848 :          pack_tmp = ISHFT(data_tmp, 43)
   53241      362848 :          pack_tmp = ISHFT(pack_tmp, -43)
   53242      362848 :          idata = idata + 1
   53243      362848 :          data_tmp = full_data(idata)
   53244      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53245      362848 :          data_tmp = IAND(data_tmp, mask_left(43))
   53246      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53247      362848 :          ipack = ipack + 1
   53248      362848 :          packed_data(ipack) = pack_tmp
   53249      362848 :          data_tmp = full_data(idata)
   53250      362848 :          pack_tmp = ISHFT(data_tmp, 44)
   53251      362848 :          pack_tmp = ISHFT(pack_tmp, -44)
   53252      362848 :          idata = idata + 1
   53253      362848 :          data_tmp = full_data(idata)
   53254      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53255      362848 :          data_tmp = IAND(data_tmp, mask_left(44))
   53256      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53257      362848 :          ipack = ipack + 1
   53258      362848 :          packed_data(ipack) = pack_tmp
   53259      362848 :          data_tmp = full_data(idata)
   53260      362848 :          pack_tmp = ISHFT(data_tmp, 45)
   53261      362848 :          pack_tmp = ISHFT(pack_tmp, -45)
   53262      362848 :          idata = idata + 1
   53263      362848 :          data_tmp = full_data(idata)
   53264      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53265      362848 :          data_tmp = IAND(data_tmp, mask_left(45))
   53266      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53267      362848 :          ipack = ipack + 1
   53268      362848 :          packed_data(ipack) = pack_tmp
   53269      362848 :          data_tmp = full_data(idata)
   53270      362848 :          pack_tmp = ISHFT(data_tmp, 46)
   53271      362848 :          pack_tmp = ISHFT(pack_tmp, -46)
   53272      362848 :          idata = idata + 1
   53273      362848 :          data_tmp = full_data(idata)
   53274      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53275      362848 :          data_tmp = IAND(data_tmp, mask_left(46))
   53276      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53277      362848 :          ipack = ipack + 1
   53278      362848 :          packed_data(ipack) = pack_tmp
   53279      362848 :          data_tmp = full_data(idata)
   53280      362848 :          pack_tmp = ISHFT(data_tmp, 47)
   53281      362848 :          pack_tmp = ISHFT(pack_tmp, -47)
   53282      362848 :          idata = idata + 1
   53283      362848 :          data_tmp = full_data(idata)
   53284      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53285      362848 :          data_tmp = IAND(data_tmp, mask_left(47))
   53286      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53287      362848 :          ipack = ipack + 1
   53288      362848 :          packed_data(ipack) = pack_tmp
   53289      362848 :          data_tmp = full_data(idata)
   53290      362848 :          pack_tmp = ISHFT(data_tmp, 48)
   53291      362848 :          pack_tmp = ISHFT(pack_tmp, -48)
   53292      362848 :          idata = idata + 1
   53293      362848 :          data_tmp = full_data(idata)
   53294      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53295      362848 :          data_tmp = IAND(data_tmp, mask_left(48))
   53296      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53297      362848 :          ipack = ipack + 1
   53298      362848 :          packed_data(ipack) = pack_tmp
   53299      362848 :          data_tmp = full_data(idata)
   53300      362848 :          pack_tmp = ISHFT(data_tmp, 49)
   53301      362848 :          pack_tmp = ISHFT(pack_tmp, -49)
   53302      362848 :          idata = idata + 1
   53303      362848 :          data_tmp = full_data(idata)
   53304      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53305      362848 :          data_tmp = IAND(data_tmp, mask_left(49))
   53306      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53307      362848 :          ipack = ipack + 1
   53308      362848 :          packed_data(ipack) = pack_tmp
   53309      362848 :          data_tmp = full_data(idata)
   53310      362848 :          pack_tmp = ISHFT(data_tmp, 50)
   53311      362848 :          pack_tmp = ISHFT(pack_tmp, -50)
   53312      362848 :          idata = idata + 1
   53313      362848 :          data_tmp = full_data(idata)
   53314      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53315      362848 :          data_tmp = IAND(data_tmp, mask_left(50))
   53316      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53317      362848 :          ipack = ipack + 1
   53318      362848 :          packed_data(ipack) = pack_tmp
   53319      362848 :          data_tmp = full_data(idata)
   53320      362848 :          pack_tmp = ISHFT(data_tmp, 51)
   53321      362848 :          pack_tmp = ISHFT(pack_tmp, -51)
   53322      362848 :          idata = idata + 1
   53323      362848 :          data_tmp = full_data(idata)
   53324      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53325      362848 :          data_tmp = IAND(data_tmp, mask_left(51))
   53326      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53327      362848 :          ipack = ipack + 1
   53328      362848 :          packed_data(ipack) = pack_tmp
   53329      362848 :          data_tmp = full_data(idata)
   53330      362848 :          pack_tmp = ISHFT(data_tmp, 52)
   53331      362848 :          pack_tmp = ISHFT(pack_tmp, -52)
   53332      362848 :          idata = idata + 1
   53333      362848 :          data_tmp = full_data(idata)
   53334      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53335      362848 :          data_tmp = IAND(data_tmp, mask_left(52))
   53336      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53337      362848 :          ipack = ipack + 1
   53338      362848 :          packed_data(ipack) = pack_tmp
   53339      362848 :          data_tmp = full_data(idata)
   53340      362848 :          pack_tmp = ISHFT(data_tmp, 53)
   53341      362848 :          pack_tmp = ISHFT(pack_tmp, -53)
   53342      362848 :          idata = idata + 1
   53343      362848 :          data_tmp = full_data(idata)
   53344      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53345      362848 :          data_tmp = IAND(data_tmp, mask_left(53))
   53346      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53347      362848 :          ipack = ipack + 1
   53348      362848 :          packed_data(ipack) = pack_tmp
   53349      362848 :          data_tmp = full_data(idata)
   53350      362848 :          pack_tmp = ISHFT(data_tmp, 54)
   53351      362848 :          pack_tmp = ISHFT(pack_tmp, -54)
   53352      362848 :          idata = idata + 1
   53353      362848 :          data_tmp = full_data(idata)
   53354      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53355      362848 :          data_tmp = IAND(data_tmp, mask_left(54))
   53356      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53357      362848 :          ipack = ipack + 1
   53358      362848 :          packed_data(ipack) = pack_tmp
   53359      362848 :          data_tmp = full_data(idata)
   53360      362848 :          pack_tmp = ISHFT(data_tmp, 55)
   53361      362848 :          pack_tmp = ISHFT(pack_tmp, -55)
   53362      362848 :          idata = idata + 1
   53363      362848 :          data_tmp = full_data(idata)
   53364      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53365      362848 :          data_tmp = IAND(data_tmp, mask_left(55))
   53366      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53367      362848 :          ipack = ipack + 1
   53368      362848 :          packed_data(ipack) = pack_tmp
   53369      362848 :          data_tmp = full_data(idata)
   53370      362848 :          pack_tmp = ISHFT(data_tmp, 56)
   53371      362848 :          pack_tmp = ISHFT(pack_tmp, -56)
   53372      362848 :          idata = idata + 1
   53373      362848 :          data_tmp = full_data(idata)
   53374      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53375      362848 :          data_tmp = IAND(data_tmp, mask_left(56))
   53376      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53377      362848 :          ipack = ipack + 1
   53378      362848 :          packed_data(ipack) = pack_tmp
   53379      362848 :          data_tmp = full_data(idata)
   53380      362848 :          pack_tmp = ISHFT(data_tmp, 57)
   53381      362848 :          pack_tmp = ISHFT(pack_tmp, -57)
   53382      362848 :          idata = idata + 1
   53383      362848 :          data_tmp = full_data(idata)
   53384      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53385      362848 :          data_tmp = IAND(data_tmp, mask_left(57))
   53386      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53387      362848 :          ipack = ipack + 1
   53388      362848 :          packed_data(ipack) = pack_tmp
   53389      362848 :          data_tmp = full_data(idata)
   53390      362848 :          pack_tmp = ISHFT(data_tmp, 58)
   53391      362848 :          pack_tmp = ISHFT(pack_tmp, -58)
   53392      362848 :          idata = idata + 1
   53393      362848 :          data_tmp = full_data(idata)
   53394      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53395      362848 :          data_tmp = IAND(data_tmp, mask_left(58))
   53396      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53397      362848 :          ipack = ipack + 1
   53398      362848 :          packed_data(ipack) = pack_tmp
   53399      362848 :          data_tmp = full_data(idata)
   53400      362848 :          pack_tmp = ISHFT(data_tmp, 59)
   53401      362848 :          pack_tmp = ISHFT(pack_tmp, -59)
   53402      362848 :          idata = idata + 1
   53403      362848 :          data_tmp = full_data(idata)
   53404      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53405      362848 :          data_tmp = IAND(data_tmp, mask_left(59))
   53406      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53407      362848 :          ipack = ipack + 1
   53408      362848 :          packed_data(ipack) = pack_tmp
   53409      362848 :          data_tmp = full_data(idata)
   53410      362848 :          pack_tmp = ISHFT(data_tmp, 60)
   53411      362848 :          pack_tmp = ISHFT(pack_tmp, -60)
   53412      362848 :          idata = idata + 1
   53413      362848 :          data_tmp = full_data(idata)
   53414      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53415      362848 :          data_tmp = IAND(data_tmp, mask_left(60))
   53416      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53417      362848 :          ipack = ipack + 1
   53418      362848 :          packed_data(ipack) = pack_tmp
   53419      362848 :          data_tmp = full_data(idata)
   53420      362848 :          pack_tmp = ISHFT(data_tmp, 61)
   53421      362848 :          pack_tmp = ISHFT(pack_tmp, -61)
   53422      362848 :          idata = idata + 1
   53423      362848 :          data_tmp = full_data(idata)
   53424      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53425      362848 :          data_tmp = IAND(data_tmp, mask_left(61))
   53426      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53427      362848 :          ipack = ipack + 1
   53428      362848 :          packed_data(ipack) = pack_tmp
   53429      362848 :          data_tmp = full_data(idata)
   53430      362848 :          pack_tmp = ISHFT(data_tmp, 62)
   53431      362848 :          pack_tmp = ISHFT(pack_tmp, -62)
   53432      362848 :          idata = idata + 1
   53433      362848 :          data_tmp = full_data(idata)
   53434      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53435      362848 :          data_tmp = IAND(data_tmp, mask_left(62))
   53436      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53437      362848 :          ipack = ipack + 1
   53438      362848 :          packed_data(ipack) = pack_tmp
   53439      362848 :          data_tmp = full_data(idata)
   53440      362848 :          pack_tmp = ISHFT(data_tmp, 63)
   53441      362848 :          pack_tmp = ISHFT(pack_tmp, -63)
   53442      362848 :          idata = idata + 1
   53443      362848 :          data_tmp = full_data(idata)
   53444      362848 :          data_tmp = ISHFT(data_tmp, 1)
   53445      362848 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53446             :          pack_tmp = ISHFT(pack_tmp, 0)
   53447      362848 :          pack_tmp = ISHFT(pack_tmp, 0)
   53448      362848 :          ipack = ipack + 1
   53449      362848 :          packed_data(ipack) = pack_tmp
   53450             :       END DO
   53451       22678 :       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       22678 :    END SUBROUTINE ints2bits_63
   53455             : 
   53456             : ! **************************************************************************************************
   53457             : !> \brief ...
   53458             : !> \param Ndata ...
   53459             : !> \param packed_data ...
   53460             : !> \param full_data ...
   53461             : ! **************************************************************************************************
   53462       93246 :    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       93246 :       ipack = 0
   53473       93246 :       idata = 0
   53474       93246 :       pack_tmp = 0
   53475       93246 :       Ndata_rep = (Ndata/64)*64
   53476       93246 :       DO kdata = 1, Ndata_rep, 64
   53477     1491936 :          idata = idata + 1
   53478     1491936 :          data_tmp = ISHFT(pack_tmp, 63)
   53479     1491936 :          ipack = ipack + 1
   53480     1491936 :          pack_tmp = packed_data(ipack)
   53481     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(63)))
   53482     1491936 :          pack_tmp = ISHFT(pack_tmp, -63)
   53483     1491936 :          idata = idata + 1
   53484     1491936 :          data_tmp = ISHFT(pack_tmp, 62)
   53485     1491936 :          ipack = ipack + 1
   53486     1491936 :          pack_tmp = packed_data(ipack)
   53487     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   53488     1491936 :          pack_tmp = ISHFT(pack_tmp, -62)
   53489     1491936 :          idata = idata + 1
   53490     1491936 :          data_tmp = ISHFT(pack_tmp, 61)
   53491     1491936 :          ipack = ipack + 1
   53492     1491936 :          pack_tmp = packed_data(ipack)
   53493     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   53494     1491936 :          pack_tmp = ISHFT(pack_tmp, -61)
   53495     1491936 :          idata = idata + 1
   53496     1491936 :          data_tmp = ISHFT(pack_tmp, 60)
   53497     1491936 :          ipack = ipack + 1
   53498     1491936 :          pack_tmp = packed_data(ipack)
   53499     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   53500     1491936 :          pack_tmp = ISHFT(pack_tmp, -60)
   53501     1491936 :          idata = idata + 1
   53502     1491936 :          data_tmp = ISHFT(pack_tmp, 59)
   53503     1491936 :          ipack = ipack + 1
   53504     1491936 :          pack_tmp = packed_data(ipack)
   53505     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   53506     1491936 :          pack_tmp = ISHFT(pack_tmp, -59)
   53507     1491936 :          idata = idata + 1
   53508     1491936 :          data_tmp = ISHFT(pack_tmp, 58)
   53509     1491936 :          ipack = ipack + 1
   53510     1491936 :          pack_tmp = packed_data(ipack)
   53511     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   53512     1491936 :          pack_tmp = ISHFT(pack_tmp, -58)
   53513     1491936 :          idata = idata + 1
   53514     1491936 :          data_tmp = ISHFT(pack_tmp, 57)
   53515     1491936 :          ipack = ipack + 1
   53516     1491936 :          pack_tmp = packed_data(ipack)
   53517     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   53518     1491936 :          pack_tmp = ISHFT(pack_tmp, -57)
   53519     1491936 :          idata = idata + 1
   53520     1491936 :          data_tmp = ISHFT(pack_tmp, 56)
   53521     1491936 :          ipack = ipack + 1
   53522     1491936 :          pack_tmp = packed_data(ipack)
   53523     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   53524     1491936 :          pack_tmp = ISHFT(pack_tmp, -56)
   53525     1491936 :          idata = idata + 1
   53526     1491936 :          data_tmp = ISHFT(pack_tmp, 55)
   53527     1491936 :          ipack = ipack + 1
   53528     1491936 :          pack_tmp = packed_data(ipack)
   53529     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   53530     1491936 :          pack_tmp = ISHFT(pack_tmp, -55)
   53531     1491936 :          idata = idata + 1
   53532     1491936 :          data_tmp = ISHFT(pack_tmp, 54)
   53533     1491936 :          ipack = ipack + 1
   53534     1491936 :          pack_tmp = packed_data(ipack)
   53535     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   53536     1491936 :          pack_tmp = ISHFT(pack_tmp, -54)
   53537     1491936 :          idata = idata + 1
   53538     1491936 :          data_tmp = ISHFT(pack_tmp, 53)
   53539     1491936 :          ipack = ipack + 1
   53540     1491936 :          pack_tmp = packed_data(ipack)
   53541     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   53542     1491936 :          pack_tmp = ISHFT(pack_tmp, -53)
   53543     1491936 :          idata = idata + 1
   53544     1491936 :          data_tmp = ISHFT(pack_tmp, 52)
   53545     1491936 :          ipack = ipack + 1
   53546     1491936 :          pack_tmp = packed_data(ipack)
   53547     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   53548     1491936 :          pack_tmp = ISHFT(pack_tmp, -52)
   53549     1491936 :          idata = idata + 1
   53550     1491936 :          data_tmp = ISHFT(pack_tmp, 51)
   53551     1491936 :          ipack = ipack + 1
   53552     1491936 :          pack_tmp = packed_data(ipack)
   53553     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   53554     1491936 :          pack_tmp = ISHFT(pack_tmp, -51)
   53555     1491936 :          idata = idata + 1
   53556     1491936 :          data_tmp = ISHFT(pack_tmp, 50)
   53557     1491936 :          ipack = ipack + 1
   53558     1491936 :          pack_tmp = packed_data(ipack)
   53559     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   53560     1491936 :          pack_tmp = ISHFT(pack_tmp, -50)
   53561     1491936 :          idata = idata + 1
   53562     1491936 :          data_tmp = ISHFT(pack_tmp, 49)
   53563     1491936 :          ipack = ipack + 1
   53564     1491936 :          pack_tmp = packed_data(ipack)
   53565     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   53566     1491936 :          pack_tmp = ISHFT(pack_tmp, -49)
   53567     1491936 :          idata = idata + 1
   53568     1491936 :          data_tmp = ISHFT(pack_tmp, 48)
   53569     1491936 :          ipack = ipack + 1
   53570     1491936 :          pack_tmp = packed_data(ipack)
   53571     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   53572     1491936 :          pack_tmp = ISHFT(pack_tmp, -48)
   53573     1491936 :          idata = idata + 1
   53574     1491936 :          data_tmp = ISHFT(pack_tmp, 47)
   53575     1491936 :          ipack = ipack + 1
   53576     1491936 :          pack_tmp = packed_data(ipack)
   53577     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   53578     1491936 :          pack_tmp = ISHFT(pack_tmp, -47)
   53579     1491936 :          idata = idata + 1
   53580     1491936 :          data_tmp = ISHFT(pack_tmp, 46)
   53581     1491936 :          ipack = ipack + 1
   53582     1491936 :          pack_tmp = packed_data(ipack)
   53583     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   53584     1491936 :          pack_tmp = ISHFT(pack_tmp, -46)
   53585     1491936 :          idata = idata + 1
   53586     1491936 :          data_tmp = ISHFT(pack_tmp, 45)
   53587     1491936 :          ipack = ipack + 1
   53588     1491936 :          pack_tmp = packed_data(ipack)
   53589     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   53590     1491936 :          pack_tmp = ISHFT(pack_tmp, -45)
   53591     1491936 :          idata = idata + 1
   53592     1491936 :          data_tmp = ISHFT(pack_tmp, 44)
   53593     1491936 :          ipack = ipack + 1
   53594     1491936 :          pack_tmp = packed_data(ipack)
   53595     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   53596     1491936 :          pack_tmp = ISHFT(pack_tmp, -44)
   53597     1491936 :          idata = idata + 1
   53598     1491936 :          data_tmp = ISHFT(pack_tmp, 43)
   53599     1491936 :          ipack = ipack + 1
   53600     1491936 :          pack_tmp = packed_data(ipack)
   53601     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   53602     1491936 :          pack_tmp = ISHFT(pack_tmp, -43)
   53603     1491936 :          idata = idata + 1
   53604     1491936 :          data_tmp = ISHFT(pack_tmp, 42)
   53605     1491936 :          ipack = ipack + 1
   53606     1491936 :          pack_tmp = packed_data(ipack)
   53607     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   53608     1491936 :          pack_tmp = ISHFT(pack_tmp, -42)
   53609     1491936 :          idata = idata + 1
   53610     1491936 :          data_tmp = ISHFT(pack_tmp, 41)
   53611     1491936 :          ipack = ipack + 1
   53612     1491936 :          pack_tmp = packed_data(ipack)
   53613     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   53614     1491936 :          pack_tmp = ISHFT(pack_tmp, -41)
   53615     1491936 :          idata = idata + 1
   53616     1491936 :          data_tmp = ISHFT(pack_tmp, 40)
   53617     1491936 :          ipack = ipack + 1
   53618     1491936 :          pack_tmp = packed_data(ipack)
   53619     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   53620     1491936 :          pack_tmp = ISHFT(pack_tmp, -40)
   53621     1491936 :          idata = idata + 1
   53622     1491936 :          data_tmp = ISHFT(pack_tmp, 39)
   53623     1491936 :          ipack = ipack + 1
   53624     1491936 :          pack_tmp = packed_data(ipack)
   53625     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   53626     1491936 :          pack_tmp = ISHFT(pack_tmp, -39)
   53627     1491936 :          idata = idata + 1
   53628     1491936 :          data_tmp = ISHFT(pack_tmp, 38)
   53629     1491936 :          ipack = ipack + 1
   53630     1491936 :          pack_tmp = packed_data(ipack)
   53631     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   53632     1491936 :          pack_tmp = ISHFT(pack_tmp, -38)
   53633     1491936 :          idata = idata + 1
   53634     1491936 :          data_tmp = ISHFT(pack_tmp, 37)
   53635     1491936 :          ipack = ipack + 1
   53636     1491936 :          pack_tmp = packed_data(ipack)
   53637     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   53638     1491936 :          pack_tmp = ISHFT(pack_tmp, -37)
   53639     1491936 :          idata = idata + 1
   53640     1491936 :          data_tmp = ISHFT(pack_tmp, 36)
   53641     1491936 :          ipack = ipack + 1
   53642     1491936 :          pack_tmp = packed_data(ipack)
   53643     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   53644     1491936 :          pack_tmp = ISHFT(pack_tmp, -36)
   53645     1491936 :          idata = idata + 1
   53646     1491936 :          data_tmp = ISHFT(pack_tmp, 35)
   53647     1491936 :          ipack = ipack + 1
   53648     1491936 :          pack_tmp = packed_data(ipack)
   53649     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   53650     1491936 :          pack_tmp = ISHFT(pack_tmp, -35)
   53651     1491936 :          idata = idata + 1
   53652     1491936 :          data_tmp = ISHFT(pack_tmp, 34)
   53653     1491936 :          ipack = ipack + 1
   53654     1491936 :          pack_tmp = packed_data(ipack)
   53655     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   53656     1491936 :          pack_tmp = ISHFT(pack_tmp, -34)
   53657     1491936 :          idata = idata + 1
   53658     1491936 :          data_tmp = ISHFT(pack_tmp, 33)
   53659     1491936 :          ipack = ipack + 1
   53660     1491936 :          pack_tmp = packed_data(ipack)
   53661     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   53662     1491936 :          pack_tmp = ISHFT(pack_tmp, -33)
   53663     1491936 :          idata = idata + 1
   53664     1491936 :          data_tmp = ISHFT(pack_tmp, 32)
   53665     1491936 :          ipack = ipack + 1
   53666     1491936 :          pack_tmp = packed_data(ipack)
   53667     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   53668     1491936 :          pack_tmp = ISHFT(pack_tmp, -32)
   53669     1491936 :          idata = idata + 1
   53670     1491936 :          data_tmp = ISHFT(pack_tmp, 31)
   53671     1491936 :          ipack = ipack + 1
   53672     1491936 :          pack_tmp = packed_data(ipack)
   53673     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   53674     1491936 :          pack_tmp = ISHFT(pack_tmp, -31)
   53675     1491936 :          idata = idata + 1
   53676     1491936 :          data_tmp = ISHFT(pack_tmp, 30)
   53677     1491936 :          ipack = ipack + 1
   53678     1491936 :          pack_tmp = packed_data(ipack)
   53679     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   53680     1491936 :          pack_tmp = ISHFT(pack_tmp, -30)
   53681     1491936 :          idata = idata + 1
   53682     1491936 :          data_tmp = ISHFT(pack_tmp, 29)
   53683     1491936 :          ipack = ipack + 1
   53684     1491936 :          pack_tmp = packed_data(ipack)
   53685     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   53686     1491936 :          pack_tmp = ISHFT(pack_tmp, -29)
   53687     1491936 :          idata = idata + 1
   53688     1491936 :          data_tmp = ISHFT(pack_tmp, 28)
   53689     1491936 :          ipack = ipack + 1
   53690     1491936 :          pack_tmp = packed_data(ipack)
   53691     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   53692     1491936 :          pack_tmp = ISHFT(pack_tmp, -28)
   53693     1491936 :          idata = idata + 1
   53694     1491936 :          data_tmp = ISHFT(pack_tmp, 27)
   53695     1491936 :          ipack = ipack + 1
   53696     1491936 :          pack_tmp = packed_data(ipack)
   53697     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   53698     1491936 :          pack_tmp = ISHFT(pack_tmp, -27)
   53699     1491936 :          idata = idata + 1
   53700     1491936 :          data_tmp = ISHFT(pack_tmp, 26)
   53701     1491936 :          ipack = ipack + 1
   53702     1491936 :          pack_tmp = packed_data(ipack)
   53703     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   53704     1491936 :          pack_tmp = ISHFT(pack_tmp, -26)
   53705     1491936 :          idata = idata + 1
   53706     1491936 :          data_tmp = ISHFT(pack_tmp, 25)
   53707     1491936 :          ipack = ipack + 1
   53708     1491936 :          pack_tmp = packed_data(ipack)
   53709     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   53710     1491936 :          pack_tmp = ISHFT(pack_tmp, -25)
   53711     1491936 :          idata = idata + 1
   53712     1491936 :          data_tmp = ISHFT(pack_tmp, 24)
   53713     1491936 :          ipack = ipack + 1
   53714     1491936 :          pack_tmp = packed_data(ipack)
   53715     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   53716     1491936 :          pack_tmp = ISHFT(pack_tmp, -24)
   53717     1491936 :          idata = idata + 1
   53718     1491936 :          data_tmp = ISHFT(pack_tmp, 23)
   53719     1491936 :          ipack = ipack + 1
   53720     1491936 :          pack_tmp = packed_data(ipack)
   53721     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   53722     1491936 :          pack_tmp = ISHFT(pack_tmp, -23)
   53723     1491936 :          idata = idata + 1
   53724     1491936 :          data_tmp = ISHFT(pack_tmp, 22)
   53725     1491936 :          ipack = ipack + 1
   53726     1491936 :          pack_tmp = packed_data(ipack)
   53727     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   53728     1491936 :          pack_tmp = ISHFT(pack_tmp, -22)
   53729     1491936 :          idata = idata + 1
   53730     1491936 :          data_tmp = ISHFT(pack_tmp, 21)
   53731     1491936 :          ipack = ipack + 1
   53732     1491936 :          pack_tmp = packed_data(ipack)
   53733     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   53734     1491936 :          pack_tmp = ISHFT(pack_tmp, -21)
   53735     1491936 :          idata = idata + 1
   53736     1491936 :          data_tmp = ISHFT(pack_tmp, 20)
   53737     1491936 :          ipack = ipack + 1
   53738     1491936 :          pack_tmp = packed_data(ipack)
   53739     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   53740     1491936 :          pack_tmp = ISHFT(pack_tmp, -20)
   53741     1491936 :          idata = idata + 1
   53742     1491936 :          data_tmp = ISHFT(pack_tmp, 19)
   53743     1491936 :          ipack = ipack + 1
   53744     1491936 :          pack_tmp = packed_data(ipack)
   53745     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   53746     1491936 :          pack_tmp = ISHFT(pack_tmp, -19)
   53747     1491936 :          idata = idata + 1
   53748     1491936 :          data_tmp = ISHFT(pack_tmp, 18)
   53749     1491936 :          ipack = ipack + 1
   53750     1491936 :          pack_tmp = packed_data(ipack)
   53751     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   53752     1491936 :          pack_tmp = ISHFT(pack_tmp, -18)
   53753     1491936 :          idata = idata + 1
   53754     1491936 :          data_tmp = ISHFT(pack_tmp, 17)
   53755     1491936 :          ipack = ipack + 1
   53756     1491936 :          pack_tmp = packed_data(ipack)
   53757     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   53758     1491936 :          pack_tmp = ISHFT(pack_tmp, -17)
   53759     1491936 :          idata = idata + 1
   53760     1491936 :          data_tmp = ISHFT(pack_tmp, 16)
   53761     1491936 :          ipack = ipack + 1
   53762     1491936 :          pack_tmp = packed_data(ipack)
   53763     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   53764     1491936 :          pack_tmp = ISHFT(pack_tmp, -16)
   53765     1491936 :          idata = idata + 1
   53766     1491936 :          data_tmp = ISHFT(pack_tmp, 15)
   53767     1491936 :          ipack = ipack + 1
   53768     1491936 :          pack_tmp = packed_data(ipack)
   53769     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   53770     1491936 :          pack_tmp = ISHFT(pack_tmp, -15)
   53771     1491936 :          idata = idata + 1
   53772     1491936 :          data_tmp = ISHFT(pack_tmp, 14)
   53773     1491936 :          ipack = ipack + 1
   53774     1491936 :          pack_tmp = packed_data(ipack)
   53775     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   53776     1491936 :          pack_tmp = ISHFT(pack_tmp, -14)
   53777     1491936 :          idata = idata + 1
   53778     1491936 :          data_tmp = ISHFT(pack_tmp, 13)
   53779     1491936 :          ipack = ipack + 1
   53780     1491936 :          pack_tmp = packed_data(ipack)
   53781     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   53782     1491936 :          pack_tmp = ISHFT(pack_tmp, -13)
   53783     1491936 :          idata = idata + 1
   53784     1491936 :          data_tmp = ISHFT(pack_tmp, 12)
   53785     1491936 :          ipack = ipack + 1
   53786     1491936 :          pack_tmp = packed_data(ipack)
   53787     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   53788     1491936 :          pack_tmp = ISHFT(pack_tmp, -12)
   53789     1491936 :          idata = idata + 1
   53790     1491936 :          data_tmp = ISHFT(pack_tmp, 11)
   53791     1491936 :          ipack = ipack + 1
   53792     1491936 :          pack_tmp = packed_data(ipack)
   53793     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   53794     1491936 :          pack_tmp = ISHFT(pack_tmp, -11)
   53795     1491936 :          idata = idata + 1
   53796     1491936 :          data_tmp = ISHFT(pack_tmp, 10)
   53797     1491936 :          ipack = ipack + 1
   53798     1491936 :          pack_tmp = packed_data(ipack)
   53799     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   53800     1491936 :          pack_tmp = ISHFT(pack_tmp, -10)
   53801     1491936 :          idata = idata + 1
   53802     1491936 :          data_tmp = ISHFT(pack_tmp, 9)
   53803     1491936 :          ipack = ipack + 1
   53804     1491936 :          pack_tmp = packed_data(ipack)
   53805     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   53806     1491936 :          pack_tmp = ISHFT(pack_tmp, -9)
   53807     1491936 :          idata = idata + 1
   53808     1491936 :          data_tmp = ISHFT(pack_tmp, 8)
   53809     1491936 :          ipack = ipack + 1
   53810     1491936 :          pack_tmp = packed_data(ipack)
   53811     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   53812     1491936 :          pack_tmp = ISHFT(pack_tmp, -8)
   53813     1491936 :          idata = idata + 1
   53814     1491936 :          data_tmp = ISHFT(pack_tmp, 7)
   53815     1491936 :          ipack = ipack + 1
   53816     1491936 :          pack_tmp = packed_data(ipack)
   53817     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   53818     1491936 :          pack_tmp = ISHFT(pack_tmp, -7)
   53819     1491936 :          idata = idata + 1
   53820     1491936 :          data_tmp = ISHFT(pack_tmp, 6)
   53821     1491936 :          ipack = ipack + 1
   53822     1491936 :          pack_tmp = packed_data(ipack)
   53823     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   53824     1491936 :          pack_tmp = ISHFT(pack_tmp, -6)
   53825     1491936 :          idata = idata + 1
   53826     1491936 :          data_tmp = ISHFT(pack_tmp, 5)
   53827     1491936 :          ipack = ipack + 1
   53828     1491936 :          pack_tmp = packed_data(ipack)
   53829     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   53830     1491936 :          pack_tmp = ISHFT(pack_tmp, -5)
   53831     1491936 :          idata = idata + 1
   53832     1491936 :          data_tmp = ISHFT(pack_tmp, 4)
   53833     1491936 :          ipack = ipack + 1
   53834     1491936 :          pack_tmp = packed_data(ipack)
   53835     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   53836     1491936 :          pack_tmp = ISHFT(pack_tmp, -4)
   53837     1491936 :          idata = idata + 1
   53838     1491936 :          data_tmp = ISHFT(pack_tmp, 3)
   53839     1491936 :          ipack = ipack + 1
   53840     1491936 :          pack_tmp = packed_data(ipack)
   53841     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   53842     1491936 :          pack_tmp = ISHFT(pack_tmp, -3)
   53843     1491936 :          idata = idata + 1
   53844     1491936 :          data_tmp = ISHFT(pack_tmp, 2)
   53845     1491936 :          ipack = ipack + 1
   53846     1491936 :          pack_tmp = packed_data(ipack)
   53847     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   53848     1491936 :          pack_tmp = ISHFT(pack_tmp, -2)
   53849     1491936 :          idata = idata + 1
   53850     1491936 :          data_tmp = ISHFT(pack_tmp, 1)
   53851     1491936 :          ipack = ipack + 1
   53852     1491936 :          pack_tmp = packed_data(ipack)
   53853     1491936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   53854     1491936 :          pack_tmp = ISHFT(pack_tmp, -1)
   53855     1491936 :          idata = idata + 1
   53856     1491936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   53857     1491936 :          full_data(idata) = data_tmp
   53858     1491936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   53859             :       END DO
   53860       93246 :       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       93246 :    END SUBROUTINE bits2ints_63
   53864             : 
   53865             : ! **************************************************************************************************
   53866             : !> \brief ...
   53867             : !> \param Nbits ...
   53868             : !> \param Ndata ...
   53869             : !> \param packed_data ...
   53870             : !> \param full_data ...
   53871             : ! **************************************************************************************************
   53872     1880127 :    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     1902805 :       SELECT CASE (Nbits)
   53878             :       CASE (1)
   53879       22678 :          CALL ints2bits_1(Ndata, packed_data, full_data)
   53880             :       CASE (2)
   53881       22678 :          CALL ints2bits_2(Ndata, packed_data, full_data)
   53882             :       CASE (3)
   53883       22894 :          CALL ints2bits_3(Ndata, packed_data, full_data)
   53884             :       CASE (4)
   53885       22988 :          CALL ints2bits_4(Ndata, packed_data, full_data)
   53886             :       CASE (5)
   53887       22894 :          CALL ints2bits_5(Ndata, packed_data, full_data)
   53888             :       CASE (6)
   53889       49565 :          CALL ints2bits_6(Ndata, packed_data, full_data)
   53890             :       CASE (7)
   53891       23116 :          CALL ints2bits_7(Ndata, packed_data, full_data)
   53892             :       CASE (8)
   53893       23085 :          CALL ints2bits_8(Ndata, packed_data, full_data)
   53894             :       CASE (9)
   53895       23002 :          CALL ints2bits_9(Ndata, packed_data, full_data)
   53896             :       CASE (10)
   53897       49448 :          CALL ints2bits_10(Ndata, packed_data, full_data)
   53898             :       CASE (11)
   53899       25448 :          CALL ints2bits_11(Ndata, packed_data, full_data)
   53900             :       CASE (12)
   53901       25685 :          CALL ints2bits_12(Ndata, packed_data, full_data)
   53902             :       CASE (13)
   53903       27147 :          CALL ints2bits_13(Ndata, packed_data, full_data)
   53904             :       CASE (14)
   53905       26562 :          CALL ints2bits_14(Ndata, packed_data, full_data)
   53906             :       CASE (15)
   53907       26954 :          CALL ints2bits_15(Ndata, packed_data, full_data)
   53908             :       CASE (16)
   53909       27702 :          CALL ints2bits_16(Ndata, packed_data, full_data)
   53910             :       CASE (17)
   53911       31099 :          CALL ints2bits_17(Ndata, packed_data, full_data)
   53912             :       CASE (18)
   53913       31826 :          CALL ints2bits_18(Ndata, packed_data, full_data)
   53914             :       CASE (19)
   53915       29503 :          CALL ints2bits_19(Ndata, packed_data, full_data)
   53916             :       CASE (20)
   53917       40310 :          CALL ints2bits_20(Ndata, packed_data, full_data)
   53918             :       CASE (21)
   53919       28480 :          CALL ints2bits_21(Ndata, packed_data, full_data)
   53920             :       CASE (22)
   53921       28271 :          CALL ints2bits_22(Ndata, packed_data, full_data)
   53922             :       CASE (23)
   53923       54063 :          CALL ints2bits_23(Ndata, packed_data, full_data)
   53924             :       CASE (24)
   53925       33188 :          CALL ints2bits_24(Ndata, packed_data, full_data)
   53926             :       CASE (25)
   53927       33179 :          CALL ints2bits_25(Ndata, packed_data, full_data)
   53928             :       CASE (26)
   53929       27591 :          CALL ints2bits_26(Ndata, packed_data, full_data)
   53930             :       CASE (27)
   53931       27310 :          CALL ints2bits_27(Ndata, packed_data, full_data)
   53932             :       CASE (28)
   53933       30334 :          CALL ints2bits_28(Ndata, packed_data, full_data)
   53934             :       CASE (29)
   53935       32695 :          CALL ints2bits_29(Ndata, packed_data, full_data)
   53936             :       CASE (30)
   53937       36850 :          CALL ints2bits_30(Ndata, packed_data, full_data)
   53938             :       CASE (31)
   53939       38425 :          CALL ints2bits_31(Ndata, packed_data, full_data)
   53940             :       CASE (32)
   53941       44912 :          CALL ints2bits_32(Ndata, packed_data, full_data)
   53942             :       CASE (33)
   53943       45690 :          CALL ints2bits_33(Ndata, packed_data, full_data)
   53944             :       CASE (34)
   53945       41432 :          CALL ints2bits_34(Ndata, packed_data, full_data)
   53946             :       CASE (35)
   53947       43857 :          CALL ints2bits_35(Ndata, packed_data, full_data)
   53948             :       CASE (36)
   53949       43403 :          CALL ints2bits_36(Ndata, packed_data, full_data)
   53950             :       CASE (37)
   53951       32183 :          CALL ints2bits_37(Ndata, packed_data, full_data)
   53952             :       CASE (38)
   53953       30823 :          CALL ints2bits_38(Ndata, packed_data, full_data)
   53954             :       CASE (39)
   53955       27483 :          CALL ints2bits_39(Ndata, packed_data, full_data)
   53956             :       CASE (40)
   53957       26101 :          CALL ints2bits_40(Ndata, packed_data, full_data)
   53958             :       CASE (41)
   53959       25546 :          CALL ints2bits_41(Ndata, packed_data, full_data)
   53960             :       CASE (42)
   53961       24209 :          CALL ints2bits_42(Ndata, packed_data, full_data)
   53962             :       CASE (43)
   53963       24901 :          CALL ints2bits_43(Ndata, packed_data, full_data)
   53964             :       CASE (44)
   53965       26593 :          CALL ints2bits_44(Ndata, packed_data, full_data)
   53966             :       CASE (45)
   53967       28203 :          CALL ints2bits_45(Ndata, packed_data, full_data)
   53968             :       CASE (46)
   53969       27754 :          CALL ints2bits_46(Ndata, packed_data, full_data)
   53970             :       CASE (47)
   53971       25088 :          CALL ints2bits_47(Ndata, packed_data, full_data)
   53972             :       CASE (48)
   53973       25723 :          CALL ints2bits_48(Ndata, packed_data, full_data)
   53974             :       CASE (49)
   53975       24558 :          CALL ints2bits_49(Ndata, packed_data, full_data)
   53976             :       CASE (50)
   53977       24136 :          CALL ints2bits_50(Ndata, packed_data, full_data)
   53978             :       CASE (51)
   53979       23162 :          CALL ints2bits_51(Ndata, packed_data, full_data)
   53980             :       CASE (52)
   53981       23188 :          CALL ints2bits_52(Ndata, packed_data, full_data)
   53982             :       CASE (53)
   53983       23178 :          CALL ints2bits_53(Ndata, packed_data, full_data)
   53984             :       CASE (54)
   53985       23056 :          CALL ints2bits_54(Ndata, packed_data, full_data)
   53986             :       CASE (55)
   53987       22974 :          CALL ints2bits_55(Ndata, packed_data, full_data)
   53988             :       CASE (56)
   53989       22816 :          CALL ints2bits_56(Ndata, packed_data, full_data)
   53990             :       CASE (57)
   53991       22740 :          CALL ints2bits_57(Ndata, packed_data, full_data)
   53992             :       CASE (58)
   53993       22702 :          CALL ints2bits_58(Ndata, packed_data, full_data)
   53994             :       CASE (59)
   53995       22678 :          CALL ints2bits_59(Ndata, packed_data, full_data)
   53996             :       CASE (60)
   53997       22678 :          CALL ints2bits_60(Ndata, packed_data, full_data)
   53998             :       CASE (61)
   53999       22678 :          CALL ints2bits_61(Ndata, packed_data, full_data)
   54000             :       CASE (62)
   54001       22678 :          CALL ints2bits_62(Ndata, packed_data, full_data)
   54002             :       CASE (63)
   54003     1880127 :          CALL ints2bits_63(Ndata, packed_data, full_data)
   54004             :       END SELECT
   54005     1880127 :    END SUBROUTINE ints2bits_specific
   54006             : 
   54007             : ! **************************************************************************************************
   54008             : !> \brief ...
   54009             : !> \param Nbits ...
   54010             : !> \param Ndata ...
   54011             : !> \param packed_data ...
   54012             : !> \param full_data ...
   54013             : ! **************************************************************************************************
   54014     8886648 :    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     8979894 :       SELECT CASE (Nbits)
   54020             :       CASE (1)
   54021       93246 :          CALL bits2ints_1(Ndata, packed_data, full_data)
   54022             :       CASE (2)
   54023       93246 :          CALL bits2ints_2(Ndata, packed_data, full_data)
   54024             :       CASE (3)
   54025       94632 :          CALL bits2ints_3(Ndata, packed_data, full_data)
   54026             :       CASE (4)
   54027       95448 :          CALL bits2ints_4(Ndata, packed_data, full_data)
   54028             :       CASE (5)
   54029       94455 :          CALL bits2ints_5(Ndata, packed_data, full_data)
   54030             :       CASE (6)
   54031      239038 :          CALL bits2ints_6(Ndata, packed_data, full_data)
   54032             :       CASE (7)
   54033       96638 :          CALL bits2ints_7(Ndata, packed_data, full_data)
   54034             :       CASE (8)
   54035       96576 :          CALL bits2ints_8(Ndata, packed_data, full_data)
   54036             :       CASE (9)
   54037       95935 :          CALL bits2ints_9(Ndata, packed_data, full_data)
   54038             :       CASE (10)
   54039      249033 :          CALL bits2ints_10(Ndata, packed_data, full_data)
   54040             :       CASE (11)
   54041      108956 :          CALL bits2ints_11(Ndata, packed_data, full_data)
   54042             :       CASE (12)
   54043      110093 :          CALL bits2ints_12(Ndata, packed_data, full_data)
   54044             :       CASE (13)
   54045      122253 :          CALL bits2ints_13(Ndata, packed_data, full_data)
   54046             :       CASE (14)
   54047      113651 :          CALL bits2ints_14(Ndata, packed_data, full_data)
   54048             :       CASE (15)
   54049      115333 :          CALL bits2ints_15(Ndata, packed_data, full_data)
   54050             :       CASE (16)
   54051      130301 :          CALL bits2ints_16(Ndata, packed_data, full_data)
   54052             :       CASE (17)
   54053      162632 :          CALL bits2ints_17(Ndata, packed_data, full_data)
   54054             :       CASE (18)
   54055      171951 :          CALL bits2ints_18(Ndata, packed_data, full_data)
   54056             :       CASE (19)
   54057      152498 :          CALL bits2ints_19(Ndata, packed_data, full_data)
   54058             :       CASE (20)
   54059      281258 :          CALL bits2ints_20(Ndata, packed_data, full_data)
   54060             :       CASE (21)
   54061      147546 :          CALL bits2ints_21(Ndata, packed_data, full_data)
   54062             :       CASE (22)
   54063      146207 :          CALL bits2ints_22(Ndata, packed_data, full_data)
   54064             :       CASE (23)
   54065      187687 :          CALL bits2ints_23(Ndata, packed_data, full_data)
   54066             :       CASE (24)
   54067      155280 :          CALL bits2ints_24(Ndata, packed_data, full_data)
   54068             :       CASE (25)
   54069      152928 :          CALL bits2ints_25(Ndata, packed_data, full_data)
   54070             :       CASE (26)
   54071      128637 :          CALL bits2ints_26(Ndata, packed_data, full_data)
   54072             :       CASE (27)
   54073      128907 :          CALL bits2ints_27(Ndata, packed_data, full_data)
   54074             :       CASE (28)
   54075      148884 :          CALL bits2ints_28(Ndata, packed_data, full_data)
   54076             :       CASE (29)
   54077      172142 :          CALL bits2ints_29(Ndata, packed_data, full_data)
   54078             :       CASE (30)
   54079      214241 :          CALL bits2ints_30(Ndata, packed_data, full_data)
   54080             :       CASE (31)
   54081      265757 :          CALL bits2ints_31(Ndata, packed_data, full_data)
   54082             :       CASE (32)
   54083      341209 :          CALL bits2ints_32(Ndata, packed_data, full_data)
   54084             :       CASE (33)
   54085      248459 :          CALL bits2ints_33(Ndata, packed_data, full_data)
   54086             :       CASE (34)
   54087      209913 :          CALL bits2ints_34(Ndata, packed_data, full_data)
   54088             :       CASE (35)
   54089      216937 :          CALL bits2ints_35(Ndata, packed_data, full_data)
   54090             :       CASE (36)
   54091      165734 :          CALL bits2ints_36(Ndata, packed_data, full_data)
   54092             :       CASE (37)
   54093      139177 :          CALL bits2ints_37(Ndata, packed_data, full_data)
   54094             :       CASE (38)
   54095      153020 :          CALL bits2ints_38(Ndata, packed_data, full_data)
   54096             :       CASE (39)
   54097      122873 :          CALL bits2ints_39(Ndata, packed_data, full_data)
   54098             :       CASE (40)
   54099      124308 :          CALL bits2ints_40(Ndata, packed_data, full_data)
   54100             :       CASE (41)
   54101      124938 :          CALL bits2ints_41(Ndata, packed_data, full_data)
   54102             :       CASE (42)
   54103      113950 :          CALL bits2ints_42(Ndata, packed_data, full_data)
   54104             :       CASE (43)
   54105      112865 :          CALL bits2ints_43(Ndata, packed_data, full_data)
   54106             :       CASE (44)
   54107      121343 :          CALL bits2ints_44(Ndata, packed_data, full_data)
   54108             :       CASE (45)
   54109      130319 :          CALL bits2ints_45(Ndata, packed_data, full_data)
   54110             :       CASE (46)
   54111      117956 :          CALL bits2ints_46(Ndata, packed_data, full_data)
   54112             :       CASE (47)
   54113      112463 :          CALL bits2ints_47(Ndata, packed_data, full_data)
   54114             :       CASE (48)
   54115      110211 :          CALL bits2ints_48(Ndata, packed_data, full_data)
   54116             :       CASE (49)
   54117       99584 :          CALL bits2ints_49(Ndata, packed_data, full_data)
   54118             :       CASE (50)
   54119       97696 :          CALL bits2ints_50(Ndata, packed_data, full_data)
   54120             :       CASE (51)
   54121       96326 :          CALL bits2ints_51(Ndata, packed_data, full_data)
   54122             :       CASE (52)
   54123       98258 :          CALL bits2ints_52(Ndata, packed_data, full_data)
   54124             :       CASE (53)
   54125      105904 :          CALL bits2ints_53(Ndata, packed_data, full_data)
   54126             :       CASE (54)
   54127      108592 :          CALL bits2ints_54(Ndata, packed_data, full_data)
   54128             :       CASE (55)
   54129      104540 :          CALL bits2ints_55(Ndata, packed_data, full_data)
   54130             :       CASE (56)
   54131      100464 :          CALL bits2ints_56(Ndata, packed_data, full_data)
   54132             :       CASE (57)
   54133       96788 :          CALL bits2ints_57(Ndata, packed_data, full_data)
   54134             :       CASE (58)
   54135       94710 :          CALL bits2ints_58(Ndata, packed_data, full_data)
   54136             :       CASE (59)
   54137       93246 :          CALL bits2ints_59(Ndata, packed_data, full_data)
   54138             :       CASE (60)
   54139       93246 :          CALL bits2ints_60(Ndata, packed_data, full_data)
   54140             :       CASE (61)
   54141       93246 :          CALL bits2ints_61(Ndata, packed_data, full_data)
   54142             :       CASE (62)
   54143       93246 :          CALL bits2ints_62(Ndata, packed_data, full_data)
   54144             :       CASE (63)
   54145     8886648 :          CALL bits2ints_63(Ndata, packed_data, full_data)
   54146             :       END SELECT
   54147     8886648 :    END SUBROUTINE bits2ints_specific
   54148             : 
   54149             : END MODULE hfx_compression_core_methods

Generated by: LCOV version 1.15