LCOV - code coverage report
Current view: top level - src/hfxbase - hfx_compression_core_methods.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:3130539) Lines: 51379 51404 99.9 %
Date: 2025-05-14 06:57:18 Functions: 130 131 99.2 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------------------------!
       2             : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3             : !   Copyright 2000-2025 CP2K developers group <https://cp2k.org>                                   !
       4             : !                                                                                                  !
       5             : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6             : !--------------------------------------------------------------------------------------------------!
       7             : 
       8             : ! **************************************************************************************************
       9             : !> \brief Contains routines for data compression. PLEASE DO NOT MODIFY.
      10             : !> \par History
      11             : !>      04.2008 created [Manuel Guidon]
      12             : !> \author Manuel Guidon
      13             : ! **************************************************************************************************
      14             : MODULE hfx_compression_core_methods
      15             : 
      16             :    USE kinds,                           ONLY: int_8
      17             : #include "../base/base_uses.f90"
      18             : 
      19             :    IMPLICIT NONE
      20             :    PRIVATE
      21             : 
      22             :    ! masks the corresponding number of bits from the right
      23             :    INTEGER(kind=int_8), PARAMETER :: mask_right(0:63) = &
      24             :                               (/0_int_8, 1_int_8, 3_int_8, 7_int_8, 15_int_8, 31_int_8, 63_int_8, 127_int_8, 255_int_8, 511_int_8, &
      25             :                               1023_int_8, 2047_int_8, 4095_int_8, 8191_int_8, 16383_int_8, 32767_int_8, 65535_int_8, 131071_int_8, &
      26             :                            262143_int_8, 524287_int_8, 1048575_int_8, 2097151_int_8, 4194303_int_8, 8388607_int_8, 16777215_int_8, &
      27             :                               33554431_int_8, 67108863_int_8, 134217727_int_8, 268435455_int_8, 536870911_int_8, 1073741823_int_8, &
      28             :                                        2147483647_int_8, 4294967295_int_8, 8589934591_int_8, 17179869183_int_8, 34359738367_int_8, &
      29             :                                68719476735_int_8, 137438953471_int_8, 274877906943_int_8, 549755813887_int_8, 1099511627775_int_8, &
      30             :                                        2199023255551_int_8, 4398046511103_int_8, 8796093022207_int_8, 17592186044415_int_8, &
      31             :                                        35184372088831_int_8, 70368744177663_int_8, 140737488355327_int_8, 281474976710655_int_8, &
      32             :                                     562949953421311_int_8, 1125899906842623_int_8, 2251799813685247_int_8, 4503599627370495_int_8, &
      33             :                                 9007199254740991_int_8, 18014398509481983_int_8, 36028797018963967_int_8, 72057594037927935_int_8, &
      34             :                                        144115188075855871_int_8, 288230376151711743_int_8, 576460752303423487_int_8, &
      35             :                                        1152921504606846975_int_8, 2305843009213693951_int_8, 4611686018427387903_int_8, &
      36             :                                        9223372036854775807_int_8/)
      37             : 
      38             :    ! masks the corresponding number of bits from the left
      39             :    ! use ishft to avoid explicitly writing -HUGE-1, and keep it out of the array a work-around for a bug in pgi 6.1-1
      40             :    INTEGER(kind=int_8), PARAMETER :: ugly_duck = ISHFT(1_int_8, 63)
      41             :    INTEGER(kind=int_8), PARAMETER :: mask_left(0:63) = &
      42             :                                      (/0_int_8, ugly_duck, -4611686018427387904_int_8, -2305843009213693952_int_8, &
      43             :                                        -1152921504606846976_int_8, -576460752303423488_int_8, -288230376151711744_int_8, &
      44             :                                        -144115188075855872_int_8, -72057594037927936_int_8, -36028797018963968_int_8, &
      45             :                               -18014398509481984_int_8, -9007199254740992_int_8, -4503599627370496_int_8, -2251799813685248_int_8, &
      46             :                                   -1125899906842624_int_8, -562949953421312_int_8, -281474976710656_int_8, -140737488355328_int_8, &
      47             :                                        -70368744177664_int_8, -35184372088832_int_8, -17592186044416_int_8, -8796093022208_int_8, &
      48             :                                        -4398046511104_int_8, -2199023255552_int_8, -1099511627776_int_8, -549755813888_int_8, &
      49             :                              -274877906944_int_8, -137438953472_int_8, -68719476736_int_8, -34359738368_int_8, -17179869184_int_8, &
      50             :                                      -8589934592_int_8, -4294967296_int_8, -2147483648_int_8, -1073741824_int_8, -536870912_int_8, &
      51             :                                        -268435456_int_8, -134217728_int_8, -67108864_int_8, -33554432_int_8, -16777216_int_8, &
      52             :                                      -8388608_int_8, -4194304_int_8, -2097152_int_8, -1048576_int_8, -524288_int_8, -262144_int_8, &
      53             :                                    -131072_int_8, -65536_int_8, -32768_int_8, -16384_int_8, -8192_int_8, -4096_int_8, -2048_int_8, &
      54             :                              -1024_int_8, -512_int_8, -256_int_8, -128_int_8, -64_int_8, -32_int_8, -16_int_8, -8_int_8, -4_int_8, &
      55             :                                        -2_int_8/)
      56             : 
      57             :    PUBLIC :: bits2ints_specific, ints2bits_specific
      58             : 
      59             : CONTAINS
      60             : 
      61             : ! **************************************************************************************************
      62             : !> \brief ...
      63             : !> \param Ndata ...
      64             : !> \param packed_data ...
      65             : !> \param full_data ...
      66             : ! **************************************************************************************************
      67           0 :    SUBROUTINE ints2ints(Ndata, packed_data, full_data)
      68             :       INTEGER, INTENT(IN)                                :: Ndata
      69             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
      70             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
      71             : 
      72           0 :       full_data(1:Ndata) = packed_data(1:Ndata)
      73           0 :    END SUBROUTINE
      74             : 
      75             :    ! Nbits         : number of relevant bits per int in the bit stream (this includes all bits)
      76             :    ! Ndata         : number of ints that need to be extracted from the bit stream
      77             :    ! packed_data   : the stream of bits
      78             :    ! full_data     : the extracted ints
      79             : ! **************************************************************************************************
      80             : !> \brief ...
      81             : !> \param Nbits ...
      82             : !> \param Ndata ...
      83             : !> \param packed_data ...
      84             : !> \param full_data ...
      85             : ! **************************************************************************************************
      86     1470154 :    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     1470154 :       idata = 0
      96             : 
      97             :       ! number of data bits in the pack_tmp that should still be read
      98     1470154 :       ibits_remaining = 64
      99     1470154 :       ipack = 1
     100     1470154 :       pack_tmp = packed_data(ipack)
     101             : 
     102             :       ! give the compiler a hint that Nbits is strictly positive
     103     1470154 :       IF (Nbits < 1) CPABORT("This is a bug")
     104             :       ! we also limit the making number of bits
     105     1470154 :       IF (Nbits >= 64) CPABORT("This is a bug")
     106             : 
     107             :       DO
     108             :          ! we've unpacked all data
     109    48515082 :          IF (idata == Ndata) EXIT
     110    47044928 :          idata = idata + 1
     111    48515082 :          IF (ibits_remaining >= Nbits) THEN
     112    24664853 :             data_tmp = IAND(pack_tmp, mask_right(Nbits)) ! get the last Nbits
     113    24664853 :             full_data(idata) = data_tmp
     114    24664853 :             pack_tmp = ISHFT(pack_tmp, -Nbits) ! and shift right to get the bits in place for the next
     115    24664853 :             ibits_remaining = ibits_remaining - Nbits
     116             :          ELSE
     117    22380075 :             i_odd_bits = Nbits - ibits_remaining
     118    22380075 :             data_tmp = ISHFT(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
     119    22380075 :             ipack = ipack + 1
     120    22380075 :             pack_tmp = packed_data(ipack) ! get new storage
     121    22380075 :             ibits_remaining = 64
     122    22380075 :             full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
     123    22380075 :             pack_tmp = ISHFT(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
     124    22380075 :             ibits_remaining = 64 - i_odd_bits
     125             :          END IF
     126             :       END DO
     127             : 
     128     1470154 :    END SUBROUTINE bits2ints_generic
     129             : 
     130             : ! **************************************************************************************************
     131             : !> \brief ...
     132             : !> \param Nbits ...
     133             : !> \param Ndata ...
     134             : !> \param packed_data ...
     135             : !> \param full_data ...
     136             : ! **************************************************************************************************
     137      232860 :    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      232860 :       idata = 0
     146      232860 :       ipack = 0
     147      232860 :       pack_tmp = 0
     148             : 
     149             :       ! number of data bits in the pack_tmp that should still be written
     150      232860 :       ibits_remaining = 64
     151             : 
     152             :       ! give the compiler a hint that Nbits is strictly positive
     153      232860 :       IF (Nbits < 1) CPABORT("This is a bug")
     154             :       ! we also limit the making number of bits
     155      232860 :       IF (Nbits >= 64) CPABORT("This is a bug")
     156             : 
     157             :       DO
     158             :          ! we've packed all data
     159     7684380 :          IF (idata == Ndata) EXIT
     160     7451520 :          idata = idata + 1
     161     7684380 :          IF (ibits_remaining >= Nbits) THEN
     162     3906445 :             data_tmp = full_data(idata)
     163     3906445 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     164     3906445 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add to the packed data
     165     3906445 :             ibits_remaining = ibits_remaining - Nbits
     166     3906445 :             pack_tmp = ISHFT(pack_tmp, -MIN(Nbits, ibits_remaining)) ! and shift to the right to make place for the next
     167             :          ELSE
     168     3545075 :             i_odd_bits = ibits_remaining
     169     3545075 :             data_tmp = full_data(idata)
     170     3545075 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     171     3545075 :             data_tmp = IAND(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
     172     3545075 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add them to the packed bits
     173     3545075 :             ipack = ipack + 1
     174     3545075 :             packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
     175     3545075 :             data_tmp = full_data(idata)
     176     3545075 :             pack_tmp = ISHFT(data_tmp, 64 - Nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
     177     3545075 :             ibits_remaining = 64 - Nbits + i_odd_bits
     178     3545075 :             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      232860 :       pack_tmp = ISHFT(pack_tmp, -MAX(0, ibits_remaining - Nbits))
     184      232860 :       ipack = ipack + 1
     185      232860 :       packed_data(ipack) = pack_tmp
     186             : 
     187      232860 :    END SUBROUTINE ints2bits_generic
     188             : 
     189             : ! **************************************************************************************************
     190             : !> \brief ...
     191             : !> \param Ndata ...
     192             : !> \param packed_data ...
     193             : !> \param full_data ...
     194             : ! **************************************************************************************************
     195       23676 :    SUBROUTINE ints2bits_1(Ndata, packed_data, full_data)
     196             :       INTEGER, INTENT(IN)                                :: Ndata
     197             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
     198             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
     199             : 
     200             :       INTEGER, PARAMETER                                 :: Nbits = 1
     201             : 
     202             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
     203             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
     204             : 
     205       23676 :       idata = 0
     206       23676 :       ipack = 0
     207       23676 :       Ndata_rep = (Ndata/64)*64
     208       23676 :       DO kdata = 1, Ndata_rep, 64
     209      378816 :          pack_tmp = 0
     210      378816 :          idata = idata + 1
     211      378816 :          data_tmp = full_data(idata)
     212      378816 :          data_tmp = ISHFT(data_tmp, 63)
     213      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     214      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     215      378816 :          idata = idata + 1
     216      378816 :          data_tmp = full_data(idata)
     217      378816 :          data_tmp = ISHFT(data_tmp, 63)
     218      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     219      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     220      378816 :          idata = idata + 1
     221      378816 :          data_tmp = full_data(idata)
     222      378816 :          data_tmp = ISHFT(data_tmp, 63)
     223      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     224      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     225      378816 :          idata = idata + 1
     226      378816 :          data_tmp = full_data(idata)
     227      378816 :          data_tmp = ISHFT(data_tmp, 63)
     228      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     229      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     230      378816 :          idata = idata + 1
     231      378816 :          data_tmp = full_data(idata)
     232      378816 :          data_tmp = ISHFT(data_tmp, 63)
     233      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     234      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     235      378816 :          idata = idata + 1
     236      378816 :          data_tmp = full_data(idata)
     237      378816 :          data_tmp = ISHFT(data_tmp, 63)
     238      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     239      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     240      378816 :          idata = idata + 1
     241      378816 :          data_tmp = full_data(idata)
     242      378816 :          data_tmp = ISHFT(data_tmp, 63)
     243      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     244      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     245      378816 :          idata = idata + 1
     246      378816 :          data_tmp = full_data(idata)
     247      378816 :          data_tmp = ISHFT(data_tmp, 63)
     248      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     249      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     250      378816 :          idata = idata + 1
     251      378816 :          data_tmp = full_data(idata)
     252      378816 :          data_tmp = ISHFT(data_tmp, 63)
     253      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     254      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     255      378816 :          idata = idata + 1
     256      378816 :          data_tmp = full_data(idata)
     257      378816 :          data_tmp = ISHFT(data_tmp, 63)
     258      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     259      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     260      378816 :          idata = idata + 1
     261      378816 :          data_tmp = full_data(idata)
     262      378816 :          data_tmp = ISHFT(data_tmp, 63)
     263      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     264      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     265      378816 :          idata = idata + 1
     266      378816 :          data_tmp = full_data(idata)
     267      378816 :          data_tmp = ISHFT(data_tmp, 63)
     268      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     269      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     270      378816 :          idata = idata + 1
     271      378816 :          data_tmp = full_data(idata)
     272      378816 :          data_tmp = ISHFT(data_tmp, 63)
     273      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     274      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     275      378816 :          idata = idata + 1
     276      378816 :          data_tmp = full_data(idata)
     277      378816 :          data_tmp = ISHFT(data_tmp, 63)
     278      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     279      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     280      378816 :          idata = idata + 1
     281      378816 :          data_tmp = full_data(idata)
     282      378816 :          data_tmp = ISHFT(data_tmp, 63)
     283      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     284      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     285      378816 :          idata = idata + 1
     286      378816 :          data_tmp = full_data(idata)
     287      378816 :          data_tmp = ISHFT(data_tmp, 63)
     288      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     289      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     290      378816 :          idata = idata + 1
     291      378816 :          data_tmp = full_data(idata)
     292      378816 :          data_tmp = ISHFT(data_tmp, 63)
     293      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     294      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     295      378816 :          idata = idata + 1
     296      378816 :          data_tmp = full_data(idata)
     297      378816 :          data_tmp = ISHFT(data_tmp, 63)
     298      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     299      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     300      378816 :          idata = idata + 1
     301      378816 :          data_tmp = full_data(idata)
     302      378816 :          data_tmp = ISHFT(data_tmp, 63)
     303      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     304      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     305      378816 :          idata = idata + 1
     306      378816 :          data_tmp = full_data(idata)
     307      378816 :          data_tmp = ISHFT(data_tmp, 63)
     308      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     309      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     310      378816 :          idata = idata + 1
     311      378816 :          data_tmp = full_data(idata)
     312      378816 :          data_tmp = ISHFT(data_tmp, 63)
     313      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     314      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     315      378816 :          idata = idata + 1
     316      378816 :          data_tmp = full_data(idata)
     317      378816 :          data_tmp = ISHFT(data_tmp, 63)
     318      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     319      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     320      378816 :          idata = idata + 1
     321      378816 :          data_tmp = full_data(idata)
     322      378816 :          data_tmp = ISHFT(data_tmp, 63)
     323      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     324      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     325      378816 :          idata = idata + 1
     326      378816 :          data_tmp = full_data(idata)
     327      378816 :          data_tmp = ISHFT(data_tmp, 63)
     328      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     329      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     330      378816 :          idata = idata + 1
     331      378816 :          data_tmp = full_data(idata)
     332      378816 :          data_tmp = ISHFT(data_tmp, 63)
     333      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     334      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     335      378816 :          idata = idata + 1
     336      378816 :          data_tmp = full_data(idata)
     337      378816 :          data_tmp = ISHFT(data_tmp, 63)
     338      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     339      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     340      378816 :          idata = idata + 1
     341      378816 :          data_tmp = full_data(idata)
     342      378816 :          data_tmp = ISHFT(data_tmp, 63)
     343      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     344      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     345      378816 :          idata = idata + 1
     346      378816 :          data_tmp = full_data(idata)
     347      378816 :          data_tmp = ISHFT(data_tmp, 63)
     348      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     349      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     350      378816 :          idata = idata + 1
     351      378816 :          data_tmp = full_data(idata)
     352      378816 :          data_tmp = ISHFT(data_tmp, 63)
     353      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     354      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     355      378816 :          idata = idata + 1
     356      378816 :          data_tmp = full_data(idata)
     357      378816 :          data_tmp = ISHFT(data_tmp, 63)
     358      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     359      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     360      378816 :          idata = idata + 1
     361      378816 :          data_tmp = full_data(idata)
     362      378816 :          data_tmp = ISHFT(data_tmp, 63)
     363      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     364      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     365      378816 :          idata = idata + 1
     366      378816 :          data_tmp = full_data(idata)
     367      378816 :          data_tmp = ISHFT(data_tmp, 63)
     368      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     369      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     370      378816 :          idata = idata + 1
     371      378816 :          data_tmp = full_data(idata)
     372      378816 :          data_tmp = ISHFT(data_tmp, 63)
     373      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     374      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     375      378816 :          idata = idata + 1
     376      378816 :          data_tmp = full_data(idata)
     377      378816 :          data_tmp = ISHFT(data_tmp, 63)
     378      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     379      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     380      378816 :          idata = idata + 1
     381      378816 :          data_tmp = full_data(idata)
     382      378816 :          data_tmp = ISHFT(data_tmp, 63)
     383      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     384      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     385      378816 :          idata = idata + 1
     386      378816 :          data_tmp = full_data(idata)
     387      378816 :          data_tmp = ISHFT(data_tmp, 63)
     388      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     389      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     390      378816 :          idata = idata + 1
     391      378816 :          data_tmp = full_data(idata)
     392      378816 :          data_tmp = ISHFT(data_tmp, 63)
     393      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     394      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     395      378816 :          idata = idata + 1
     396      378816 :          data_tmp = full_data(idata)
     397      378816 :          data_tmp = ISHFT(data_tmp, 63)
     398      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     399      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     400      378816 :          idata = idata + 1
     401      378816 :          data_tmp = full_data(idata)
     402      378816 :          data_tmp = ISHFT(data_tmp, 63)
     403      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     404      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     405      378816 :          idata = idata + 1
     406      378816 :          data_tmp = full_data(idata)
     407      378816 :          data_tmp = ISHFT(data_tmp, 63)
     408      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     409      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     410      378816 :          idata = idata + 1
     411      378816 :          data_tmp = full_data(idata)
     412      378816 :          data_tmp = ISHFT(data_tmp, 63)
     413      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     414      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     415      378816 :          idata = idata + 1
     416      378816 :          data_tmp = full_data(idata)
     417      378816 :          data_tmp = ISHFT(data_tmp, 63)
     418      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     419      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     420      378816 :          idata = idata + 1
     421      378816 :          data_tmp = full_data(idata)
     422      378816 :          data_tmp = ISHFT(data_tmp, 63)
     423      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     424      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     425      378816 :          idata = idata + 1
     426      378816 :          data_tmp = full_data(idata)
     427      378816 :          data_tmp = ISHFT(data_tmp, 63)
     428      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     429      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     430      378816 :          idata = idata + 1
     431      378816 :          data_tmp = full_data(idata)
     432      378816 :          data_tmp = ISHFT(data_tmp, 63)
     433      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     434      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     435      378816 :          idata = idata + 1
     436      378816 :          data_tmp = full_data(idata)
     437      378816 :          data_tmp = ISHFT(data_tmp, 63)
     438      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     439      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     440      378816 :          idata = idata + 1
     441      378816 :          data_tmp = full_data(idata)
     442      378816 :          data_tmp = ISHFT(data_tmp, 63)
     443      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     444      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     445      378816 :          idata = idata + 1
     446      378816 :          data_tmp = full_data(idata)
     447      378816 :          data_tmp = ISHFT(data_tmp, 63)
     448      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     449      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     450      378816 :          idata = idata + 1
     451      378816 :          data_tmp = full_data(idata)
     452      378816 :          data_tmp = ISHFT(data_tmp, 63)
     453      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     454      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     455      378816 :          idata = idata + 1
     456      378816 :          data_tmp = full_data(idata)
     457      378816 :          data_tmp = ISHFT(data_tmp, 63)
     458      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     459      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     460      378816 :          idata = idata + 1
     461      378816 :          data_tmp = full_data(idata)
     462      378816 :          data_tmp = ISHFT(data_tmp, 63)
     463      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     464      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     465      378816 :          idata = idata + 1
     466      378816 :          data_tmp = full_data(idata)
     467      378816 :          data_tmp = ISHFT(data_tmp, 63)
     468      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     469      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     470      378816 :          idata = idata + 1
     471      378816 :          data_tmp = full_data(idata)
     472      378816 :          data_tmp = ISHFT(data_tmp, 63)
     473      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     474      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     475      378816 :          idata = idata + 1
     476      378816 :          data_tmp = full_data(idata)
     477      378816 :          data_tmp = ISHFT(data_tmp, 63)
     478      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     479      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     480      378816 :          idata = idata + 1
     481      378816 :          data_tmp = full_data(idata)
     482      378816 :          data_tmp = ISHFT(data_tmp, 63)
     483      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     484      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     485      378816 :          idata = idata + 1
     486      378816 :          data_tmp = full_data(idata)
     487      378816 :          data_tmp = ISHFT(data_tmp, 63)
     488      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     489      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     490      378816 :          idata = idata + 1
     491      378816 :          data_tmp = full_data(idata)
     492      378816 :          data_tmp = ISHFT(data_tmp, 63)
     493      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     494      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     495      378816 :          idata = idata + 1
     496      378816 :          data_tmp = full_data(idata)
     497      378816 :          data_tmp = ISHFT(data_tmp, 63)
     498      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     499      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     500      378816 :          idata = idata + 1
     501      378816 :          data_tmp = full_data(idata)
     502      378816 :          data_tmp = ISHFT(data_tmp, 63)
     503      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     504      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     505      378816 :          idata = idata + 1
     506      378816 :          data_tmp = full_data(idata)
     507      378816 :          data_tmp = ISHFT(data_tmp, 63)
     508      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     509      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     510      378816 :          idata = idata + 1
     511      378816 :          data_tmp = full_data(idata)
     512      378816 :          data_tmp = ISHFT(data_tmp, 63)
     513      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     514      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     515      378816 :          idata = idata + 1
     516      378816 :          data_tmp = full_data(idata)
     517      378816 :          data_tmp = ISHFT(data_tmp, 63)
     518      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     519      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     520      378816 :          idata = idata + 1
     521      378816 :          data_tmp = full_data(idata)
     522      378816 :          data_tmp = ISHFT(data_tmp, 63)
     523      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     524      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     525      378816 :          idata = idata + 1
     526      378816 :          data_tmp = full_data(idata)
     527      378816 :          data_tmp = ISHFT(data_tmp, 63)
     528      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     529             :          pack_tmp = ISHFT(pack_tmp, 0)
     530      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
     531      378816 :          ipack = ipack + 1
     532      378816 :          packed_data(ipack) = pack_tmp
     533             :       END DO
     534       23676 :       IF (Ndata_rep < Ndata) THEN
     535           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
     536             :       END IF
     537       23676 :    END SUBROUTINE ints2bits_1
     538             : 
     539             : ! **************************************************************************************************
     540             : !> \brief ...
     541             : !> \param Ndata ...
     542             : !> \param packed_data ...
     543             : !> \param full_data ...
     544             : ! **************************************************************************************************
     545       95427 :    SUBROUTINE bits2ints_1(Ndata, packed_data, full_data)
     546             :       INTEGER, INTENT(IN)                                :: Ndata
     547             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
     548             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
     549             : 
     550             :       INTEGER, PARAMETER                                 :: Nbits = 1
     551             : 
     552             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
     553             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
     554             : 
     555       95427 :       ipack = 0
     556       95427 :       idata = 0
     557       95427 :       pack_tmp = 0
     558       95427 :       Ndata_rep = (Ndata/64)*64
     559       95427 :       DO kdata = 1, Ndata_rep, 64
     560     1526832 :          idata = idata + 1
     561     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
     562     1526832 :          ipack = ipack + 1
     563     1526832 :          pack_tmp = packed_data(ipack)
     564     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
     565     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
     566     1526832 :          idata = idata + 1
     567     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     568     1526832 :          full_data(idata) = data_tmp
     569     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     570     1526832 :          idata = idata + 1
     571     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     572     1526832 :          full_data(idata) = data_tmp
     573     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     574     1526832 :          idata = idata + 1
     575     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     576     1526832 :          full_data(idata) = data_tmp
     577     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     578     1526832 :          idata = idata + 1
     579     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     580     1526832 :          full_data(idata) = data_tmp
     581     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     582     1526832 :          idata = idata + 1
     583     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     584     1526832 :          full_data(idata) = data_tmp
     585     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     586     1526832 :          idata = idata + 1
     587     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     588     1526832 :          full_data(idata) = data_tmp
     589     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     590     1526832 :          idata = idata + 1
     591     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     592     1526832 :          full_data(idata) = data_tmp
     593     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     594     1526832 :          idata = idata + 1
     595     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     596     1526832 :          full_data(idata) = data_tmp
     597     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     598     1526832 :          idata = idata + 1
     599     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     600     1526832 :          full_data(idata) = data_tmp
     601     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     602     1526832 :          idata = idata + 1
     603     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     604     1526832 :          full_data(idata) = data_tmp
     605     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     606     1526832 :          idata = idata + 1
     607     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     608     1526832 :          full_data(idata) = data_tmp
     609     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     610     1526832 :          idata = idata + 1
     611     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     612     1526832 :          full_data(idata) = data_tmp
     613     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     614     1526832 :          idata = idata + 1
     615     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     616     1526832 :          full_data(idata) = data_tmp
     617     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     618     1526832 :          idata = idata + 1
     619     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     620     1526832 :          full_data(idata) = data_tmp
     621     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     622     1526832 :          idata = idata + 1
     623     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     624     1526832 :          full_data(idata) = data_tmp
     625     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     626     1526832 :          idata = idata + 1
     627     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     628     1526832 :          full_data(idata) = data_tmp
     629     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     630     1526832 :          idata = idata + 1
     631     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     632     1526832 :          full_data(idata) = data_tmp
     633     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     634     1526832 :          idata = idata + 1
     635     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     636     1526832 :          full_data(idata) = data_tmp
     637     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     638     1526832 :          idata = idata + 1
     639     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     640     1526832 :          full_data(idata) = data_tmp
     641     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     642     1526832 :          idata = idata + 1
     643     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     644     1526832 :          full_data(idata) = data_tmp
     645     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     646     1526832 :          idata = idata + 1
     647     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     648     1526832 :          full_data(idata) = data_tmp
     649     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     650     1526832 :          idata = idata + 1
     651     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     652     1526832 :          full_data(idata) = data_tmp
     653     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     654     1526832 :          idata = idata + 1
     655     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     656     1526832 :          full_data(idata) = data_tmp
     657     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     658     1526832 :          idata = idata + 1
     659     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     660     1526832 :          full_data(idata) = data_tmp
     661     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     662     1526832 :          idata = idata + 1
     663     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     664     1526832 :          full_data(idata) = data_tmp
     665     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     666     1526832 :          idata = idata + 1
     667     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     668     1526832 :          full_data(idata) = data_tmp
     669     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     670     1526832 :          idata = idata + 1
     671     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     672     1526832 :          full_data(idata) = data_tmp
     673     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     674     1526832 :          idata = idata + 1
     675     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     676     1526832 :          full_data(idata) = data_tmp
     677     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     678     1526832 :          idata = idata + 1
     679     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     680     1526832 :          full_data(idata) = data_tmp
     681     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     682     1526832 :          idata = idata + 1
     683     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     684     1526832 :          full_data(idata) = data_tmp
     685     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     686     1526832 :          idata = idata + 1
     687     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     688     1526832 :          full_data(idata) = data_tmp
     689     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     690     1526832 :          idata = idata + 1
     691     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     692     1526832 :          full_data(idata) = data_tmp
     693     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     694     1526832 :          idata = idata + 1
     695     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     696     1526832 :          full_data(idata) = data_tmp
     697     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     698     1526832 :          idata = idata + 1
     699     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     700     1526832 :          full_data(idata) = data_tmp
     701     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     702     1526832 :          idata = idata + 1
     703     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     704     1526832 :          full_data(idata) = data_tmp
     705     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     706     1526832 :          idata = idata + 1
     707     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     708     1526832 :          full_data(idata) = data_tmp
     709     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     710     1526832 :          idata = idata + 1
     711     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     712     1526832 :          full_data(idata) = data_tmp
     713     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     714     1526832 :          idata = idata + 1
     715     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     716     1526832 :          full_data(idata) = data_tmp
     717     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     718     1526832 :          idata = idata + 1
     719     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     720     1526832 :          full_data(idata) = data_tmp
     721     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     722     1526832 :          idata = idata + 1
     723     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     724     1526832 :          full_data(idata) = data_tmp
     725     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     726     1526832 :          idata = idata + 1
     727     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     728     1526832 :          full_data(idata) = data_tmp
     729     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     730     1526832 :          idata = idata + 1
     731     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     732     1526832 :          full_data(idata) = data_tmp
     733     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     734     1526832 :          idata = idata + 1
     735     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     736     1526832 :          full_data(idata) = data_tmp
     737     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     738     1526832 :          idata = idata + 1
     739     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     740     1526832 :          full_data(idata) = data_tmp
     741     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     742     1526832 :          idata = idata + 1
     743     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     744     1526832 :          full_data(idata) = data_tmp
     745     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     746     1526832 :          idata = idata + 1
     747     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     748     1526832 :          full_data(idata) = data_tmp
     749     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     750     1526832 :          idata = idata + 1
     751     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     752     1526832 :          full_data(idata) = data_tmp
     753     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     754     1526832 :          idata = idata + 1
     755     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     756     1526832 :          full_data(idata) = data_tmp
     757     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     758     1526832 :          idata = idata + 1
     759     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     760     1526832 :          full_data(idata) = data_tmp
     761     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     762     1526832 :          idata = idata + 1
     763     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     764     1526832 :          full_data(idata) = data_tmp
     765     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     766     1526832 :          idata = idata + 1
     767     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     768     1526832 :          full_data(idata) = data_tmp
     769     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     770     1526832 :          idata = idata + 1
     771     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     772     1526832 :          full_data(idata) = data_tmp
     773     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     774     1526832 :          idata = idata + 1
     775     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     776     1526832 :          full_data(idata) = data_tmp
     777     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     778     1526832 :          idata = idata + 1
     779     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     780     1526832 :          full_data(idata) = data_tmp
     781     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     782     1526832 :          idata = idata + 1
     783     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     784     1526832 :          full_data(idata) = data_tmp
     785     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     786     1526832 :          idata = idata + 1
     787     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     788     1526832 :          full_data(idata) = data_tmp
     789     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     790     1526832 :          idata = idata + 1
     791     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     792     1526832 :          full_data(idata) = data_tmp
     793     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     794     1526832 :          idata = idata + 1
     795     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     796     1526832 :          full_data(idata) = data_tmp
     797     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     798     1526832 :          idata = idata + 1
     799     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     800     1526832 :          full_data(idata) = data_tmp
     801     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     802     1526832 :          idata = idata + 1
     803     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     804     1526832 :          full_data(idata) = data_tmp
     805     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     806     1526832 :          idata = idata + 1
     807     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     808     1526832 :          full_data(idata) = data_tmp
     809     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     810     1526832 :          idata = idata + 1
     811     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     812     1526832 :          full_data(idata) = data_tmp
     813     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     814     1526832 :          idata = idata + 1
     815     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     816     1526832 :          full_data(idata) = data_tmp
     817     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     818             :       END DO
     819       95427 :       IF (Ndata_rep < Ndata) THEN
     820           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
     821             :       END IF
     822       95427 :    END SUBROUTINE bits2ints_1
     823             : 
     824             : ! **************************************************************************************************
     825             : !> \brief ...
     826             : !> \param Ndata ...
     827             : !> \param packed_data ...
     828             : !> \param full_data ...
     829             : ! **************************************************************************************************
     830       23676 :    SUBROUTINE ints2bits_2(Ndata, packed_data, full_data)
     831             :       INTEGER, INTENT(IN)                                :: Ndata
     832             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
     833             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
     834             : 
     835             :       INTEGER, PARAMETER                                 :: Nbits = 2
     836             : 
     837             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
     838             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
     839             : 
     840       23676 :       idata = 0
     841       23676 :       ipack = 0
     842       23676 :       Ndata_rep = (Ndata/64)*64
     843       23676 :       DO kdata = 1, Ndata_rep, 64
     844      378816 :          pack_tmp = 0
     845      378816 :          idata = idata + 1
     846      378816 :          data_tmp = full_data(idata)
     847      378816 :          data_tmp = ISHFT(data_tmp, 62)
     848      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     849      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     850      378816 :          idata = idata + 1
     851      378816 :          data_tmp = full_data(idata)
     852      378816 :          data_tmp = ISHFT(data_tmp, 62)
     853      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     854      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     855      378816 :          idata = idata + 1
     856      378816 :          data_tmp = full_data(idata)
     857      378816 :          data_tmp = ISHFT(data_tmp, 62)
     858      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     859      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     860      378816 :          idata = idata + 1
     861      378816 :          data_tmp = full_data(idata)
     862      378816 :          data_tmp = ISHFT(data_tmp, 62)
     863      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     864      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     865      378816 :          idata = idata + 1
     866      378816 :          data_tmp = full_data(idata)
     867      378816 :          data_tmp = ISHFT(data_tmp, 62)
     868      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     869      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     870      378816 :          idata = idata + 1
     871      378816 :          data_tmp = full_data(idata)
     872      378816 :          data_tmp = ISHFT(data_tmp, 62)
     873      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     874      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     875      378816 :          idata = idata + 1
     876      378816 :          data_tmp = full_data(idata)
     877      378816 :          data_tmp = ISHFT(data_tmp, 62)
     878      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     879      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     880      378816 :          idata = idata + 1
     881      378816 :          data_tmp = full_data(idata)
     882      378816 :          data_tmp = ISHFT(data_tmp, 62)
     883      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     884      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     885      378816 :          idata = idata + 1
     886      378816 :          data_tmp = full_data(idata)
     887      378816 :          data_tmp = ISHFT(data_tmp, 62)
     888      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     889      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     890      378816 :          idata = idata + 1
     891      378816 :          data_tmp = full_data(idata)
     892      378816 :          data_tmp = ISHFT(data_tmp, 62)
     893      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     894      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     895      378816 :          idata = idata + 1
     896      378816 :          data_tmp = full_data(idata)
     897      378816 :          data_tmp = ISHFT(data_tmp, 62)
     898      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     899      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     900      378816 :          idata = idata + 1
     901      378816 :          data_tmp = full_data(idata)
     902      378816 :          data_tmp = ISHFT(data_tmp, 62)
     903      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     904      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     905      378816 :          idata = idata + 1
     906      378816 :          data_tmp = full_data(idata)
     907      378816 :          data_tmp = ISHFT(data_tmp, 62)
     908      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     909      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     910      378816 :          idata = idata + 1
     911      378816 :          data_tmp = full_data(idata)
     912      378816 :          data_tmp = ISHFT(data_tmp, 62)
     913      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     914      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     915      378816 :          idata = idata + 1
     916      378816 :          data_tmp = full_data(idata)
     917      378816 :          data_tmp = ISHFT(data_tmp, 62)
     918      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     919      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     920      378816 :          idata = idata + 1
     921      378816 :          data_tmp = full_data(idata)
     922      378816 :          data_tmp = ISHFT(data_tmp, 62)
     923      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     924      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     925      378816 :          idata = idata + 1
     926      378816 :          data_tmp = full_data(idata)
     927      378816 :          data_tmp = ISHFT(data_tmp, 62)
     928      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     929      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     930      378816 :          idata = idata + 1
     931      378816 :          data_tmp = full_data(idata)
     932      378816 :          data_tmp = ISHFT(data_tmp, 62)
     933      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     934      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     935      378816 :          idata = idata + 1
     936      378816 :          data_tmp = full_data(idata)
     937      378816 :          data_tmp = ISHFT(data_tmp, 62)
     938      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     939      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     940      378816 :          idata = idata + 1
     941      378816 :          data_tmp = full_data(idata)
     942      378816 :          data_tmp = ISHFT(data_tmp, 62)
     943      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     944      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     945      378816 :          idata = idata + 1
     946      378816 :          data_tmp = full_data(idata)
     947      378816 :          data_tmp = ISHFT(data_tmp, 62)
     948      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     949      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     950      378816 :          idata = idata + 1
     951      378816 :          data_tmp = full_data(idata)
     952      378816 :          data_tmp = ISHFT(data_tmp, 62)
     953      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     954      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     955      378816 :          idata = idata + 1
     956      378816 :          data_tmp = full_data(idata)
     957      378816 :          data_tmp = ISHFT(data_tmp, 62)
     958      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     959      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     960      378816 :          idata = idata + 1
     961      378816 :          data_tmp = full_data(idata)
     962      378816 :          data_tmp = ISHFT(data_tmp, 62)
     963      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     964      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     965      378816 :          idata = idata + 1
     966      378816 :          data_tmp = full_data(idata)
     967      378816 :          data_tmp = ISHFT(data_tmp, 62)
     968      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     969      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     970      378816 :          idata = idata + 1
     971      378816 :          data_tmp = full_data(idata)
     972      378816 :          data_tmp = ISHFT(data_tmp, 62)
     973      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     974      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     975      378816 :          idata = idata + 1
     976      378816 :          data_tmp = full_data(idata)
     977      378816 :          data_tmp = ISHFT(data_tmp, 62)
     978      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     979      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     980      378816 :          idata = idata + 1
     981      378816 :          data_tmp = full_data(idata)
     982      378816 :          data_tmp = ISHFT(data_tmp, 62)
     983      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     984      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     985      378816 :          idata = idata + 1
     986      378816 :          data_tmp = full_data(idata)
     987      378816 :          data_tmp = ISHFT(data_tmp, 62)
     988      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     989      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     990      378816 :          idata = idata + 1
     991      378816 :          data_tmp = full_data(idata)
     992      378816 :          data_tmp = ISHFT(data_tmp, 62)
     993      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     994      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     995      378816 :          idata = idata + 1
     996      378816 :          data_tmp = full_data(idata)
     997      378816 :          data_tmp = ISHFT(data_tmp, 62)
     998      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     999      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1000      378816 :          idata = idata + 1
    1001      378816 :          data_tmp = full_data(idata)
    1002      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1003      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1004      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
    1005      378816 :          idata = idata + 1
    1006      378816 :          data_tmp = full_data(idata)
    1007             :          data_tmp = ISHFT(data_tmp, 62)
    1008      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
    1009      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1010      378816 :          ipack = ipack + 1
    1011      378816 :          packed_data(ipack) = pack_tmp
    1012      378816 :          data_tmp = full_data(idata)
    1013      378816 :          pack_tmp = ISHFT(data_tmp, 62)
    1014      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1015      378816 :          idata = idata + 1
    1016      378816 :          data_tmp = full_data(idata)
    1017      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1018      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1019      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1020      378816 :          idata = idata + 1
    1021      378816 :          data_tmp = full_data(idata)
    1022      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1023      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1024      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1025      378816 :          idata = idata + 1
    1026      378816 :          data_tmp = full_data(idata)
    1027      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1028      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1029      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1030      378816 :          idata = idata + 1
    1031      378816 :          data_tmp = full_data(idata)
    1032      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1033      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1034      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1035      378816 :          idata = idata + 1
    1036      378816 :          data_tmp = full_data(idata)
    1037      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1038      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1039      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1040      378816 :          idata = idata + 1
    1041      378816 :          data_tmp = full_data(idata)
    1042      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1043      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1044      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1045      378816 :          idata = idata + 1
    1046      378816 :          data_tmp = full_data(idata)
    1047      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1048      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1049      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1050      378816 :          idata = idata + 1
    1051      378816 :          data_tmp = full_data(idata)
    1052      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1053      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1054      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1055      378816 :          idata = idata + 1
    1056      378816 :          data_tmp = full_data(idata)
    1057      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1058      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1059      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1060      378816 :          idata = idata + 1
    1061      378816 :          data_tmp = full_data(idata)
    1062      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1063      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1064      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1065      378816 :          idata = idata + 1
    1066      378816 :          data_tmp = full_data(idata)
    1067      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1068      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1069      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1070      378816 :          idata = idata + 1
    1071      378816 :          data_tmp = full_data(idata)
    1072      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1073      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1074      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1075      378816 :          idata = idata + 1
    1076      378816 :          data_tmp = full_data(idata)
    1077      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1078      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1079      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1080      378816 :          idata = idata + 1
    1081      378816 :          data_tmp = full_data(idata)
    1082      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1083      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1084      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1085      378816 :          idata = idata + 1
    1086      378816 :          data_tmp = full_data(idata)
    1087      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1088      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1089      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1090      378816 :          idata = idata + 1
    1091      378816 :          data_tmp = full_data(idata)
    1092      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1093      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1094      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1095      378816 :          idata = idata + 1
    1096      378816 :          data_tmp = full_data(idata)
    1097      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1098      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1099      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1100      378816 :          idata = idata + 1
    1101      378816 :          data_tmp = full_data(idata)
    1102      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1103      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1104      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1105      378816 :          idata = idata + 1
    1106      378816 :          data_tmp = full_data(idata)
    1107      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1108      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1109      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1110      378816 :          idata = idata + 1
    1111      378816 :          data_tmp = full_data(idata)
    1112      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1113      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1114      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1115      378816 :          idata = idata + 1
    1116      378816 :          data_tmp = full_data(idata)
    1117      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1118      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1119      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1120      378816 :          idata = idata + 1
    1121      378816 :          data_tmp = full_data(idata)
    1122      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1123      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1124      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1125      378816 :          idata = idata + 1
    1126      378816 :          data_tmp = full_data(idata)
    1127      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1128      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1129      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1130      378816 :          idata = idata + 1
    1131      378816 :          data_tmp = full_data(idata)
    1132      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1133      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1134      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1135      378816 :          idata = idata + 1
    1136      378816 :          data_tmp = full_data(idata)
    1137      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1138      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1139      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1140      378816 :          idata = idata + 1
    1141      378816 :          data_tmp = full_data(idata)
    1142      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1143      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1144      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1145      378816 :          idata = idata + 1
    1146      378816 :          data_tmp = full_data(idata)
    1147      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1148      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1149      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1150      378816 :          idata = idata + 1
    1151      378816 :          data_tmp = full_data(idata)
    1152      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1153      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1154      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1155      378816 :          idata = idata + 1
    1156      378816 :          data_tmp = full_data(idata)
    1157      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1158      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1159      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1160      378816 :          idata = idata + 1
    1161      378816 :          data_tmp = full_data(idata)
    1162      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1163      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1164      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1165      378816 :          idata = idata + 1
    1166      378816 :          data_tmp = full_data(idata)
    1167      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1168      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1169             :          pack_tmp = ISHFT(pack_tmp, 0)
    1170      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
    1171      378816 :          ipack = ipack + 1
    1172      378816 :          packed_data(ipack) = pack_tmp
    1173             :       END DO
    1174       23676 :       IF (Ndata_rep < Ndata) THEN
    1175           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    1176             :       END IF
    1177       23676 :    END SUBROUTINE ints2bits_2
    1178             : 
    1179             : ! **************************************************************************************************
    1180             : !> \brief ...
    1181             : !> \param Ndata ...
    1182             : !> \param packed_data ...
    1183             : !> \param full_data ...
    1184             : ! **************************************************************************************************
    1185       95427 :    SUBROUTINE bits2ints_2(Ndata, packed_data, full_data)
    1186             :       INTEGER, INTENT(IN)                                :: Ndata
    1187             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    1188             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    1189             : 
    1190             :       INTEGER, PARAMETER                                 :: Nbits = 2
    1191             : 
    1192             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    1193             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    1194             : 
    1195       95427 :       ipack = 0
    1196       95427 :       idata = 0
    1197       95427 :       pack_tmp = 0
    1198       95427 :       Ndata_rep = (Ndata/64)*64
    1199       95427 :       DO kdata = 1, Ndata_rep, 64
    1200     1526832 :          idata = idata + 1
    1201     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
    1202     1526832 :          ipack = ipack + 1
    1203     1526832 :          pack_tmp = packed_data(ipack)
    1204     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1205     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
    1206     1526832 :          idata = idata + 1
    1207     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1208     1526832 :          full_data(idata) = data_tmp
    1209     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1210     1526832 :          idata = idata + 1
    1211     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1212     1526832 :          full_data(idata) = data_tmp
    1213     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1214     1526832 :          idata = idata + 1
    1215     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1216     1526832 :          full_data(idata) = data_tmp
    1217     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1218     1526832 :          idata = idata + 1
    1219     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1220     1526832 :          full_data(idata) = data_tmp
    1221     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1222     1526832 :          idata = idata + 1
    1223     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1224     1526832 :          full_data(idata) = data_tmp
    1225     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1226     1526832 :          idata = idata + 1
    1227     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1228     1526832 :          full_data(idata) = data_tmp
    1229     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1230     1526832 :          idata = idata + 1
    1231     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1232     1526832 :          full_data(idata) = data_tmp
    1233     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1234     1526832 :          idata = idata + 1
    1235     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1236     1526832 :          full_data(idata) = data_tmp
    1237     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1238     1526832 :          idata = idata + 1
    1239     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1240     1526832 :          full_data(idata) = data_tmp
    1241     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1242     1526832 :          idata = idata + 1
    1243     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1244     1526832 :          full_data(idata) = data_tmp
    1245     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1246     1526832 :          idata = idata + 1
    1247     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1248     1526832 :          full_data(idata) = data_tmp
    1249     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1250     1526832 :          idata = idata + 1
    1251     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1252     1526832 :          full_data(idata) = data_tmp
    1253     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1254     1526832 :          idata = idata + 1
    1255     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1256     1526832 :          full_data(idata) = data_tmp
    1257     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1258     1526832 :          idata = idata + 1
    1259     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1260     1526832 :          full_data(idata) = data_tmp
    1261     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1262     1526832 :          idata = idata + 1
    1263     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1264     1526832 :          full_data(idata) = data_tmp
    1265     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1266     1526832 :          idata = idata + 1
    1267     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1268     1526832 :          full_data(idata) = data_tmp
    1269     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1270     1526832 :          idata = idata + 1
    1271     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1272     1526832 :          full_data(idata) = data_tmp
    1273     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1274     1526832 :          idata = idata + 1
    1275     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1276     1526832 :          full_data(idata) = data_tmp
    1277     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1278     1526832 :          idata = idata + 1
    1279     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1280     1526832 :          full_data(idata) = data_tmp
    1281     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1282     1526832 :          idata = idata + 1
    1283     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1284     1526832 :          full_data(idata) = data_tmp
    1285     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1286     1526832 :          idata = idata + 1
    1287     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1288     1526832 :          full_data(idata) = data_tmp
    1289     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1290     1526832 :          idata = idata + 1
    1291     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1292     1526832 :          full_data(idata) = data_tmp
    1293     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1294     1526832 :          idata = idata + 1
    1295     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1296     1526832 :          full_data(idata) = data_tmp
    1297     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1298     1526832 :          idata = idata + 1
    1299     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1300     1526832 :          full_data(idata) = data_tmp
    1301     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1302     1526832 :          idata = idata + 1
    1303     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1304     1526832 :          full_data(idata) = data_tmp
    1305     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1306     1526832 :          idata = idata + 1
    1307     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1308     1526832 :          full_data(idata) = data_tmp
    1309     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1310     1526832 :          idata = idata + 1
    1311     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1312     1526832 :          full_data(idata) = data_tmp
    1313     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1314     1526832 :          idata = idata + 1
    1315     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1316     1526832 :          full_data(idata) = data_tmp
    1317     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1318     1526832 :          idata = idata + 1
    1319     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1320     1526832 :          full_data(idata) = data_tmp
    1321     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1322     1526832 :          idata = idata + 1
    1323     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1324     1526832 :          full_data(idata) = data_tmp
    1325     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1326     1526832 :          idata = idata + 1
    1327     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1328     1526832 :          full_data(idata) = data_tmp
    1329     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1330     1526832 :          idata = idata + 1
    1331     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
    1332     1526832 :          ipack = ipack + 1
    1333     1526832 :          pack_tmp = packed_data(ipack)
    1334     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1335     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
    1336     1526832 :          idata = idata + 1
    1337     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1338     1526832 :          full_data(idata) = data_tmp
    1339     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1340     1526832 :          idata = idata + 1
    1341     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1342     1526832 :          full_data(idata) = data_tmp
    1343     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1344     1526832 :          idata = idata + 1
    1345     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1346     1526832 :          full_data(idata) = data_tmp
    1347     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1348     1526832 :          idata = idata + 1
    1349     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1350     1526832 :          full_data(idata) = data_tmp
    1351     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1352     1526832 :          idata = idata + 1
    1353     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1354     1526832 :          full_data(idata) = data_tmp
    1355     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1356     1526832 :          idata = idata + 1
    1357     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1358     1526832 :          full_data(idata) = data_tmp
    1359     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1360     1526832 :          idata = idata + 1
    1361     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1362     1526832 :          full_data(idata) = data_tmp
    1363     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1364     1526832 :          idata = idata + 1
    1365     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1366     1526832 :          full_data(idata) = data_tmp
    1367     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1368     1526832 :          idata = idata + 1
    1369     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1370     1526832 :          full_data(idata) = data_tmp
    1371     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1372     1526832 :          idata = idata + 1
    1373     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1374     1526832 :          full_data(idata) = data_tmp
    1375     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1376     1526832 :          idata = idata + 1
    1377     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1378     1526832 :          full_data(idata) = data_tmp
    1379     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1380     1526832 :          idata = idata + 1
    1381     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1382     1526832 :          full_data(idata) = data_tmp
    1383     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1384     1526832 :          idata = idata + 1
    1385     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1386     1526832 :          full_data(idata) = data_tmp
    1387     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1388     1526832 :          idata = idata + 1
    1389     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1390     1526832 :          full_data(idata) = data_tmp
    1391     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1392     1526832 :          idata = idata + 1
    1393     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1394     1526832 :          full_data(idata) = data_tmp
    1395     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1396     1526832 :          idata = idata + 1
    1397     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1398     1526832 :          full_data(idata) = data_tmp
    1399     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1400     1526832 :          idata = idata + 1
    1401     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1402     1526832 :          full_data(idata) = data_tmp
    1403     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1404     1526832 :          idata = idata + 1
    1405     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1406     1526832 :          full_data(idata) = data_tmp
    1407     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1408     1526832 :          idata = idata + 1
    1409     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1410     1526832 :          full_data(idata) = data_tmp
    1411     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1412     1526832 :          idata = idata + 1
    1413     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1414     1526832 :          full_data(idata) = data_tmp
    1415     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1416     1526832 :          idata = idata + 1
    1417     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1418     1526832 :          full_data(idata) = data_tmp
    1419     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1420     1526832 :          idata = idata + 1
    1421     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1422     1526832 :          full_data(idata) = data_tmp
    1423     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1424     1526832 :          idata = idata + 1
    1425     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1426     1526832 :          full_data(idata) = data_tmp
    1427     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1428     1526832 :          idata = idata + 1
    1429     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1430     1526832 :          full_data(idata) = data_tmp
    1431     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1432     1526832 :          idata = idata + 1
    1433     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1434     1526832 :          full_data(idata) = data_tmp
    1435     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1436     1526832 :          idata = idata + 1
    1437     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1438     1526832 :          full_data(idata) = data_tmp
    1439     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1440     1526832 :          idata = idata + 1
    1441     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1442     1526832 :          full_data(idata) = data_tmp
    1443     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1444     1526832 :          idata = idata + 1
    1445     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1446     1526832 :          full_data(idata) = data_tmp
    1447     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1448     1526832 :          idata = idata + 1
    1449     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1450     1526832 :          full_data(idata) = data_tmp
    1451     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1452     1526832 :          idata = idata + 1
    1453     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1454     1526832 :          full_data(idata) = data_tmp
    1455     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1456     1526832 :          idata = idata + 1
    1457     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1458     1526832 :          full_data(idata) = data_tmp
    1459     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1460             :       END DO
    1461       95427 :       IF (Ndata_rep < Ndata) THEN
    1462           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    1463             :       END IF
    1464       95427 :    END SUBROUTINE bits2ints_2
    1465             : 
    1466             : ! **************************************************************************************************
    1467             : !> \brief ...
    1468             : !> \param Ndata ...
    1469             : !> \param packed_data ...
    1470             : !> \param full_data ...
    1471             : ! **************************************************************************************************
    1472       23924 :    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       23924 :       idata = 0
    1483       23924 :       ipack = 0
    1484       23924 :       Ndata_rep = (Ndata/64)*64
    1485       23924 :       DO kdata = 1, Ndata_rep, 64
    1486      382648 :          pack_tmp = 0
    1487      382648 :          idata = idata + 1
    1488      382648 :          data_tmp = full_data(idata)
    1489      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1490      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1491      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1492      382648 :          idata = idata + 1
    1493      382648 :          data_tmp = full_data(idata)
    1494      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1495      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1496      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1497      382648 :          idata = idata + 1
    1498      382648 :          data_tmp = full_data(idata)
    1499      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1500      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1501      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1502      382648 :          idata = idata + 1
    1503      382648 :          data_tmp = full_data(idata)
    1504      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1505      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1506      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1507      382648 :          idata = idata + 1
    1508      382648 :          data_tmp = full_data(idata)
    1509      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1510      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1511      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1512      382648 :          idata = idata + 1
    1513      382648 :          data_tmp = full_data(idata)
    1514      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1515      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1516      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1517      382648 :          idata = idata + 1
    1518      382648 :          data_tmp = full_data(idata)
    1519      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1520      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1521      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1522      382648 :          idata = idata + 1
    1523      382648 :          data_tmp = full_data(idata)
    1524      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1525      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1526      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1527      382648 :          idata = idata + 1
    1528      382648 :          data_tmp = full_data(idata)
    1529      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1530      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1531      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1532      382648 :          idata = idata + 1
    1533      382648 :          data_tmp = full_data(idata)
    1534      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1535      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1536      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1537      382648 :          idata = idata + 1
    1538      382648 :          data_tmp = full_data(idata)
    1539      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1540      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1541      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1542      382648 :          idata = idata + 1
    1543      382648 :          data_tmp = full_data(idata)
    1544      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1545      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1546      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1547      382648 :          idata = idata + 1
    1548      382648 :          data_tmp = full_data(idata)
    1549      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1550      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1551      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1552      382648 :          idata = idata + 1
    1553      382648 :          data_tmp = full_data(idata)
    1554      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1555      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1556      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1557      382648 :          idata = idata + 1
    1558      382648 :          data_tmp = full_data(idata)
    1559      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1560      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1561      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1562      382648 :          idata = idata + 1
    1563      382648 :          data_tmp = full_data(idata)
    1564      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1565      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1566      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1567      382648 :          idata = idata + 1
    1568      382648 :          data_tmp = full_data(idata)
    1569      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1570      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1571      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1572      382648 :          idata = idata + 1
    1573      382648 :          data_tmp = full_data(idata)
    1574      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1575      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1576      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1577      382648 :          idata = idata + 1
    1578      382648 :          data_tmp = full_data(idata)
    1579      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1580      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1581      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1582      382648 :          idata = idata + 1
    1583      382648 :          data_tmp = full_data(idata)
    1584      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1585      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1586      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1587      382648 :          idata = idata + 1
    1588      382648 :          data_tmp = full_data(idata)
    1589      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1590      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1591      382648 :          pack_tmp = ISHFT(pack_tmp, -1)
    1592      382648 :          idata = idata + 1
    1593      382648 :          data_tmp = full_data(idata)
    1594      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1595      382648 :          data_tmp = IAND(data_tmp, mask_left(1))
    1596      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1597      382648 :          ipack = ipack + 1
    1598      382648 :          packed_data(ipack) = pack_tmp
    1599      382648 :          data_tmp = full_data(idata)
    1600      382648 :          pack_tmp = ISHFT(data_tmp, 62)
    1601      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1602      382648 :          idata = idata + 1
    1603      382648 :          data_tmp = full_data(idata)
    1604      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1605      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1606      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1607      382648 :          idata = idata + 1
    1608      382648 :          data_tmp = full_data(idata)
    1609      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1610      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1611      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1612      382648 :          idata = idata + 1
    1613      382648 :          data_tmp = full_data(idata)
    1614      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1615      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1616      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1617      382648 :          idata = idata + 1
    1618      382648 :          data_tmp = full_data(idata)
    1619      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1620      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1621      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1622      382648 :          idata = idata + 1
    1623      382648 :          data_tmp = full_data(idata)
    1624      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1625      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1626      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1627      382648 :          idata = idata + 1
    1628      382648 :          data_tmp = full_data(idata)
    1629      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1630      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1631      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1632      382648 :          idata = idata + 1
    1633      382648 :          data_tmp = full_data(idata)
    1634      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1635      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1636      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1637      382648 :          idata = idata + 1
    1638      382648 :          data_tmp = full_data(idata)
    1639      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1640      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1641      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1642      382648 :          idata = idata + 1
    1643      382648 :          data_tmp = full_data(idata)
    1644      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1645      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1646      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1647      382648 :          idata = idata + 1
    1648      382648 :          data_tmp = full_data(idata)
    1649      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1650      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1651      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1652      382648 :          idata = idata + 1
    1653      382648 :          data_tmp = full_data(idata)
    1654      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1655      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1656      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1657      382648 :          idata = idata + 1
    1658      382648 :          data_tmp = full_data(idata)
    1659      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1660      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1661      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1662      382648 :          idata = idata + 1
    1663      382648 :          data_tmp = full_data(idata)
    1664      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1665      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1666      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1667      382648 :          idata = idata + 1
    1668      382648 :          data_tmp = full_data(idata)
    1669      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1670      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1671      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1672      382648 :          idata = idata + 1
    1673      382648 :          data_tmp = full_data(idata)
    1674      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1675      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1676      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1677      382648 :          idata = idata + 1
    1678      382648 :          data_tmp = full_data(idata)
    1679      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1680      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1681      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1682      382648 :          idata = idata + 1
    1683      382648 :          data_tmp = full_data(idata)
    1684      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1685      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1686      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1687      382648 :          idata = idata + 1
    1688      382648 :          data_tmp = full_data(idata)
    1689      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1690      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1691      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1692      382648 :          idata = idata + 1
    1693      382648 :          data_tmp = full_data(idata)
    1694      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1695      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1696      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1697      382648 :          idata = idata + 1
    1698      382648 :          data_tmp = full_data(idata)
    1699      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1700      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1701      382648 :          pack_tmp = ISHFT(pack_tmp, -2)
    1702      382648 :          idata = idata + 1
    1703      382648 :          data_tmp = full_data(idata)
    1704      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1705      382648 :          data_tmp = IAND(data_tmp, mask_left(2))
    1706      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1707      382648 :          ipack = ipack + 1
    1708      382648 :          packed_data(ipack) = pack_tmp
    1709      382648 :          data_tmp = full_data(idata)
    1710      382648 :          pack_tmp = ISHFT(data_tmp, 63)
    1711      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1712      382648 :          idata = idata + 1
    1713      382648 :          data_tmp = full_data(idata)
    1714      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1715      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1716      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1717      382648 :          idata = idata + 1
    1718      382648 :          data_tmp = full_data(idata)
    1719      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1720      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1721      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1722      382648 :          idata = idata + 1
    1723      382648 :          data_tmp = full_data(idata)
    1724      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1725      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1726      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1727      382648 :          idata = idata + 1
    1728      382648 :          data_tmp = full_data(idata)
    1729      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1730      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1731      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1732      382648 :          idata = idata + 1
    1733      382648 :          data_tmp = full_data(idata)
    1734      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1735      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1736      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1737      382648 :          idata = idata + 1
    1738      382648 :          data_tmp = full_data(idata)
    1739      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1740      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1741      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1742      382648 :          idata = idata + 1
    1743      382648 :          data_tmp = full_data(idata)
    1744      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1745      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1746      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1747      382648 :          idata = idata + 1
    1748      382648 :          data_tmp = full_data(idata)
    1749      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1750      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1751      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1752      382648 :          idata = idata + 1
    1753      382648 :          data_tmp = full_data(idata)
    1754      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1755      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1756      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1757      382648 :          idata = idata + 1
    1758      382648 :          data_tmp = full_data(idata)
    1759      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1760      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1761      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1762      382648 :          idata = idata + 1
    1763      382648 :          data_tmp = full_data(idata)
    1764      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1765      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1766      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1767      382648 :          idata = idata + 1
    1768      382648 :          data_tmp = full_data(idata)
    1769      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1770      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1771      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1772      382648 :          idata = idata + 1
    1773      382648 :          data_tmp = full_data(idata)
    1774      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1775      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1776      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1777      382648 :          idata = idata + 1
    1778      382648 :          data_tmp = full_data(idata)
    1779      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1780      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1781      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1782      382648 :          idata = idata + 1
    1783      382648 :          data_tmp = full_data(idata)
    1784      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1785      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1786      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1787      382648 :          idata = idata + 1
    1788      382648 :          data_tmp = full_data(idata)
    1789      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1790      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1791      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1792      382648 :          idata = idata + 1
    1793      382648 :          data_tmp = full_data(idata)
    1794      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1795      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1796      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1797      382648 :          idata = idata + 1
    1798      382648 :          data_tmp = full_data(idata)
    1799      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1800      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1801      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1802      382648 :          idata = idata + 1
    1803      382648 :          data_tmp = full_data(idata)
    1804      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1805      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1806      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1807      382648 :          idata = idata + 1
    1808      382648 :          data_tmp = full_data(idata)
    1809      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1810      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1811      382648 :          pack_tmp = ISHFT(pack_tmp, -3)
    1812      382648 :          idata = idata + 1
    1813      382648 :          data_tmp = full_data(idata)
    1814      382648 :          data_tmp = ISHFT(data_tmp, 61)
    1815      382648 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1816             :          pack_tmp = ISHFT(pack_tmp, 0)
    1817      382648 :          pack_tmp = ISHFT(pack_tmp, 0)
    1818      382648 :          ipack = ipack + 1
    1819      382650 :          packed_data(ipack) = pack_tmp
    1820             :       END DO
    1821       23924 :       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       23924 :    END SUBROUTINE ints2bits_3
    1825             : 
    1826             : ! **************************************************************************************************
    1827             : !> \brief ...
    1828             : !> \param Ndata ...
    1829             : !> \param packed_data ...
    1830             : !> \param full_data ...
    1831             : ! **************************************************************************************************
    1832       96813 :    SUBROUTINE bits2ints_3(Ndata, packed_data, full_data)
    1833             :       INTEGER, INTENT(IN)                                :: Ndata
    1834             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    1835             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    1836             : 
    1837             :       INTEGER, PARAMETER                                 :: Nbits = 3
    1838             : 
    1839             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    1840             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    1841             : 
    1842       96813 :       ipack = 0
    1843       96813 :       idata = 0
    1844       96813 :       pack_tmp = 0
    1845       96813 :       Ndata_rep = (Ndata/64)*64
    1846       96813 :       DO kdata = 1, Ndata_rep, 64
    1847     1548056 :          idata = idata + 1
    1848     1548056 :          data_tmp = ISHFT(pack_tmp, 3)
    1849     1548056 :          ipack = ipack + 1
    1850     1548056 :          pack_tmp = packed_data(ipack)
    1851     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    1852     1548056 :          pack_tmp = ISHFT(pack_tmp, -3)
    1853     1548056 :          idata = idata + 1
    1854     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1855     1548056 :          full_data(idata) = data_tmp
    1856     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1857     1548056 :          idata = idata + 1
    1858     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1859     1548056 :          full_data(idata) = data_tmp
    1860     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1861     1548056 :          idata = idata + 1
    1862     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1863     1548056 :          full_data(idata) = data_tmp
    1864     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1865     1548056 :          idata = idata + 1
    1866     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1867     1548056 :          full_data(idata) = data_tmp
    1868     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1869     1548056 :          idata = idata + 1
    1870     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1871     1548056 :          full_data(idata) = data_tmp
    1872     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1873     1548056 :          idata = idata + 1
    1874     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1875     1548056 :          full_data(idata) = data_tmp
    1876     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1877     1548056 :          idata = idata + 1
    1878     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1879     1548056 :          full_data(idata) = data_tmp
    1880     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1881     1548056 :          idata = idata + 1
    1882     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1883     1548056 :          full_data(idata) = data_tmp
    1884     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1885     1548056 :          idata = idata + 1
    1886     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1887     1548056 :          full_data(idata) = data_tmp
    1888     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1889     1548056 :          idata = idata + 1
    1890     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1891     1548056 :          full_data(idata) = data_tmp
    1892     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1893     1548056 :          idata = idata + 1
    1894     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1895     1548056 :          full_data(idata) = data_tmp
    1896     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1897     1548056 :          idata = idata + 1
    1898     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1899     1548056 :          full_data(idata) = data_tmp
    1900     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1901     1548056 :          idata = idata + 1
    1902     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1903     1548056 :          full_data(idata) = data_tmp
    1904     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1905     1548056 :          idata = idata + 1
    1906     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1907     1548056 :          full_data(idata) = data_tmp
    1908     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1909     1548056 :          idata = idata + 1
    1910     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1911     1548056 :          full_data(idata) = data_tmp
    1912     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1913     1548056 :          idata = idata + 1
    1914     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1915     1548056 :          full_data(idata) = data_tmp
    1916     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1917     1548056 :          idata = idata + 1
    1918     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1919     1548056 :          full_data(idata) = data_tmp
    1920     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1921     1548056 :          idata = idata + 1
    1922     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1923     1548056 :          full_data(idata) = data_tmp
    1924     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1925     1548056 :          idata = idata + 1
    1926     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1927     1548056 :          full_data(idata) = data_tmp
    1928     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1929     1548056 :          idata = idata + 1
    1930     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1931     1548056 :          full_data(idata) = data_tmp
    1932     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1933     1548056 :          idata = idata + 1
    1934     1548056 :          data_tmp = ISHFT(pack_tmp, 2)
    1935     1548056 :          ipack = ipack + 1
    1936     1548056 :          pack_tmp = packed_data(ipack)
    1937     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1938     1548056 :          pack_tmp = ISHFT(pack_tmp, -2)
    1939     1548056 :          idata = idata + 1
    1940     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1941     1548056 :          full_data(idata) = data_tmp
    1942     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1943     1548056 :          idata = idata + 1
    1944     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1945     1548056 :          full_data(idata) = data_tmp
    1946     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1947     1548056 :          idata = idata + 1
    1948     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1949     1548056 :          full_data(idata) = data_tmp
    1950     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1951     1548056 :          idata = idata + 1
    1952     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1953     1548056 :          full_data(idata) = data_tmp
    1954     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1955     1548056 :          idata = idata + 1
    1956     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1957     1548056 :          full_data(idata) = data_tmp
    1958     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1959     1548056 :          idata = idata + 1
    1960     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1961     1548056 :          full_data(idata) = data_tmp
    1962     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1963     1548056 :          idata = idata + 1
    1964     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1965     1548056 :          full_data(idata) = data_tmp
    1966     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1967     1548056 :          idata = idata + 1
    1968     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1969     1548056 :          full_data(idata) = data_tmp
    1970     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1971     1548056 :          idata = idata + 1
    1972     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1973     1548056 :          full_data(idata) = data_tmp
    1974     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1975     1548056 :          idata = idata + 1
    1976     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1977     1548056 :          full_data(idata) = data_tmp
    1978     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1979     1548056 :          idata = idata + 1
    1980     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1981     1548056 :          full_data(idata) = data_tmp
    1982     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1983     1548056 :          idata = idata + 1
    1984     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1985     1548056 :          full_data(idata) = data_tmp
    1986     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1987     1548056 :          idata = idata + 1
    1988     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1989     1548056 :          full_data(idata) = data_tmp
    1990     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1991     1548056 :          idata = idata + 1
    1992     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1993     1548056 :          full_data(idata) = data_tmp
    1994     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1995     1548056 :          idata = idata + 1
    1996     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1997     1548056 :          full_data(idata) = data_tmp
    1998     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1999     1548056 :          idata = idata + 1
    2000     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2001     1548056 :          full_data(idata) = data_tmp
    2002     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2003     1548056 :          idata = idata + 1
    2004     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2005     1548056 :          full_data(idata) = data_tmp
    2006     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2007     1548056 :          idata = idata + 1
    2008     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2009     1548056 :          full_data(idata) = data_tmp
    2010     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2011     1548056 :          idata = idata + 1
    2012     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2013     1548056 :          full_data(idata) = data_tmp
    2014     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2015     1548056 :          idata = idata + 1
    2016     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2017     1548056 :          full_data(idata) = data_tmp
    2018     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2019     1548056 :          idata = idata + 1
    2020     1548056 :          data_tmp = ISHFT(pack_tmp, 1)
    2021     1548056 :          ipack = ipack + 1
    2022     1548056 :          pack_tmp = packed_data(ipack)
    2023     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    2024     1548056 :          pack_tmp = ISHFT(pack_tmp, -1)
    2025     1548056 :          idata = idata + 1
    2026     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2027     1548056 :          full_data(idata) = data_tmp
    2028     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2029     1548056 :          idata = idata + 1
    2030     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2031     1548056 :          full_data(idata) = data_tmp
    2032     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2033     1548056 :          idata = idata + 1
    2034     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2035     1548056 :          full_data(idata) = data_tmp
    2036     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2037     1548056 :          idata = idata + 1
    2038     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2039     1548056 :          full_data(idata) = data_tmp
    2040     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2041     1548056 :          idata = idata + 1
    2042     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2043     1548056 :          full_data(idata) = data_tmp
    2044     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2045     1548056 :          idata = idata + 1
    2046     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2047     1548056 :          full_data(idata) = data_tmp
    2048     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2049     1548056 :          idata = idata + 1
    2050     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2051     1548056 :          full_data(idata) = data_tmp
    2052     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2053     1548056 :          idata = idata + 1
    2054     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2055     1548056 :          full_data(idata) = data_tmp
    2056     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2057     1548056 :          idata = idata + 1
    2058     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2059     1548056 :          full_data(idata) = data_tmp
    2060     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2061     1548056 :          idata = idata + 1
    2062     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2063     1548056 :          full_data(idata) = data_tmp
    2064     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2065     1548056 :          idata = idata + 1
    2066     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2067     1548056 :          full_data(idata) = data_tmp
    2068     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2069     1548056 :          idata = idata + 1
    2070     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2071     1548056 :          full_data(idata) = data_tmp
    2072     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2073     1548056 :          idata = idata + 1
    2074     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2075     1548056 :          full_data(idata) = data_tmp
    2076     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2077     1548056 :          idata = idata + 1
    2078     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2079     1548056 :          full_data(idata) = data_tmp
    2080     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2081     1548056 :          idata = idata + 1
    2082     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2083     1548056 :          full_data(idata) = data_tmp
    2084     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2085     1548056 :          idata = idata + 1
    2086     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2087     1548056 :          full_data(idata) = data_tmp
    2088     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2089     1548056 :          idata = idata + 1
    2090     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2091     1548056 :          full_data(idata) = data_tmp
    2092     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2093     1548056 :          idata = idata + 1
    2094     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2095     1548056 :          full_data(idata) = data_tmp
    2096     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2097     1548056 :          idata = idata + 1
    2098     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2099     1548056 :          full_data(idata) = data_tmp
    2100     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2101     1548056 :          idata = idata + 1
    2102     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2103     1548056 :          full_data(idata) = data_tmp
    2104     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2105     1548056 :          idata = idata + 1
    2106     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2107     1548056 :          full_data(idata) = data_tmp
    2108     1548070 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2109             :       END DO
    2110       96813 :       IF (Ndata_rep < Ndata) THEN
    2111         112 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2112             :       END IF
    2113       96813 :    END SUBROUTINE bits2ints_3
    2114             : 
    2115             : ! **************************************************************************************************
    2116             : !> \brief ...
    2117             : !> \param Ndata ...
    2118             : !> \param packed_data ...
    2119             : !> \param full_data ...
    2120             : ! **************************************************************************************************
    2121       24027 :    SUBROUTINE ints2bits_4(Ndata, packed_data, full_data)
    2122             :       INTEGER, INTENT(IN)                                :: Ndata
    2123             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
    2124             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
    2125             : 
    2126             :       INTEGER, PARAMETER                                 :: Nbits = 4
    2127             : 
    2128             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    2129             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    2130             : 
    2131       24027 :       idata = 0
    2132       24027 :       ipack = 0
    2133       24027 :       Ndata_rep = (Ndata/64)*64
    2134       24027 :       DO kdata = 1, Ndata_rep, 64
    2135      384128 :          pack_tmp = 0
    2136      384128 :          idata = idata + 1
    2137      384128 :          data_tmp = full_data(idata)
    2138      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2139      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2140      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2141      384128 :          idata = idata + 1
    2142      384128 :          data_tmp = full_data(idata)
    2143      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2144      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2145      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2146      384128 :          idata = idata + 1
    2147      384128 :          data_tmp = full_data(idata)
    2148      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2149      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2150      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2151      384128 :          idata = idata + 1
    2152      384128 :          data_tmp = full_data(idata)
    2153      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2154      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2155      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2156      384128 :          idata = idata + 1
    2157      384128 :          data_tmp = full_data(idata)
    2158      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2159      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2160      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2161      384128 :          idata = idata + 1
    2162      384128 :          data_tmp = full_data(idata)
    2163      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2164      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2165      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2166      384128 :          idata = idata + 1
    2167      384128 :          data_tmp = full_data(idata)
    2168      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2169      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2170      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2171      384128 :          idata = idata + 1
    2172      384128 :          data_tmp = full_data(idata)
    2173      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2174      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2175      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2176      384128 :          idata = idata + 1
    2177      384128 :          data_tmp = full_data(idata)
    2178      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2179      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2180      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2181      384128 :          idata = idata + 1
    2182      384128 :          data_tmp = full_data(idata)
    2183      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2184      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2185      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2186      384128 :          idata = idata + 1
    2187      384128 :          data_tmp = full_data(idata)
    2188      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2189      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2190      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2191      384128 :          idata = idata + 1
    2192      384128 :          data_tmp = full_data(idata)
    2193      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2194      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2195      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2196      384128 :          idata = idata + 1
    2197      384128 :          data_tmp = full_data(idata)
    2198      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2199      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2200      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2201      384128 :          idata = idata + 1
    2202      384128 :          data_tmp = full_data(idata)
    2203      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2204      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2205      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2206      384128 :          idata = idata + 1
    2207      384128 :          data_tmp = full_data(idata)
    2208      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2209      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2210      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2211      384128 :          idata = idata + 1
    2212      384128 :          data_tmp = full_data(idata)
    2213      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2214      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2215      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2216      384128 :          idata = idata + 1
    2217      384128 :          data_tmp = full_data(idata)
    2218             :          data_tmp = ISHFT(data_tmp, 60)
    2219      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2220      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2221      384128 :          ipack = ipack + 1
    2222      384128 :          packed_data(ipack) = pack_tmp
    2223      384128 :          data_tmp = full_data(idata)
    2224      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2225      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2226      384128 :          idata = idata + 1
    2227      384128 :          data_tmp = full_data(idata)
    2228      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2229      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2230      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2231      384128 :          idata = idata + 1
    2232      384128 :          data_tmp = full_data(idata)
    2233      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2234      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2235      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2236      384128 :          idata = idata + 1
    2237      384128 :          data_tmp = full_data(idata)
    2238      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2239      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2240      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2241      384128 :          idata = idata + 1
    2242      384128 :          data_tmp = full_data(idata)
    2243      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2244      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2245      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2246      384128 :          idata = idata + 1
    2247      384128 :          data_tmp = full_data(idata)
    2248      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2249      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2250      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2251      384128 :          idata = idata + 1
    2252      384128 :          data_tmp = full_data(idata)
    2253      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2254      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2255      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2256      384128 :          idata = idata + 1
    2257      384128 :          data_tmp = full_data(idata)
    2258      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2259      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2260      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2261      384128 :          idata = idata + 1
    2262      384128 :          data_tmp = full_data(idata)
    2263      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2264      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2265      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2266      384128 :          idata = idata + 1
    2267      384128 :          data_tmp = full_data(idata)
    2268      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2269      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2270      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2271      384128 :          idata = idata + 1
    2272      384128 :          data_tmp = full_data(idata)
    2273      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2274      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2275      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2276      384128 :          idata = idata + 1
    2277      384128 :          data_tmp = full_data(idata)
    2278      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2279      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2280      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2281      384128 :          idata = idata + 1
    2282      384128 :          data_tmp = full_data(idata)
    2283      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2284      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2285      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2286      384128 :          idata = idata + 1
    2287      384128 :          data_tmp = full_data(idata)
    2288      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2289      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2290      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2291      384128 :          idata = idata + 1
    2292      384128 :          data_tmp = full_data(idata)
    2293      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2294      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2295      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2296      384128 :          idata = idata + 1
    2297      384128 :          data_tmp = full_data(idata)
    2298      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2299      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2300      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2301      384128 :          idata = idata + 1
    2302      384128 :          data_tmp = full_data(idata)
    2303             :          data_tmp = ISHFT(data_tmp, 60)
    2304      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2305      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2306      384128 :          ipack = ipack + 1
    2307      384128 :          packed_data(ipack) = pack_tmp
    2308      384128 :          data_tmp = full_data(idata)
    2309      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2310      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2311      384128 :          idata = idata + 1
    2312      384128 :          data_tmp = full_data(idata)
    2313      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2314      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2315      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2316      384128 :          idata = idata + 1
    2317      384128 :          data_tmp = full_data(idata)
    2318      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2319      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2320      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2321      384128 :          idata = idata + 1
    2322      384128 :          data_tmp = full_data(idata)
    2323      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2324      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2325      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2326      384128 :          idata = idata + 1
    2327      384128 :          data_tmp = full_data(idata)
    2328      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2329      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2330      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2331      384128 :          idata = idata + 1
    2332      384128 :          data_tmp = full_data(idata)
    2333      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2334      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2335      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2336      384128 :          idata = idata + 1
    2337      384128 :          data_tmp = full_data(idata)
    2338      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2339      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2340      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2341      384128 :          idata = idata + 1
    2342      384128 :          data_tmp = full_data(idata)
    2343      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2344      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2345      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2346      384128 :          idata = idata + 1
    2347      384128 :          data_tmp = full_data(idata)
    2348      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2349      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2350      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2351      384128 :          idata = idata + 1
    2352      384128 :          data_tmp = full_data(idata)
    2353      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2354      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2355      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2356      384128 :          idata = idata + 1
    2357      384128 :          data_tmp = full_data(idata)
    2358      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2359      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2360      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2361      384128 :          idata = idata + 1
    2362      384128 :          data_tmp = full_data(idata)
    2363      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2364      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2365      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2366      384128 :          idata = idata + 1
    2367      384128 :          data_tmp = full_data(idata)
    2368      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2369      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2370      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2371      384128 :          idata = idata + 1
    2372      384128 :          data_tmp = full_data(idata)
    2373      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2374      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2375      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2376      384128 :          idata = idata + 1
    2377      384128 :          data_tmp = full_data(idata)
    2378      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2379      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2380      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2381      384128 :          idata = idata + 1
    2382      384128 :          data_tmp = full_data(idata)
    2383      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2384      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2385      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2386      384128 :          idata = idata + 1
    2387      384128 :          data_tmp = full_data(idata)
    2388             :          data_tmp = ISHFT(data_tmp, 60)
    2389      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2390      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2391      384128 :          ipack = ipack + 1
    2392      384128 :          packed_data(ipack) = pack_tmp
    2393      384128 :          data_tmp = full_data(idata)
    2394      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2395      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2396      384128 :          idata = idata + 1
    2397      384128 :          data_tmp = full_data(idata)
    2398      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2399      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2400      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2401      384128 :          idata = idata + 1
    2402      384128 :          data_tmp = full_data(idata)
    2403      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2404      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2405      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2406      384128 :          idata = idata + 1
    2407      384128 :          data_tmp = full_data(idata)
    2408      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2409      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2410      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2411      384128 :          idata = idata + 1
    2412      384128 :          data_tmp = full_data(idata)
    2413      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2414      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2415      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2416      384128 :          idata = idata + 1
    2417      384128 :          data_tmp = full_data(idata)
    2418      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2419      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2420      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2421      384128 :          idata = idata + 1
    2422      384128 :          data_tmp = full_data(idata)
    2423      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2424      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2425      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2426      384128 :          idata = idata + 1
    2427      384128 :          data_tmp = full_data(idata)
    2428      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2429      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2430      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2431      384128 :          idata = idata + 1
    2432      384128 :          data_tmp = full_data(idata)
    2433      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2434      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2435      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2436      384128 :          idata = idata + 1
    2437      384128 :          data_tmp = full_data(idata)
    2438      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2439      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2440      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2441      384128 :          idata = idata + 1
    2442      384128 :          data_tmp = full_data(idata)
    2443      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2444      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2445      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2446      384128 :          idata = idata + 1
    2447      384128 :          data_tmp = full_data(idata)
    2448      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2449      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2450      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2451      384128 :          idata = idata + 1
    2452      384128 :          data_tmp = full_data(idata)
    2453      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2454      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2455      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2456      384128 :          idata = idata + 1
    2457      384128 :          data_tmp = full_data(idata)
    2458      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2459      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2460      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2461      384128 :          idata = idata + 1
    2462      384128 :          data_tmp = full_data(idata)
    2463      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2464      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2465      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2466      384128 :          idata = idata + 1
    2467      384128 :          data_tmp = full_data(idata)
    2468      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2469      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2470             :          pack_tmp = ISHFT(pack_tmp, 0)
    2471      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2472      384128 :          ipack = ipack + 1
    2473      384147 :          packed_data(ipack) = pack_tmp
    2474             :       END DO
    2475       24027 :       IF (Ndata_rep < Ndata) THEN
    2476           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2477             :       END IF
    2478       24027 :    END SUBROUTINE ints2bits_4
    2479             : 
    2480             : ! **************************************************************************************************
    2481             : !> \brief ...
    2482             : !> \param Ndata ...
    2483             : !> \param packed_data ...
    2484             : !> \param full_data ...
    2485             : ! **************************************************************************************************
    2486       97628 :    SUBROUTINE bits2ints_4(Ndata, packed_data, full_data)
    2487             :       INTEGER, INTENT(IN)                                :: Ndata
    2488             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    2489             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    2490             : 
    2491             :       INTEGER, PARAMETER                                 :: Nbits = 4
    2492             : 
    2493             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    2494             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    2495             : 
    2496       97628 :       ipack = 0
    2497       97628 :       idata = 0
    2498       97628 :       pack_tmp = 0
    2499       97628 :       Ndata_rep = (Ndata/64)*64
    2500       97628 :       DO kdata = 1, Ndata_rep, 64
    2501     1560144 :          idata = idata + 1
    2502     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2503     1560144 :          ipack = ipack + 1
    2504     1560144 :          pack_tmp = packed_data(ipack)
    2505     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2506     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2507     1560144 :          idata = idata + 1
    2508     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2509     1560144 :          full_data(idata) = data_tmp
    2510     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2511     1560144 :          idata = idata + 1
    2512     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2513     1560144 :          full_data(idata) = data_tmp
    2514     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2515     1560144 :          idata = idata + 1
    2516     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2517     1560144 :          full_data(idata) = data_tmp
    2518     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2519     1560144 :          idata = idata + 1
    2520     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2521     1560144 :          full_data(idata) = data_tmp
    2522     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2523     1560144 :          idata = idata + 1
    2524     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2525     1560144 :          full_data(idata) = data_tmp
    2526     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2527     1560144 :          idata = idata + 1
    2528     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2529     1560144 :          full_data(idata) = data_tmp
    2530     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2531     1560144 :          idata = idata + 1
    2532     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2533     1560144 :          full_data(idata) = data_tmp
    2534     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2535     1560144 :          idata = idata + 1
    2536     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2537     1560144 :          full_data(idata) = data_tmp
    2538     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2539     1560144 :          idata = idata + 1
    2540     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2541     1560144 :          full_data(idata) = data_tmp
    2542     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2543     1560144 :          idata = idata + 1
    2544     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2545     1560144 :          full_data(idata) = data_tmp
    2546     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2547     1560144 :          idata = idata + 1
    2548     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2549     1560144 :          full_data(idata) = data_tmp
    2550     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2551     1560144 :          idata = idata + 1
    2552     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2553     1560144 :          full_data(idata) = data_tmp
    2554     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2555     1560144 :          idata = idata + 1
    2556     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2557     1560144 :          full_data(idata) = data_tmp
    2558     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2559     1560144 :          idata = idata + 1
    2560     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2561     1560144 :          full_data(idata) = data_tmp
    2562     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2563     1560144 :          idata = idata + 1
    2564     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2565     1560144 :          full_data(idata) = data_tmp
    2566     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2567     1560144 :          idata = idata + 1
    2568     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2569     1560144 :          ipack = ipack + 1
    2570     1560144 :          pack_tmp = packed_data(ipack)
    2571     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2572     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2573     1560144 :          idata = idata + 1
    2574     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2575     1560144 :          full_data(idata) = data_tmp
    2576     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2577     1560144 :          idata = idata + 1
    2578     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2579     1560144 :          full_data(idata) = data_tmp
    2580     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2581     1560144 :          idata = idata + 1
    2582     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2583     1560144 :          full_data(idata) = data_tmp
    2584     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2585     1560144 :          idata = idata + 1
    2586     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2587     1560144 :          full_data(idata) = data_tmp
    2588     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2589     1560144 :          idata = idata + 1
    2590     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2591     1560144 :          full_data(idata) = data_tmp
    2592     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2593     1560144 :          idata = idata + 1
    2594     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2595     1560144 :          full_data(idata) = data_tmp
    2596     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2597     1560144 :          idata = idata + 1
    2598     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2599     1560144 :          full_data(idata) = data_tmp
    2600     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2601     1560144 :          idata = idata + 1
    2602     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2603     1560144 :          full_data(idata) = data_tmp
    2604     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2605     1560144 :          idata = idata + 1
    2606     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2607     1560144 :          full_data(idata) = data_tmp
    2608     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2609     1560144 :          idata = idata + 1
    2610     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2611     1560144 :          full_data(idata) = data_tmp
    2612     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2613     1560144 :          idata = idata + 1
    2614     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2615     1560144 :          full_data(idata) = data_tmp
    2616     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2617     1560144 :          idata = idata + 1
    2618     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2619     1560144 :          full_data(idata) = data_tmp
    2620     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2621     1560144 :          idata = idata + 1
    2622     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2623     1560144 :          full_data(idata) = data_tmp
    2624     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2625     1560144 :          idata = idata + 1
    2626     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2627     1560144 :          full_data(idata) = data_tmp
    2628     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2629     1560144 :          idata = idata + 1
    2630     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2631     1560144 :          full_data(idata) = data_tmp
    2632     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2633     1560144 :          idata = idata + 1
    2634     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2635     1560144 :          ipack = ipack + 1
    2636     1560144 :          pack_tmp = packed_data(ipack)
    2637     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2638     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2639     1560144 :          idata = idata + 1
    2640     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2641     1560144 :          full_data(idata) = data_tmp
    2642     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2643     1560144 :          idata = idata + 1
    2644     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2645     1560144 :          full_data(idata) = data_tmp
    2646     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2647     1560144 :          idata = idata + 1
    2648     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2649     1560144 :          full_data(idata) = data_tmp
    2650     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2651     1560144 :          idata = idata + 1
    2652     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2653     1560144 :          full_data(idata) = data_tmp
    2654     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2655     1560144 :          idata = idata + 1
    2656     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2657     1560144 :          full_data(idata) = data_tmp
    2658     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2659     1560144 :          idata = idata + 1
    2660     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2661     1560144 :          full_data(idata) = data_tmp
    2662     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2663     1560144 :          idata = idata + 1
    2664     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2665     1560144 :          full_data(idata) = data_tmp
    2666     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2667     1560144 :          idata = idata + 1
    2668     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2669     1560144 :          full_data(idata) = data_tmp
    2670     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2671     1560144 :          idata = idata + 1
    2672     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2673     1560144 :          full_data(idata) = data_tmp
    2674     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2675     1560144 :          idata = idata + 1
    2676     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2677     1560144 :          full_data(idata) = data_tmp
    2678     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2679     1560144 :          idata = idata + 1
    2680     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2681     1560144 :          full_data(idata) = data_tmp
    2682     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2683     1560144 :          idata = idata + 1
    2684     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2685     1560144 :          full_data(idata) = data_tmp
    2686     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2687     1560144 :          idata = idata + 1
    2688     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2689     1560144 :          full_data(idata) = data_tmp
    2690     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2691     1560144 :          idata = idata + 1
    2692     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2693     1560144 :          full_data(idata) = data_tmp
    2694     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2695     1560144 :          idata = idata + 1
    2696     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2697     1560144 :          full_data(idata) = data_tmp
    2698     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2699     1560144 :          idata = idata + 1
    2700     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2701     1560144 :          ipack = ipack + 1
    2702     1560144 :          pack_tmp = packed_data(ipack)
    2703     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2704     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2705     1560144 :          idata = idata + 1
    2706     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2707     1560144 :          full_data(idata) = data_tmp
    2708     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2709     1560144 :          idata = idata + 1
    2710     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2711     1560144 :          full_data(idata) = data_tmp
    2712     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2713     1560144 :          idata = idata + 1
    2714     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2715     1560144 :          full_data(idata) = data_tmp
    2716     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2717     1560144 :          idata = idata + 1
    2718     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2719     1560144 :          full_data(idata) = data_tmp
    2720     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2721     1560144 :          idata = idata + 1
    2722     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2723     1560144 :          full_data(idata) = data_tmp
    2724     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2725     1560144 :          idata = idata + 1
    2726     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2727     1560144 :          full_data(idata) = data_tmp
    2728     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2729     1560144 :          idata = idata + 1
    2730     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2731     1560144 :          full_data(idata) = data_tmp
    2732     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2733     1560144 :          idata = idata + 1
    2734     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2735     1560144 :          full_data(idata) = data_tmp
    2736     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2737     1560144 :          idata = idata + 1
    2738     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2739     1560144 :          full_data(idata) = data_tmp
    2740     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2741     1560144 :          idata = idata + 1
    2742     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2743     1560144 :          full_data(idata) = data_tmp
    2744     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2745     1560144 :          idata = idata + 1
    2746     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2747     1560144 :          full_data(idata) = data_tmp
    2748     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2749     1560144 :          idata = idata + 1
    2750     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2751     1560144 :          full_data(idata) = data_tmp
    2752     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2753     1560144 :          idata = idata + 1
    2754     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2755     1560144 :          full_data(idata) = data_tmp
    2756     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2757     1560144 :          idata = idata + 1
    2758     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2759     1560144 :          full_data(idata) = data_tmp
    2760     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2761     1560144 :          idata = idata + 1
    2762     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2763     1560144 :          full_data(idata) = data_tmp
    2764     1560263 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2765             :       END DO
    2766       97628 :       IF (Ndata_rep < Ndata) THEN
    2767           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2768             :       END IF
    2769       97628 :    END SUBROUTINE bits2ints_4
    2770             : 
    2771             : ! **************************************************************************************************
    2772             : !> \brief ...
    2773             : !> \param Ndata ...
    2774             : !> \param packed_data ...
    2775             : !> \param full_data ...
    2776             : ! **************************************************************************************************
    2777       23911 :    SUBROUTINE ints2bits_5(Ndata, packed_data, full_data)
    2778             :       INTEGER, INTENT(IN)                                :: Ndata
    2779             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
    2780             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
    2781             : 
    2782             :       INTEGER, PARAMETER                                 :: Nbits = 5
    2783             : 
    2784             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    2785             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    2786             : 
    2787       23911 :       idata = 0
    2788       23911 :       ipack = 0
    2789       23911 :       Ndata_rep = (Ndata/64)*64
    2790       23911 :       DO kdata = 1, Ndata_rep, 64
    2791      382357 :          pack_tmp = 0
    2792      382357 :          idata = idata + 1
    2793      382357 :          data_tmp = full_data(idata)
    2794      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2795      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2796      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2797      382357 :          idata = idata + 1
    2798      382357 :          data_tmp = full_data(idata)
    2799      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2800      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2801      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2802      382357 :          idata = idata + 1
    2803      382357 :          data_tmp = full_data(idata)
    2804      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2805      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2806      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2807      382357 :          idata = idata + 1
    2808      382357 :          data_tmp = full_data(idata)
    2809      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2810      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2811      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2812      382357 :          idata = idata + 1
    2813      382357 :          data_tmp = full_data(idata)
    2814      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2815      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2816      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2817      382357 :          idata = idata + 1
    2818      382357 :          data_tmp = full_data(idata)
    2819      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2820      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2821      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2822      382357 :          idata = idata + 1
    2823      382357 :          data_tmp = full_data(idata)
    2824      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2825      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2826      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2827      382357 :          idata = idata + 1
    2828      382357 :          data_tmp = full_data(idata)
    2829      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2830      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2831      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2832      382357 :          idata = idata + 1
    2833      382357 :          data_tmp = full_data(idata)
    2834      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2835      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2836      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2837      382357 :          idata = idata + 1
    2838      382357 :          data_tmp = full_data(idata)
    2839      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2840      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2841      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2842      382357 :          idata = idata + 1
    2843      382357 :          data_tmp = full_data(idata)
    2844      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2845      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2846      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2847      382357 :          idata = idata + 1
    2848      382357 :          data_tmp = full_data(idata)
    2849      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2850      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2851      382357 :          pack_tmp = ISHFT(pack_tmp, -4)
    2852      382357 :          idata = idata + 1
    2853      382357 :          data_tmp = full_data(idata)
    2854      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2855      382357 :          data_tmp = IAND(data_tmp, mask_left(4))
    2856      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2857      382357 :          ipack = ipack + 1
    2858      382357 :          packed_data(ipack) = pack_tmp
    2859      382357 :          data_tmp = full_data(idata)
    2860      382357 :          pack_tmp = ISHFT(data_tmp, 63)
    2861      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2862      382357 :          idata = idata + 1
    2863      382357 :          data_tmp = full_data(idata)
    2864      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2865      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2866      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2867      382357 :          idata = idata + 1
    2868      382357 :          data_tmp = full_data(idata)
    2869      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2870      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2871      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2872      382357 :          idata = idata + 1
    2873      382357 :          data_tmp = full_data(idata)
    2874      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2875      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2876      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2877      382357 :          idata = idata + 1
    2878      382357 :          data_tmp = full_data(idata)
    2879      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2880      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2881      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2882      382357 :          idata = idata + 1
    2883      382357 :          data_tmp = full_data(idata)
    2884      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2885      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2886      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2887      382357 :          idata = idata + 1
    2888      382357 :          data_tmp = full_data(idata)
    2889      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2890      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2891      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2892      382357 :          idata = idata + 1
    2893      382357 :          data_tmp = full_data(idata)
    2894      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2895      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2896      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2897      382357 :          idata = idata + 1
    2898      382357 :          data_tmp = full_data(idata)
    2899      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2900      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2901      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2902      382357 :          idata = idata + 1
    2903      382357 :          data_tmp = full_data(idata)
    2904      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2905      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2906      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2907      382357 :          idata = idata + 1
    2908      382357 :          data_tmp = full_data(idata)
    2909      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2910      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2911      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2912      382357 :          idata = idata + 1
    2913      382357 :          data_tmp = full_data(idata)
    2914      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2915      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2916      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2917      382357 :          idata = idata + 1
    2918      382357 :          data_tmp = full_data(idata)
    2919      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2920      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2921      382357 :          pack_tmp = ISHFT(pack_tmp, -3)
    2922      382357 :          idata = idata + 1
    2923      382357 :          data_tmp = full_data(idata)
    2924      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2925      382357 :          data_tmp = IAND(data_tmp, mask_left(3))
    2926      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2927      382357 :          ipack = ipack + 1
    2928      382357 :          packed_data(ipack) = pack_tmp
    2929      382357 :          data_tmp = full_data(idata)
    2930      382357 :          pack_tmp = ISHFT(data_tmp, 62)
    2931      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2932      382357 :          idata = idata + 1
    2933      382357 :          data_tmp = full_data(idata)
    2934      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2935      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2936      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2937      382357 :          idata = idata + 1
    2938      382357 :          data_tmp = full_data(idata)
    2939      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2940      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2941      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2942      382357 :          idata = idata + 1
    2943      382357 :          data_tmp = full_data(idata)
    2944      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2945      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2946      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2947      382357 :          idata = idata + 1
    2948      382357 :          data_tmp = full_data(idata)
    2949      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2950      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2951      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2952      382357 :          idata = idata + 1
    2953      382357 :          data_tmp = full_data(idata)
    2954      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2955      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2956      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2957      382357 :          idata = idata + 1
    2958      382357 :          data_tmp = full_data(idata)
    2959      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2960      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2961      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2962      382357 :          idata = idata + 1
    2963      382357 :          data_tmp = full_data(idata)
    2964      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2965      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2966      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2967      382357 :          idata = idata + 1
    2968      382357 :          data_tmp = full_data(idata)
    2969      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2970      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2971      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2972      382357 :          idata = idata + 1
    2973      382357 :          data_tmp = full_data(idata)
    2974      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2975      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2976      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2977      382357 :          idata = idata + 1
    2978      382357 :          data_tmp = full_data(idata)
    2979      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2980      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2981      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2982      382357 :          idata = idata + 1
    2983      382357 :          data_tmp = full_data(idata)
    2984      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2985      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2986      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2987      382357 :          idata = idata + 1
    2988      382357 :          data_tmp = full_data(idata)
    2989      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2990      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2991      382357 :          pack_tmp = ISHFT(pack_tmp, -2)
    2992      382357 :          idata = idata + 1
    2993      382357 :          data_tmp = full_data(idata)
    2994      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2995      382357 :          data_tmp = IAND(data_tmp, mask_left(2))
    2996      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2997      382357 :          ipack = ipack + 1
    2998      382357 :          packed_data(ipack) = pack_tmp
    2999      382357 :          data_tmp = full_data(idata)
    3000      382357 :          pack_tmp = ISHFT(data_tmp, 61)
    3001      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3002      382357 :          idata = idata + 1
    3003      382357 :          data_tmp = full_data(idata)
    3004      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3005      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3006      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3007      382357 :          idata = idata + 1
    3008      382357 :          data_tmp = full_data(idata)
    3009      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3010      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3011      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3012      382357 :          idata = idata + 1
    3013      382357 :          data_tmp = full_data(idata)
    3014      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3015      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3016      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3017      382357 :          idata = idata + 1
    3018      382357 :          data_tmp = full_data(idata)
    3019      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3020      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3021      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3022      382357 :          idata = idata + 1
    3023      382357 :          data_tmp = full_data(idata)
    3024      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3025      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3026      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3027      382357 :          idata = idata + 1
    3028      382357 :          data_tmp = full_data(idata)
    3029      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3030      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3031      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3032      382357 :          idata = idata + 1
    3033      382357 :          data_tmp = full_data(idata)
    3034      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3035      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3036      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3037      382357 :          idata = idata + 1
    3038      382357 :          data_tmp = full_data(idata)
    3039      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3040      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3041      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3042      382357 :          idata = idata + 1
    3043      382357 :          data_tmp = full_data(idata)
    3044      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3045      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3046      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3047      382357 :          idata = idata + 1
    3048      382357 :          data_tmp = full_data(idata)
    3049      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3050      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3051      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3052      382357 :          idata = idata + 1
    3053      382357 :          data_tmp = full_data(idata)
    3054      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3055      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3056      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3057      382357 :          idata = idata + 1
    3058      382357 :          data_tmp = full_data(idata)
    3059      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3060      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3061      382357 :          pack_tmp = ISHFT(pack_tmp, -1)
    3062      382357 :          idata = idata + 1
    3063      382357 :          data_tmp = full_data(idata)
    3064      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3065      382357 :          data_tmp = IAND(data_tmp, mask_left(1))
    3066      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3067      382357 :          ipack = ipack + 1
    3068      382357 :          packed_data(ipack) = pack_tmp
    3069      382357 :          data_tmp = full_data(idata)
    3070      382357 :          pack_tmp = ISHFT(data_tmp, 60)
    3071      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3072      382357 :          idata = idata + 1
    3073      382357 :          data_tmp = full_data(idata)
    3074      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3075      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3076      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3077      382357 :          idata = idata + 1
    3078      382357 :          data_tmp = full_data(idata)
    3079      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3080      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3081      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3082      382357 :          idata = idata + 1
    3083      382357 :          data_tmp = full_data(idata)
    3084      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3085      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3086      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3087      382357 :          idata = idata + 1
    3088      382357 :          data_tmp = full_data(idata)
    3089      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3090      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3091      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3092      382357 :          idata = idata + 1
    3093      382357 :          data_tmp = full_data(idata)
    3094      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3095      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3096      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3097      382357 :          idata = idata + 1
    3098      382357 :          data_tmp = full_data(idata)
    3099      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3100      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3101      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3102      382357 :          idata = idata + 1
    3103      382357 :          data_tmp = full_data(idata)
    3104      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3105      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3106      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3107      382357 :          idata = idata + 1
    3108      382357 :          data_tmp = full_data(idata)
    3109      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3110      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3111      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3112      382357 :          idata = idata + 1
    3113      382357 :          data_tmp = full_data(idata)
    3114      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3115      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3116      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3117      382357 :          idata = idata + 1
    3118      382357 :          data_tmp = full_data(idata)
    3119      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3120      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3121      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3122      382357 :          idata = idata + 1
    3123      382357 :          data_tmp = full_data(idata)
    3124      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3125      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3126      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3127      382357 :          idata = idata + 1
    3128      382357 :          data_tmp = full_data(idata)
    3129      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3130      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3131             :          pack_tmp = ISHFT(pack_tmp, 0)
    3132      382357 :          pack_tmp = ISHFT(pack_tmp, 0)
    3133      382357 :          ipack = ipack + 1
    3134      382358 :          packed_data(ipack) = pack_tmp
    3135             :       END DO
    3136       23911 :       IF (Ndata_rep < Ndata) THEN
    3137          22 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3138             :       END IF
    3139       23911 :    END SUBROUTINE ints2bits_5
    3140             : 
    3141             : ! **************************************************************************************************
    3142             : !> \brief ...
    3143             : !> \param Ndata ...
    3144             : !> \param packed_data ...
    3145             : !> \param full_data ...
    3146             : ! **************************************************************************************************
    3147       96652 :    SUBROUTINE bits2ints_5(Ndata, packed_data, full_data)
    3148             :       INTEGER, INTENT(IN)                                :: Ndata
    3149             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    3150             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    3151             : 
    3152             :       INTEGER, PARAMETER                                 :: Nbits = 5
    3153             : 
    3154             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    3155             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    3156             : 
    3157       96652 :       ipack = 0
    3158       96652 :       idata = 0
    3159       96652 :       pack_tmp = 0
    3160       96652 :       Ndata_rep = (Ndata/64)*64
    3161       96652 :       DO kdata = 1, Ndata_rep, 64
    3162     1545324 :          idata = idata + 1
    3163     1545324 :          data_tmp = ISHFT(pack_tmp, 5)
    3164     1545324 :          ipack = ipack + 1
    3165     1545324 :          pack_tmp = packed_data(ipack)
    3166     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    3167     1545324 :          pack_tmp = ISHFT(pack_tmp, -5)
    3168     1545324 :          idata = idata + 1
    3169     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3170     1545324 :          full_data(idata) = data_tmp
    3171     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3172     1545324 :          idata = idata + 1
    3173     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3174     1545324 :          full_data(idata) = data_tmp
    3175     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3176     1545324 :          idata = idata + 1
    3177     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3178     1545324 :          full_data(idata) = data_tmp
    3179     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3180     1545324 :          idata = idata + 1
    3181     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3182     1545324 :          full_data(idata) = data_tmp
    3183     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3184     1545324 :          idata = idata + 1
    3185     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3186     1545324 :          full_data(idata) = data_tmp
    3187     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3188     1545324 :          idata = idata + 1
    3189     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3190     1545324 :          full_data(idata) = data_tmp
    3191     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3192     1545324 :          idata = idata + 1
    3193     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3194     1545324 :          full_data(idata) = data_tmp
    3195     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3196     1545324 :          idata = idata + 1
    3197     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3198     1545324 :          full_data(idata) = data_tmp
    3199     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3200     1545324 :          idata = idata + 1
    3201     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3202     1545324 :          full_data(idata) = data_tmp
    3203     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3204     1545324 :          idata = idata + 1
    3205     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3206     1545324 :          full_data(idata) = data_tmp
    3207     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3208     1545324 :          idata = idata + 1
    3209     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3210     1545324 :          full_data(idata) = data_tmp
    3211     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3212     1545324 :          idata = idata + 1
    3213     1545324 :          data_tmp = ISHFT(pack_tmp, 1)
    3214     1545324 :          ipack = ipack + 1
    3215     1545324 :          pack_tmp = packed_data(ipack)
    3216     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    3217     1545324 :          pack_tmp = ISHFT(pack_tmp, -1)
    3218     1545324 :          idata = idata + 1
    3219     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3220     1545324 :          full_data(idata) = data_tmp
    3221     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3222     1545324 :          idata = idata + 1
    3223     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3224     1545324 :          full_data(idata) = data_tmp
    3225     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3226     1545324 :          idata = idata + 1
    3227     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3228     1545324 :          full_data(idata) = data_tmp
    3229     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3230     1545324 :          idata = idata + 1
    3231     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3232     1545324 :          full_data(idata) = data_tmp
    3233     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3234     1545324 :          idata = idata + 1
    3235     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3236     1545324 :          full_data(idata) = data_tmp
    3237     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3238     1545324 :          idata = idata + 1
    3239     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3240     1545324 :          full_data(idata) = data_tmp
    3241     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3242     1545324 :          idata = idata + 1
    3243     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3244     1545324 :          full_data(idata) = data_tmp
    3245     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3246     1545324 :          idata = idata + 1
    3247     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3248     1545324 :          full_data(idata) = data_tmp
    3249     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3250     1545324 :          idata = idata + 1
    3251     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3252     1545324 :          full_data(idata) = data_tmp
    3253     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3254     1545324 :          idata = idata + 1
    3255     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3256     1545324 :          full_data(idata) = data_tmp
    3257     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3258     1545324 :          idata = idata + 1
    3259     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3260     1545324 :          full_data(idata) = data_tmp
    3261     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3262     1545324 :          idata = idata + 1
    3263     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3264     1545324 :          full_data(idata) = data_tmp
    3265     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3266     1545324 :          idata = idata + 1
    3267     1545324 :          data_tmp = ISHFT(pack_tmp, 2)
    3268     1545324 :          ipack = ipack + 1
    3269     1545324 :          pack_tmp = packed_data(ipack)
    3270     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3271     1545324 :          pack_tmp = ISHFT(pack_tmp, -2)
    3272     1545324 :          idata = idata + 1
    3273     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3274     1545324 :          full_data(idata) = data_tmp
    3275     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3276     1545324 :          idata = idata + 1
    3277     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3278     1545324 :          full_data(idata) = data_tmp
    3279     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3280     1545324 :          idata = idata + 1
    3281     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3282     1545324 :          full_data(idata) = data_tmp
    3283     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3284     1545324 :          idata = idata + 1
    3285     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3286     1545324 :          full_data(idata) = data_tmp
    3287     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3288     1545324 :          idata = idata + 1
    3289     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3290     1545324 :          full_data(idata) = data_tmp
    3291     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3292     1545324 :          idata = idata + 1
    3293     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3294     1545324 :          full_data(idata) = data_tmp
    3295     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3296     1545324 :          idata = idata + 1
    3297     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3298     1545324 :          full_data(idata) = data_tmp
    3299     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3300     1545324 :          idata = idata + 1
    3301     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3302     1545324 :          full_data(idata) = data_tmp
    3303     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3304     1545324 :          idata = idata + 1
    3305     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3306     1545324 :          full_data(idata) = data_tmp
    3307     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3308     1545324 :          idata = idata + 1
    3309     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3310     1545324 :          full_data(idata) = data_tmp
    3311     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3312     1545324 :          idata = idata + 1
    3313     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3314     1545324 :          full_data(idata) = data_tmp
    3315     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3316     1545324 :          idata = idata + 1
    3317     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3318     1545324 :          full_data(idata) = data_tmp
    3319     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3320     1545324 :          idata = idata + 1
    3321     1545324 :          data_tmp = ISHFT(pack_tmp, 3)
    3322     1545324 :          ipack = ipack + 1
    3323     1545324 :          pack_tmp = packed_data(ipack)
    3324     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    3325     1545324 :          pack_tmp = ISHFT(pack_tmp, -3)
    3326     1545324 :          idata = idata + 1
    3327     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3328     1545324 :          full_data(idata) = data_tmp
    3329     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3330     1545324 :          idata = idata + 1
    3331     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3332     1545324 :          full_data(idata) = data_tmp
    3333     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3334     1545324 :          idata = idata + 1
    3335     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3336     1545324 :          full_data(idata) = data_tmp
    3337     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3338     1545324 :          idata = idata + 1
    3339     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3340     1545324 :          full_data(idata) = data_tmp
    3341     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3342     1545324 :          idata = idata + 1
    3343     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3344     1545324 :          full_data(idata) = data_tmp
    3345     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3346     1545324 :          idata = idata + 1
    3347     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3348     1545324 :          full_data(idata) = data_tmp
    3349     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3350     1545324 :          idata = idata + 1
    3351     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3352     1545324 :          full_data(idata) = data_tmp
    3353     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3354     1545324 :          idata = idata + 1
    3355     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3356     1545324 :          full_data(idata) = data_tmp
    3357     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3358     1545324 :          idata = idata + 1
    3359     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3360     1545324 :          full_data(idata) = data_tmp
    3361     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3362     1545324 :          idata = idata + 1
    3363     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3364     1545324 :          full_data(idata) = data_tmp
    3365     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3366     1545324 :          idata = idata + 1
    3367     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3368     1545324 :          full_data(idata) = data_tmp
    3369     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3370     1545324 :          idata = idata + 1
    3371     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3372     1545324 :          full_data(idata) = data_tmp
    3373     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3374     1545324 :          idata = idata + 1
    3375     1545324 :          data_tmp = ISHFT(pack_tmp, 4)
    3376     1545324 :          ipack = ipack + 1
    3377     1545324 :          pack_tmp = packed_data(ipack)
    3378     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3379     1545324 :          pack_tmp = ISHFT(pack_tmp, -4)
    3380     1545324 :          idata = idata + 1
    3381     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3382     1545324 :          full_data(idata) = data_tmp
    3383     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3384     1545324 :          idata = idata + 1
    3385     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3386     1545324 :          full_data(idata) = data_tmp
    3387     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3388     1545324 :          idata = idata + 1
    3389     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3390     1545324 :          full_data(idata) = data_tmp
    3391     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3392     1545324 :          idata = idata + 1
    3393     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3394     1545324 :          full_data(idata) = data_tmp
    3395     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3396     1545324 :          idata = idata + 1
    3397     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3398     1545324 :          full_data(idata) = data_tmp
    3399     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3400     1545324 :          idata = idata + 1
    3401     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3402     1545324 :          full_data(idata) = data_tmp
    3403     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3404     1545324 :          idata = idata + 1
    3405     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3406     1545324 :          full_data(idata) = data_tmp
    3407     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3408     1545324 :          idata = idata + 1
    3409     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3410     1545324 :          full_data(idata) = data_tmp
    3411     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3412     1545324 :          idata = idata + 1
    3413     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3414     1545324 :          full_data(idata) = data_tmp
    3415     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3416     1545324 :          idata = idata + 1
    3417     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3418     1545324 :          full_data(idata) = data_tmp
    3419     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3420     1545324 :          idata = idata + 1
    3421     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3422     1545324 :          full_data(idata) = data_tmp
    3423     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3424     1545324 :          idata = idata + 1
    3425     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3426     1545324 :          full_data(idata) = data_tmp
    3427     1545331 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3428             :       END DO
    3429       96652 :       IF (Ndata_rep < Ndata) THEN
    3430         104 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3431             :       END IF
    3432       96652 :    END SUBROUTINE bits2ints_5
    3433             : 
    3434             : ! **************************************************************************************************
    3435             : !> \brief ...
    3436             : !> \param Ndata ...
    3437             : !> \param packed_data ...
    3438             : !> \param full_data ...
    3439             : ! **************************************************************************************************
    3440       51506 :    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       51506 :       idata = 0
    3451       51506 :       ipack = 0
    3452       51506 :       Ndata_rep = (Ndata/64)*64
    3453       51506 :       DO kdata = 1, Ndata_rep, 64
    3454      820356 :          pack_tmp = 0
    3455      820356 :          idata = idata + 1
    3456      820356 :          data_tmp = full_data(idata)
    3457      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3458      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3459      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3460      820356 :          idata = idata + 1
    3461      820356 :          data_tmp = full_data(idata)
    3462      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3463      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3464      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3465      820356 :          idata = idata + 1
    3466      820356 :          data_tmp = full_data(idata)
    3467      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3468      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3469      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3470      820356 :          idata = idata + 1
    3471      820356 :          data_tmp = full_data(idata)
    3472      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3473      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3474      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3475      820356 :          idata = idata + 1
    3476      820356 :          data_tmp = full_data(idata)
    3477      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3478      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3479      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3480      820356 :          idata = idata + 1
    3481      820356 :          data_tmp = full_data(idata)
    3482      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3483      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3484      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3485      820356 :          idata = idata + 1
    3486      820356 :          data_tmp = full_data(idata)
    3487      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3488      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3489      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3490      820356 :          idata = idata + 1
    3491      820356 :          data_tmp = full_data(idata)
    3492      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3493      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3494      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3495      820356 :          idata = idata + 1
    3496      820356 :          data_tmp = full_data(idata)
    3497      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3498      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3499      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3500      820356 :          idata = idata + 1
    3501      820356 :          data_tmp = full_data(idata)
    3502      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3503      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3504      820356 :          pack_tmp = ISHFT(pack_tmp, -4)
    3505      820356 :          idata = idata + 1
    3506      820356 :          data_tmp = full_data(idata)
    3507      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3508      820356 :          data_tmp = IAND(data_tmp, mask_left(4))
    3509      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3510      820356 :          ipack = ipack + 1
    3511      820356 :          packed_data(ipack) = pack_tmp
    3512      820356 :          data_tmp = full_data(idata)
    3513      820356 :          pack_tmp = ISHFT(data_tmp, 62)
    3514      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3515      820356 :          idata = idata + 1
    3516      820356 :          data_tmp = full_data(idata)
    3517      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3518      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3519      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3520      820356 :          idata = idata + 1
    3521      820356 :          data_tmp = full_data(idata)
    3522      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3523      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3524      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3525      820356 :          idata = idata + 1
    3526      820356 :          data_tmp = full_data(idata)
    3527      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3528      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3529      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3530      820356 :          idata = idata + 1
    3531      820356 :          data_tmp = full_data(idata)
    3532      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3533      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3534      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3535      820356 :          idata = idata + 1
    3536      820356 :          data_tmp = full_data(idata)
    3537      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3538      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3539      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3540      820356 :          idata = idata + 1
    3541      820356 :          data_tmp = full_data(idata)
    3542      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3543      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3544      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3545      820356 :          idata = idata + 1
    3546      820356 :          data_tmp = full_data(idata)
    3547      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3548      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3549      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3550      820356 :          idata = idata + 1
    3551      820356 :          data_tmp = full_data(idata)
    3552      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3553      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3554      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3555      820356 :          idata = idata + 1
    3556      820356 :          data_tmp = full_data(idata)
    3557      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3558      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3559      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3560      820356 :          idata = idata + 1
    3561      820356 :          data_tmp = full_data(idata)
    3562      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3563      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3564      820356 :          pack_tmp = ISHFT(pack_tmp, -2)
    3565      820356 :          idata = idata + 1
    3566      820356 :          data_tmp = full_data(idata)
    3567      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3568      820356 :          data_tmp = IAND(data_tmp, mask_left(2))
    3569      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3570      820356 :          ipack = ipack + 1
    3571      820356 :          packed_data(ipack) = pack_tmp
    3572      820356 :          data_tmp = full_data(idata)
    3573      820356 :          pack_tmp = ISHFT(data_tmp, 60)
    3574      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3575      820356 :          idata = idata + 1
    3576      820356 :          data_tmp = full_data(idata)
    3577      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3578      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3579      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3580      820356 :          idata = idata + 1
    3581      820356 :          data_tmp = full_data(idata)
    3582      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3583      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3584      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3585      820356 :          idata = idata + 1
    3586      820356 :          data_tmp = full_data(idata)
    3587      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3588      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3589      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3590      820356 :          idata = idata + 1
    3591      820356 :          data_tmp = full_data(idata)
    3592      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3593      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3594      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3595      820356 :          idata = idata + 1
    3596      820356 :          data_tmp = full_data(idata)
    3597      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3598      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3599      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3600      820356 :          idata = idata + 1
    3601      820356 :          data_tmp = full_data(idata)
    3602      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3603      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3604      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3605      820356 :          idata = idata + 1
    3606      820356 :          data_tmp = full_data(idata)
    3607      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3608      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3609      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3610      820356 :          idata = idata + 1
    3611      820356 :          data_tmp = full_data(idata)
    3612      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3613      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3614      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3615      820356 :          idata = idata + 1
    3616      820356 :          data_tmp = full_data(idata)
    3617      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3618      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3619      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3620      820356 :          idata = idata + 1
    3621      820356 :          data_tmp = full_data(idata)
    3622      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3623      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3624      820356 :          pack_tmp = ISHFT(pack_tmp, 0)
    3625      820356 :          idata = idata + 1
    3626      820356 :          data_tmp = full_data(idata)
    3627             :          data_tmp = ISHFT(data_tmp, 58)
    3628      820356 :          data_tmp = IAND(data_tmp, mask_left(0))
    3629      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3630      820356 :          ipack = ipack + 1
    3631      820356 :          packed_data(ipack) = pack_tmp
    3632      820356 :          data_tmp = full_data(idata)
    3633      820356 :          pack_tmp = ISHFT(data_tmp, 58)
    3634      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3635      820356 :          idata = idata + 1
    3636      820356 :          data_tmp = full_data(idata)
    3637      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3638      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3639      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3640      820356 :          idata = idata + 1
    3641      820356 :          data_tmp = full_data(idata)
    3642      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3643      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3644      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3645      820356 :          idata = idata + 1
    3646      820356 :          data_tmp = full_data(idata)
    3647      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3648      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3649      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3650      820356 :          idata = idata + 1
    3651      820356 :          data_tmp = full_data(idata)
    3652      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3653      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3654      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3655      820356 :          idata = idata + 1
    3656      820356 :          data_tmp = full_data(idata)
    3657      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3658      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3659      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3660      820356 :          idata = idata + 1
    3661      820356 :          data_tmp = full_data(idata)
    3662      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3663      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3664      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3665      820356 :          idata = idata + 1
    3666      820356 :          data_tmp = full_data(idata)
    3667      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3668      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3669      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3670      820356 :          idata = idata + 1
    3671      820356 :          data_tmp = full_data(idata)
    3672      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3673      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3674      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3675      820356 :          idata = idata + 1
    3676      820356 :          data_tmp = full_data(idata)
    3677      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3678      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3679      820356 :          pack_tmp = ISHFT(pack_tmp, -4)
    3680      820356 :          idata = idata + 1
    3681      820356 :          data_tmp = full_data(idata)
    3682      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3683      820356 :          data_tmp = IAND(data_tmp, mask_left(4))
    3684      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3685      820356 :          ipack = ipack + 1
    3686      820356 :          packed_data(ipack) = pack_tmp
    3687      820356 :          data_tmp = full_data(idata)
    3688      820356 :          pack_tmp = ISHFT(data_tmp, 62)
    3689      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3690      820356 :          idata = idata + 1
    3691      820356 :          data_tmp = full_data(idata)
    3692      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3693      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3694      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3695      820356 :          idata = idata + 1
    3696      820356 :          data_tmp = full_data(idata)
    3697      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3698      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3699      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3700      820356 :          idata = idata + 1
    3701      820356 :          data_tmp = full_data(idata)
    3702      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3703      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3704      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3705      820356 :          idata = idata + 1
    3706      820356 :          data_tmp = full_data(idata)
    3707      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3708      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3709      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3710      820356 :          idata = idata + 1
    3711      820356 :          data_tmp = full_data(idata)
    3712      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3713      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3714      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3715      820356 :          idata = idata + 1
    3716      820356 :          data_tmp = full_data(idata)
    3717      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3718      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3719      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3720      820356 :          idata = idata + 1
    3721      820356 :          data_tmp = full_data(idata)
    3722      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3723      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3724      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3725      820356 :          idata = idata + 1
    3726      820356 :          data_tmp = full_data(idata)
    3727      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3728      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3729      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3730      820356 :          idata = idata + 1
    3731      820356 :          data_tmp = full_data(idata)
    3732      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3733      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3734      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3735      820356 :          idata = idata + 1
    3736      820356 :          data_tmp = full_data(idata)
    3737      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3738      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3739      820356 :          pack_tmp = ISHFT(pack_tmp, -2)
    3740      820356 :          idata = idata + 1
    3741      820356 :          data_tmp = full_data(idata)
    3742      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3743      820356 :          data_tmp = IAND(data_tmp, mask_left(2))
    3744      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3745      820356 :          ipack = ipack + 1
    3746      820356 :          packed_data(ipack) = pack_tmp
    3747      820356 :          data_tmp = full_data(idata)
    3748      820356 :          pack_tmp = ISHFT(data_tmp, 60)
    3749      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3750      820356 :          idata = idata + 1
    3751      820356 :          data_tmp = full_data(idata)
    3752      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3753      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3754      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3755      820356 :          idata = idata + 1
    3756      820356 :          data_tmp = full_data(idata)
    3757      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3758      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3759      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3760      820356 :          idata = idata + 1
    3761      820356 :          data_tmp = full_data(idata)
    3762      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3763      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3764      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3765      820356 :          idata = idata + 1
    3766      820356 :          data_tmp = full_data(idata)
    3767      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3768      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3769      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3770      820356 :          idata = idata + 1
    3771      820356 :          data_tmp = full_data(idata)
    3772      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3773      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3774      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3775      820356 :          idata = idata + 1
    3776      820356 :          data_tmp = full_data(idata)
    3777      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3778      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3779      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3780      820356 :          idata = idata + 1
    3781      820356 :          data_tmp = full_data(idata)
    3782      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3783      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3784      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3785      820356 :          idata = idata + 1
    3786      820356 :          data_tmp = full_data(idata)
    3787      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3788      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3789      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3790      820356 :          idata = idata + 1
    3791      820356 :          data_tmp = full_data(idata)
    3792      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3793      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3794      820356 :          pack_tmp = ISHFT(pack_tmp, -6)
    3795      820356 :          idata = idata + 1
    3796      820356 :          data_tmp = full_data(idata)
    3797      820356 :          data_tmp = ISHFT(data_tmp, 58)
    3798      820356 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3799             :          pack_tmp = ISHFT(pack_tmp, 0)
    3800      820356 :          pack_tmp = ISHFT(pack_tmp, 0)
    3801      820356 :          ipack = ipack + 1
    3802      820385 :          packed_data(ipack) = pack_tmp
    3803             :       END DO
    3804       51506 :       IF (Ndata_rep < Ndata) THEN
    3805         440 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3806             :       END IF
    3807       51506 :    END SUBROUTINE ints2bits_6
    3808             : 
    3809             : ! **************************************************************************************************
    3810             : !> \brief ...
    3811             : !> \param Ndata ...
    3812             : !> \param packed_data ...
    3813             : !> \param full_data ...
    3814             : ! **************************************************************************************************
    3815      245676 :    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      245676 :       ipack = 0
    3826      245676 :       idata = 0
    3827      245676 :       pack_tmp = 0
    3828      245676 :       Ndata_rep = (Ndata/64)*64
    3829      245676 :       DO kdata = 1, Ndata_rep, 64
    3830     3897547 :          idata = idata + 1
    3831     3897547 :          data_tmp = ISHFT(pack_tmp, 6)
    3832     3897547 :          ipack = ipack + 1
    3833     3897547 :          pack_tmp = packed_data(ipack)
    3834     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3835     3897547 :          pack_tmp = ISHFT(pack_tmp, -6)
    3836     3897547 :          idata = idata + 1
    3837     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3838     3897547 :          full_data(idata) = data_tmp
    3839     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3840     3897547 :          idata = idata + 1
    3841     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3842     3897547 :          full_data(idata) = data_tmp
    3843     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3844     3897547 :          idata = idata + 1
    3845     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3846     3897547 :          full_data(idata) = data_tmp
    3847     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3848     3897547 :          idata = idata + 1
    3849     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3850     3897547 :          full_data(idata) = data_tmp
    3851     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3852     3897547 :          idata = idata + 1
    3853     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3854     3897547 :          full_data(idata) = data_tmp
    3855     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3856     3897547 :          idata = idata + 1
    3857     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3858     3897547 :          full_data(idata) = data_tmp
    3859     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3860     3897547 :          idata = idata + 1
    3861     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3862     3897547 :          full_data(idata) = data_tmp
    3863     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3864     3897547 :          idata = idata + 1
    3865     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3866     3897547 :          full_data(idata) = data_tmp
    3867     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3868     3897547 :          idata = idata + 1
    3869     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3870     3897547 :          full_data(idata) = data_tmp
    3871     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3872     3897547 :          idata = idata + 1
    3873     3897547 :          data_tmp = ISHFT(pack_tmp, 2)
    3874     3897547 :          ipack = ipack + 1
    3875     3897547 :          pack_tmp = packed_data(ipack)
    3876     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3877     3897547 :          pack_tmp = ISHFT(pack_tmp, -2)
    3878     3897547 :          idata = idata + 1
    3879     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3880     3897547 :          full_data(idata) = data_tmp
    3881     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3882     3897547 :          idata = idata + 1
    3883     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3884     3897547 :          full_data(idata) = data_tmp
    3885     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3886     3897547 :          idata = idata + 1
    3887     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3888     3897547 :          full_data(idata) = data_tmp
    3889     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3890     3897547 :          idata = idata + 1
    3891     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3892     3897547 :          full_data(idata) = data_tmp
    3893     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3894     3897547 :          idata = idata + 1
    3895     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3896     3897547 :          full_data(idata) = data_tmp
    3897     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3898     3897547 :          idata = idata + 1
    3899     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3900     3897547 :          full_data(idata) = data_tmp
    3901     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3902     3897547 :          idata = idata + 1
    3903     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3904     3897547 :          full_data(idata) = data_tmp
    3905     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3906     3897547 :          idata = idata + 1
    3907     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3908     3897547 :          full_data(idata) = data_tmp
    3909     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3910     3897547 :          idata = idata + 1
    3911     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3912     3897547 :          full_data(idata) = data_tmp
    3913     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3914     3897547 :          idata = idata + 1
    3915     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3916     3897547 :          full_data(idata) = data_tmp
    3917     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3918     3897547 :          idata = idata + 1
    3919     3897547 :          data_tmp = ISHFT(pack_tmp, 4)
    3920     3897547 :          ipack = ipack + 1
    3921     3897547 :          pack_tmp = packed_data(ipack)
    3922     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3923     3897547 :          pack_tmp = ISHFT(pack_tmp, -4)
    3924     3897547 :          idata = idata + 1
    3925     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3926     3897547 :          full_data(idata) = data_tmp
    3927     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3928     3897547 :          idata = idata + 1
    3929     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3930     3897547 :          full_data(idata) = data_tmp
    3931     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3932     3897547 :          idata = idata + 1
    3933     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3934     3897547 :          full_data(idata) = data_tmp
    3935     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3936     3897547 :          idata = idata + 1
    3937     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3938     3897547 :          full_data(idata) = data_tmp
    3939     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3940     3897547 :          idata = idata + 1
    3941     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3942     3897547 :          full_data(idata) = data_tmp
    3943     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3944     3897547 :          idata = idata + 1
    3945     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3946     3897547 :          full_data(idata) = data_tmp
    3947     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3948     3897547 :          idata = idata + 1
    3949     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3950     3897547 :          full_data(idata) = data_tmp
    3951     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3952     3897547 :          idata = idata + 1
    3953     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3954     3897547 :          full_data(idata) = data_tmp
    3955     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3956     3897547 :          idata = idata + 1
    3957     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3958     3897547 :          full_data(idata) = data_tmp
    3959     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3960     3897547 :          idata = idata + 1
    3961     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3962     3897547 :          full_data(idata) = data_tmp
    3963     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3964     3897547 :          idata = idata + 1
    3965     3897547 :          data_tmp = ISHFT(pack_tmp, 6)
    3966     3897547 :          ipack = ipack + 1
    3967     3897547 :          pack_tmp = packed_data(ipack)
    3968     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3969     3897547 :          pack_tmp = ISHFT(pack_tmp, -6)
    3970     3897547 :          idata = idata + 1
    3971     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3972     3897547 :          full_data(idata) = data_tmp
    3973     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3974     3897547 :          idata = idata + 1
    3975     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3976     3897547 :          full_data(idata) = data_tmp
    3977     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3978     3897547 :          idata = idata + 1
    3979     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3980     3897547 :          full_data(idata) = data_tmp
    3981     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3982     3897547 :          idata = idata + 1
    3983     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3984     3897547 :          full_data(idata) = data_tmp
    3985     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3986     3897547 :          idata = idata + 1
    3987     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3988     3897547 :          full_data(idata) = data_tmp
    3989     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3990     3897547 :          idata = idata + 1
    3991     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3992     3897547 :          full_data(idata) = data_tmp
    3993     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3994     3897547 :          idata = idata + 1
    3995     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3996     3897547 :          full_data(idata) = data_tmp
    3997     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3998     3897547 :          idata = idata + 1
    3999     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4000     3897547 :          full_data(idata) = data_tmp
    4001     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4002     3897547 :          idata = idata + 1
    4003     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4004     3897547 :          full_data(idata) = data_tmp
    4005     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4006     3897547 :          idata = idata + 1
    4007     3897547 :          data_tmp = ISHFT(pack_tmp, 2)
    4008     3897547 :          ipack = ipack + 1
    4009     3897547 :          pack_tmp = packed_data(ipack)
    4010     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4011     3897547 :          pack_tmp = ISHFT(pack_tmp, -2)
    4012     3897547 :          idata = idata + 1
    4013     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4014     3897547 :          full_data(idata) = data_tmp
    4015     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4016     3897547 :          idata = idata + 1
    4017     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4018     3897547 :          full_data(idata) = data_tmp
    4019     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4020     3897547 :          idata = idata + 1
    4021     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4022     3897547 :          full_data(idata) = data_tmp
    4023     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4024     3897547 :          idata = idata + 1
    4025     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4026     3897547 :          full_data(idata) = data_tmp
    4027     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4028     3897547 :          idata = idata + 1
    4029     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4030     3897547 :          full_data(idata) = data_tmp
    4031     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4032     3897547 :          idata = idata + 1
    4033     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4034     3897547 :          full_data(idata) = data_tmp
    4035     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4036     3897547 :          idata = idata + 1
    4037     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4038     3897547 :          full_data(idata) = data_tmp
    4039     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4040     3897547 :          idata = idata + 1
    4041     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4042     3897547 :          full_data(idata) = data_tmp
    4043     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4044     3897547 :          idata = idata + 1
    4045     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4046     3897547 :          full_data(idata) = data_tmp
    4047     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4048     3897547 :          idata = idata + 1
    4049     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4050     3897547 :          full_data(idata) = data_tmp
    4051     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4052     3897547 :          idata = idata + 1
    4053     3897547 :          data_tmp = ISHFT(pack_tmp, 4)
    4054     3897547 :          ipack = ipack + 1
    4055     3897547 :          pack_tmp = packed_data(ipack)
    4056     3897547 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4057     3897547 :          pack_tmp = ISHFT(pack_tmp, -4)
    4058     3897547 :          idata = idata + 1
    4059     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4060     3897547 :          full_data(idata) = data_tmp
    4061     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4062     3897547 :          idata = idata + 1
    4063     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4064     3897547 :          full_data(idata) = data_tmp
    4065     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4066     3897547 :          idata = idata + 1
    4067     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4068     3897547 :          full_data(idata) = data_tmp
    4069     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4070     3897547 :          idata = idata + 1
    4071     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4072     3897547 :          full_data(idata) = data_tmp
    4073     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4074     3897547 :          idata = idata + 1
    4075     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4076     3897547 :          full_data(idata) = data_tmp
    4077     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4078     3897547 :          idata = idata + 1
    4079     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4080     3897547 :          full_data(idata) = data_tmp
    4081     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4082     3897547 :          idata = idata + 1
    4083     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4084     3897547 :          full_data(idata) = data_tmp
    4085     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4086     3897547 :          idata = idata + 1
    4087     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4088     3897547 :          full_data(idata) = data_tmp
    4089     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4090     3897547 :          idata = idata + 1
    4091     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4092     3897547 :          full_data(idata) = data_tmp
    4093     3897547 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4094     3897547 :          idata = idata + 1
    4095     3897547 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4096     3897547 :          full_data(idata) = data_tmp
    4097     3897760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4098             :       END DO
    4099      245676 :       IF (Ndata_rep < Ndata) THEN
    4100        3914 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4101             :       END IF
    4102      245676 :    END SUBROUTINE bits2ints_6
    4103             : 
    4104             : ! **************************************************************************************************
    4105             : !> \brief ...
    4106             : !> \param Ndata ...
    4107             : !> \param packed_data ...
    4108             : !> \param full_data ...
    4109             : ! **************************************************************************************************
    4110       24032 :    SUBROUTINE ints2bits_7(Ndata, packed_data, full_data)
    4111             :       INTEGER, INTENT(IN)                                :: Ndata
    4112             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
    4113             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
    4114             : 
    4115             :       INTEGER, PARAMETER                                 :: Nbits = 7
    4116             : 
    4117             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    4118             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    4119             : 
    4120       24032 :       idata = 0
    4121       24032 :       ipack = 0
    4122       24032 :       Ndata_rep = (Ndata/64)*64
    4123       24032 :       DO kdata = 1, Ndata_rep, 64
    4124      383970 :          pack_tmp = 0
    4125      383970 :          idata = idata + 1
    4126      383970 :          data_tmp = full_data(idata)
    4127      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4128      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4129      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4130      383970 :          idata = idata + 1
    4131      383970 :          data_tmp = full_data(idata)
    4132      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4133      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4134      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4135      383970 :          idata = idata + 1
    4136      383970 :          data_tmp = full_data(idata)
    4137      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4138      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4139      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4140      383970 :          idata = idata + 1
    4141      383970 :          data_tmp = full_data(idata)
    4142      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4143      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4144      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4145      383970 :          idata = idata + 1
    4146      383970 :          data_tmp = full_data(idata)
    4147      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4148      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4149      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4150      383970 :          idata = idata + 1
    4151      383970 :          data_tmp = full_data(idata)
    4152      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4153      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4154      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4155      383970 :          idata = idata + 1
    4156      383970 :          data_tmp = full_data(idata)
    4157      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4158      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4159      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4160      383970 :          idata = idata + 1
    4161      383970 :          data_tmp = full_data(idata)
    4162      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4163      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4164      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4165      383970 :          idata = idata + 1
    4166      383970 :          data_tmp = full_data(idata)
    4167      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4168      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4169      383970 :          pack_tmp = ISHFT(pack_tmp, -1)
    4170      383970 :          idata = idata + 1
    4171      383970 :          data_tmp = full_data(idata)
    4172      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4173      383970 :          data_tmp = IAND(data_tmp, mask_left(1))
    4174      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4175      383970 :          ipack = ipack + 1
    4176      383970 :          packed_data(ipack) = pack_tmp
    4177      383970 :          data_tmp = full_data(idata)
    4178      383970 :          pack_tmp = ISHFT(data_tmp, 58)
    4179      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4180      383970 :          idata = idata + 1
    4181      383970 :          data_tmp = full_data(idata)
    4182      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4183      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4184      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4185      383970 :          idata = idata + 1
    4186      383970 :          data_tmp = full_data(idata)
    4187      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4188      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4189      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4190      383970 :          idata = idata + 1
    4191      383970 :          data_tmp = full_data(idata)
    4192      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4193      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4194      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4195      383970 :          idata = idata + 1
    4196      383970 :          data_tmp = full_data(idata)
    4197      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4198      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4199      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4200      383970 :          idata = idata + 1
    4201      383970 :          data_tmp = full_data(idata)
    4202      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4203      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4204      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4205      383970 :          idata = idata + 1
    4206      383970 :          data_tmp = full_data(idata)
    4207      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4208      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4209      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4210      383970 :          idata = idata + 1
    4211      383970 :          data_tmp = full_data(idata)
    4212      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4213      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4214      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4215      383970 :          idata = idata + 1
    4216      383970 :          data_tmp = full_data(idata)
    4217      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4218      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4219      383970 :          pack_tmp = ISHFT(pack_tmp, -2)
    4220      383970 :          idata = idata + 1
    4221      383970 :          data_tmp = full_data(idata)
    4222      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4223      383970 :          data_tmp = IAND(data_tmp, mask_left(2))
    4224      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4225      383970 :          ipack = ipack + 1
    4226      383970 :          packed_data(ipack) = pack_tmp
    4227      383970 :          data_tmp = full_data(idata)
    4228      383970 :          pack_tmp = ISHFT(data_tmp, 59)
    4229      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4230      383970 :          idata = idata + 1
    4231      383970 :          data_tmp = full_data(idata)
    4232      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4233      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4234      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4235      383970 :          idata = idata + 1
    4236      383970 :          data_tmp = full_data(idata)
    4237      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4238      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4239      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4240      383970 :          idata = idata + 1
    4241      383970 :          data_tmp = full_data(idata)
    4242      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4243      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4244      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4245      383970 :          idata = idata + 1
    4246      383970 :          data_tmp = full_data(idata)
    4247      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4248      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4249      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4250      383970 :          idata = idata + 1
    4251      383970 :          data_tmp = full_data(idata)
    4252      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4253      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4254      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4255      383970 :          idata = idata + 1
    4256      383970 :          data_tmp = full_data(idata)
    4257      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4258      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4259      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4260      383970 :          idata = idata + 1
    4261      383970 :          data_tmp = full_data(idata)
    4262      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4263      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4264      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4265      383970 :          idata = idata + 1
    4266      383970 :          data_tmp = full_data(idata)
    4267      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4268      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4269      383970 :          pack_tmp = ISHFT(pack_tmp, -3)
    4270      383970 :          idata = idata + 1
    4271      383970 :          data_tmp = full_data(idata)
    4272      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4273      383970 :          data_tmp = IAND(data_tmp, mask_left(3))
    4274      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4275      383970 :          ipack = ipack + 1
    4276      383970 :          packed_data(ipack) = pack_tmp
    4277      383970 :          data_tmp = full_data(idata)
    4278      383970 :          pack_tmp = ISHFT(data_tmp, 60)
    4279      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4280      383970 :          idata = idata + 1
    4281      383970 :          data_tmp = full_data(idata)
    4282      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4283      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4284      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4285      383970 :          idata = idata + 1
    4286      383970 :          data_tmp = full_data(idata)
    4287      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4288      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4289      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4290      383970 :          idata = idata + 1
    4291      383970 :          data_tmp = full_data(idata)
    4292      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4293      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4294      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4295      383970 :          idata = idata + 1
    4296      383970 :          data_tmp = full_data(idata)
    4297      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4298      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4299      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4300      383970 :          idata = idata + 1
    4301      383970 :          data_tmp = full_data(idata)
    4302      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4303      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4304      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4305      383970 :          idata = idata + 1
    4306      383970 :          data_tmp = full_data(idata)
    4307      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4308      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4309      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4310      383970 :          idata = idata + 1
    4311      383970 :          data_tmp = full_data(idata)
    4312      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4313      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4314      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4315      383970 :          idata = idata + 1
    4316      383970 :          data_tmp = full_data(idata)
    4317      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4318      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4319      383970 :          pack_tmp = ISHFT(pack_tmp, -4)
    4320      383970 :          idata = idata + 1
    4321      383970 :          data_tmp = full_data(idata)
    4322      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4323      383970 :          data_tmp = IAND(data_tmp, mask_left(4))
    4324      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4325      383970 :          ipack = ipack + 1
    4326      383970 :          packed_data(ipack) = pack_tmp
    4327      383970 :          data_tmp = full_data(idata)
    4328      383970 :          pack_tmp = ISHFT(data_tmp, 61)
    4329      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4330      383970 :          idata = idata + 1
    4331      383970 :          data_tmp = full_data(idata)
    4332      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4333      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4334      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4335      383970 :          idata = idata + 1
    4336      383970 :          data_tmp = full_data(idata)
    4337      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4338      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4339      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4340      383970 :          idata = idata + 1
    4341      383970 :          data_tmp = full_data(idata)
    4342      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4343      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4344      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4345      383970 :          idata = idata + 1
    4346      383970 :          data_tmp = full_data(idata)
    4347      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4348      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4349      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4350      383970 :          idata = idata + 1
    4351      383970 :          data_tmp = full_data(idata)
    4352      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4353      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4354      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4355      383970 :          idata = idata + 1
    4356      383970 :          data_tmp = full_data(idata)
    4357      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4358      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4359      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4360      383970 :          idata = idata + 1
    4361      383970 :          data_tmp = full_data(idata)
    4362      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4363      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4364      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4365      383970 :          idata = idata + 1
    4366      383970 :          data_tmp = full_data(idata)
    4367      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4368      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4369      383970 :          pack_tmp = ISHFT(pack_tmp, -5)
    4370      383970 :          idata = idata + 1
    4371      383970 :          data_tmp = full_data(idata)
    4372      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4373      383970 :          data_tmp = IAND(data_tmp, mask_left(5))
    4374      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4375      383970 :          ipack = ipack + 1
    4376      383970 :          packed_data(ipack) = pack_tmp
    4377      383970 :          data_tmp = full_data(idata)
    4378      383970 :          pack_tmp = ISHFT(data_tmp, 62)
    4379      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4380      383970 :          idata = idata + 1
    4381      383970 :          data_tmp = full_data(idata)
    4382      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4383      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4384      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4385      383970 :          idata = idata + 1
    4386      383970 :          data_tmp = full_data(idata)
    4387      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4388      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4389      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4390      383970 :          idata = idata + 1
    4391      383970 :          data_tmp = full_data(idata)
    4392      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4393      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4394      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4395      383970 :          idata = idata + 1
    4396      383970 :          data_tmp = full_data(idata)
    4397      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4398      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4399      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4400      383970 :          idata = idata + 1
    4401      383970 :          data_tmp = full_data(idata)
    4402      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4403      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4404      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4405      383970 :          idata = idata + 1
    4406      383970 :          data_tmp = full_data(idata)
    4407      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4408      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4409      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4410      383970 :          idata = idata + 1
    4411      383970 :          data_tmp = full_data(idata)
    4412      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4413      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4414      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4415      383970 :          idata = idata + 1
    4416      383970 :          data_tmp = full_data(idata)
    4417      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4418      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4419      383970 :          pack_tmp = ISHFT(pack_tmp, -6)
    4420      383970 :          idata = idata + 1
    4421      383970 :          data_tmp = full_data(idata)
    4422      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4423      383970 :          data_tmp = IAND(data_tmp, mask_left(6))
    4424      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4425      383970 :          ipack = ipack + 1
    4426      383970 :          packed_data(ipack) = pack_tmp
    4427      383970 :          data_tmp = full_data(idata)
    4428      383970 :          pack_tmp = ISHFT(data_tmp, 63)
    4429      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4430      383970 :          idata = idata + 1
    4431      383970 :          data_tmp = full_data(idata)
    4432      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4433      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4434      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4435      383970 :          idata = idata + 1
    4436      383970 :          data_tmp = full_data(idata)
    4437      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4438      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4439      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4440      383970 :          idata = idata + 1
    4441      383970 :          data_tmp = full_data(idata)
    4442      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4443      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4444      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4445      383970 :          idata = idata + 1
    4446      383970 :          data_tmp = full_data(idata)
    4447      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4448      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4449      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4450      383970 :          idata = idata + 1
    4451      383970 :          data_tmp = full_data(idata)
    4452      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4453      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4454      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4455      383970 :          idata = idata + 1
    4456      383970 :          data_tmp = full_data(idata)
    4457      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4458      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4459      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4460      383970 :          idata = idata + 1
    4461      383970 :          data_tmp = full_data(idata)
    4462      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4463      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4464      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4465      383970 :          idata = idata + 1
    4466      383970 :          data_tmp = full_data(idata)
    4467      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4468      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4469      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4470      383970 :          idata = idata + 1
    4471      383970 :          data_tmp = full_data(idata)
    4472      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4473      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4474             :          pack_tmp = ISHFT(pack_tmp, 0)
    4475      383970 :          pack_tmp = ISHFT(pack_tmp, 0)
    4476      383970 :          ipack = ipack + 1
    4477      383972 :          packed_data(ipack) = pack_tmp
    4478             :       END DO
    4479       24032 :       IF (Ndata_rep < Ndata) THEN
    4480          60 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4481             :       END IF
    4482       24032 :    END SUBROUTINE ints2bits_7
    4483             : 
    4484             : ! **************************************************************************************************
    4485             : !> \brief ...
    4486             : !> \param Ndata ...
    4487             : !> \param packed_data ...
    4488             : !> \param full_data ...
    4489             : ! **************************************************************************************************
    4490       98938 :    SUBROUTINE bits2ints_7(Ndata, packed_data, full_data)
    4491             :       INTEGER, INTENT(IN)                                :: Ndata
    4492             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    4493             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    4494             : 
    4495             :       INTEGER, PARAMETER                                 :: Nbits = 7
    4496             : 
    4497             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    4498             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    4499             : 
    4500       98938 :       ipack = 0
    4501       98938 :       idata = 0
    4502       98938 :       pack_tmp = 0
    4503       98938 :       Ndata_rep = (Ndata/64)*64
    4504       98938 :       DO kdata = 1, Ndata_rep, 64
    4505     1577599 :          idata = idata + 1
    4506     1577599 :          data_tmp = ISHFT(pack_tmp, 7)
    4507     1577599 :          ipack = ipack + 1
    4508     1577599 :          pack_tmp = packed_data(ipack)
    4509     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    4510     1577599 :          pack_tmp = ISHFT(pack_tmp, -7)
    4511     1577599 :          idata = idata + 1
    4512     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4513     1577599 :          full_data(idata) = data_tmp
    4514     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4515     1577599 :          idata = idata + 1
    4516     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4517     1577599 :          full_data(idata) = data_tmp
    4518     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4519     1577599 :          idata = idata + 1
    4520     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4521     1577599 :          full_data(idata) = data_tmp
    4522     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4523     1577599 :          idata = idata + 1
    4524     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4525     1577599 :          full_data(idata) = data_tmp
    4526     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4527     1577599 :          idata = idata + 1
    4528     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4529     1577599 :          full_data(idata) = data_tmp
    4530     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4531     1577599 :          idata = idata + 1
    4532     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4533     1577599 :          full_data(idata) = data_tmp
    4534     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4535     1577599 :          idata = idata + 1
    4536     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4537     1577599 :          full_data(idata) = data_tmp
    4538     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4539     1577599 :          idata = idata + 1
    4540     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4541     1577599 :          full_data(idata) = data_tmp
    4542     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4543     1577599 :          idata = idata + 1
    4544     1577599 :          data_tmp = ISHFT(pack_tmp, 6)
    4545     1577599 :          ipack = ipack + 1
    4546     1577599 :          pack_tmp = packed_data(ipack)
    4547     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    4548     1577599 :          pack_tmp = ISHFT(pack_tmp, -6)
    4549     1577599 :          idata = idata + 1
    4550     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4551     1577599 :          full_data(idata) = data_tmp
    4552     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4553     1577599 :          idata = idata + 1
    4554     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4555     1577599 :          full_data(idata) = data_tmp
    4556     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4557     1577599 :          idata = idata + 1
    4558     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4559     1577599 :          full_data(idata) = data_tmp
    4560     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4561     1577599 :          idata = idata + 1
    4562     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4563     1577599 :          full_data(idata) = data_tmp
    4564     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4565     1577599 :          idata = idata + 1
    4566     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4567     1577599 :          full_data(idata) = data_tmp
    4568     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4569     1577599 :          idata = idata + 1
    4570     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4571     1577599 :          full_data(idata) = data_tmp
    4572     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4573     1577599 :          idata = idata + 1
    4574     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4575     1577599 :          full_data(idata) = data_tmp
    4576     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4577     1577599 :          idata = idata + 1
    4578     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4579     1577599 :          full_data(idata) = data_tmp
    4580     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4581     1577599 :          idata = idata + 1
    4582     1577599 :          data_tmp = ISHFT(pack_tmp, 5)
    4583     1577599 :          ipack = ipack + 1
    4584     1577599 :          pack_tmp = packed_data(ipack)
    4585     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    4586     1577599 :          pack_tmp = ISHFT(pack_tmp, -5)
    4587     1577599 :          idata = idata + 1
    4588     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4589     1577599 :          full_data(idata) = data_tmp
    4590     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4591     1577599 :          idata = idata + 1
    4592     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4593     1577599 :          full_data(idata) = data_tmp
    4594     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4595     1577599 :          idata = idata + 1
    4596     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4597     1577599 :          full_data(idata) = data_tmp
    4598     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4599     1577599 :          idata = idata + 1
    4600     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4601     1577599 :          full_data(idata) = data_tmp
    4602     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4603     1577599 :          idata = idata + 1
    4604     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4605     1577599 :          full_data(idata) = data_tmp
    4606     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4607     1577599 :          idata = idata + 1
    4608     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4609     1577599 :          full_data(idata) = data_tmp
    4610     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4611     1577599 :          idata = idata + 1
    4612     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4613     1577599 :          full_data(idata) = data_tmp
    4614     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4615     1577599 :          idata = idata + 1
    4616     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4617     1577599 :          full_data(idata) = data_tmp
    4618     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4619     1577599 :          idata = idata + 1
    4620     1577599 :          data_tmp = ISHFT(pack_tmp, 4)
    4621     1577599 :          ipack = ipack + 1
    4622     1577599 :          pack_tmp = packed_data(ipack)
    4623     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4624     1577599 :          pack_tmp = ISHFT(pack_tmp, -4)
    4625     1577599 :          idata = idata + 1
    4626     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4627     1577599 :          full_data(idata) = data_tmp
    4628     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4629     1577599 :          idata = idata + 1
    4630     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4631     1577599 :          full_data(idata) = data_tmp
    4632     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4633     1577599 :          idata = idata + 1
    4634     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4635     1577599 :          full_data(idata) = data_tmp
    4636     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4637     1577599 :          idata = idata + 1
    4638     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4639     1577599 :          full_data(idata) = data_tmp
    4640     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4641     1577599 :          idata = idata + 1
    4642     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4643     1577599 :          full_data(idata) = data_tmp
    4644     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4645     1577599 :          idata = idata + 1
    4646     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4647     1577599 :          full_data(idata) = data_tmp
    4648     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4649     1577599 :          idata = idata + 1
    4650     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4651     1577599 :          full_data(idata) = data_tmp
    4652     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4653     1577599 :          idata = idata + 1
    4654     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4655     1577599 :          full_data(idata) = data_tmp
    4656     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4657     1577599 :          idata = idata + 1
    4658     1577599 :          data_tmp = ISHFT(pack_tmp, 3)
    4659     1577599 :          ipack = ipack + 1
    4660     1577599 :          pack_tmp = packed_data(ipack)
    4661     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    4662     1577599 :          pack_tmp = ISHFT(pack_tmp, -3)
    4663     1577599 :          idata = idata + 1
    4664     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4665     1577599 :          full_data(idata) = data_tmp
    4666     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4667     1577599 :          idata = idata + 1
    4668     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4669     1577599 :          full_data(idata) = data_tmp
    4670     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4671     1577599 :          idata = idata + 1
    4672     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4673     1577599 :          full_data(idata) = data_tmp
    4674     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4675     1577599 :          idata = idata + 1
    4676     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4677     1577599 :          full_data(idata) = data_tmp
    4678     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4679     1577599 :          idata = idata + 1
    4680     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4681     1577599 :          full_data(idata) = data_tmp
    4682     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4683     1577599 :          idata = idata + 1
    4684     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4685     1577599 :          full_data(idata) = data_tmp
    4686     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4687     1577599 :          idata = idata + 1
    4688     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4689     1577599 :          full_data(idata) = data_tmp
    4690     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4691     1577599 :          idata = idata + 1
    4692     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4693     1577599 :          full_data(idata) = data_tmp
    4694     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4695     1577599 :          idata = idata + 1
    4696     1577599 :          data_tmp = ISHFT(pack_tmp, 2)
    4697     1577599 :          ipack = ipack + 1
    4698     1577599 :          pack_tmp = packed_data(ipack)
    4699     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4700     1577599 :          pack_tmp = ISHFT(pack_tmp, -2)
    4701     1577599 :          idata = idata + 1
    4702     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4703     1577599 :          full_data(idata) = data_tmp
    4704     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4705     1577599 :          idata = idata + 1
    4706     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4707     1577599 :          full_data(idata) = data_tmp
    4708     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4709     1577599 :          idata = idata + 1
    4710     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4711     1577599 :          full_data(idata) = data_tmp
    4712     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4713     1577599 :          idata = idata + 1
    4714     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4715     1577599 :          full_data(idata) = data_tmp
    4716     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4717     1577599 :          idata = idata + 1
    4718     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4719     1577599 :          full_data(idata) = data_tmp
    4720     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4721     1577599 :          idata = idata + 1
    4722     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4723     1577599 :          full_data(idata) = data_tmp
    4724     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4725     1577599 :          idata = idata + 1
    4726     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4727     1577599 :          full_data(idata) = data_tmp
    4728     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4729     1577599 :          idata = idata + 1
    4730     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4731     1577599 :          full_data(idata) = data_tmp
    4732     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4733     1577599 :          idata = idata + 1
    4734     1577599 :          data_tmp = ISHFT(pack_tmp, 1)
    4735     1577599 :          ipack = ipack + 1
    4736     1577599 :          pack_tmp = packed_data(ipack)
    4737     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    4738     1577599 :          pack_tmp = ISHFT(pack_tmp, -1)
    4739     1577599 :          idata = idata + 1
    4740     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4741     1577599 :          full_data(idata) = data_tmp
    4742     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4743     1577599 :          idata = idata + 1
    4744     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4745     1577599 :          full_data(idata) = data_tmp
    4746     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4747     1577599 :          idata = idata + 1
    4748     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4749     1577599 :          full_data(idata) = data_tmp
    4750     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4751     1577599 :          idata = idata + 1
    4752     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4753     1577599 :          full_data(idata) = data_tmp
    4754     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4755     1577599 :          idata = idata + 1
    4756     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4757     1577599 :          full_data(idata) = data_tmp
    4758     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4759     1577599 :          idata = idata + 1
    4760     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4761     1577599 :          full_data(idata) = data_tmp
    4762     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4763     1577599 :          idata = idata + 1
    4764     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4765     1577599 :          full_data(idata) = data_tmp
    4766     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4767     1577599 :          idata = idata + 1
    4768     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4769     1577599 :          full_data(idata) = data_tmp
    4770     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4771     1577599 :          idata = idata + 1
    4772     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4773     1577599 :          full_data(idata) = data_tmp
    4774     1577613 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4775             :       END DO
    4776       98938 :       IF (Ndata_rep < Ndata) THEN
    4777         610 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4778             :       END IF
    4779       98938 :    END SUBROUTINE bits2ints_7
    4780             : 
    4781             : ! **************************************************************************************************
    4782             : !> \brief ...
    4783             : !> \param Ndata ...
    4784             : !> \param packed_data ...
    4785             : !> \param full_data ...
    4786             : ! **************************************************************************************************
    4787       24021 :    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       24021 :       idata = 0
    4798       24021 :       ipack = 0
    4799       24021 :       Ndata_rep = (Ndata/64)*64
    4800       24021 :       DO kdata = 1, Ndata_rep, 64
    4801      383792 :          pack_tmp = 0
    4802      383792 :          idata = idata + 1
    4803      383792 :          data_tmp = full_data(idata)
    4804      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4805      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4806      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4807      383792 :          idata = idata + 1
    4808      383792 :          data_tmp = full_data(idata)
    4809      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4810      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4811      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4812      383792 :          idata = idata + 1
    4813      383792 :          data_tmp = full_data(idata)
    4814      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4815      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4816      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4817      383792 :          idata = idata + 1
    4818      383792 :          data_tmp = full_data(idata)
    4819      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4820      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4821      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4822      383792 :          idata = idata + 1
    4823      383792 :          data_tmp = full_data(idata)
    4824      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4825      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4826      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4827      383792 :          idata = idata + 1
    4828      383792 :          data_tmp = full_data(idata)
    4829      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4830      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4831      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4832      383792 :          idata = idata + 1
    4833      383792 :          data_tmp = full_data(idata)
    4834      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4835      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4836      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4837      383792 :          idata = idata + 1
    4838      383792 :          data_tmp = full_data(idata)
    4839      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4840      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4841      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    4842      383792 :          idata = idata + 1
    4843      383792 :          data_tmp = full_data(idata)
    4844             :          data_tmp = ISHFT(data_tmp, 56)
    4845      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    4846      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4847      383792 :          ipack = ipack + 1
    4848      383792 :          packed_data(ipack) = pack_tmp
    4849      383792 :          data_tmp = full_data(idata)
    4850      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    4851      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4852      383792 :          idata = idata + 1
    4853      383792 :          data_tmp = full_data(idata)
    4854      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4855      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4856      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4857      383792 :          idata = idata + 1
    4858      383792 :          data_tmp = full_data(idata)
    4859      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4860      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4861      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4862      383792 :          idata = idata + 1
    4863      383792 :          data_tmp = full_data(idata)
    4864      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4865      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4866      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4867      383792 :          idata = idata + 1
    4868      383792 :          data_tmp = full_data(idata)
    4869      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4870      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4871      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4872      383792 :          idata = idata + 1
    4873      383792 :          data_tmp = full_data(idata)
    4874      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4875      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4876      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4877      383792 :          idata = idata + 1
    4878      383792 :          data_tmp = full_data(idata)
    4879      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4880      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4881      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4882      383792 :          idata = idata + 1
    4883      383792 :          data_tmp = full_data(idata)
    4884      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4885      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4886      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    4887      383792 :          idata = idata + 1
    4888      383792 :          data_tmp = full_data(idata)
    4889             :          data_tmp = ISHFT(data_tmp, 56)
    4890      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    4891      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4892      383792 :          ipack = ipack + 1
    4893      383792 :          packed_data(ipack) = pack_tmp
    4894      383792 :          data_tmp = full_data(idata)
    4895      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    4896      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4897      383792 :          idata = idata + 1
    4898      383792 :          data_tmp = full_data(idata)
    4899      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4900      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4901      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4902      383792 :          idata = idata + 1
    4903      383792 :          data_tmp = full_data(idata)
    4904      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4905      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4906      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4907      383792 :          idata = idata + 1
    4908      383792 :          data_tmp = full_data(idata)
    4909      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4910      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4911      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4912      383792 :          idata = idata + 1
    4913      383792 :          data_tmp = full_data(idata)
    4914      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4915      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4916      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4917      383792 :          idata = idata + 1
    4918      383792 :          data_tmp = full_data(idata)
    4919      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4920      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4921      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4922      383792 :          idata = idata + 1
    4923      383792 :          data_tmp = full_data(idata)
    4924      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4925      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4926      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4927      383792 :          idata = idata + 1
    4928      383792 :          data_tmp = full_data(idata)
    4929      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4930      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4931      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    4932      383792 :          idata = idata + 1
    4933      383792 :          data_tmp = full_data(idata)
    4934             :          data_tmp = ISHFT(data_tmp, 56)
    4935      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    4936      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4937      383792 :          ipack = ipack + 1
    4938      383792 :          packed_data(ipack) = pack_tmp
    4939      383792 :          data_tmp = full_data(idata)
    4940      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    4941      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4942      383792 :          idata = idata + 1
    4943      383792 :          data_tmp = full_data(idata)
    4944      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4945      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4946      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4947      383792 :          idata = idata + 1
    4948      383792 :          data_tmp = full_data(idata)
    4949      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4950      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4951      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4952      383792 :          idata = idata + 1
    4953      383792 :          data_tmp = full_data(idata)
    4954      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4955      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4956      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4957      383792 :          idata = idata + 1
    4958      383792 :          data_tmp = full_data(idata)
    4959      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4960      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4961      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4962      383792 :          idata = idata + 1
    4963      383792 :          data_tmp = full_data(idata)
    4964      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4965      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4966      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4967      383792 :          idata = idata + 1
    4968      383792 :          data_tmp = full_data(idata)
    4969      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4970      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4971      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4972      383792 :          idata = idata + 1
    4973      383792 :          data_tmp = full_data(idata)
    4974      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4975      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4976      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    4977      383792 :          idata = idata + 1
    4978      383792 :          data_tmp = full_data(idata)
    4979             :          data_tmp = ISHFT(data_tmp, 56)
    4980      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    4981      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4982      383792 :          ipack = ipack + 1
    4983      383792 :          packed_data(ipack) = pack_tmp
    4984      383792 :          data_tmp = full_data(idata)
    4985      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    4986      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4987      383792 :          idata = idata + 1
    4988      383792 :          data_tmp = full_data(idata)
    4989      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4990      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4991      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4992      383792 :          idata = idata + 1
    4993      383792 :          data_tmp = full_data(idata)
    4994      383792 :          data_tmp = ISHFT(data_tmp, 56)
    4995      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4996      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    4997      383792 :          idata = idata + 1
    4998      383792 :          data_tmp = full_data(idata)
    4999      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5000      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5001      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5002      383792 :          idata = idata + 1
    5003      383792 :          data_tmp = full_data(idata)
    5004      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5005      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5006      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5007      383792 :          idata = idata + 1
    5008      383792 :          data_tmp = full_data(idata)
    5009      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5010      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5011      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5012      383792 :          idata = idata + 1
    5013      383792 :          data_tmp = full_data(idata)
    5014      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5015      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5016      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5017      383792 :          idata = idata + 1
    5018      383792 :          data_tmp = full_data(idata)
    5019      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5020      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5021      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    5022      383792 :          idata = idata + 1
    5023      383792 :          data_tmp = full_data(idata)
    5024             :          data_tmp = ISHFT(data_tmp, 56)
    5025      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    5026      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5027      383792 :          ipack = ipack + 1
    5028      383792 :          packed_data(ipack) = pack_tmp
    5029      383792 :          data_tmp = full_data(idata)
    5030      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    5031      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5032      383792 :          idata = idata + 1
    5033      383792 :          data_tmp = full_data(idata)
    5034      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5035      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5036      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5037      383792 :          idata = idata + 1
    5038      383792 :          data_tmp = full_data(idata)
    5039      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5040      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5041      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5042      383792 :          idata = idata + 1
    5043      383792 :          data_tmp = full_data(idata)
    5044      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5045      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5046      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5047      383792 :          idata = idata + 1
    5048      383792 :          data_tmp = full_data(idata)
    5049      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5050      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5051      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5052      383792 :          idata = idata + 1
    5053      383792 :          data_tmp = full_data(idata)
    5054      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5055      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5056      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5057      383792 :          idata = idata + 1
    5058      383792 :          data_tmp = full_data(idata)
    5059      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5060      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5061      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5062      383792 :          idata = idata + 1
    5063      383792 :          data_tmp = full_data(idata)
    5064      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5065      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5066      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    5067      383792 :          idata = idata + 1
    5068      383792 :          data_tmp = full_data(idata)
    5069             :          data_tmp = ISHFT(data_tmp, 56)
    5070      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    5071      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5072      383792 :          ipack = ipack + 1
    5073      383792 :          packed_data(ipack) = pack_tmp
    5074      383792 :          data_tmp = full_data(idata)
    5075      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    5076      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5077      383792 :          idata = idata + 1
    5078      383792 :          data_tmp = full_data(idata)
    5079      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5080      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5081      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5082      383792 :          idata = idata + 1
    5083      383792 :          data_tmp = full_data(idata)
    5084      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5085      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5086      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5087      383792 :          idata = idata + 1
    5088      383792 :          data_tmp = full_data(idata)
    5089      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5090      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5091      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5092      383792 :          idata = idata + 1
    5093      383792 :          data_tmp = full_data(idata)
    5094      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5095      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5096      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5097      383792 :          idata = idata + 1
    5098      383792 :          data_tmp = full_data(idata)
    5099      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5100      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5101      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5102      383792 :          idata = idata + 1
    5103      383792 :          data_tmp = full_data(idata)
    5104      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5105      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5106      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5107      383792 :          idata = idata + 1
    5108      383792 :          data_tmp = full_data(idata)
    5109      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5110      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5111      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    5112      383792 :          idata = idata + 1
    5113      383792 :          data_tmp = full_data(idata)
    5114             :          data_tmp = ISHFT(data_tmp, 56)
    5115      383792 :          data_tmp = IAND(data_tmp, mask_left(0))
    5116      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5117      383792 :          ipack = ipack + 1
    5118      383792 :          packed_data(ipack) = pack_tmp
    5119      383792 :          data_tmp = full_data(idata)
    5120      383792 :          pack_tmp = ISHFT(data_tmp, 56)
    5121      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5122      383792 :          idata = idata + 1
    5123      383792 :          data_tmp = full_data(idata)
    5124      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5125      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5126      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5127      383792 :          idata = idata + 1
    5128      383792 :          data_tmp = full_data(idata)
    5129      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5130      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5131      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5132      383792 :          idata = idata + 1
    5133      383792 :          data_tmp = full_data(idata)
    5134      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5135      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5136      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5137      383792 :          idata = idata + 1
    5138      383792 :          data_tmp = full_data(idata)
    5139      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5140      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5141      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5142      383792 :          idata = idata + 1
    5143      383792 :          data_tmp = full_data(idata)
    5144      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5145      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5146      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5147      383792 :          idata = idata + 1
    5148      383792 :          data_tmp = full_data(idata)
    5149      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5150      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5151      383792 :          pack_tmp = ISHFT(pack_tmp, -8)
    5152      383792 :          idata = idata + 1
    5153      383792 :          data_tmp = full_data(idata)
    5154      383792 :          data_tmp = ISHFT(data_tmp, 56)
    5155      383792 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5156             :          pack_tmp = ISHFT(pack_tmp, 0)
    5157      383792 :          pack_tmp = ISHFT(pack_tmp, 0)
    5158      383792 :          ipack = ipack + 1
    5159      383826 :          packed_data(ipack) = pack_tmp
    5160             :       END DO
    5161       24021 :       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       24021 :    END SUBROUTINE ints2bits_8
    5165             : 
    5166             : ! **************************************************************************************************
    5167             : !> \brief ...
    5168             : !> \param Ndata ...
    5169             : !> \param packed_data ...
    5170             : !> \param full_data ...
    5171             : ! **************************************************************************************************
    5172       98992 :    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       98992 :       ipack = 0
    5183       98992 :       idata = 0
    5184       98992 :       pack_tmp = 0
    5185       98992 :       Ndata_rep = (Ndata/64)*64
    5186       98992 :       DO kdata = 1, Ndata_rep, 64
    5187     1578160 :          idata = idata + 1
    5188     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5189     1578160 :          ipack = ipack + 1
    5190     1578160 :          pack_tmp = packed_data(ipack)
    5191     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5192     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5193     1578160 :          idata = idata + 1
    5194     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5195     1578160 :          full_data(idata) = data_tmp
    5196     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5197     1578160 :          idata = idata + 1
    5198     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5199     1578160 :          full_data(idata) = data_tmp
    5200     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5201     1578160 :          idata = idata + 1
    5202     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5203     1578160 :          full_data(idata) = data_tmp
    5204     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5205     1578160 :          idata = idata + 1
    5206     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5207     1578160 :          full_data(idata) = data_tmp
    5208     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5209     1578160 :          idata = idata + 1
    5210     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5211     1578160 :          full_data(idata) = data_tmp
    5212     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5213     1578160 :          idata = idata + 1
    5214     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5215     1578160 :          full_data(idata) = data_tmp
    5216     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5217     1578160 :          idata = idata + 1
    5218     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5219     1578160 :          full_data(idata) = data_tmp
    5220     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5221     1578160 :          idata = idata + 1
    5222     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5223     1578160 :          ipack = ipack + 1
    5224     1578160 :          pack_tmp = packed_data(ipack)
    5225     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5226     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5227     1578160 :          idata = idata + 1
    5228     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5229     1578160 :          full_data(idata) = data_tmp
    5230     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5231     1578160 :          idata = idata + 1
    5232     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5233     1578160 :          full_data(idata) = data_tmp
    5234     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5235     1578160 :          idata = idata + 1
    5236     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5237     1578160 :          full_data(idata) = data_tmp
    5238     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5239     1578160 :          idata = idata + 1
    5240     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5241     1578160 :          full_data(idata) = data_tmp
    5242     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5243     1578160 :          idata = idata + 1
    5244     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5245     1578160 :          full_data(idata) = data_tmp
    5246     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5247     1578160 :          idata = idata + 1
    5248     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5249     1578160 :          full_data(idata) = data_tmp
    5250     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5251     1578160 :          idata = idata + 1
    5252     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5253     1578160 :          full_data(idata) = data_tmp
    5254     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5255     1578160 :          idata = idata + 1
    5256     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5257     1578160 :          ipack = ipack + 1
    5258     1578160 :          pack_tmp = packed_data(ipack)
    5259     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5260     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5261     1578160 :          idata = idata + 1
    5262     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5263     1578160 :          full_data(idata) = data_tmp
    5264     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5265     1578160 :          idata = idata + 1
    5266     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5267     1578160 :          full_data(idata) = data_tmp
    5268     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5269     1578160 :          idata = idata + 1
    5270     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5271     1578160 :          full_data(idata) = data_tmp
    5272     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5273     1578160 :          idata = idata + 1
    5274     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5275     1578160 :          full_data(idata) = data_tmp
    5276     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5277     1578160 :          idata = idata + 1
    5278     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5279     1578160 :          full_data(idata) = data_tmp
    5280     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5281     1578160 :          idata = idata + 1
    5282     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5283     1578160 :          full_data(idata) = data_tmp
    5284     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5285     1578160 :          idata = idata + 1
    5286     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5287     1578160 :          full_data(idata) = data_tmp
    5288     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5289     1578160 :          idata = idata + 1
    5290     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5291     1578160 :          ipack = ipack + 1
    5292     1578160 :          pack_tmp = packed_data(ipack)
    5293     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5294     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5295     1578160 :          idata = idata + 1
    5296     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5297     1578160 :          full_data(idata) = data_tmp
    5298     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5299     1578160 :          idata = idata + 1
    5300     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5301     1578160 :          full_data(idata) = data_tmp
    5302     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5303     1578160 :          idata = idata + 1
    5304     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5305     1578160 :          full_data(idata) = data_tmp
    5306     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5307     1578160 :          idata = idata + 1
    5308     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5309     1578160 :          full_data(idata) = data_tmp
    5310     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5311     1578160 :          idata = idata + 1
    5312     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5313     1578160 :          full_data(idata) = data_tmp
    5314     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5315     1578160 :          idata = idata + 1
    5316     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5317     1578160 :          full_data(idata) = data_tmp
    5318     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5319     1578160 :          idata = idata + 1
    5320     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5321     1578160 :          full_data(idata) = data_tmp
    5322     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5323     1578160 :          idata = idata + 1
    5324     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5325     1578160 :          ipack = ipack + 1
    5326     1578160 :          pack_tmp = packed_data(ipack)
    5327     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5328     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5329     1578160 :          idata = idata + 1
    5330     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5331     1578160 :          full_data(idata) = data_tmp
    5332     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5333     1578160 :          idata = idata + 1
    5334     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5335     1578160 :          full_data(idata) = data_tmp
    5336     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5337     1578160 :          idata = idata + 1
    5338     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5339     1578160 :          full_data(idata) = data_tmp
    5340     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5341     1578160 :          idata = idata + 1
    5342     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5343     1578160 :          full_data(idata) = data_tmp
    5344     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5345     1578160 :          idata = idata + 1
    5346     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5347     1578160 :          full_data(idata) = data_tmp
    5348     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5349     1578160 :          idata = idata + 1
    5350     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5351     1578160 :          full_data(idata) = data_tmp
    5352     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5353     1578160 :          idata = idata + 1
    5354     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5355     1578160 :          full_data(idata) = data_tmp
    5356     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5357     1578160 :          idata = idata + 1
    5358     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5359     1578160 :          ipack = ipack + 1
    5360     1578160 :          pack_tmp = packed_data(ipack)
    5361     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5362     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5363     1578160 :          idata = idata + 1
    5364     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5365     1578160 :          full_data(idata) = data_tmp
    5366     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5367     1578160 :          idata = idata + 1
    5368     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5369     1578160 :          full_data(idata) = data_tmp
    5370     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5371     1578160 :          idata = idata + 1
    5372     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5373     1578160 :          full_data(idata) = data_tmp
    5374     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5375     1578160 :          idata = idata + 1
    5376     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5377     1578160 :          full_data(idata) = data_tmp
    5378     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5379     1578160 :          idata = idata + 1
    5380     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5381     1578160 :          full_data(idata) = data_tmp
    5382     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5383     1578160 :          idata = idata + 1
    5384     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5385     1578160 :          full_data(idata) = data_tmp
    5386     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5387     1578160 :          idata = idata + 1
    5388     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5389     1578160 :          full_data(idata) = data_tmp
    5390     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5391     1578160 :          idata = idata + 1
    5392     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5393     1578160 :          ipack = ipack + 1
    5394     1578160 :          pack_tmp = packed_data(ipack)
    5395     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5396     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5397     1578160 :          idata = idata + 1
    5398     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5399     1578160 :          full_data(idata) = data_tmp
    5400     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5401     1578160 :          idata = idata + 1
    5402     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5403     1578160 :          full_data(idata) = data_tmp
    5404     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5405     1578160 :          idata = idata + 1
    5406     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5407     1578160 :          full_data(idata) = data_tmp
    5408     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5409     1578160 :          idata = idata + 1
    5410     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5411     1578160 :          full_data(idata) = data_tmp
    5412     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5413     1578160 :          idata = idata + 1
    5414     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5415     1578160 :          full_data(idata) = data_tmp
    5416     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5417     1578160 :          idata = idata + 1
    5418     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5419     1578160 :          full_data(idata) = data_tmp
    5420     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5421     1578160 :          idata = idata + 1
    5422     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5423     1578160 :          full_data(idata) = data_tmp
    5424     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5425     1578160 :          idata = idata + 1
    5426     1578160 :          data_tmp = ISHFT(pack_tmp, 8)
    5427     1578160 :          ipack = ipack + 1
    5428     1578160 :          pack_tmp = packed_data(ipack)
    5429     1578160 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5430     1578160 :          pack_tmp = ISHFT(pack_tmp, -8)
    5431     1578160 :          idata = idata + 1
    5432     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5433     1578160 :          full_data(idata) = data_tmp
    5434     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5435     1578160 :          idata = idata + 1
    5436     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5437     1578160 :          full_data(idata) = data_tmp
    5438     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5439     1578160 :          idata = idata + 1
    5440     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5441     1578160 :          full_data(idata) = data_tmp
    5442     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5443     1578160 :          idata = idata + 1
    5444     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5445     1578160 :          full_data(idata) = data_tmp
    5446     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5447     1578160 :          idata = idata + 1
    5448     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5449     1578160 :          full_data(idata) = data_tmp
    5450     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5451     1578160 :          idata = idata + 1
    5452     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5453     1578160 :          full_data(idata) = data_tmp
    5454     1578160 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5455     1578160 :          idata = idata + 1
    5456     1578160 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5457     1578160 :          full_data(idata) = data_tmp
    5458     1578517 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5459             :       END DO
    5460       98992 :       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       98992 :    END SUBROUTINE bits2ints_8
    5464             : 
    5465             : ! **************************************************************************************************
    5466             : !> \brief ...
    5467             : !> \param Ndata ...
    5468             : !> \param packed_data ...
    5469             : !> \param full_data ...
    5470             : ! **************************************************************************************************
    5471       23980 :    SUBROUTINE ints2bits_9(Ndata, packed_data, full_data)
    5472             :       INTEGER, INTENT(IN)                                :: Ndata
    5473             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
    5474             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
    5475             : 
    5476             :       INTEGER, PARAMETER                                 :: Nbits = 9
    5477             : 
    5478             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    5479             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    5480             : 
    5481       23980 :       idata = 0
    5482       23980 :       ipack = 0
    5483       23980 :       Ndata_rep = (Ndata/64)*64
    5484       23980 :       DO kdata = 1, Ndata_rep, 64
    5485      383119 :          pack_tmp = 0
    5486      383119 :          idata = idata + 1
    5487      383119 :          data_tmp = full_data(idata)
    5488      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5489      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5490      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5491      383119 :          idata = idata + 1
    5492      383119 :          data_tmp = full_data(idata)
    5493      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5494      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5495      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5496      383119 :          idata = idata + 1
    5497      383119 :          data_tmp = full_data(idata)
    5498      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5499      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5500      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5501      383119 :          idata = idata + 1
    5502      383119 :          data_tmp = full_data(idata)
    5503      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5504      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5505      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5506      383119 :          idata = idata + 1
    5507      383119 :          data_tmp = full_data(idata)
    5508      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5509      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5510      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5511      383119 :          idata = idata + 1
    5512      383119 :          data_tmp = full_data(idata)
    5513      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5514      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5515      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5516      383119 :          idata = idata + 1
    5517      383119 :          data_tmp = full_data(idata)
    5518      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5519      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5520      383119 :          pack_tmp = ISHFT(pack_tmp, -1)
    5521      383119 :          idata = idata + 1
    5522      383119 :          data_tmp = full_data(idata)
    5523      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5524      383119 :          data_tmp = IAND(data_tmp, mask_left(1))
    5525      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5526      383119 :          ipack = ipack + 1
    5527      383119 :          packed_data(ipack) = pack_tmp
    5528      383119 :          data_tmp = full_data(idata)
    5529      383119 :          pack_tmp = ISHFT(data_tmp, 56)
    5530      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5531      383119 :          idata = idata + 1
    5532      383119 :          data_tmp = full_data(idata)
    5533      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5534      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5535      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5536      383119 :          idata = idata + 1
    5537      383119 :          data_tmp = full_data(idata)
    5538      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5539      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5540      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5541      383119 :          idata = idata + 1
    5542      383119 :          data_tmp = full_data(idata)
    5543      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5544      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5545      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5546      383119 :          idata = idata + 1
    5547      383119 :          data_tmp = full_data(idata)
    5548      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5549      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5550      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5551      383119 :          idata = idata + 1
    5552      383119 :          data_tmp = full_data(idata)
    5553      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5554      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5555      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5556      383119 :          idata = idata + 1
    5557      383119 :          data_tmp = full_data(idata)
    5558      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5559      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5560      383119 :          pack_tmp = ISHFT(pack_tmp, -2)
    5561      383119 :          idata = idata + 1
    5562      383119 :          data_tmp = full_data(idata)
    5563      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5564      383119 :          data_tmp = IAND(data_tmp, mask_left(2))
    5565      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5566      383119 :          ipack = ipack + 1
    5567      383119 :          packed_data(ipack) = pack_tmp
    5568      383119 :          data_tmp = full_data(idata)
    5569      383119 :          pack_tmp = ISHFT(data_tmp, 57)
    5570      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5571      383119 :          idata = idata + 1
    5572      383119 :          data_tmp = full_data(idata)
    5573      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5574      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5575      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5576      383119 :          idata = idata + 1
    5577      383119 :          data_tmp = full_data(idata)
    5578      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5579      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5580      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5581      383119 :          idata = idata + 1
    5582      383119 :          data_tmp = full_data(idata)
    5583      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5584      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5585      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5586      383119 :          idata = idata + 1
    5587      383119 :          data_tmp = full_data(idata)
    5588      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5589      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5590      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5591      383119 :          idata = idata + 1
    5592      383119 :          data_tmp = full_data(idata)
    5593      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5594      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5595      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5596      383119 :          idata = idata + 1
    5597      383119 :          data_tmp = full_data(idata)
    5598      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5599      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5600      383119 :          pack_tmp = ISHFT(pack_tmp, -3)
    5601      383119 :          idata = idata + 1
    5602      383119 :          data_tmp = full_data(idata)
    5603      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5604      383119 :          data_tmp = IAND(data_tmp, mask_left(3))
    5605      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5606      383119 :          ipack = ipack + 1
    5607      383119 :          packed_data(ipack) = pack_tmp
    5608      383119 :          data_tmp = full_data(idata)
    5609      383119 :          pack_tmp = ISHFT(data_tmp, 58)
    5610      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5611      383119 :          idata = idata + 1
    5612      383119 :          data_tmp = full_data(idata)
    5613      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5614      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5615      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5616      383119 :          idata = idata + 1
    5617      383119 :          data_tmp = full_data(idata)
    5618      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5619      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5620      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5621      383119 :          idata = idata + 1
    5622      383119 :          data_tmp = full_data(idata)
    5623      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5624      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5625      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5626      383119 :          idata = idata + 1
    5627      383119 :          data_tmp = full_data(idata)
    5628      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5629      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5630      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5631      383119 :          idata = idata + 1
    5632      383119 :          data_tmp = full_data(idata)
    5633      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5634      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5635      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5636      383119 :          idata = idata + 1
    5637      383119 :          data_tmp = full_data(idata)
    5638      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5639      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5640      383119 :          pack_tmp = ISHFT(pack_tmp, -4)
    5641      383119 :          idata = idata + 1
    5642      383119 :          data_tmp = full_data(idata)
    5643      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5644      383119 :          data_tmp = IAND(data_tmp, mask_left(4))
    5645      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5646      383119 :          ipack = ipack + 1
    5647      383119 :          packed_data(ipack) = pack_tmp
    5648      383119 :          data_tmp = full_data(idata)
    5649      383119 :          pack_tmp = ISHFT(data_tmp, 59)
    5650      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5651      383119 :          idata = idata + 1
    5652      383119 :          data_tmp = full_data(idata)
    5653      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5654      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5655      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5656      383119 :          idata = idata + 1
    5657      383119 :          data_tmp = full_data(idata)
    5658      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5659      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5660      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5661      383119 :          idata = idata + 1
    5662      383119 :          data_tmp = full_data(idata)
    5663      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5664      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5665      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5666      383119 :          idata = idata + 1
    5667      383119 :          data_tmp = full_data(idata)
    5668      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5669      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5670      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5671      383119 :          idata = idata + 1
    5672      383119 :          data_tmp = full_data(idata)
    5673      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5674      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5675      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5676      383119 :          idata = idata + 1
    5677      383119 :          data_tmp = full_data(idata)
    5678      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5679      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5680      383119 :          pack_tmp = ISHFT(pack_tmp, -5)
    5681      383119 :          idata = idata + 1
    5682      383119 :          data_tmp = full_data(idata)
    5683      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5684      383119 :          data_tmp = IAND(data_tmp, mask_left(5))
    5685      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5686      383119 :          ipack = ipack + 1
    5687      383119 :          packed_data(ipack) = pack_tmp
    5688      383119 :          data_tmp = full_data(idata)
    5689      383119 :          pack_tmp = ISHFT(data_tmp, 60)
    5690      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5691      383119 :          idata = idata + 1
    5692      383119 :          data_tmp = full_data(idata)
    5693      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5694      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5695      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5696      383119 :          idata = idata + 1
    5697      383119 :          data_tmp = full_data(idata)
    5698      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5699      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5700      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5701      383119 :          idata = idata + 1
    5702      383119 :          data_tmp = full_data(idata)
    5703      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5704      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5705      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5706      383119 :          idata = idata + 1
    5707      383119 :          data_tmp = full_data(idata)
    5708      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5709      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5710      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5711      383119 :          idata = idata + 1
    5712      383119 :          data_tmp = full_data(idata)
    5713      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5714      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5715      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5716      383119 :          idata = idata + 1
    5717      383119 :          data_tmp = full_data(idata)
    5718      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5719      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5720      383119 :          pack_tmp = ISHFT(pack_tmp, -6)
    5721      383119 :          idata = idata + 1
    5722      383119 :          data_tmp = full_data(idata)
    5723      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5724      383119 :          data_tmp = IAND(data_tmp, mask_left(6))
    5725      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5726      383119 :          ipack = ipack + 1
    5727      383119 :          packed_data(ipack) = pack_tmp
    5728      383119 :          data_tmp = full_data(idata)
    5729      383119 :          pack_tmp = ISHFT(data_tmp, 61)
    5730      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5731      383119 :          idata = idata + 1
    5732      383119 :          data_tmp = full_data(idata)
    5733      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5734      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5735      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5736      383119 :          idata = idata + 1
    5737      383119 :          data_tmp = full_data(idata)
    5738      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5739      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5740      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5741      383119 :          idata = idata + 1
    5742      383119 :          data_tmp = full_data(idata)
    5743      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5744      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5745      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5746      383119 :          idata = idata + 1
    5747      383119 :          data_tmp = full_data(idata)
    5748      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5749      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5750      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5751      383119 :          idata = idata + 1
    5752      383119 :          data_tmp = full_data(idata)
    5753      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5754      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5755      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5756      383119 :          idata = idata + 1
    5757      383119 :          data_tmp = full_data(idata)
    5758      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5759      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5760      383119 :          pack_tmp = ISHFT(pack_tmp, -7)
    5761      383119 :          idata = idata + 1
    5762      383119 :          data_tmp = full_data(idata)
    5763      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5764      383119 :          data_tmp = IAND(data_tmp, mask_left(7))
    5765      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5766      383119 :          ipack = ipack + 1
    5767      383119 :          packed_data(ipack) = pack_tmp
    5768      383119 :          data_tmp = full_data(idata)
    5769      383119 :          pack_tmp = ISHFT(data_tmp, 62)
    5770      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5771      383119 :          idata = idata + 1
    5772      383119 :          data_tmp = full_data(idata)
    5773      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5774      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5775      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5776      383119 :          idata = idata + 1
    5777      383119 :          data_tmp = full_data(idata)
    5778      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5779      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5780      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5781      383119 :          idata = idata + 1
    5782      383119 :          data_tmp = full_data(idata)
    5783      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5784      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5785      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5786      383119 :          idata = idata + 1
    5787      383119 :          data_tmp = full_data(idata)
    5788      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5789      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5790      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5791      383119 :          idata = idata + 1
    5792      383119 :          data_tmp = full_data(idata)
    5793      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5794      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5795      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5796      383119 :          idata = idata + 1
    5797      383119 :          data_tmp = full_data(idata)
    5798      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5799      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5800      383119 :          pack_tmp = ISHFT(pack_tmp, -8)
    5801      383119 :          idata = idata + 1
    5802      383119 :          data_tmp = full_data(idata)
    5803      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5804      383119 :          data_tmp = IAND(data_tmp, mask_left(8))
    5805      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5806      383119 :          ipack = ipack + 1
    5807      383119 :          packed_data(ipack) = pack_tmp
    5808      383119 :          data_tmp = full_data(idata)
    5809      383119 :          pack_tmp = ISHFT(data_tmp, 63)
    5810      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5811      383119 :          idata = idata + 1
    5812      383119 :          data_tmp = full_data(idata)
    5813      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5814      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5815      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5816      383119 :          idata = idata + 1
    5817      383119 :          data_tmp = full_data(idata)
    5818      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5819      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5820      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5821      383119 :          idata = idata + 1
    5822      383119 :          data_tmp = full_data(idata)
    5823      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5824      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5825      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5826      383119 :          idata = idata + 1
    5827      383119 :          data_tmp = full_data(idata)
    5828      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5829      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5830      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5831      383119 :          idata = idata + 1
    5832      383119 :          data_tmp = full_data(idata)
    5833      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5834      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5835      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5836      383119 :          idata = idata + 1
    5837      383119 :          data_tmp = full_data(idata)
    5838      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5839      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5840      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5841      383119 :          idata = idata + 1
    5842      383119 :          data_tmp = full_data(idata)
    5843      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5844      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5845             :          pack_tmp = ISHFT(pack_tmp, 0)
    5846      383119 :          pack_tmp = ISHFT(pack_tmp, 0)
    5847      383119 :          ipack = ipack + 1
    5848      383119 :          packed_data(ipack) = pack_tmp
    5849             :       END DO
    5850       23980 :       IF (Ndata_rep < Ndata) THEN
    5851          66 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5852             :       END IF
    5853       23980 :    END SUBROUTINE ints2bits_9
    5854             : 
    5855             : ! **************************************************************************************************
    5856             : !> \brief ...
    5857             : !> \param Ndata ...
    5858             : !> \param packed_data ...
    5859             : !> \param full_data ...
    5860             : ! **************************************************************************************************
    5861       98330 :    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       98330 :       ipack = 0
    5872       98330 :       idata = 0
    5873       98330 :       pack_tmp = 0
    5874       98330 :       Ndata_rep = (Ndata/64)*64
    5875       98330 :       DO kdata = 1, Ndata_rep, 64
    5876     1568027 :          idata = idata + 1
    5877     1568027 :          data_tmp = ISHFT(pack_tmp, 9)
    5878     1568027 :          ipack = ipack + 1
    5879     1568027 :          pack_tmp = packed_data(ipack)
    5880     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    5881     1568027 :          pack_tmp = ISHFT(pack_tmp, -9)
    5882     1568027 :          idata = idata + 1
    5883     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5884     1568027 :          full_data(idata) = data_tmp
    5885     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5886     1568027 :          idata = idata + 1
    5887     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5888     1568027 :          full_data(idata) = data_tmp
    5889     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5890     1568027 :          idata = idata + 1
    5891     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5892     1568027 :          full_data(idata) = data_tmp
    5893     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5894     1568027 :          idata = idata + 1
    5895     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5896     1568027 :          full_data(idata) = data_tmp
    5897     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5898     1568027 :          idata = idata + 1
    5899     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5900     1568027 :          full_data(idata) = data_tmp
    5901     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5902     1568027 :          idata = idata + 1
    5903     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5904     1568027 :          full_data(idata) = data_tmp
    5905     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5906     1568027 :          idata = idata + 1
    5907     1568027 :          data_tmp = ISHFT(pack_tmp, 8)
    5908     1568027 :          ipack = ipack + 1
    5909     1568027 :          pack_tmp = packed_data(ipack)
    5910     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5911     1568027 :          pack_tmp = ISHFT(pack_tmp, -8)
    5912     1568027 :          idata = idata + 1
    5913     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5914     1568027 :          full_data(idata) = data_tmp
    5915     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5916     1568027 :          idata = idata + 1
    5917     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5918     1568027 :          full_data(idata) = data_tmp
    5919     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5920     1568027 :          idata = idata + 1
    5921     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5922     1568027 :          full_data(idata) = data_tmp
    5923     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5924     1568027 :          idata = idata + 1
    5925     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5926     1568027 :          full_data(idata) = data_tmp
    5927     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5928     1568027 :          idata = idata + 1
    5929     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5930     1568027 :          full_data(idata) = data_tmp
    5931     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5932     1568027 :          idata = idata + 1
    5933     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5934     1568027 :          full_data(idata) = data_tmp
    5935     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5936     1568027 :          idata = idata + 1
    5937     1568027 :          data_tmp = ISHFT(pack_tmp, 7)
    5938     1568027 :          ipack = ipack + 1
    5939     1568027 :          pack_tmp = packed_data(ipack)
    5940     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    5941     1568027 :          pack_tmp = ISHFT(pack_tmp, -7)
    5942     1568027 :          idata = idata + 1
    5943     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5944     1568027 :          full_data(idata) = data_tmp
    5945     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5946     1568027 :          idata = idata + 1
    5947     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5948     1568027 :          full_data(idata) = data_tmp
    5949     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5950     1568027 :          idata = idata + 1
    5951     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5952     1568027 :          full_data(idata) = data_tmp
    5953     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5954     1568027 :          idata = idata + 1
    5955     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5956     1568027 :          full_data(idata) = data_tmp
    5957     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5958     1568027 :          idata = idata + 1
    5959     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5960     1568027 :          full_data(idata) = data_tmp
    5961     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5962     1568027 :          idata = idata + 1
    5963     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5964     1568027 :          full_data(idata) = data_tmp
    5965     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5966     1568027 :          idata = idata + 1
    5967     1568027 :          data_tmp = ISHFT(pack_tmp, 6)
    5968     1568027 :          ipack = ipack + 1
    5969     1568027 :          pack_tmp = packed_data(ipack)
    5970     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    5971     1568027 :          pack_tmp = ISHFT(pack_tmp, -6)
    5972     1568027 :          idata = idata + 1
    5973     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5974     1568027 :          full_data(idata) = data_tmp
    5975     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5976     1568027 :          idata = idata + 1
    5977     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5978     1568027 :          full_data(idata) = data_tmp
    5979     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5980     1568027 :          idata = idata + 1
    5981     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5982     1568027 :          full_data(idata) = data_tmp
    5983     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5984     1568027 :          idata = idata + 1
    5985     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5986     1568027 :          full_data(idata) = data_tmp
    5987     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5988     1568027 :          idata = idata + 1
    5989     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5990     1568027 :          full_data(idata) = data_tmp
    5991     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5992     1568027 :          idata = idata + 1
    5993     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5994     1568027 :          full_data(idata) = data_tmp
    5995     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5996     1568027 :          idata = idata + 1
    5997     1568027 :          data_tmp = ISHFT(pack_tmp, 5)
    5998     1568027 :          ipack = ipack + 1
    5999     1568027 :          pack_tmp = packed_data(ipack)
    6000     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    6001     1568027 :          pack_tmp = ISHFT(pack_tmp, -5)
    6002     1568027 :          idata = idata + 1
    6003     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6004     1568027 :          full_data(idata) = data_tmp
    6005     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6006     1568027 :          idata = idata + 1
    6007     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6008     1568027 :          full_data(idata) = data_tmp
    6009     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6010     1568027 :          idata = idata + 1
    6011     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6012     1568027 :          full_data(idata) = data_tmp
    6013     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6014     1568027 :          idata = idata + 1
    6015     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6016     1568027 :          full_data(idata) = data_tmp
    6017     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6018     1568027 :          idata = idata + 1
    6019     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6020     1568027 :          full_data(idata) = data_tmp
    6021     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6022     1568027 :          idata = idata + 1
    6023     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6024     1568027 :          full_data(idata) = data_tmp
    6025     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6026     1568027 :          idata = idata + 1
    6027     1568027 :          data_tmp = ISHFT(pack_tmp, 4)
    6028     1568027 :          ipack = ipack + 1
    6029     1568027 :          pack_tmp = packed_data(ipack)
    6030     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6031     1568027 :          pack_tmp = ISHFT(pack_tmp, -4)
    6032     1568027 :          idata = idata + 1
    6033     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6034     1568027 :          full_data(idata) = data_tmp
    6035     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6036     1568027 :          idata = idata + 1
    6037     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6038     1568027 :          full_data(idata) = data_tmp
    6039     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6040     1568027 :          idata = idata + 1
    6041     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6042     1568027 :          full_data(idata) = data_tmp
    6043     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6044     1568027 :          idata = idata + 1
    6045     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6046     1568027 :          full_data(idata) = data_tmp
    6047     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6048     1568027 :          idata = idata + 1
    6049     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6050     1568027 :          full_data(idata) = data_tmp
    6051     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6052     1568027 :          idata = idata + 1
    6053     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6054     1568027 :          full_data(idata) = data_tmp
    6055     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6056     1568027 :          idata = idata + 1
    6057     1568027 :          data_tmp = ISHFT(pack_tmp, 3)
    6058     1568027 :          ipack = ipack + 1
    6059     1568027 :          pack_tmp = packed_data(ipack)
    6060     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    6061     1568027 :          pack_tmp = ISHFT(pack_tmp, -3)
    6062     1568027 :          idata = idata + 1
    6063     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6064     1568027 :          full_data(idata) = data_tmp
    6065     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6066     1568027 :          idata = idata + 1
    6067     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6068     1568027 :          full_data(idata) = data_tmp
    6069     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6070     1568027 :          idata = idata + 1
    6071     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6072     1568027 :          full_data(idata) = data_tmp
    6073     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6074     1568027 :          idata = idata + 1
    6075     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6076     1568027 :          full_data(idata) = data_tmp
    6077     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6078     1568027 :          idata = idata + 1
    6079     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6080     1568027 :          full_data(idata) = data_tmp
    6081     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6082     1568027 :          idata = idata + 1
    6083     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6084     1568027 :          full_data(idata) = data_tmp
    6085     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6086     1568027 :          idata = idata + 1
    6087     1568027 :          data_tmp = ISHFT(pack_tmp, 2)
    6088     1568027 :          ipack = ipack + 1
    6089     1568027 :          pack_tmp = packed_data(ipack)
    6090     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6091     1568027 :          pack_tmp = ISHFT(pack_tmp, -2)
    6092     1568027 :          idata = idata + 1
    6093     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6094     1568027 :          full_data(idata) = data_tmp
    6095     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6096     1568027 :          idata = idata + 1
    6097     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6098     1568027 :          full_data(idata) = data_tmp
    6099     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6100     1568027 :          idata = idata + 1
    6101     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6102     1568027 :          full_data(idata) = data_tmp
    6103     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6104     1568027 :          idata = idata + 1
    6105     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6106     1568027 :          full_data(idata) = data_tmp
    6107     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6108     1568027 :          idata = idata + 1
    6109     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6110     1568027 :          full_data(idata) = data_tmp
    6111     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6112     1568027 :          idata = idata + 1
    6113     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6114     1568027 :          full_data(idata) = data_tmp
    6115     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6116     1568027 :          idata = idata + 1
    6117     1568027 :          data_tmp = ISHFT(pack_tmp, 1)
    6118     1568027 :          ipack = ipack + 1
    6119     1568027 :          pack_tmp = packed_data(ipack)
    6120     1568027 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    6121     1568027 :          pack_tmp = ISHFT(pack_tmp, -1)
    6122     1568027 :          idata = idata + 1
    6123     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6124     1568027 :          full_data(idata) = data_tmp
    6125     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6126     1568027 :          idata = idata + 1
    6127     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6128     1568027 :          full_data(idata) = data_tmp
    6129     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6130     1568027 :          idata = idata + 1
    6131     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6132     1568027 :          full_data(idata) = data_tmp
    6133     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6134     1568027 :          idata = idata + 1
    6135     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6136     1568027 :          full_data(idata) = data_tmp
    6137     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6138     1568027 :          idata = idata + 1
    6139     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6140     1568027 :          full_data(idata) = data_tmp
    6141     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6142     1568027 :          idata = idata + 1
    6143     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6144     1568027 :          full_data(idata) = data_tmp
    6145     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6146     1568027 :          idata = idata + 1
    6147     1568027 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6148     1568027 :          full_data(idata) = data_tmp
    6149     1568027 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6150             :       END DO
    6151       98330 :       IF (Ndata_rep < Ndata) THEN
    6152         618 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6153             :       END IF
    6154       98330 :    END SUBROUTINE bits2ints_9
    6155             : 
    6156             : ! **************************************************************************************************
    6157             : !> \brief ...
    6158             : !> \param Ndata ...
    6159             : !> \param packed_data ...
    6160             : !> \param full_data ...
    6161             : ! **************************************************************************************************
    6162       50461 :    SUBROUTINE ints2bits_10(Ndata, packed_data, full_data)
    6163             :       INTEGER, INTENT(IN)                                :: Ndata
    6164             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
    6165             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
    6166             : 
    6167             :       INTEGER, PARAMETER                                 :: Nbits = 10
    6168             : 
    6169             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    6170             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    6171             : 
    6172       50461 :       idata = 0
    6173       50461 :       ipack = 0
    6174       50461 :       Ndata_rep = (Ndata/64)*64
    6175       50461 :       DO kdata = 1, Ndata_rep, 64
    6176      747298 :          pack_tmp = 0
    6177      747298 :          idata = idata + 1
    6178      747298 :          data_tmp = full_data(idata)
    6179      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6180      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6181      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6182      747298 :          idata = idata + 1
    6183      747298 :          data_tmp = full_data(idata)
    6184      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6185      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6186      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6187      747298 :          idata = idata + 1
    6188      747298 :          data_tmp = full_data(idata)
    6189      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6190      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6191      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6192      747298 :          idata = idata + 1
    6193      747298 :          data_tmp = full_data(idata)
    6194      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6195      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6196      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6197      747298 :          idata = idata + 1
    6198      747298 :          data_tmp = full_data(idata)
    6199      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6200      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6201      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6202      747298 :          idata = idata + 1
    6203      747298 :          data_tmp = full_data(idata)
    6204      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6205      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6206      747298 :          pack_tmp = ISHFT(pack_tmp, -4)
    6207      747298 :          idata = idata + 1
    6208      747298 :          data_tmp = full_data(idata)
    6209      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6210      747298 :          data_tmp = IAND(data_tmp, mask_left(4))
    6211      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6212      747298 :          ipack = ipack + 1
    6213      747298 :          packed_data(ipack) = pack_tmp
    6214      747298 :          data_tmp = full_data(idata)
    6215      747298 :          pack_tmp = ISHFT(data_tmp, 58)
    6216      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6217      747298 :          idata = idata + 1
    6218      747298 :          data_tmp = full_data(idata)
    6219      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6220      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6221      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6222      747298 :          idata = idata + 1
    6223      747298 :          data_tmp = full_data(idata)
    6224      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6225      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6226      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6227      747298 :          idata = idata + 1
    6228      747298 :          data_tmp = full_data(idata)
    6229      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6230      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6231      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6232      747298 :          idata = idata + 1
    6233      747298 :          data_tmp = full_data(idata)
    6234      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6235      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6236      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6237      747298 :          idata = idata + 1
    6238      747298 :          data_tmp = full_data(idata)
    6239      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6240      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6241      747298 :          pack_tmp = ISHFT(pack_tmp, -8)
    6242      747298 :          idata = idata + 1
    6243      747298 :          data_tmp = full_data(idata)
    6244      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6245      747298 :          data_tmp = IAND(data_tmp, mask_left(8))
    6246      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6247      747298 :          ipack = ipack + 1
    6248      747298 :          packed_data(ipack) = pack_tmp
    6249      747298 :          data_tmp = full_data(idata)
    6250      747298 :          pack_tmp = ISHFT(data_tmp, 62)
    6251      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6252      747298 :          idata = idata + 1
    6253      747298 :          data_tmp = full_data(idata)
    6254      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6255      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6256      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6257      747298 :          idata = idata + 1
    6258      747298 :          data_tmp = full_data(idata)
    6259      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6260      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6261      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6262      747298 :          idata = idata + 1
    6263      747298 :          data_tmp = full_data(idata)
    6264      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6265      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6266      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6267      747298 :          idata = idata + 1
    6268      747298 :          data_tmp = full_data(idata)
    6269      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6270      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6271      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6272      747298 :          idata = idata + 1
    6273      747298 :          data_tmp = full_data(idata)
    6274      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6275      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6276      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6277      747298 :          idata = idata + 1
    6278      747298 :          data_tmp = full_data(idata)
    6279      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6280      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6281      747298 :          pack_tmp = ISHFT(pack_tmp, -2)
    6282      747298 :          idata = idata + 1
    6283      747298 :          data_tmp = full_data(idata)
    6284      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6285      747298 :          data_tmp = IAND(data_tmp, mask_left(2))
    6286      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6287      747298 :          ipack = ipack + 1
    6288      747298 :          packed_data(ipack) = pack_tmp
    6289      747298 :          data_tmp = full_data(idata)
    6290      747298 :          pack_tmp = ISHFT(data_tmp, 56)
    6291      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6292      747298 :          idata = idata + 1
    6293      747298 :          data_tmp = full_data(idata)
    6294      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6295      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6296      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6297      747298 :          idata = idata + 1
    6298      747298 :          data_tmp = full_data(idata)
    6299      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6300      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6301      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6302      747298 :          idata = idata + 1
    6303      747298 :          data_tmp = full_data(idata)
    6304      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6305      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6306      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6307      747298 :          idata = idata + 1
    6308      747298 :          data_tmp = full_data(idata)
    6309      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6310      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6311      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6312      747298 :          idata = idata + 1
    6313      747298 :          data_tmp = full_data(idata)
    6314      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6315      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6316      747298 :          pack_tmp = ISHFT(pack_tmp, -6)
    6317      747298 :          idata = idata + 1
    6318      747298 :          data_tmp = full_data(idata)
    6319      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6320      747298 :          data_tmp = IAND(data_tmp, mask_left(6))
    6321      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6322      747298 :          ipack = ipack + 1
    6323      747298 :          packed_data(ipack) = pack_tmp
    6324      747298 :          data_tmp = full_data(idata)
    6325      747298 :          pack_tmp = ISHFT(data_tmp, 60)
    6326      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6327      747298 :          idata = idata + 1
    6328      747298 :          data_tmp = full_data(idata)
    6329      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6330      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6331      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6332      747298 :          idata = idata + 1
    6333      747298 :          data_tmp = full_data(idata)
    6334      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6335      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6336      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6337      747298 :          idata = idata + 1
    6338      747298 :          data_tmp = full_data(idata)
    6339      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6340      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6341      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6342      747298 :          idata = idata + 1
    6343      747298 :          data_tmp = full_data(idata)
    6344      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6345      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6346      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6347      747298 :          idata = idata + 1
    6348      747298 :          data_tmp = full_data(idata)
    6349      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6350      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6351      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6352      747298 :          idata = idata + 1
    6353      747298 :          data_tmp = full_data(idata)
    6354      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6355      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6356      747298 :          pack_tmp = ISHFT(pack_tmp, 0)
    6357      747298 :          idata = idata + 1
    6358      747298 :          data_tmp = full_data(idata)
    6359             :          data_tmp = ISHFT(data_tmp, 54)
    6360      747298 :          data_tmp = IAND(data_tmp, mask_left(0))
    6361      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6362      747298 :          ipack = ipack + 1
    6363      747298 :          packed_data(ipack) = pack_tmp
    6364      747298 :          data_tmp = full_data(idata)
    6365      747298 :          pack_tmp = ISHFT(data_tmp, 54)
    6366      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6367      747298 :          idata = idata + 1
    6368      747298 :          data_tmp = full_data(idata)
    6369      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6370      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6371      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6372      747298 :          idata = idata + 1
    6373      747298 :          data_tmp = full_data(idata)
    6374      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6375      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6376      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6377      747298 :          idata = idata + 1
    6378      747298 :          data_tmp = full_data(idata)
    6379      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6380      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6381      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6382      747298 :          idata = idata + 1
    6383      747298 :          data_tmp = full_data(idata)
    6384      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6385      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6386      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6387      747298 :          idata = idata + 1
    6388      747298 :          data_tmp = full_data(idata)
    6389      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6390      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6391      747298 :          pack_tmp = ISHFT(pack_tmp, -4)
    6392      747298 :          idata = idata + 1
    6393      747298 :          data_tmp = full_data(idata)
    6394      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6395      747298 :          data_tmp = IAND(data_tmp, mask_left(4))
    6396      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6397      747298 :          ipack = ipack + 1
    6398      747298 :          packed_data(ipack) = pack_tmp
    6399      747298 :          data_tmp = full_data(idata)
    6400      747298 :          pack_tmp = ISHFT(data_tmp, 58)
    6401      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6402      747298 :          idata = idata + 1
    6403      747298 :          data_tmp = full_data(idata)
    6404      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6405      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6406      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6407      747298 :          idata = idata + 1
    6408      747298 :          data_tmp = full_data(idata)
    6409      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6410      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6411      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6412      747298 :          idata = idata + 1
    6413      747298 :          data_tmp = full_data(idata)
    6414      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6415      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6416      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6417      747298 :          idata = idata + 1
    6418      747298 :          data_tmp = full_data(idata)
    6419      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6420      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6421      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6422      747298 :          idata = idata + 1
    6423      747298 :          data_tmp = full_data(idata)
    6424      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6425      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6426      747298 :          pack_tmp = ISHFT(pack_tmp, -8)
    6427      747298 :          idata = idata + 1
    6428      747298 :          data_tmp = full_data(idata)
    6429      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6430      747298 :          data_tmp = IAND(data_tmp, mask_left(8))
    6431      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6432      747298 :          ipack = ipack + 1
    6433      747298 :          packed_data(ipack) = pack_tmp
    6434      747298 :          data_tmp = full_data(idata)
    6435      747298 :          pack_tmp = ISHFT(data_tmp, 62)
    6436      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6437      747298 :          idata = idata + 1
    6438      747298 :          data_tmp = full_data(idata)
    6439      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6440      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6441      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6442      747298 :          idata = idata + 1
    6443      747298 :          data_tmp = full_data(idata)
    6444      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6445      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6446      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6447      747298 :          idata = idata + 1
    6448      747298 :          data_tmp = full_data(idata)
    6449      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6450      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6451      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6452      747298 :          idata = idata + 1
    6453      747298 :          data_tmp = full_data(idata)
    6454      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6455      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6456      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6457      747298 :          idata = idata + 1
    6458      747298 :          data_tmp = full_data(idata)
    6459      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6460      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6461      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6462      747298 :          idata = idata + 1
    6463      747298 :          data_tmp = full_data(idata)
    6464      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6465      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6466      747298 :          pack_tmp = ISHFT(pack_tmp, -2)
    6467      747298 :          idata = idata + 1
    6468      747298 :          data_tmp = full_data(idata)
    6469      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6470      747298 :          data_tmp = IAND(data_tmp, mask_left(2))
    6471      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6472      747298 :          ipack = ipack + 1
    6473      747298 :          packed_data(ipack) = pack_tmp
    6474      747298 :          data_tmp = full_data(idata)
    6475      747298 :          pack_tmp = ISHFT(data_tmp, 56)
    6476      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6477      747298 :          idata = idata + 1
    6478      747298 :          data_tmp = full_data(idata)
    6479      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6480      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6481      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6482      747298 :          idata = idata + 1
    6483      747298 :          data_tmp = full_data(idata)
    6484      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6485      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6486      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6487      747298 :          idata = idata + 1
    6488      747298 :          data_tmp = full_data(idata)
    6489      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6490      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6491      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6492      747298 :          idata = idata + 1
    6493      747298 :          data_tmp = full_data(idata)
    6494      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6495      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6496      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6497      747298 :          idata = idata + 1
    6498      747298 :          data_tmp = full_data(idata)
    6499      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6500      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6501      747298 :          pack_tmp = ISHFT(pack_tmp, -6)
    6502      747298 :          idata = idata + 1
    6503      747298 :          data_tmp = full_data(idata)
    6504      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6505      747298 :          data_tmp = IAND(data_tmp, mask_left(6))
    6506      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6507      747298 :          ipack = ipack + 1
    6508      747298 :          packed_data(ipack) = pack_tmp
    6509      747298 :          data_tmp = full_data(idata)
    6510      747298 :          pack_tmp = ISHFT(data_tmp, 60)
    6511      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6512      747298 :          idata = idata + 1
    6513      747298 :          data_tmp = full_data(idata)
    6514      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6515      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6516      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6517      747298 :          idata = idata + 1
    6518      747298 :          data_tmp = full_data(idata)
    6519      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6520      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6521      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6522      747298 :          idata = idata + 1
    6523      747298 :          data_tmp = full_data(idata)
    6524      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6525      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6526      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6527      747298 :          idata = idata + 1
    6528      747298 :          data_tmp = full_data(idata)
    6529      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6530      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6531      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6532      747298 :          idata = idata + 1
    6533      747298 :          data_tmp = full_data(idata)
    6534      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6535      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6536      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6537      747298 :          idata = idata + 1
    6538      747298 :          data_tmp = full_data(idata)
    6539      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6540      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6541             :          pack_tmp = ISHFT(pack_tmp, 0)
    6542      747298 :          pack_tmp = ISHFT(pack_tmp, 0)
    6543      747298 :          ipack = ipack + 1
    6544      747663 :          packed_data(ipack) = pack_tmp
    6545             :       END DO
    6546       50461 :       IF (Ndata_rep < Ndata) THEN
    6547        4828 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6548             :       END IF
    6549       50461 :    END SUBROUTINE ints2bits_10
    6550             : 
    6551             : ! **************************************************************************************************
    6552             : !> \brief ...
    6553             : !> \param Ndata ...
    6554             : !> \param packed_data ...
    6555             : !> \param full_data ...
    6556             : ! **************************************************************************************************
    6557      303538 :    SUBROUTINE bits2ints_10(Ndata, packed_data, full_data)
    6558             :       INTEGER, INTENT(IN)                                :: Ndata
    6559             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
    6560             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
    6561             : 
    6562             :       INTEGER, PARAMETER                                 :: Nbits = 10
    6563             : 
    6564             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
    6565             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
    6566             : 
    6567      303538 :       ipack = 0
    6568      303538 :       idata = 0
    6569      303538 :       pack_tmp = 0
    6570      303538 :       Ndata_rep = (Ndata/64)*64
    6571      303538 :       DO kdata = 1, Ndata_rep, 64
    6572     4393822 :          idata = idata + 1
    6573     4393822 :          data_tmp = ISHFT(pack_tmp, 10)
    6574     4393822 :          ipack = ipack + 1
    6575     4393822 :          pack_tmp = packed_data(ipack)
    6576     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6577     4393822 :          pack_tmp = ISHFT(pack_tmp, -10)
    6578     4393822 :          idata = idata + 1
    6579     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6580     4393822 :          full_data(idata) = data_tmp
    6581     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6582     4393822 :          idata = idata + 1
    6583     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6584     4393822 :          full_data(idata) = data_tmp
    6585     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6586     4393822 :          idata = idata + 1
    6587     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6588     4393822 :          full_data(idata) = data_tmp
    6589     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6590     4393822 :          idata = idata + 1
    6591     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6592     4393822 :          full_data(idata) = data_tmp
    6593     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6594     4393822 :          idata = idata + 1
    6595     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6596     4393822 :          full_data(idata) = data_tmp
    6597     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6598     4393822 :          idata = idata + 1
    6599     4393822 :          data_tmp = ISHFT(pack_tmp, 6)
    6600     4393822 :          ipack = ipack + 1
    6601     4393822 :          pack_tmp = packed_data(ipack)
    6602     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6603     4393822 :          pack_tmp = ISHFT(pack_tmp, -6)
    6604     4393822 :          idata = idata + 1
    6605     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6606     4393822 :          full_data(idata) = data_tmp
    6607     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6608     4393822 :          idata = idata + 1
    6609     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6610     4393822 :          full_data(idata) = data_tmp
    6611     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6612     4393822 :          idata = idata + 1
    6613     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6614     4393822 :          full_data(idata) = data_tmp
    6615     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6616     4393822 :          idata = idata + 1
    6617     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6618     4393822 :          full_data(idata) = data_tmp
    6619     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6620     4393822 :          idata = idata + 1
    6621     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6622     4393822 :          full_data(idata) = data_tmp
    6623     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6624     4393822 :          idata = idata + 1
    6625     4393822 :          data_tmp = ISHFT(pack_tmp, 2)
    6626     4393822 :          ipack = ipack + 1
    6627     4393822 :          pack_tmp = packed_data(ipack)
    6628     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6629     4393822 :          pack_tmp = ISHFT(pack_tmp, -2)
    6630     4393822 :          idata = idata + 1
    6631     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6632     4393822 :          full_data(idata) = data_tmp
    6633     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6634     4393822 :          idata = idata + 1
    6635     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6636     4393822 :          full_data(idata) = data_tmp
    6637     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6638     4393822 :          idata = idata + 1
    6639     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6640     4393822 :          full_data(idata) = data_tmp
    6641     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6642     4393822 :          idata = idata + 1
    6643     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6644     4393822 :          full_data(idata) = data_tmp
    6645     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6646     4393822 :          idata = idata + 1
    6647     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6648     4393822 :          full_data(idata) = data_tmp
    6649     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6650     4393822 :          idata = idata + 1
    6651     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6652     4393822 :          full_data(idata) = data_tmp
    6653     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6654     4393822 :          idata = idata + 1
    6655     4393822 :          data_tmp = ISHFT(pack_tmp, 8)
    6656     4393822 :          ipack = ipack + 1
    6657     4393822 :          pack_tmp = packed_data(ipack)
    6658     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6659     4393822 :          pack_tmp = ISHFT(pack_tmp, -8)
    6660     4393822 :          idata = idata + 1
    6661     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6662     4393822 :          full_data(idata) = data_tmp
    6663     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6664     4393822 :          idata = idata + 1
    6665     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6666     4393822 :          full_data(idata) = data_tmp
    6667     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6668     4393822 :          idata = idata + 1
    6669     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6670     4393822 :          full_data(idata) = data_tmp
    6671     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6672     4393822 :          idata = idata + 1
    6673     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6674     4393822 :          full_data(idata) = data_tmp
    6675     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6676     4393822 :          idata = idata + 1
    6677     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6678     4393822 :          full_data(idata) = data_tmp
    6679     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6680     4393822 :          idata = idata + 1
    6681     4393822 :          data_tmp = ISHFT(pack_tmp, 4)
    6682     4393822 :          ipack = ipack + 1
    6683     4393822 :          pack_tmp = packed_data(ipack)
    6684     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6685     4393822 :          pack_tmp = ISHFT(pack_tmp, -4)
    6686     4393822 :          idata = idata + 1
    6687     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6688     4393822 :          full_data(idata) = data_tmp
    6689     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6690     4393822 :          idata = idata + 1
    6691     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6692     4393822 :          full_data(idata) = data_tmp
    6693     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6694     4393822 :          idata = idata + 1
    6695     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6696     4393822 :          full_data(idata) = data_tmp
    6697     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6698     4393822 :          idata = idata + 1
    6699     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6700     4393822 :          full_data(idata) = data_tmp
    6701     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6702     4393822 :          idata = idata + 1
    6703     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6704     4393822 :          full_data(idata) = data_tmp
    6705     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6706     4393822 :          idata = idata + 1
    6707     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6708     4393822 :          full_data(idata) = data_tmp
    6709     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6710     4393822 :          idata = idata + 1
    6711     4393822 :          data_tmp = ISHFT(pack_tmp, 10)
    6712     4393822 :          ipack = ipack + 1
    6713     4393822 :          pack_tmp = packed_data(ipack)
    6714     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6715     4393822 :          pack_tmp = ISHFT(pack_tmp, -10)
    6716     4393822 :          idata = idata + 1
    6717     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6718     4393822 :          full_data(idata) = data_tmp
    6719     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6720     4393822 :          idata = idata + 1
    6721     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6722     4393822 :          full_data(idata) = data_tmp
    6723     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6724     4393822 :          idata = idata + 1
    6725     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6726     4393822 :          full_data(idata) = data_tmp
    6727     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6728     4393822 :          idata = idata + 1
    6729     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6730     4393822 :          full_data(idata) = data_tmp
    6731     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6732     4393822 :          idata = idata + 1
    6733     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6734     4393822 :          full_data(idata) = data_tmp
    6735     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6736     4393822 :          idata = idata + 1
    6737     4393822 :          data_tmp = ISHFT(pack_tmp, 6)
    6738     4393822 :          ipack = ipack + 1
    6739     4393822 :          pack_tmp = packed_data(ipack)
    6740     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6741     4393822 :          pack_tmp = ISHFT(pack_tmp, -6)
    6742     4393822 :          idata = idata + 1
    6743     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6744     4393822 :          full_data(idata) = data_tmp
    6745     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6746     4393822 :          idata = idata + 1
    6747     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6748     4393822 :          full_data(idata) = data_tmp
    6749     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6750     4393822 :          idata = idata + 1
    6751     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6752     4393822 :          full_data(idata) = data_tmp
    6753     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6754     4393822 :          idata = idata + 1
    6755     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6756     4393822 :          full_data(idata) = data_tmp
    6757     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6758     4393822 :          idata = idata + 1
    6759     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6760     4393822 :          full_data(idata) = data_tmp
    6761     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6762     4393822 :          idata = idata + 1
    6763     4393822 :          data_tmp = ISHFT(pack_tmp, 2)
    6764     4393822 :          ipack = ipack + 1
    6765     4393822 :          pack_tmp = packed_data(ipack)
    6766     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6767     4393822 :          pack_tmp = ISHFT(pack_tmp, -2)
    6768     4393822 :          idata = idata + 1
    6769     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6770     4393822 :          full_data(idata) = data_tmp
    6771     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6772     4393822 :          idata = idata + 1
    6773     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6774     4393822 :          full_data(idata) = data_tmp
    6775     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6776     4393822 :          idata = idata + 1
    6777     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6778     4393822 :          full_data(idata) = data_tmp
    6779     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6780     4393822 :          idata = idata + 1
    6781     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6782     4393822 :          full_data(idata) = data_tmp
    6783     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6784     4393822 :          idata = idata + 1
    6785     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6786     4393822 :          full_data(idata) = data_tmp
    6787     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6788     4393822 :          idata = idata + 1
    6789     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6790     4393822 :          full_data(idata) = data_tmp
    6791     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6792     4393822 :          idata = idata + 1
    6793     4393822 :          data_tmp = ISHFT(pack_tmp, 8)
    6794     4393822 :          ipack = ipack + 1
    6795     4393822 :          pack_tmp = packed_data(ipack)
    6796     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6797     4393822 :          pack_tmp = ISHFT(pack_tmp, -8)
    6798     4393822 :          idata = idata + 1
    6799     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6800     4393822 :          full_data(idata) = data_tmp
    6801     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6802     4393822 :          idata = idata + 1
    6803     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6804     4393822 :          full_data(idata) = data_tmp
    6805     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6806     4393822 :          idata = idata + 1
    6807     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6808     4393822 :          full_data(idata) = data_tmp
    6809     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6810     4393822 :          idata = idata + 1
    6811     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6812     4393822 :          full_data(idata) = data_tmp
    6813     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6814     4393822 :          idata = idata + 1
    6815     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6816     4393822 :          full_data(idata) = data_tmp
    6817     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6818     4393822 :          idata = idata + 1
    6819     4393822 :          data_tmp = ISHFT(pack_tmp, 4)
    6820     4393822 :          ipack = ipack + 1
    6821     4393822 :          pack_tmp = packed_data(ipack)
    6822     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6823     4393822 :          pack_tmp = ISHFT(pack_tmp, -4)
    6824     4393822 :          idata = idata + 1
    6825     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6826     4393822 :          full_data(idata) = data_tmp
    6827     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6828     4393822 :          idata = idata + 1
    6829     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6830     4393822 :          full_data(idata) = data_tmp
    6831     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6832     4393822 :          idata = idata + 1
    6833     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6834     4393822 :          full_data(idata) = data_tmp
    6835     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6836     4393822 :          idata = idata + 1
    6837     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6838     4393822 :          full_data(idata) = data_tmp
    6839     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6840     4393822 :          idata = idata + 1
    6841     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6842     4393822 :          full_data(idata) = data_tmp
    6843     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6844     4393822 :          idata = idata + 1
    6845     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6846     4393822 :          full_data(idata) = data_tmp
    6847     4396568 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6848             :       END DO
    6849      303538 :       IF (Ndata_rep < Ndata) THEN
    6850       37636 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6851             :       END IF
    6852      303538 :    END SUBROUTINE bits2ints_10
    6853             : 
    6854             : ! **************************************************************************************************
    6855             : !> \brief ...
    6856             : !> \param Ndata ...
    6857             : !> \param packed_data ...
    6858             : !> \param full_data ...
    6859             : ! **************************************************************************************************
    6860       26434 :    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       26434 :       idata = 0
    6871       26434 :       ipack = 0
    6872       26434 :       Ndata_rep = (Ndata/64)*64
    6873       26434 :       DO kdata = 1, Ndata_rep, 64
    6874      416297 :          pack_tmp = 0
    6875      416297 :          idata = idata + 1
    6876      416297 :          data_tmp = full_data(idata)
    6877      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6878      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6879      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6880      416297 :          idata = idata + 1
    6881      416297 :          data_tmp = full_data(idata)
    6882      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6883      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6884      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6885      416297 :          idata = idata + 1
    6886      416297 :          data_tmp = full_data(idata)
    6887      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6888      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6889      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6890      416297 :          idata = idata + 1
    6891      416297 :          data_tmp = full_data(idata)
    6892      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6893      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6894      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6895      416297 :          idata = idata + 1
    6896      416297 :          data_tmp = full_data(idata)
    6897      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6898      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6899      416297 :          pack_tmp = ISHFT(pack_tmp, -9)
    6900      416297 :          idata = idata + 1
    6901      416297 :          data_tmp = full_data(idata)
    6902      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6903      416297 :          data_tmp = IAND(data_tmp, mask_left(9))
    6904      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6905      416297 :          ipack = ipack + 1
    6906      416297 :          packed_data(ipack) = pack_tmp
    6907      416297 :          data_tmp = full_data(idata)
    6908      416297 :          pack_tmp = ISHFT(data_tmp, 62)
    6909      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6910      416297 :          idata = idata + 1
    6911      416297 :          data_tmp = full_data(idata)
    6912      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6913      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6914      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6915      416297 :          idata = idata + 1
    6916      416297 :          data_tmp = full_data(idata)
    6917      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6918      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6919      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6920      416297 :          idata = idata + 1
    6921      416297 :          data_tmp = full_data(idata)
    6922      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6923      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6924      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6925      416297 :          idata = idata + 1
    6926      416297 :          data_tmp = full_data(idata)
    6927      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6928      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6929      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6930      416297 :          idata = idata + 1
    6931      416297 :          data_tmp = full_data(idata)
    6932      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6933      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6934      416297 :          pack_tmp = ISHFT(pack_tmp, -7)
    6935      416297 :          idata = idata + 1
    6936      416297 :          data_tmp = full_data(idata)
    6937      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6938      416297 :          data_tmp = IAND(data_tmp, mask_left(7))
    6939      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6940      416297 :          ipack = ipack + 1
    6941      416297 :          packed_data(ipack) = pack_tmp
    6942      416297 :          data_tmp = full_data(idata)
    6943      416297 :          pack_tmp = ISHFT(data_tmp, 60)
    6944      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6945      416297 :          idata = idata + 1
    6946      416297 :          data_tmp = full_data(idata)
    6947      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6948      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6949      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6950      416297 :          idata = idata + 1
    6951      416297 :          data_tmp = full_data(idata)
    6952      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6953      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6954      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6955      416297 :          idata = idata + 1
    6956      416297 :          data_tmp = full_data(idata)
    6957      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6958      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6959      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6960      416297 :          idata = idata + 1
    6961      416297 :          data_tmp = full_data(idata)
    6962      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6963      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6964      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6965      416297 :          idata = idata + 1
    6966      416297 :          data_tmp = full_data(idata)
    6967      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6968      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6969      416297 :          pack_tmp = ISHFT(pack_tmp, -5)
    6970      416297 :          idata = idata + 1
    6971      416297 :          data_tmp = full_data(idata)
    6972      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6973      416297 :          data_tmp = IAND(data_tmp, mask_left(5))
    6974      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6975      416297 :          ipack = ipack + 1
    6976      416297 :          packed_data(ipack) = pack_tmp
    6977      416297 :          data_tmp = full_data(idata)
    6978      416297 :          pack_tmp = ISHFT(data_tmp, 58)
    6979      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6980      416297 :          idata = idata + 1
    6981      416297 :          data_tmp = full_data(idata)
    6982      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6983      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6984      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6985      416297 :          idata = idata + 1
    6986      416297 :          data_tmp = full_data(idata)
    6987      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6988      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6989      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6990      416297 :          idata = idata + 1
    6991      416297 :          data_tmp = full_data(idata)
    6992      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6993      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6994      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    6995      416297 :          idata = idata + 1
    6996      416297 :          data_tmp = full_data(idata)
    6997      416297 :          data_tmp = ISHFT(data_tmp, 53)
    6998      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6999      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7000      416297 :          idata = idata + 1
    7001      416297 :          data_tmp = full_data(idata)
    7002      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7003      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7004      416297 :          pack_tmp = ISHFT(pack_tmp, -3)
    7005      416297 :          idata = idata + 1
    7006      416297 :          data_tmp = full_data(idata)
    7007      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7008      416297 :          data_tmp = IAND(data_tmp, mask_left(3))
    7009      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7010      416297 :          ipack = ipack + 1
    7011      416297 :          packed_data(ipack) = pack_tmp
    7012      416297 :          data_tmp = full_data(idata)
    7013      416297 :          pack_tmp = ISHFT(data_tmp, 56)
    7014      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7015      416297 :          idata = idata + 1
    7016      416297 :          data_tmp = full_data(idata)
    7017      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7018      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7019      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7020      416297 :          idata = idata + 1
    7021      416297 :          data_tmp = full_data(idata)
    7022      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7023      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7024      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7025      416297 :          idata = idata + 1
    7026      416297 :          data_tmp = full_data(idata)
    7027      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7028      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7029      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7030      416297 :          idata = idata + 1
    7031      416297 :          data_tmp = full_data(idata)
    7032      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7033      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7034      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7035      416297 :          idata = idata + 1
    7036      416297 :          data_tmp = full_data(idata)
    7037      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7038      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7039      416297 :          pack_tmp = ISHFT(pack_tmp, -1)
    7040      416297 :          idata = idata + 1
    7041      416297 :          data_tmp = full_data(idata)
    7042      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7043      416297 :          data_tmp = IAND(data_tmp, mask_left(1))
    7044      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7045      416297 :          ipack = ipack + 1
    7046      416297 :          packed_data(ipack) = pack_tmp
    7047      416297 :          data_tmp = full_data(idata)
    7048      416297 :          pack_tmp = ISHFT(data_tmp, 54)
    7049      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7050      416297 :          idata = idata + 1
    7051      416297 :          data_tmp = full_data(idata)
    7052      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7053      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7054      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7055      416297 :          idata = idata + 1
    7056      416297 :          data_tmp = full_data(idata)
    7057      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7058      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7059      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7060      416297 :          idata = idata + 1
    7061      416297 :          data_tmp = full_data(idata)
    7062      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7063      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7064      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7065      416297 :          idata = idata + 1
    7066      416297 :          data_tmp = full_data(idata)
    7067      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7068      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7069      416297 :          pack_tmp = ISHFT(pack_tmp, -10)
    7070      416297 :          idata = idata + 1
    7071      416297 :          data_tmp = full_data(idata)
    7072      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7073      416297 :          data_tmp = IAND(data_tmp, mask_left(10))
    7074      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7075      416297 :          ipack = ipack + 1
    7076      416297 :          packed_data(ipack) = pack_tmp
    7077      416297 :          data_tmp = full_data(idata)
    7078      416297 :          pack_tmp = ISHFT(data_tmp, 63)
    7079      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7080      416297 :          idata = idata + 1
    7081      416297 :          data_tmp = full_data(idata)
    7082      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7083      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7084      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7085      416297 :          idata = idata + 1
    7086      416297 :          data_tmp = full_data(idata)
    7087      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7088      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7089      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7090      416297 :          idata = idata + 1
    7091      416297 :          data_tmp = full_data(idata)
    7092      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7093      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7094      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7095      416297 :          idata = idata + 1
    7096      416297 :          data_tmp = full_data(idata)
    7097      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7098      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7099      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7100      416297 :          idata = idata + 1
    7101      416297 :          data_tmp = full_data(idata)
    7102      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7103      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7104      416297 :          pack_tmp = ISHFT(pack_tmp, -8)
    7105      416297 :          idata = idata + 1
    7106      416297 :          data_tmp = full_data(idata)
    7107      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7108      416297 :          data_tmp = IAND(data_tmp, mask_left(8))
    7109      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7110      416297 :          ipack = ipack + 1
    7111      416297 :          packed_data(ipack) = pack_tmp
    7112      416297 :          data_tmp = full_data(idata)
    7113      416297 :          pack_tmp = ISHFT(data_tmp, 61)
    7114      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7115      416297 :          idata = idata + 1
    7116      416297 :          data_tmp = full_data(idata)
    7117      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7118      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7119      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7120      416297 :          idata = idata + 1
    7121      416297 :          data_tmp = full_data(idata)
    7122      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7123      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7124      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7125      416297 :          idata = idata + 1
    7126      416297 :          data_tmp = full_data(idata)
    7127      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7128      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7129      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7130      416297 :          idata = idata + 1
    7131      416297 :          data_tmp = full_data(idata)
    7132      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7133      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7134      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7135      416297 :          idata = idata + 1
    7136      416297 :          data_tmp = full_data(idata)
    7137      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7138      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7139      416297 :          pack_tmp = ISHFT(pack_tmp, -6)
    7140      416297 :          idata = idata + 1
    7141      416297 :          data_tmp = full_data(idata)
    7142      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7143      416297 :          data_tmp = IAND(data_tmp, mask_left(6))
    7144      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7145      416297 :          ipack = ipack + 1
    7146      416297 :          packed_data(ipack) = pack_tmp
    7147      416297 :          data_tmp = full_data(idata)
    7148      416297 :          pack_tmp = ISHFT(data_tmp, 59)
    7149      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7150      416297 :          idata = idata + 1
    7151      416297 :          data_tmp = full_data(idata)
    7152      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7153      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7154      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7155      416297 :          idata = idata + 1
    7156      416297 :          data_tmp = full_data(idata)
    7157      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7158      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7159      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7160      416297 :          idata = idata + 1
    7161      416297 :          data_tmp = full_data(idata)
    7162      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7163      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7164      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7165      416297 :          idata = idata + 1
    7166      416297 :          data_tmp = full_data(idata)
    7167      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7168      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7169      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7170      416297 :          idata = idata + 1
    7171      416297 :          data_tmp = full_data(idata)
    7172      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7173      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7174      416297 :          pack_tmp = ISHFT(pack_tmp, -4)
    7175      416297 :          idata = idata + 1
    7176      416297 :          data_tmp = full_data(idata)
    7177      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7178      416297 :          data_tmp = IAND(data_tmp, mask_left(4))
    7179      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7180      416297 :          ipack = ipack + 1
    7181      416297 :          packed_data(ipack) = pack_tmp
    7182      416297 :          data_tmp = full_data(idata)
    7183      416297 :          pack_tmp = ISHFT(data_tmp, 57)
    7184      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7185      416297 :          idata = idata + 1
    7186      416297 :          data_tmp = full_data(idata)
    7187      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7188      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7189      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7190      416297 :          idata = idata + 1
    7191      416297 :          data_tmp = full_data(idata)
    7192      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7193      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7194      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7195      416297 :          idata = idata + 1
    7196      416297 :          data_tmp = full_data(idata)
    7197      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7198      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7199      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7200      416297 :          idata = idata + 1
    7201      416297 :          data_tmp = full_data(idata)
    7202      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7203      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7204      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7205      416297 :          idata = idata + 1
    7206      416297 :          data_tmp = full_data(idata)
    7207      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7208      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7209      416297 :          pack_tmp = ISHFT(pack_tmp, -2)
    7210      416297 :          idata = idata + 1
    7211      416297 :          data_tmp = full_data(idata)
    7212      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7213      416297 :          data_tmp = IAND(data_tmp, mask_left(2))
    7214      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7215      416297 :          ipack = ipack + 1
    7216      416297 :          packed_data(ipack) = pack_tmp
    7217      416297 :          data_tmp = full_data(idata)
    7218      416297 :          pack_tmp = ISHFT(data_tmp, 55)
    7219      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7220      416297 :          idata = idata + 1
    7221      416297 :          data_tmp = full_data(idata)
    7222      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7223      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7224      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7225      416297 :          idata = idata + 1
    7226      416297 :          data_tmp = full_data(idata)
    7227      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7228      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7229      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7230      416297 :          idata = idata + 1
    7231      416297 :          data_tmp = full_data(idata)
    7232      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7233      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7234      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7235      416297 :          idata = idata + 1
    7236      416297 :          data_tmp = full_data(idata)
    7237      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7238      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7239      416297 :          pack_tmp = ISHFT(pack_tmp, -11)
    7240      416297 :          idata = idata + 1
    7241      416297 :          data_tmp = full_data(idata)
    7242      416297 :          data_tmp = ISHFT(data_tmp, 53)
    7243      416297 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7244             :          pack_tmp = ISHFT(pack_tmp, 0)
    7245      416297 :          pack_tmp = ISHFT(pack_tmp, 0)
    7246      416297 :          ipack = ipack + 1
    7247      416334 :          packed_data(ipack) = pack_tmp
    7248             :       END DO
    7249       26434 :       IF (Ndata_rep < Ndata) THEN
    7250         782 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7251             :       END IF
    7252       26434 :    END SUBROUTINE ints2bits_11
    7253             : 
    7254             : ! **************************************************************************************************
    7255             : !> \brief ...
    7256             : !> \param Ndata ...
    7257             : !> \param packed_data ...
    7258             : !> \param full_data ...
    7259             : ! **************************************************************************************************
    7260      117016 :    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      117016 :       ipack = 0
    7271      117016 :       idata = 0
    7272      117016 :       pack_tmp = 0
    7273      117016 :       Ndata_rep = (Ndata/64)*64
    7274      117016 :       DO kdata = 1, Ndata_rep, 64
    7275     1821936 :          idata = idata + 1
    7276     1821936 :          data_tmp = ISHFT(pack_tmp, 11)
    7277     1821936 :          ipack = ipack + 1
    7278     1821936 :          pack_tmp = packed_data(ipack)
    7279     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    7280     1821936 :          pack_tmp = ISHFT(pack_tmp, -11)
    7281     1821936 :          idata = idata + 1
    7282     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7283     1821936 :          full_data(idata) = data_tmp
    7284     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7285     1821936 :          idata = idata + 1
    7286     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7287     1821936 :          full_data(idata) = data_tmp
    7288     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7289     1821936 :          idata = idata + 1
    7290     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7291     1821936 :          full_data(idata) = data_tmp
    7292     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7293     1821936 :          idata = idata + 1
    7294     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7295     1821936 :          full_data(idata) = data_tmp
    7296     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7297     1821936 :          idata = idata + 1
    7298     1821936 :          data_tmp = ISHFT(pack_tmp, 2)
    7299     1821936 :          ipack = ipack + 1
    7300     1821936 :          pack_tmp = packed_data(ipack)
    7301     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    7302     1821936 :          pack_tmp = ISHFT(pack_tmp, -2)
    7303     1821936 :          idata = idata + 1
    7304     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7305     1821936 :          full_data(idata) = data_tmp
    7306     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7307     1821936 :          idata = idata + 1
    7308     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7309     1821936 :          full_data(idata) = data_tmp
    7310     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7311     1821936 :          idata = idata + 1
    7312     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7313     1821936 :          full_data(idata) = data_tmp
    7314     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7315     1821936 :          idata = idata + 1
    7316     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7317     1821936 :          full_data(idata) = data_tmp
    7318     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7319     1821936 :          idata = idata + 1
    7320     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7321     1821936 :          full_data(idata) = data_tmp
    7322     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7323     1821936 :          idata = idata + 1
    7324     1821936 :          data_tmp = ISHFT(pack_tmp, 4)
    7325     1821936 :          ipack = ipack + 1
    7326     1821936 :          pack_tmp = packed_data(ipack)
    7327     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    7328     1821936 :          pack_tmp = ISHFT(pack_tmp, -4)
    7329     1821936 :          idata = idata + 1
    7330     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7331     1821936 :          full_data(idata) = data_tmp
    7332     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7333     1821936 :          idata = idata + 1
    7334     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7335     1821936 :          full_data(idata) = data_tmp
    7336     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7337     1821936 :          idata = idata + 1
    7338     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7339     1821936 :          full_data(idata) = data_tmp
    7340     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7341     1821936 :          idata = idata + 1
    7342     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7343     1821936 :          full_data(idata) = data_tmp
    7344     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7345     1821936 :          idata = idata + 1
    7346     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7347     1821936 :          full_data(idata) = data_tmp
    7348     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7349     1821936 :          idata = idata + 1
    7350     1821936 :          data_tmp = ISHFT(pack_tmp, 6)
    7351     1821936 :          ipack = ipack + 1
    7352     1821936 :          pack_tmp = packed_data(ipack)
    7353     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    7354     1821936 :          pack_tmp = ISHFT(pack_tmp, -6)
    7355     1821936 :          idata = idata + 1
    7356     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7357     1821936 :          full_data(idata) = data_tmp
    7358     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7359     1821936 :          idata = idata + 1
    7360     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7361     1821936 :          full_data(idata) = data_tmp
    7362     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7363     1821936 :          idata = idata + 1
    7364     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7365     1821936 :          full_data(idata) = data_tmp
    7366     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7367     1821936 :          idata = idata + 1
    7368     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7369     1821936 :          full_data(idata) = data_tmp
    7370     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7371     1821936 :          idata = idata + 1
    7372     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7373     1821936 :          full_data(idata) = data_tmp
    7374     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7375     1821936 :          idata = idata + 1
    7376     1821936 :          data_tmp = ISHFT(pack_tmp, 8)
    7377     1821936 :          ipack = ipack + 1
    7378     1821936 :          pack_tmp = packed_data(ipack)
    7379     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    7380     1821936 :          pack_tmp = ISHFT(pack_tmp, -8)
    7381     1821936 :          idata = idata + 1
    7382     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7383     1821936 :          full_data(idata) = data_tmp
    7384     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7385     1821936 :          idata = idata + 1
    7386     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7387     1821936 :          full_data(idata) = data_tmp
    7388     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7389     1821936 :          idata = idata + 1
    7390     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7391     1821936 :          full_data(idata) = data_tmp
    7392     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7393     1821936 :          idata = idata + 1
    7394     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7395     1821936 :          full_data(idata) = data_tmp
    7396     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7397     1821936 :          idata = idata + 1
    7398     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7399     1821936 :          full_data(idata) = data_tmp
    7400     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7401     1821936 :          idata = idata + 1
    7402     1821936 :          data_tmp = ISHFT(pack_tmp, 10)
    7403     1821936 :          ipack = ipack + 1
    7404     1821936 :          pack_tmp = packed_data(ipack)
    7405     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    7406     1821936 :          pack_tmp = ISHFT(pack_tmp, -10)
    7407     1821936 :          idata = idata + 1
    7408     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7409     1821936 :          full_data(idata) = data_tmp
    7410     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7411     1821936 :          idata = idata + 1
    7412     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7413     1821936 :          full_data(idata) = data_tmp
    7414     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7415     1821936 :          idata = idata + 1
    7416     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7417     1821936 :          full_data(idata) = data_tmp
    7418     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7419     1821936 :          idata = idata + 1
    7420     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7421     1821936 :          full_data(idata) = data_tmp
    7422     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7423     1821936 :          idata = idata + 1
    7424     1821936 :          data_tmp = ISHFT(pack_tmp, 1)
    7425     1821936 :          ipack = ipack + 1
    7426     1821936 :          pack_tmp = packed_data(ipack)
    7427     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    7428     1821936 :          pack_tmp = ISHFT(pack_tmp, -1)
    7429     1821936 :          idata = idata + 1
    7430     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7431     1821936 :          full_data(idata) = data_tmp
    7432     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7433     1821936 :          idata = idata + 1
    7434     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7435     1821936 :          full_data(idata) = data_tmp
    7436     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7437     1821936 :          idata = idata + 1
    7438     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7439     1821936 :          full_data(idata) = data_tmp
    7440     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7441     1821936 :          idata = idata + 1
    7442     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7443     1821936 :          full_data(idata) = data_tmp
    7444     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7445     1821936 :          idata = idata + 1
    7446     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7447     1821936 :          full_data(idata) = data_tmp
    7448     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7449     1821936 :          idata = idata + 1
    7450     1821936 :          data_tmp = ISHFT(pack_tmp, 3)
    7451     1821936 :          ipack = ipack + 1
    7452     1821936 :          pack_tmp = packed_data(ipack)
    7453     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    7454     1821936 :          pack_tmp = ISHFT(pack_tmp, -3)
    7455     1821936 :          idata = idata + 1
    7456     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7457     1821936 :          full_data(idata) = data_tmp
    7458     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7459     1821936 :          idata = idata + 1
    7460     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7461     1821936 :          full_data(idata) = data_tmp
    7462     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7463     1821936 :          idata = idata + 1
    7464     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7465     1821936 :          full_data(idata) = data_tmp
    7466     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7467     1821936 :          idata = idata + 1
    7468     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7469     1821936 :          full_data(idata) = data_tmp
    7470     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7471     1821936 :          idata = idata + 1
    7472     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7473     1821936 :          full_data(idata) = data_tmp
    7474     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7475     1821936 :          idata = idata + 1
    7476     1821936 :          data_tmp = ISHFT(pack_tmp, 5)
    7477     1821936 :          ipack = ipack + 1
    7478     1821936 :          pack_tmp = packed_data(ipack)
    7479     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    7480     1821936 :          pack_tmp = ISHFT(pack_tmp, -5)
    7481     1821936 :          idata = idata + 1
    7482     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7483     1821936 :          full_data(idata) = data_tmp
    7484     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7485     1821936 :          idata = idata + 1
    7486     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7487     1821936 :          full_data(idata) = data_tmp
    7488     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7489     1821936 :          idata = idata + 1
    7490     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7491     1821936 :          full_data(idata) = data_tmp
    7492     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7493     1821936 :          idata = idata + 1
    7494     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7495     1821936 :          full_data(idata) = data_tmp
    7496     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7497     1821936 :          idata = idata + 1
    7498     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7499     1821936 :          full_data(idata) = data_tmp
    7500     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7501     1821936 :          idata = idata + 1
    7502     1821936 :          data_tmp = ISHFT(pack_tmp, 7)
    7503     1821936 :          ipack = ipack + 1
    7504     1821936 :          pack_tmp = packed_data(ipack)
    7505     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    7506     1821936 :          pack_tmp = ISHFT(pack_tmp, -7)
    7507     1821936 :          idata = idata + 1
    7508     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7509     1821936 :          full_data(idata) = data_tmp
    7510     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7511     1821936 :          idata = idata + 1
    7512     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7513     1821936 :          full_data(idata) = data_tmp
    7514     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7515     1821936 :          idata = idata + 1
    7516     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7517     1821936 :          full_data(idata) = data_tmp
    7518     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7519     1821936 :          idata = idata + 1
    7520     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7521     1821936 :          full_data(idata) = data_tmp
    7522     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7523     1821936 :          idata = idata + 1
    7524     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7525     1821936 :          full_data(idata) = data_tmp
    7526     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7527     1821936 :          idata = idata + 1
    7528     1821936 :          data_tmp = ISHFT(pack_tmp, 9)
    7529     1821936 :          ipack = ipack + 1
    7530     1821936 :          pack_tmp = packed_data(ipack)
    7531     1821936 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    7532     1821936 :          pack_tmp = ISHFT(pack_tmp, -9)
    7533     1821936 :          idata = idata + 1
    7534     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7535     1821936 :          full_data(idata) = data_tmp
    7536     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7537     1821936 :          idata = idata + 1
    7538     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7539     1821936 :          full_data(idata) = data_tmp
    7540     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7541     1821936 :          idata = idata + 1
    7542     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7543     1821936 :          full_data(idata) = data_tmp
    7544     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7545     1821936 :          idata = idata + 1
    7546     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7547     1821936 :          full_data(idata) = data_tmp
    7548     1821936 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7549     1821936 :          idata = idata + 1
    7550     1821936 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7551     1821936 :          full_data(idata) = data_tmp
    7552     1822217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7553             :       END DO
    7554      117016 :       IF (Ndata_rep < Ndata) THEN
    7555        5920 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7556             :       END IF
    7557      117016 :    END SUBROUTINE bits2ints_11
    7558             : 
    7559             : ! **************************************************************************************************
    7560             : !> \brief ...
    7561             : !> \param Ndata ...
    7562             : !> \param packed_data ...
    7563             : !> \param full_data ...
    7564             : ! **************************************************************************************************
    7565       26677 :    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       26677 :       idata = 0
    7576       26677 :       ipack = 0
    7577       26677 :       Ndata_rep = (Ndata/64)*64
    7578       26677 :       DO kdata = 1, Ndata_rep, 64
    7579      418995 :          pack_tmp = 0
    7580      418995 :          idata = idata + 1
    7581      418995 :          data_tmp = full_data(idata)
    7582      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7583      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7584      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7585      418995 :          idata = idata + 1
    7586      418995 :          data_tmp = full_data(idata)
    7587      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7588      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7589      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7590      418995 :          idata = idata + 1
    7591      418995 :          data_tmp = full_data(idata)
    7592      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7593      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7594      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7595      418995 :          idata = idata + 1
    7596      418995 :          data_tmp = full_data(idata)
    7597      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7598      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7599      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7600      418995 :          idata = idata + 1
    7601      418995 :          data_tmp = full_data(idata)
    7602      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7603      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7604      418995 :          pack_tmp = ISHFT(pack_tmp, -4)
    7605      418995 :          idata = idata + 1
    7606      418995 :          data_tmp = full_data(idata)
    7607      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7608      418995 :          data_tmp = IAND(data_tmp, mask_left(4))
    7609      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7610      418995 :          ipack = ipack + 1
    7611      418995 :          packed_data(ipack) = pack_tmp
    7612      418995 :          data_tmp = full_data(idata)
    7613      418995 :          pack_tmp = ISHFT(data_tmp, 56)
    7614      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7615      418995 :          idata = idata + 1
    7616      418995 :          data_tmp = full_data(idata)
    7617      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7618      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7619      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7620      418995 :          idata = idata + 1
    7621      418995 :          data_tmp = full_data(idata)
    7622      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7623      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7624      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7625      418995 :          idata = idata + 1
    7626      418995 :          data_tmp = full_data(idata)
    7627      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7628      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7629      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7630      418995 :          idata = idata + 1
    7631      418995 :          data_tmp = full_data(idata)
    7632      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7633      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7634      418995 :          pack_tmp = ISHFT(pack_tmp, -8)
    7635      418995 :          idata = idata + 1
    7636      418995 :          data_tmp = full_data(idata)
    7637      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7638      418995 :          data_tmp = IAND(data_tmp, mask_left(8))
    7639      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7640      418995 :          ipack = ipack + 1
    7641      418995 :          packed_data(ipack) = pack_tmp
    7642      418995 :          data_tmp = full_data(idata)
    7643      418995 :          pack_tmp = ISHFT(data_tmp, 60)
    7644      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7645      418995 :          idata = idata + 1
    7646      418995 :          data_tmp = full_data(idata)
    7647      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7648      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7649      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7650      418995 :          idata = idata + 1
    7651      418995 :          data_tmp = full_data(idata)
    7652      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7653      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7654      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7655      418995 :          idata = idata + 1
    7656      418995 :          data_tmp = full_data(idata)
    7657      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7658      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7659      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7660      418995 :          idata = idata + 1
    7661      418995 :          data_tmp = full_data(idata)
    7662      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7663      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7664      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7665      418995 :          idata = idata + 1
    7666      418995 :          data_tmp = full_data(idata)
    7667      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7668      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7669      418995 :          pack_tmp = ISHFT(pack_tmp, 0)
    7670      418995 :          idata = idata + 1
    7671      418995 :          data_tmp = full_data(idata)
    7672             :          data_tmp = ISHFT(data_tmp, 52)
    7673      418995 :          data_tmp = IAND(data_tmp, mask_left(0))
    7674      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7675      418995 :          ipack = ipack + 1
    7676      418995 :          packed_data(ipack) = pack_tmp
    7677      418995 :          data_tmp = full_data(idata)
    7678      418995 :          pack_tmp = ISHFT(data_tmp, 52)
    7679      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7680      418995 :          idata = idata + 1
    7681      418995 :          data_tmp = full_data(idata)
    7682      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7683      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7684      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7685      418995 :          idata = idata + 1
    7686      418995 :          data_tmp = full_data(idata)
    7687      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7688      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7689      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7690      418995 :          idata = idata + 1
    7691      418995 :          data_tmp = full_data(idata)
    7692      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7693      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7694      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7695      418995 :          idata = idata + 1
    7696      418995 :          data_tmp = full_data(idata)
    7697      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7698      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7699      418995 :          pack_tmp = ISHFT(pack_tmp, -4)
    7700      418995 :          idata = idata + 1
    7701      418995 :          data_tmp = full_data(idata)
    7702      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7703      418995 :          data_tmp = IAND(data_tmp, mask_left(4))
    7704      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7705      418995 :          ipack = ipack + 1
    7706      418995 :          packed_data(ipack) = pack_tmp
    7707      418995 :          data_tmp = full_data(idata)
    7708      418995 :          pack_tmp = ISHFT(data_tmp, 56)
    7709      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7710      418995 :          idata = idata + 1
    7711      418995 :          data_tmp = full_data(idata)
    7712      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7713      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7714      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7715      418995 :          idata = idata + 1
    7716      418995 :          data_tmp = full_data(idata)
    7717      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7718      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7719      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7720      418995 :          idata = idata + 1
    7721      418995 :          data_tmp = full_data(idata)
    7722      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7723      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7724      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7725      418995 :          idata = idata + 1
    7726      418995 :          data_tmp = full_data(idata)
    7727      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7728      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7729      418995 :          pack_tmp = ISHFT(pack_tmp, -8)
    7730      418995 :          idata = idata + 1
    7731      418995 :          data_tmp = full_data(idata)
    7732      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7733      418995 :          data_tmp = IAND(data_tmp, mask_left(8))
    7734      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7735      418995 :          ipack = ipack + 1
    7736      418995 :          packed_data(ipack) = pack_tmp
    7737      418995 :          data_tmp = full_data(idata)
    7738      418995 :          pack_tmp = ISHFT(data_tmp, 60)
    7739      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7740      418995 :          idata = idata + 1
    7741      418995 :          data_tmp = full_data(idata)
    7742      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7743      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7744      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7745      418995 :          idata = idata + 1
    7746      418995 :          data_tmp = full_data(idata)
    7747      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7748      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7749      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7750      418995 :          idata = idata + 1
    7751      418995 :          data_tmp = full_data(idata)
    7752      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7753      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7754      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7755      418995 :          idata = idata + 1
    7756      418995 :          data_tmp = full_data(idata)
    7757      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7758      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7759      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7760      418995 :          idata = idata + 1
    7761      418995 :          data_tmp = full_data(idata)
    7762      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7763      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7764      418995 :          pack_tmp = ISHFT(pack_tmp, 0)
    7765      418995 :          idata = idata + 1
    7766      418995 :          data_tmp = full_data(idata)
    7767             :          data_tmp = ISHFT(data_tmp, 52)
    7768      418995 :          data_tmp = IAND(data_tmp, mask_left(0))
    7769      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7770      418995 :          ipack = ipack + 1
    7771      418995 :          packed_data(ipack) = pack_tmp
    7772      418995 :          data_tmp = full_data(idata)
    7773      418995 :          pack_tmp = ISHFT(data_tmp, 52)
    7774      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7775      418995 :          idata = idata + 1
    7776      418995 :          data_tmp = full_data(idata)
    7777      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7778      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7779      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7780      418995 :          idata = idata + 1
    7781      418995 :          data_tmp = full_data(idata)
    7782      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7783      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7784      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7785      418995 :          idata = idata + 1
    7786      418995 :          data_tmp = full_data(idata)
    7787      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7788      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7789      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7790      418995 :          idata = idata + 1
    7791      418995 :          data_tmp = full_data(idata)
    7792      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7793      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7794      418995 :          pack_tmp = ISHFT(pack_tmp, -4)
    7795      418995 :          idata = idata + 1
    7796      418995 :          data_tmp = full_data(idata)
    7797      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7798      418995 :          data_tmp = IAND(data_tmp, mask_left(4))
    7799      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7800      418995 :          ipack = ipack + 1
    7801      418995 :          packed_data(ipack) = pack_tmp
    7802      418995 :          data_tmp = full_data(idata)
    7803      418995 :          pack_tmp = ISHFT(data_tmp, 56)
    7804      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7805      418995 :          idata = idata + 1
    7806      418995 :          data_tmp = full_data(idata)
    7807      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7808      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7809      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7810      418995 :          idata = idata + 1
    7811      418995 :          data_tmp = full_data(idata)
    7812      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7813      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7814      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7815      418995 :          idata = idata + 1
    7816      418995 :          data_tmp = full_data(idata)
    7817      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7818      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7819      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7820      418995 :          idata = idata + 1
    7821      418995 :          data_tmp = full_data(idata)
    7822      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7823      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7824      418995 :          pack_tmp = ISHFT(pack_tmp, -8)
    7825      418995 :          idata = idata + 1
    7826      418995 :          data_tmp = full_data(idata)
    7827      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7828      418995 :          data_tmp = IAND(data_tmp, mask_left(8))
    7829      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7830      418995 :          ipack = ipack + 1
    7831      418995 :          packed_data(ipack) = pack_tmp
    7832      418995 :          data_tmp = full_data(idata)
    7833      418995 :          pack_tmp = ISHFT(data_tmp, 60)
    7834      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7835      418995 :          idata = idata + 1
    7836      418995 :          data_tmp = full_data(idata)
    7837      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7838      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7839      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7840      418995 :          idata = idata + 1
    7841      418995 :          data_tmp = full_data(idata)
    7842      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7843      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7844      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7845      418995 :          idata = idata + 1
    7846      418995 :          data_tmp = full_data(idata)
    7847      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7848      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7849      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7850      418995 :          idata = idata + 1
    7851      418995 :          data_tmp = full_data(idata)
    7852      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7853      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7854      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7855      418995 :          idata = idata + 1
    7856      418995 :          data_tmp = full_data(idata)
    7857      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7858      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7859      418995 :          pack_tmp = ISHFT(pack_tmp, 0)
    7860      418995 :          idata = idata + 1
    7861      418995 :          data_tmp = full_data(idata)
    7862             :          data_tmp = ISHFT(data_tmp, 52)
    7863      418995 :          data_tmp = IAND(data_tmp, mask_left(0))
    7864      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7865      418995 :          ipack = ipack + 1
    7866      418995 :          packed_data(ipack) = pack_tmp
    7867      418995 :          data_tmp = full_data(idata)
    7868      418995 :          pack_tmp = ISHFT(data_tmp, 52)
    7869      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7870      418995 :          idata = idata + 1
    7871      418995 :          data_tmp = full_data(idata)
    7872      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7873      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7874      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7875      418995 :          idata = idata + 1
    7876      418995 :          data_tmp = full_data(idata)
    7877      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7878      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7879      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7880      418995 :          idata = idata + 1
    7881      418995 :          data_tmp = full_data(idata)
    7882      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7883      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7884      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7885      418995 :          idata = idata + 1
    7886      418995 :          data_tmp = full_data(idata)
    7887      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7888      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7889      418995 :          pack_tmp = ISHFT(pack_tmp, -4)
    7890      418995 :          idata = idata + 1
    7891      418995 :          data_tmp = full_data(idata)
    7892      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7893      418995 :          data_tmp = IAND(data_tmp, mask_left(4))
    7894      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7895      418995 :          ipack = ipack + 1
    7896      418995 :          packed_data(ipack) = pack_tmp
    7897      418995 :          data_tmp = full_data(idata)
    7898      418995 :          pack_tmp = ISHFT(data_tmp, 56)
    7899      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7900      418995 :          idata = idata + 1
    7901      418995 :          data_tmp = full_data(idata)
    7902      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7903      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7904      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7905      418995 :          idata = idata + 1
    7906      418995 :          data_tmp = full_data(idata)
    7907      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7908      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7909      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7910      418995 :          idata = idata + 1
    7911      418995 :          data_tmp = full_data(idata)
    7912      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7913      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7914      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7915      418995 :          idata = idata + 1
    7916      418995 :          data_tmp = full_data(idata)
    7917      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7918      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7919      418995 :          pack_tmp = ISHFT(pack_tmp, -8)
    7920      418995 :          idata = idata + 1
    7921      418995 :          data_tmp = full_data(idata)
    7922      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7923      418995 :          data_tmp = IAND(data_tmp, mask_left(8))
    7924      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7925      418995 :          ipack = ipack + 1
    7926      418995 :          packed_data(ipack) = pack_tmp
    7927      418995 :          data_tmp = full_data(idata)
    7928      418995 :          pack_tmp = ISHFT(data_tmp, 60)
    7929      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7930      418995 :          idata = idata + 1
    7931      418995 :          data_tmp = full_data(idata)
    7932      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7933      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7934      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7935      418995 :          idata = idata + 1
    7936      418995 :          data_tmp = full_data(idata)
    7937      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7938      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7939      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7940      418995 :          idata = idata + 1
    7941      418995 :          data_tmp = full_data(idata)
    7942      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7943      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7944      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7945      418995 :          idata = idata + 1
    7946      418995 :          data_tmp = full_data(idata)
    7947      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7948      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7949      418995 :          pack_tmp = ISHFT(pack_tmp, -12)
    7950      418995 :          idata = idata + 1
    7951      418995 :          data_tmp = full_data(idata)
    7952      418995 :          data_tmp = ISHFT(data_tmp, 52)
    7953      418995 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7954             :          pack_tmp = ISHFT(pack_tmp, 0)
    7955      418995 :          pack_tmp = ISHFT(pack_tmp, 0)
    7956      418995 :          ipack = ipack + 1
    7957      419060 :          packed_data(ipack) = pack_tmp
    7958             :       END DO
    7959       26677 :       IF (Ndata_rep < Ndata) THEN
    7960         922 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7961             :       END IF
    7962       26677 :    END SUBROUTINE ints2bits_12
    7963             : 
    7964             : ! **************************************************************************************************
    7965             : !> \brief ...
    7966             : !> \param Ndata ...
    7967             : !> \param packed_data ...
    7968             : !> \param full_data ...
    7969             : ! **************************************************************************************************
    7970      118896 :    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      118896 :       ipack = 0
    7981      118896 :       idata = 0
    7982      118896 :       pack_tmp = 0
    7983      118896 :       Ndata_rep = (Ndata/64)*64
    7984      118896 :       DO kdata = 1, Ndata_rep, 64
    7985     1843210 :          idata = idata + 1
    7986     1843210 :          data_tmp = ISHFT(pack_tmp, 12)
    7987     1843210 :          ipack = ipack + 1
    7988     1843210 :          pack_tmp = packed_data(ipack)
    7989     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    7990     1843210 :          pack_tmp = ISHFT(pack_tmp, -12)
    7991     1843210 :          idata = idata + 1
    7992     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7993     1843210 :          full_data(idata) = data_tmp
    7994     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7995     1843210 :          idata = idata + 1
    7996     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7997     1843210 :          full_data(idata) = data_tmp
    7998     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7999     1843210 :          idata = idata + 1
    8000     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8001     1843210 :          full_data(idata) = data_tmp
    8002     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8003     1843210 :          idata = idata + 1
    8004     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8005     1843210 :          full_data(idata) = data_tmp
    8006     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8007     1843210 :          idata = idata + 1
    8008     1843210 :          data_tmp = ISHFT(pack_tmp, 8)
    8009     1843210 :          ipack = ipack + 1
    8010     1843210 :          pack_tmp = packed_data(ipack)
    8011     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8012     1843210 :          pack_tmp = ISHFT(pack_tmp, -8)
    8013     1843210 :          idata = idata + 1
    8014     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8015     1843210 :          full_data(idata) = data_tmp
    8016     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8017     1843210 :          idata = idata + 1
    8018     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8019     1843210 :          full_data(idata) = data_tmp
    8020     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8021     1843210 :          idata = idata + 1
    8022     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8023     1843210 :          full_data(idata) = data_tmp
    8024     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8025     1843210 :          idata = idata + 1
    8026     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8027     1843210 :          full_data(idata) = data_tmp
    8028     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8029     1843210 :          idata = idata + 1
    8030     1843210 :          data_tmp = ISHFT(pack_tmp, 4)
    8031     1843210 :          ipack = ipack + 1
    8032     1843210 :          pack_tmp = packed_data(ipack)
    8033     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8034     1843210 :          pack_tmp = ISHFT(pack_tmp, -4)
    8035     1843210 :          idata = idata + 1
    8036     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8037     1843210 :          full_data(idata) = data_tmp
    8038     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8039     1843210 :          idata = idata + 1
    8040     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8041     1843210 :          full_data(idata) = data_tmp
    8042     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8043     1843210 :          idata = idata + 1
    8044     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8045     1843210 :          full_data(idata) = data_tmp
    8046     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8047     1843210 :          idata = idata + 1
    8048     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8049     1843210 :          full_data(idata) = data_tmp
    8050     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8051     1843210 :          idata = idata + 1
    8052     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8053     1843210 :          full_data(idata) = data_tmp
    8054     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8055     1843210 :          idata = idata + 1
    8056     1843210 :          data_tmp = ISHFT(pack_tmp, 12)
    8057     1843210 :          ipack = ipack + 1
    8058     1843210 :          pack_tmp = packed_data(ipack)
    8059     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8060     1843210 :          pack_tmp = ISHFT(pack_tmp, -12)
    8061     1843210 :          idata = idata + 1
    8062     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8063     1843210 :          full_data(idata) = data_tmp
    8064     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8065     1843210 :          idata = idata + 1
    8066     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8067     1843210 :          full_data(idata) = data_tmp
    8068     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8069     1843210 :          idata = idata + 1
    8070     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8071     1843210 :          full_data(idata) = data_tmp
    8072     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8073     1843210 :          idata = idata + 1
    8074     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8075     1843210 :          full_data(idata) = data_tmp
    8076     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8077     1843210 :          idata = idata + 1
    8078     1843210 :          data_tmp = ISHFT(pack_tmp, 8)
    8079     1843210 :          ipack = ipack + 1
    8080     1843210 :          pack_tmp = packed_data(ipack)
    8081     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8082     1843210 :          pack_tmp = ISHFT(pack_tmp, -8)
    8083     1843210 :          idata = idata + 1
    8084     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8085     1843210 :          full_data(idata) = data_tmp
    8086     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8087     1843210 :          idata = idata + 1
    8088     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8089     1843210 :          full_data(idata) = data_tmp
    8090     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8091     1843210 :          idata = idata + 1
    8092     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8093     1843210 :          full_data(idata) = data_tmp
    8094     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8095     1843210 :          idata = idata + 1
    8096     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8097     1843210 :          full_data(idata) = data_tmp
    8098     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8099     1843210 :          idata = idata + 1
    8100     1843210 :          data_tmp = ISHFT(pack_tmp, 4)
    8101     1843210 :          ipack = ipack + 1
    8102     1843210 :          pack_tmp = packed_data(ipack)
    8103     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8104     1843210 :          pack_tmp = ISHFT(pack_tmp, -4)
    8105     1843210 :          idata = idata + 1
    8106     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8107     1843210 :          full_data(idata) = data_tmp
    8108     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8109     1843210 :          idata = idata + 1
    8110     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8111     1843210 :          full_data(idata) = data_tmp
    8112     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8113     1843210 :          idata = idata + 1
    8114     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8115     1843210 :          full_data(idata) = data_tmp
    8116     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8117     1843210 :          idata = idata + 1
    8118     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8119     1843210 :          full_data(idata) = data_tmp
    8120     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8121     1843210 :          idata = idata + 1
    8122     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8123     1843210 :          full_data(idata) = data_tmp
    8124     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8125     1843210 :          idata = idata + 1
    8126     1843210 :          data_tmp = ISHFT(pack_tmp, 12)
    8127     1843210 :          ipack = ipack + 1
    8128     1843210 :          pack_tmp = packed_data(ipack)
    8129     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8130     1843210 :          pack_tmp = ISHFT(pack_tmp, -12)
    8131     1843210 :          idata = idata + 1
    8132     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8133     1843210 :          full_data(idata) = data_tmp
    8134     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8135     1843210 :          idata = idata + 1
    8136     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8137     1843210 :          full_data(idata) = data_tmp
    8138     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8139     1843210 :          idata = idata + 1
    8140     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8141     1843210 :          full_data(idata) = data_tmp
    8142     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8143     1843210 :          idata = idata + 1
    8144     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8145     1843210 :          full_data(idata) = data_tmp
    8146     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8147     1843210 :          idata = idata + 1
    8148     1843210 :          data_tmp = ISHFT(pack_tmp, 8)
    8149     1843210 :          ipack = ipack + 1
    8150     1843210 :          pack_tmp = packed_data(ipack)
    8151     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8152     1843210 :          pack_tmp = ISHFT(pack_tmp, -8)
    8153     1843210 :          idata = idata + 1
    8154     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8155     1843210 :          full_data(idata) = data_tmp
    8156     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8157     1843210 :          idata = idata + 1
    8158     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8159     1843210 :          full_data(idata) = data_tmp
    8160     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8161     1843210 :          idata = idata + 1
    8162     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8163     1843210 :          full_data(idata) = data_tmp
    8164     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8165     1843210 :          idata = idata + 1
    8166     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8167     1843210 :          full_data(idata) = data_tmp
    8168     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8169     1843210 :          idata = idata + 1
    8170     1843210 :          data_tmp = ISHFT(pack_tmp, 4)
    8171     1843210 :          ipack = ipack + 1
    8172     1843210 :          pack_tmp = packed_data(ipack)
    8173     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8174     1843210 :          pack_tmp = ISHFT(pack_tmp, -4)
    8175     1843210 :          idata = idata + 1
    8176     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8177     1843210 :          full_data(idata) = data_tmp
    8178     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8179     1843210 :          idata = idata + 1
    8180     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8181     1843210 :          full_data(idata) = data_tmp
    8182     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8183     1843210 :          idata = idata + 1
    8184     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8185     1843210 :          full_data(idata) = data_tmp
    8186     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8187     1843210 :          idata = idata + 1
    8188     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8189     1843210 :          full_data(idata) = data_tmp
    8190     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8191     1843210 :          idata = idata + 1
    8192     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8193     1843210 :          full_data(idata) = data_tmp
    8194     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8195     1843210 :          idata = idata + 1
    8196     1843210 :          data_tmp = ISHFT(pack_tmp, 12)
    8197     1843210 :          ipack = ipack + 1
    8198     1843210 :          pack_tmp = packed_data(ipack)
    8199     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8200     1843210 :          pack_tmp = ISHFT(pack_tmp, -12)
    8201     1843210 :          idata = idata + 1
    8202     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8203     1843210 :          full_data(idata) = data_tmp
    8204     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8205     1843210 :          idata = idata + 1
    8206     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8207     1843210 :          full_data(idata) = data_tmp
    8208     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8209     1843210 :          idata = idata + 1
    8210     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8211     1843210 :          full_data(idata) = data_tmp
    8212     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8213     1843210 :          idata = idata + 1
    8214     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8215     1843210 :          full_data(idata) = data_tmp
    8216     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8217     1843210 :          idata = idata + 1
    8218     1843210 :          data_tmp = ISHFT(pack_tmp, 8)
    8219     1843210 :          ipack = ipack + 1
    8220     1843210 :          pack_tmp = packed_data(ipack)
    8221     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8222     1843210 :          pack_tmp = ISHFT(pack_tmp, -8)
    8223     1843210 :          idata = idata + 1
    8224     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8225     1843210 :          full_data(idata) = data_tmp
    8226     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8227     1843210 :          idata = idata + 1
    8228     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8229     1843210 :          full_data(idata) = data_tmp
    8230     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8231     1843210 :          idata = idata + 1
    8232     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8233     1843210 :          full_data(idata) = data_tmp
    8234     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8235     1843210 :          idata = idata + 1
    8236     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8237     1843210 :          full_data(idata) = data_tmp
    8238     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8239     1843210 :          idata = idata + 1
    8240     1843210 :          data_tmp = ISHFT(pack_tmp, 4)
    8241     1843210 :          ipack = ipack + 1
    8242     1843210 :          pack_tmp = packed_data(ipack)
    8243     1843210 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8244     1843210 :          pack_tmp = ISHFT(pack_tmp, -4)
    8245     1843210 :          idata = idata + 1
    8246     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8247     1843210 :          full_data(idata) = data_tmp
    8248     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8249     1843210 :          idata = idata + 1
    8250     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8251     1843210 :          full_data(idata) = data_tmp
    8252     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8253     1843210 :          idata = idata + 1
    8254     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8255     1843210 :          full_data(idata) = data_tmp
    8256     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8257     1843210 :          idata = idata + 1
    8258     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8259     1843210 :          full_data(idata) = data_tmp
    8260     1843210 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8261     1843210 :          idata = idata + 1
    8262     1843210 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8263     1843210 :          full_data(idata) = data_tmp
    8264     1843697 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8265             :       END DO
    8266      118896 :       IF (Ndata_rep < Ndata) THEN
    8267        6956 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8268             :       END IF
    8269      118896 :    END SUBROUTINE bits2ints_12
    8270             : 
    8271             : ! **************************************************************************************************
    8272             : !> \brief ...
    8273             : !> \param Ndata ...
    8274             : !> \param packed_data ...
    8275             : !> \param full_data ...
    8276             : ! **************************************************************************************************
    8277       28079 :    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       28079 :       idata = 0
    8288       28079 :       ipack = 0
    8289       28079 :       Ndata_rep = (Ndata/64)*64
    8290       28079 :       DO kdata = 1, Ndata_rep, 64
    8291      436991 :          pack_tmp = 0
    8292      436991 :          idata = idata + 1
    8293      436991 :          data_tmp = full_data(idata)
    8294      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8295      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8296      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8297      436991 :          idata = idata + 1
    8298      436991 :          data_tmp = full_data(idata)
    8299      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8300      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8301      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8302      436991 :          idata = idata + 1
    8303      436991 :          data_tmp = full_data(idata)
    8304      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8305      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8306      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8307      436991 :          idata = idata + 1
    8308      436991 :          data_tmp = full_data(idata)
    8309      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8310      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8311      436991 :          pack_tmp = ISHFT(pack_tmp, -12)
    8312      436991 :          idata = idata + 1
    8313      436991 :          data_tmp = full_data(idata)
    8314      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8315      436991 :          data_tmp = IAND(data_tmp, mask_left(12))
    8316      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8317      436991 :          ipack = ipack + 1
    8318      436991 :          packed_data(ipack) = pack_tmp
    8319      436991 :          data_tmp = full_data(idata)
    8320      436991 :          pack_tmp = ISHFT(data_tmp, 63)
    8321      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8322      436991 :          idata = idata + 1
    8323      436991 :          data_tmp = full_data(idata)
    8324      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8325      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8326      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8327      436991 :          idata = idata + 1
    8328      436991 :          data_tmp = full_data(idata)
    8329      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8330      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8331      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8332      436991 :          idata = idata + 1
    8333      436991 :          data_tmp = full_data(idata)
    8334      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8335      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8336      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8337      436991 :          idata = idata + 1
    8338      436991 :          data_tmp = full_data(idata)
    8339      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8340      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8341      436991 :          pack_tmp = ISHFT(pack_tmp, -11)
    8342      436991 :          idata = idata + 1
    8343      436991 :          data_tmp = full_data(idata)
    8344      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8345      436991 :          data_tmp = IAND(data_tmp, mask_left(11))
    8346      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8347      436991 :          ipack = ipack + 1
    8348      436991 :          packed_data(ipack) = pack_tmp
    8349      436991 :          data_tmp = full_data(idata)
    8350      436991 :          pack_tmp = ISHFT(data_tmp, 62)
    8351      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8352      436991 :          idata = idata + 1
    8353      436991 :          data_tmp = full_data(idata)
    8354      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8355      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8356      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8357      436991 :          idata = idata + 1
    8358      436991 :          data_tmp = full_data(idata)
    8359      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8360      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8361      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8362      436991 :          idata = idata + 1
    8363      436991 :          data_tmp = full_data(idata)
    8364      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8365      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8366      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8367      436991 :          idata = idata + 1
    8368      436991 :          data_tmp = full_data(idata)
    8369      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8370      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8371      436991 :          pack_tmp = ISHFT(pack_tmp, -10)
    8372      436991 :          idata = idata + 1
    8373      436991 :          data_tmp = full_data(idata)
    8374      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8375      436991 :          data_tmp = IAND(data_tmp, mask_left(10))
    8376      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8377      436991 :          ipack = ipack + 1
    8378      436991 :          packed_data(ipack) = pack_tmp
    8379      436991 :          data_tmp = full_data(idata)
    8380      436991 :          pack_tmp = ISHFT(data_tmp, 61)
    8381      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8382      436991 :          idata = idata + 1
    8383      436991 :          data_tmp = full_data(idata)
    8384      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8385      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8386      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8387      436991 :          idata = idata + 1
    8388      436991 :          data_tmp = full_data(idata)
    8389      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8390      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8391      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8392      436991 :          idata = idata + 1
    8393      436991 :          data_tmp = full_data(idata)
    8394      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8395      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8396      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8397      436991 :          idata = idata + 1
    8398      436991 :          data_tmp = full_data(idata)
    8399      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8400      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8401      436991 :          pack_tmp = ISHFT(pack_tmp, -9)
    8402      436991 :          idata = idata + 1
    8403      436991 :          data_tmp = full_data(idata)
    8404      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8405      436991 :          data_tmp = IAND(data_tmp, mask_left(9))
    8406      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8407      436991 :          ipack = ipack + 1
    8408      436991 :          packed_data(ipack) = pack_tmp
    8409      436991 :          data_tmp = full_data(idata)
    8410      436991 :          pack_tmp = ISHFT(data_tmp, 60)
    8411      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8412      436991 :          idata = idata + 1
    8413      436991 :          data_tmp = full_data(idata)
    8414      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8415      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8416      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8417      436991 :          idata = idata + 1
    8418      436991 :          data_tmp = full_data(idata)
    8419      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8420      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8421      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8422      436991 :          idata = idata + 1
    8423      436991 :          data_tmp = full_data(idata)
    8424      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8425      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8426      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8427      436991 :          idata = idata + 1
    8428      436991 :          data_tmp = full_data(idata)
    8429      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8430      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8431      436991 :          pack_tmp = ISHFT(pack_tmp, -8)
    8432      436991 :          idata = idata + 1
    8433      436991 :          data_tmp = full_data(idata)
    8434      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8435      436991 :          data_tmp = IAND(data_tmp, mask_left(8))
    8436      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8437      436991 :          ipack = ipack + 1
    8438      436991 :          packed_data(ipack) = pack_tmp
    8439      436991 :          data_tmp = full_data(idata)
    8440      436991 :          pack_tmp = ISHFT(data_tmp, 59)
    8441      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8442      436991 :          idata = idata + 1
    8443      436991 :          data_tmp = full_data(idata)
    8444      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8445      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8446      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8447      436991 :          idata = idata + 1
    8448      436991 :          data_tmp = full_data(idata)
    8449      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8450      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8451      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8452      436991 :          idata = idata + 1
    8453      436991 :          data_tmp = full_data(idata)
    8454      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8455      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8456      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8457      436991 :          idata = idata + 1
    8458      436991 :          data_tmp = full_data(idata)
    8459      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8460      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8461      436991 :          pack_tmp = ISHFT(pack_tmp, -7)
    8462      436991 :          idata = idata + 1
    8463      436991 :          data_tmp = full_data(idata)
    8464      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8465      436991 :          data_tmp = IAND(data_tmp, mask_left(7))
    8466      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8467      436991 :          ipack = ipack + 1
    8468      436991 :          packed_data(ipack) = pack_tmp
    8469      436991 :          data_tmp = full_data(idata)
    8470      436991 :          pack_tmp = ISHFT(data_tmp, 58)
    8471      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8472      436991 :          idata = idata + 1
    8473      436991 :          data_tmp = full_data(idata)
    8474      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8475      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8476      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8477      436991 :          idata = idata + 1
    8478      436991 :          data_tmp = full_data(idata)
    8479      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8480      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8481      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8482      436991 :          idata = idata + 1
    8483      436991 :          data_tmp = full_data(idata)
    8484      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8485      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8486      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8487      436991 :          idata = idata + 1
    8488      436991 :          data_tmp = full_data(idata)
    8489      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8490      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8491      436991 :          pack_tmp = ISHFT(pack_tmp, -6)
    8492      436991 :          idata = idata + 1
    8493      436991 :          data_tmp = full_data(idata)
    8494      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8495      436991 :          data_tmp = IAND(data_tmp, mask_left(6))
    8496      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8497      436991 :          ipack = ipack + 1
    8498      436991 :          packed_data(ipack) = pack_tmp
    8499      436991 :          data_tmp = full_data(idata)
    8500      436991 :          pack_tmp = ISHFT(data_tmp, 57)
    8501      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8502      436991 :          idata = idata + 1
    8503      436991 :          data_tmp = full_data(idata)
    8504      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8505      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8506      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8507      436991 :          idata = idata + 1
    8508      436991 :          data_tmp = full_data(idata)
    8509      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8510      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8511      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8512      436991 :          idata = idata + 1
    8513      436991 :          data_tmp = full_data(idata)
    8514      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8515      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8516      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8517      436991 :          idata = idata + 1
    8518      436991 :          data_tmp = full_data(idata)
    8519      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8520      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8521      436991 :          pack_tmp = ISHFT(pack_tmp, -5)
    8522      436991 :          idata = idata + 1
    8523      436991 :          data_tmp = full_data(idata)
    8524      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8525      436991 :          data_tmp = IAND(data_tmp, mask_left(5))
    8526      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8527      436991 :          ipack = ipack + 1
    8528      436991 :          packed_data(ipack) = pack_tmp
    8529      436991 :          data_tmp = full_data(idata)
    8530      436991 :          pack_tmp = ISHFT(data_tmp, 56)
    8531      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8532      436991 :          idata = idata + 1
    8533      436991 :          data_tmp = full_data(idata)
    8534      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8535      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8536      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8537      436991 :          idata = idata + 1
    8538      436991 :          data_tmp = full_data(idata)
    8539      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8540      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8541      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8542      436991 :          idata = idata + 1
    8543      436991 :          data_tmp = full_data(idata)
    8544      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8545      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8546      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8547      436991 :          idata = idata + 1
    8548      436991 :          data_tmp = full_data(idata)
    8549      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8550      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8551      436991 :          pack_tmp = ISHFT(pack_tmp, -4)
    8552      436991 :          idata = idata + 1
    8553      436991 :          data_tmp = full_data(idata)
    8554      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8555      436991 :          data_tmp = IAND(data_tmp, mask_left(4))
    8556      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8557      436991 :          ipack = ipack + 1
    8558      436991 :          packed_data(ipack) = pack_tmp
    8559      436991 :          data_tmp = full_data(idata)
    8560      436991 :          pack_tmp = ISHFT(data_tmp, 55)
    8561      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8562      436991 :          idata = idata + 1
    8563      436991 :          data_tmp = full_data(idata)
    8564      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8565      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8566      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8567      436991 :          idata = idata + 1
    8568      436991 :          data_tmp = full_data(idata)
    8569      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8570      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8571      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8572      436991 :          idata = idata + 1
    8573      436991 :          data_tmp = full_data(idata)
    8574      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8575      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8576      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8577      436991 :          idata = idata + 1
    8578      436991 :          data_tmp = full_data(idata)
    8579      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8580      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8581      436991 :          pack_tmp = ISHFT(pack_tmp, -3)
    8582      436991 :          idata = idata + 1
    8583      436991 :          data_tmp = full_data(idata)
    8584      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8585      436991 :          data_tmp = IAND(data_tmp, mask_left(3))
    8586      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8587      436991 :          ipack = ipack + 1
    8588      436991 :          packed_data(ipack) = pack_tmp
    8589      436991 :          data_tmp = full_data(idata)
    8590      436991 :          pack_tmp = ISHFT(data_tmp, 54)
    8591      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8592      436991 :          idata = idata + 1
    8593      436991 :          data_tmp = full_data(idata)
    8594      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8595      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8596      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8597      436991 :          idata = idata + 1
    8598      436991 :          data_tmp = full_data(idata)
    8599      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8600      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8601      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8602      436991 :          idata = idata + 1
    8603      436991 :          data_tmp = full_data(idata)
    8604      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8605      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8606      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8607      436991 :          idata = idata + 1
    8608      436991 :          data_tmp = full_data(idata)
    8609      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8610      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8611      436991 :          pack_tmp = ISHFT(pack_tmp, -2)
    8612      436991 :          idata = idata + 1
    8613      436991 :          data_tmp = full_data(idata)
    8614      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8615      436991 :          data_tmp = IAND(data_tmp, mask_left(2))
    8616      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8617      436991 :          ipack = ipack + 1
    8618      436991 :          packed_data(ipack) = pack_tmp
    8619      436991 :          data_tmp = full_data(idata)
    8620      436991 :          pack_tmp = ISHFT(data_tmp, 53)
    8621      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8622      436991 :          idata = idata + 1
    8623      436991 :          data_tmp = full_data(idata)
    8624      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8625      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8626      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8627      436991 :          idata = idata + 1
    8628      436991 :          data_tmp = full_data(idata)
    8629      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8630      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8631      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8632      436991 :          idata = idata + 1
    8633      436991 :          data_tmp = full_data(idata)
    8634      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8635      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8636      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8637      436991 :          idata = idata + 1
    8638      436991 :          data_tmp = full_data(idata)
    8639      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8640      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8641      436991 :          pack_tmp = ISHFT(pack_tmp, -1)
    8642      436991 :          idata = idata + 1
    8643      436991 :          data_tmp = full_data(idata)
    8644      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8645      436991 :          data_tmp = IAND(data_tmp, mask_left(1))
    8646      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8647      436991 :          ipack = ipack + 1
    8648      436991 :          packed_data(ipack) = pack_tmp
    8649      436991 :          data_tmp = full_data(idata)
    8650      436991 :          pack_tmp = ISHFT(data_tmp, 52)
    8651      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8652      436991 :          idata = idata + 1
    8653      436991 :          data_tmp = full_data(idata)
    8654      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8655      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8656      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8657      436991 :          idata = idata + 1
    8658      436991 :          data_tmp = full_data(idata)
    8659      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8660      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8661      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8662      436991 :          idata = idata + 1
    8663      436991 :          data_tmp = full_data(idata)
    8664      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8665      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8666      436991 :          pack_tmp = ISHFT(pack_tmp, -13)
    8667      436991 :          idata = idata + 1
    8668      436991 :          data_tmp = full_data(idata)
    8669      436991 :          data_tmp = ISHFT(data_tmp, 51)
    8670      436991 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8671             :          pack_tmp = ISHFT(pack_tmp, 0)
    8672      436991 :          pack_tmp = ISHFT(pack_tmp, 0)
    8673      436991 :          ipack = ipack + 1
    8674      437061 :          packed_data(ipack) = pack_tmp
    8675             :       END DO
    8676       28079 :       IF (Ndata_rep < Ndata) THEN
    8677        1346 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8678             :       END IF
    8679       28079 :    END SUBROUTINE ints2bits_13
    8680             : 
    8681             : ! **************************************************************************************************
    8682             : !> \brief ...
    8683             : !> \param Ndata ...
    8684             : !> \param packed_data ...
    8685             : !> \param full_data ...
    8686             : ! **************************************************************************************************
    8687      131111 :    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      131111 :       ipack = 0
    8698      131111 :       idata = 0
    8699      131111 :       pack_tmp = 0
    8700      131111 :       Ndata_rep = (Ndata/64)*64
    8701      131111 :       DO kdata = 1, Ndata_rep, 64
    8702     1999641 :          idata = idata + 1
    8703     1999641 :          data_tmp = ISHFT(pack_tmp, 13)
    8704     1999641 :          ipack = ipack + 1
    8705     1999641 :          pack_tmp = packed_data(ipack)
    8706     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
    8707     1999641 :          pack_tmp = ISHFT(pack_tmp, -13)
    8708     1999641 :          idata = idata + 1
    8709     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8710     1999641 :          full_data(idata) = data_tmp
    8711     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8712     1999641 :          idata = idata + 1
    8713     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8714     1999641 :          full_data(idata) = data_tmp
    8715     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8716     1999641 :          idata = idata + 1
    8717     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8718     1999641 :          full_data(idata) = data_tmp
    8719     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8720     1999641 :          idata = idata + 1
    8721     1999641 :          data_tmp = ISHFT(pack_tmp, 1)
    8722     1999641 :          ipack = ipack + 1
    8723     1999641 :          pack_tmp = packed_data(ipack)
    8724     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    8725     1999641 :          pack_tmp = ISHFT(pack_tmp, -1)
    8726     1999641 :          idata = idata + 1
    8727     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8728     1999641 :          full_data(idata) = data_tmp
    8729     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8730     1999641 :          idata = idata + 1
    8731     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8732     1999641 :          full_data(idata) = data_tmp
    8733     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8734     1999641 :          idata = idata + 1
    8735     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8736     1999641 :          full_data(idata) = data_tmp
    8737     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8738     1999641 :          idata = idata + 1
    8739     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8740     1999641 :          full_data(idata) = data_tmp
    8741     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8742     1999641 :          idata = idata + 1
    8743     1999641 :          data_tmp = ISHFT(pack_tmp, 2)
    8744     1999641 :          ipack = ipack + 1
    8745     1999641 :          pack_tmp = packed_data(ipack)
    8746     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    8747     1999641 :          pack_tmp = ISHFT(pack_tmp, -2)
    8748     1999641 :          idata = idata + 1
    8749     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8750     1999641 :          full_data(idata) = data_tmp
    8751     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8752     1999641 :          idata = idata + 1
    8753     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8754     1999641 :          full_data(idata) = data_tmp
    8755     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8756     1999641 :          idata = idata + 1
    8757     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8758     1999641 :          full_data(idata) = data_tmp
    8759     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8760     1999641 :          idata = idata + 1
    8761     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8762     1999641 :          full_data(idata) = data_tmp
    8763     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8764     1999641 :          idata = idata + 1
    8765     1999641 :          data_tmp = ISHFT(pack_tmp, 3)
    8766     1999641 :          ipack = ipack + 1
    8767     1999641 :          pack_tmp = packed_data(ipack)
    8768     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    8769     1999641 :          pack_tmp = ISHFT(pack_tmp, -3)
    8770     1999641 :          idata = idata + 1
    8771     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8772     1999641 :          full_data(idata) = data_tmp
    8773     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8774     1999641 :          idata = idata + 1
    8775     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8776     1999641 :          full_data(idata) = data_tmp
    8777     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8778     1999641 :          idata = idata + 1
    8779     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8780     1999641 :          full_data(idata) = data_tmp
    8781     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8782     1999641 :          idata = idata + 1
    8783     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8784     1999641 :          full_data(idata) = data_tmp
    8785     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8786     1999641 :          idata = idata + 1
    8787     1999641 :          data_tmp = ISHFT(pack_tmp, 4)
    8788     1999641 :          ipack = ipack + 1
    8789     1999641 :          pack_tmp = packed_data(ipack)
    8790     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8791     1999641 :          pack_tmp = ISHFT(pack_tmp, -4)
    8792     1999641 :          idata = idata + 1
    8793     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8794     1999641 :          full_data(idata) = data_tmp
    8795     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8796     1999641 :          idata = idata + 1
    8797     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8798     1999641 :          full_data(idata) = data_tmp
    8799     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8800     1999641 :          idata = idata + 1
    8801     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8802     1999641 :          full_data(idata) = data_tmp
    8803     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8804     1999641 :          idata = idata + 1
    8805     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8806     1999641 :          full_data(idata) = data_tmp
    8807     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8808     1999641 :          idata = idata + 1
    8809     1999641 :          data_tmp = ISHFT(pack_tmp, 5)
    8810     1999641 :          ipack = ipack + 1
    8811     1999641 :          pack_tmp = packed_data(ipack)
    8812     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    8813     1999641 :          pack_tmp = ISHFT(pack_tmp, -5)
    8814     1999641 :          idata = idata + 1
    8815     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8816     1999641 :          full_data(idata) = data_tmp
    8817     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8818     1999641 :          idata = idata + 1
    8819     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8820     1999641 :          full_data(idata) = data_tmp
    8821     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8822     1999641 :          idata = idata + 1
    8823     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8824     1999641 :          full_data(idata) = data_tmp
    8825     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8826     1999641 :          idata = idata + 1
    8827     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8828     1999641 :          full_data(idata) = data_tmp
    8829     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8830     1999641 :          idata = idata + 1
    8831     1999641 :          data_tmp = ISHFT(pack_tmp, 6)
    8832     1999641 :          ipack = ipack + 1
    8833     1999641 :          pack_tmp = packed_data(ipack)
    8834     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    8835     1999641 :          pack_tmp = ISHFT(pack_tmp, -6)
    8836     1999641 :          idata = idata + 1
    8837     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8838     1999641 :          full_data(idata) = data_tmp
    8839     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8840     1999641 :          idata = idata + 1
    8841     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8842     1999641 :          full_data(idata) = data_tmp
    8843     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8844     1999641 :          idata = idata + 1
    8845     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8846     1999641 :          full_data(idata) = data_tmp
    8847     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8848     1999641 :          idata = idata + 1
    8849     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8850     1999641 :          full_data(idata) = data_tmp
    8851     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8852     1999641 :          idata = idata + 1
    8853     1999641 :          data_tmp = ISHFT(pack_tmp, 7)
    8854     1999641 :          ipack = ipack + 1
    8855     1999641 :          pack_tmp = packed_data(ipack)
    8856     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    8857     1999641 :          pack_tmp = ISHFT(pack_tmp, -7)
    8858     1999641 :          idata = idata + 1
    8859     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8860     1999641 :          full_data(idata) = data_tmp
    8861     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8862     1999641 :          idata = idata + 1
    8863     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8864     1999641 :          full_data(idata) = data_tmp
    8865     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8866     1999641 :          idata = idata + 1
    8867     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8868     1999641 :          full_data(idata) = data_tmp
    8869     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8870     1999641 :          idata = idata + 1
    8871     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8872     1999641 :          full_data(idata) = data_tmp
    8873     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8874     1999641 :          idata = idata + 1
    8875     1999641 :          data_tmp = ISHFT(pack_tmp, 8)
    8876     1999641 :          ipack = ipack + 1
    8877     1999641 :          pack_tmp = packed_data(ipack)
    8878     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8879     1999641 :          pack_tmp = ISHFT(pack_tmp, -8)
    8880     1999641 :          idata = idata + 1
    8881     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8882     1999641 :          full_data(idata) = data_tmp
    8883     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8884     1999641 :          idata = idata + 1
    8885     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8886     1999641 :          full_data(idata) = data_tmp
    8887     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8888     1999641 :          idata = idata + 1
    8889     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8890     1999641 :          full_data(idata) = data_tmp
    8891     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8892     1999641 :          idata = idata + 1
    8893     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8894     1999641 :          full_data(idata) = data_tmp
    8895     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8896     1999641 :          idata = idata + 1
    8897     1999641 :          data_tmp = ISHFT(pack_tmp, 9)
    8898     1999641 :          ipack = ipack + 1
    8899     1999641 :          pack_tmp = packed_data(ipack)
    8900     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    8901     1999641 :          pack_tmp = ISHFT(pack_tmp, -9)
    8902     1999641 :          idata = idata + 1
    8903     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8904     1999641 :          full_data(idata) = data_tmp
    8905     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8906     1999641 :          idata = idata + 1
    8907     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8908     1999641 :          full_data(idata) = data_tmp
    8909     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8910     1999641 :          idata = idata + 1
    8911     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8912     1999641 :          full_data(idata) = data_tmp
    8913     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8914     1999641 :          idata = idata + 1
    8915     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8916     1999641 :          full_data(idata) = data_tmp
    8917     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8918     1999641 :          idata = idata + 1
    8919     1999641 :          data_tmp = ISHFT(pack_tmp, 10)
    8920     1999641 :          ipack = ipack + 1
    8921     1999641 :          pack_tmp = packed_data(ipack)
    8922     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    8923     1999641 :          pack_tmp = ISHFT(pack_tmp, -10)
    8924     1999641 :          idata = idata + 1
    8925     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8926     1999641 :          full_data(idata) = data_tmp
    8927     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8928     1999641 :          idata = idata + 1
    8929     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8930     1999641 :          full_data(idata) = data_tmp
    8931     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8932     1999641 :          idata = idata + 1
    8933     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8934     1999641 :          full_data(idata) = data_tmp
    8935     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8936     1999641 :          idata = idata + 1
    8937     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8938     1999641 :          full_data(idata) = data_tmp
    8939     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8940     1999641 :          idata = idata + 1
    8941     1999641 :          data_tmp = ISHFT(pack_tmp, 11)
    8942     1999641 :          ipack = ipack + 1
    8943     1999641 :          pack_tmp = packed_data(ipack)
    8944     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    8945     1999641 :          pack_tmp = ISHFT(pack_tmp, -11)
    8946     1999641 :          idata = idata + 1
    8947     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8948     1999641 :          full_data(idata) = data_tmp
    8949     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8950     1999641 :          idata = idata + 1
    8951     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8952     1999641 :          full_data(idata) = data_tmp
    8953     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8954     1999641 :          idata = idata + 1
    8955     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8956     1999641 :          full_data(idata) = data_tmp
    8957     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8958     1999641 :          idata = idata + 1
    8959     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8960     1999641 :          full_data(idata) = data_tmp
    8961     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8962     1999641 :          idata = idata + 1
    8963     1999641 :          data_tmp = ISHFT(pack_tmp, 12)
    8964     1999641 :          ipack = ipack + 1
    8965     1999641 :          pack_tmp = packed_data(ipack)
    8966     1999641 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8967     1999641 :          pack_tmp = ISHFT(pack_tmp, -12)
    8968     1999641 :          idata = idata + 1
    8969     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8970     1999641 :          full_data(idata) = data_tmp
    8971     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8972     1999641 :          idata = idata + 1
    8973     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8974     1999641 :          full_data(idata) = data_tmp
    8975     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8976     1999641 :          idata = idata + 1
    8977     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8978     1999641 :          full_data(idata) = data_tmp
    8979     1999641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8980     1999641 :          idata = idata + 1
    8981     1999641 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8982     1999641 :          full_data(idata) = data_tmp
    8983     2000189 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8984             :       END DO
    8985      131111 :       IF (Ndata_rep < Ndata) THEN
    8986       10798 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8987             :       END IF
    8988      131111 :    END SUBROUTINE bits2ints_13
    8989             : 
    8990             : ! **************************************************************************************************
    8991             : !> \brief ...
    8992             : !> \param Ndata ...
    8993             : !> \param packed_data ...
    8994             : !> \param full_data ...
    8995             : ! **************************************************************************************************
    8996       27125 :    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       27125 :       idata = 0
    9007       27125 :       ipack = 0
    9008       27125 :       Ndata_rep = (Ndata/64)*64
    9009       27125 :       DO kdata = 1, Ndata_rep, 64
    9010      423835 :          pack_tmp = 0
    9011      423835 :          idata = idata + 1
    9012      423835 :          data_tmp = full_data(idata)
    9013      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9014      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9015      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9016      423835 :          idata = idata + 1
    9017      423835 :          data_tmp = full_data(idata)
    9018      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9019      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9020      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9021      423835 :          idata = idata + 1
    9022      423835 :          data_tmp = full_data(idata)
    9023      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9024      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9025      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9026      423835 :          idata = idata + 1
    9027      423835 :          data_tmp = full_data(idata)
    9028      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9029      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9030      423835 :          pack_tmp = ISHFT(pack_tmp, -8)
    9031      423835 :          idata = idata + 1
    9032      423835 :          data_tmp = full_data(idata)
    9033      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9034      423835 :          data_tmp = IAND(data_tmp, mask_left(8))
    9035      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9036      423835 :          ipack = ipack + 1
    9037      423835 :          packed_data(ipack) = pack_tmp
    9038      423835 :          data_tmp = full_data(idata)
    9039      423835 :          pack_tmp = ISHFT(data_tmp, 58)
    9040      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9041      423835 :          idata = idata + 1
    9042      423835 :          data_tmp = full_data(idata)
    9043      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9044      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9045      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9046      423835 :          idata = idata + 1
    9047      423835 :          data_tmp = full_data(idata)
    9048      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9049      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9050      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9051      423835 :          idata = idata + 1
    9052      423835 :          data_tmp = full_data(idata)
    9053      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9054      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9055      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9056      423835 :          idata = idata + 1
    9057      423835 :          data_tmp = full_data(idata)
    9058      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9059      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9060      423835 :          pack_tmp = ISHFT(pack_tmp, -2)
    9061      423835 :          idata = idata + 1
    9062      423835 :          data_tmp = full_data(idata)
    9063      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9064      423835 :          data_tmp = IAND(data_tmp, mask_left(2))
    9065      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9066      423835 :          ipack = ipack + 1
    9067      423835 :          packed_data(ipack) = pack_tmp
    9068      423835 :          data_tmp = full_data(idata)
    9069      423835 :          pack_tmp = ISHFT(data_tmp, 52)
    9070      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9071      423835 :          idata = idata + 1
    9072      423835 :          data_tmp = full_data(idata)
    9073      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9074      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9075      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9076      423835 :          idata = idata + 1
    9077      423835 :          data_tmp = full_data(idata)
    9078      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9079      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9080      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9081      423835 :          idata = idata + 1
    9082      423835 :          data_tmp = full_data(idata)
    9083      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9084      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9085      423835 :          pack_tmp = ISHFT(pack_tmp, -10)
    9086      423835 :          idata = idata + 1
    9087      423835 :          data_tmp = full_data(idata)
    9088      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9089      423835 :          data_tmp = IAND(data_tmp, mask_left(10))
    9090      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9091      423835 :          ipack = ipack + 1
    9092      423835 :          packed_data(ipack) = pack_tmp
    9093      423835 :          data_tmp = full_data(idata)
    9094      423835 :          pack_tmp = ISHFT(data_tmp, 60)
    9095      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9096      423835 :          idata = idata + 1
    9097      423835 :          data_tmp = full_data(idata)
    9098      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9099      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9100      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9101      423835 :          idata = idata + 1
    9102      423835 :          data_tmp = full_data(idata)
    9103      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9104      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9105      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9106      423835 :          idata = idata + 1
    9107      423835 :          data_tmp = full_data(idata)
    9108      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9109      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9110      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9111      423835 :          idata = idata + 1
    9112      423835 :          data_tmp = full_data(idata)
    9113      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9114      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9115      423835 :          pack_tmp = ISHFT(pack_tmp, -4)
    9116      423835 :          idata = idata + 1
    9117      423835 :          data_tmp = full_data(idata)
    9118      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9119      423835 :          data_tmp = IAND(data_tmp, mask_left(4))
    9120      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9121      423835 :          ipack = ipack + 1
    9122      423835 :          packed_data(ipack) = pack_tmp
    9123      423835 :          data_tmp = full_data(idata)
    9124      423835 :          pack_tmp = ISHFT(data_tmp, 54)
    9125      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9126      423835 :          idata = idata + 1
    9127      423835 :          data_tmp = full_data(idata)
    9128      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9129      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9130      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9131      423835 :          idata = idata + 1
    9132      423835 :          data_tmp = full_data(idata)
    9133      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9134      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9135      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9136      423835 :          idata = idata + 1
    9137      423835 :          data_tmp = full_data(idata)
    9138      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9139      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9140      423835 :          pack_tmp = ISHFT(pack_tmp, -12)
    9141      423835 :          idata = idata + 1
    9142      423835 :          data_tmp = full_data(idata)
    9143      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9144      423835 :          data_tmp = IAND(data_tmp, mask_left(12))
    9145      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9146      423835 :          ipack = ipack + 1
    9147      423835 :          packed_data(ipack) = pack_tmp
    9148      423835 :          data_tmp = full_data(idata)
    9149      423835 :          pack_tmp = ISHFT(data_tmp, 62)
    9150      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9151      423835 :          idata = idata + 1
    9152      423835 :          data_tmp = full_data(idata)
    9153      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9154      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9155      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9156      423835 :          idata = idata + 1
    9157      423835 :          data_tmp = full_data(idata)
    9158      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9159      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9160      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9161      423835 :          idata = idata + 1
    9162      423835 :          data_tmp = full_data(idata)
    9163      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9164      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9165      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9166      423835 :          idata = idata + 1
    9167      423835 :          data_tmp = full_data(idata)
    9168      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9169      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9170      423835 :          pack_tmp = ISHFT(pack_tmp, -6)
    9171      423835 :          idata = idata + 1
    9172      423835 :          data_tmp = full_data(idata)
    9173      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9174      423835 :          data_tmp = IAND(data_tmp, mask_left(6))
    9175      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9176      423835 :          ipack = ipack + 1
    9177      423835 :          packed_data(ipack) = pack_tmp
    9178      423835 :          data_tmp = full_data(idata)
    9179      423835 :          pack_tmp = ISHFT(data_tmp, 56)
    9180      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9181      423835 :          idata = idata + 1
    9182      423835 :          data_tmp = full_data(idata)
    9183      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9184      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9185      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9186      423835 :          idata = idata + 1
    9187      423835 :          data_tmp = full_data(idata)
    9188      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9189      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9190      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9191      423835 :          idata = idata + 1
    9192      423835 :          data_tmp = full_data(idata)
    9193      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9194      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9195      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9196      423835 :          idata = idata + 1
    9197      423835 :          data_tmp = full_data(idata)
    9198      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9199      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9200      423835 :          pack_tmp = ISHFT(pack_tmp, 0)
    9201      423835 :          idata = idata + 1
    9202      423835 :          data_tmp = full_data(idata)
    9203             :          data_tmp = ISHFT(data_tmp, 50)
    9204      423835 :          data_tmp = IAND(data_tmp, mask_left(0))
    9205      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9206      423835 :          ipack = ipack + 1
    9207      423835 :          packed_data(ipack) = pack_tmp
    9208      423835 :          data_tmp = full_data(idata)
    9209      423835 :          pack_tmp = ISHFT(data_tmp, 50)
    9210      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9211      423835 :          idata = idata + 1
    9212      423835 :          data_tmp = full_data(idata)
    9213      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9214      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9215      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9216      423835 :          idata = idata + 1
    9217      423835 :          data_tmp = full_data(idata)
    9218      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9219      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9220      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9221      423835 :          idata = idata + 1
    9222      423835 :          data_tmp = full_data(idata)
    9223      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9224      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9225      423835 :          pack_tmp = ISHFT(pack_tmp, -8)
    9226      423835 :          idata = idata + 1
    9227      423835 :          data_tmp = full_data(idata)
    9228      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9229      423835 :          data_tmp = IAND(data_tmp, mask_left(8))
    9230      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9231      423835 :          ipack = ipack + 1
    9232      423835 :          packed_data(ipack) = pack_tmp
    9233      423835 :          data_tmp = full_data(idata)
    9234      423835 :          pack_tmp = ISHFT(data_tmp, 58)
    9235      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9236      423835 :          idata = idata + 1
    9237      423835 :          data_tmp = full_data(idata)
    9238      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9239      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9240      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9241      423835 :          idata = idata + 1
    9242      423835 :          data_tmp = full_data(idata)
    9243      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9244      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9245      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9246      423835 :          idata = idata + 1
    9247      423835 :          data_tmp = full_data(idata)
    9248      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9249      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9250      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9251      423835 :          idata = idata + 1
    9252      423835 :          data_tmp = full_data(idata)
    9253      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9254      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9255      423835 :          pack_tmp = ISHFT(pack_tmp, -2)
    9256      423835 :          idata = idata + 1
    9257      423835 :          data_tmp = full_data(idata)
    9258      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9259      423835 :          data_tmp = IAND(data_tmp, mask_left(2))
    9260      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9261      423835 :          ipack = ipack + 1
    9262      423835 :          packed_data(ipack) = pack_tmp
    9263      423835 :          data_tmp = full_data(idata)
    9264      423835 :          pack_tmp = ISHFT(data_tmp, 52)
    9265      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9266      423835 :          idata = idata + 1
    9267      423835 :          data_tmp = full_data(idata)
    9268      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9269      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9270      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9271      423835 :          idata = idata + 1
    9272      423835 :          data_tmp = full_data(idata)
    9273      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9274      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9275      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9276      423835 :          idata = idata + 1
    9277      423835 :          data_tmp = full_data(idata)
    9278      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9279      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9280      423835 :          pack_tmp = ISHFT(pack_tmp, -10)
    9281      423835 :          idata = idata + 1
    9282      423835 :          data_tmp = full_data(idata)
    9283      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9284      423835 :          data_tmp = IAND(data_tmp, mask_left(10))
    9285      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9286      423835 :          ipack = ipack + 1
    9287      423835 :          packed_data(ipack) = pack_tmp
    9288      423835 :          data_tmp = full_data(idata)
    9289      423835 :          pack_tmp = ISHFT(data_tmp, 60)
    9290      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9291      423835 :          idata = idata + 1
    9292      423835 :          data_tmp = full_data(idata)
    9293      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9294      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9295      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9296      423835 :          idata = idata + 1
    9297      423835 :          data_tmp = full_data(idata)
    9298      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9299      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9300      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9301      423835 :          idata = idata + 1
    9302      423835 :          data_tmp = full_data(idata)
    9303      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9304      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9305      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9306      423835 :          idata = idata + 1
    9307      423835 :          data_tmp = full_data(idata)
    9308      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9309      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9310      423835 :          pack_tmp = ISHFT(pack_tmp, -4)
    9311      423835 :          idata = idata + 1
    9312      423835 :          data_tmp = full_data(idata)
    9313      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9314      423835 :          data_tmp = IAND(data_tmp, mask_left(4))
    9315      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9316      423835 :          ipack = ipack + 1
    9317      423835 :          packed_data(ipack) = pack_tmp
    9318      423835 :          data_tmp = full_data(idata)
    9319      423835 :          pack_tmp = ISHFT(data_tmp, 54)
    9320      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9321      423835 :          idata = idata + 1
    9322      423835 :          data_tmp = full_data(idata)
    9323      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9324      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9325      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9326      423835 :          idata = idata + 1
    9327      423835 :          data_tmp = full_data(idata)
    9328      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9329      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9330      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9331      423835 :          idata = idata + 1
    9332      423835 :          data_tmp = full_data(idata)
    9333      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9334      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9335      423835 :          pack_tmp = ISHFT(pack_tmp, -12)
    9336      423835 :          idata = idata + 1
    9337      423835 :          data_tmp = full_data(idata)
    9338      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9339      423835 :          data_tmp = IAND(data_tmp, mask_left(12))
    9340      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9341      423835 :          ipack = ipack + 1
    9342      423835 :          packed_data(ipack) = pack_tmp
    9343      423835 :          data_tmp = full_data(idata)
    9344      423835 :          pack_tmp = ISHFT(data_tmp, 62)
    9345      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9346      423835 :          idata = idata + 1
    9347      423835 :          data_tmp = full_data(idata)
    9348      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9349      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9350      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9351      423835 :          idata = idata + 1
    9352      423835 :          data_tmp = full_data(idata)
    9353      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9354      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9355      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9356      423835 :          idata = idata + 1
    9357      423835 :          data_tmp = full_data(idata)
    9358      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9359      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9360      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9361      423835 :          idata = idata + 1
    9362      423835 :          data_tmp = full_data(idata)
    9363      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9364      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9365      423835 :          pack_tmp = ISHFT(pack_tmp, -6)
    9366      423835 :          idata = idata + 1
    9367      423835 :          data_tmp = full_data(idata)
    9368      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9369      423835 :          data_tmp = IAND(data_tmp, mask_left(6))
    9370      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9371      423835 :          ipack = ipack + 1
    9372      423835 :          packed_data(ipack) = pack_tmp
    9373      423835 :          data_tmp = full_data(idata)
    9374      423835 :          pack_tmp = ISHFT(data_tmp, 56)
    9375      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9376      423835 :          idata = idata + 1
    9377      423835 :          data_tmp = full_data(idata)
    9378      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9379      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9380      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9381      423835 :          idata = idata + 1
    9382      423835 :          data_tmp = full_data(idata)
    9383      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9384      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9385      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9386      423835 :          idata = idata + 1
    9387      423835 :          data_tmp = full_data(idata)
    9388      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9389      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9390      423835 :          pack_tmp = ISHFT(pack_tmp, -14)
    9391      423835 :          idata = idata + 1
    9392      423835 :          data_tmp = full_data(idata)
    9393      423835 :          data_tmp = ISHFT(data_tmp, 50)
    9394      423835 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9395             :          pack_tmp = ISHFT(pack_tmp, 0)
    9396      423835 :          pack_tmp = ISHFT(pack_tmp, 0)
    9397      423835 :          ipack = ipack + 1
    9398      423895 :          packed_data(ipack) = pack_tmp
    9399             :       END DO
    9400       27125 :       IF (Ndata_rep < Ndata) THEN
    9401        1130 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9402             :       END IF
    9403       27125 :    END SUBROUTINE ints2bits_14
    9404             : 
    9405             : ! **************************************************************************************************
    9406             : !> \brief ...
    9407             : !> \param Ndata ...
    9408             : !> \param packed_data ...
    9409             : !> \param full_data ...
    9410             : ! **************************************************************************************************
    9411      122833 :    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      122833 :       ipack = 0
    9422      122833 :       idata = 0
    9423      122833 :       pack_tmp = 0
    9424      122833 :       Ndata_rep = (Ndata/64)*64
    9425      122833 :       DO kdata = 1, Ndata_rep, 64
    9426     1887567 :          idata = idata + 1
    9427     1887567 :          data_tmp = ISHFT(pack_tmp, 14)
    9428     1887567 :          ipack = ipack + 1
    9429     1887567 :          pack_tmp = packed_data(ipack)
    9430     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9431     1887567 :          pack_tmp = ISHFT(pack_tmp, -14)
    9432     1887567 :          idata = idata + 1
    9433     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9434     1887567 :          full_data(idata) = data_tmp
    9435     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9436     1887567 :          idata = idata + 1
    9437     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9438     1887567 :          full_data(idata) = data_tmp
    9439     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9440     1887567 :          idata = idata + 1
    9441     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9442     1887567 :          full_data(idata) = data_tmp
    9443     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9444     1887567 :          idata = idata + 1
    9445     1887567 :          data_tmp = ISHFT(pack_tmp, 6)
    9446     1887567 :          ipack = ipack + 1
    9447     1887567 :          pack_tmp = packed_data(ipack)
    9448     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9449     1887567 :          pack_tmp = ISHFT(pack_tmp, -6)
    9450     1887567 :          idata = idata + 1
    9451     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9452     1887567 :          full_data(idata) = data_tmp
    9453     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9454     1887567 :          idata = idata + 1
    9455     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9456     1887567 :          full_data(idata) = data_tmp
    9457     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9458     1887567 :          idata = idata + 1
    9459     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9460     1887567 :          full_data(idata) = data_tmp
    9461     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9462     1887567 :          idata = idata + 1
    9463     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9464     1887567 :          full_data(idata) = data_tmp
    9465     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9466     1887567 :          idata = idata + 1
    9467     1887567 :          data_tmp = ISHFT(pack_tmp, 12)
    9468     1887567 :          ipack = ipack + 1
    9469     1887567 :          pack_tmp = packed_data(ipack)
    9470     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9471     1887567 :          pack_tmp = ISHFT(pack_tmp, -12)
    9472     1887567 :          idata = idata + 1
    9473     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9474     1887567 :          full_data(idata) = data_tmp
    9475     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9476     1887567 :          idata = idata + 1
    9477     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9478     1887567 :          full_data(idata) = data_tmp
    9479     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9480     1887567 :          idata = idata + 1
    9481     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9482     1887567 :          full_data(idata) = data_tmp
    9483     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9484     1887567 :          idata = idata + 1
    9485     1887567 :          data_tmp = ISHFT(pack_tmp, 4)
    9486     1887567 :          ipack = ipack + 1
    9487     1887567 :          pack_tmp = packed_data(ipack)
    9488     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9489     1887567 :          pack_tmp = ISHFT(pack_tmp, -4)
    9490     1887567 :          idata = idata + 1
    9491     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9492     1887567 :          full_data(idata) = data_tmp
    9493     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9494     1887567 :          idata = idata + 1
    9495     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9496     1887567 :          full_data(idata) = data_tmp
    9497     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9498     1887567 :          idata = idata + 1
    9499     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9500     1887567 :          full_data(idata) = data_tmp
    9501     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9502     1887567 :          idata = idata + 1
    9503     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9504     1887567 :          full_data(idata) = data_tmp
    9505     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9506     1887567 :          idata = idata + 1
    9507     1887567 :          data_tmp = ISHFT(pack_tmp, 10)
    9508     1887567 :          ipack = ipack + 1
    9509     1887567 :          pack_tmp = packed_data(ipack)
    9510     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9511     1887567 :          pack_tmp = ISHFT(pack_tmp, -10)
    9512     1887567 :          idata = idata + 1
    9513     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9514     1887567 :          full_data(idata) = data_tmp
    9515     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9516     1887567 :          idata = idata + 1
    9517     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9518     1887567 :          full_data(idata) = data_tmp
    9519     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9520     1887567 :          idata = idata + 1
    9521     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9522     1887567 :          full_data(idata) = data_tmp
    9523     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9524     1887567 :          idata = idata + 1
    9525     1887567 :          data_tmp = ISHFT(pack_tmp, 2)
    9526     1887567 :          ipack = ipack + 1
    9527     1887567 :          pack_tmp = packed_data(ipack)
    9528     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9529     1887567 :          pack_tmp = ISHFT(pack_tmp, -2)
    9530     1887567 :          idata = idata + 1
    9531     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9532     1887567 :          full_data(idata) = data_tmp
    9533     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9534     1887567 :          idata = idata + 1
    9535     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9536     1887567 :          full_data(idata) = data_tmp
    9537     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9538     1887567 :          idata = idata + 1
    9539     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9540     1887567 :          full_data(idata) = data_tmp
    9541     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9542     1887567 :          idata = idata + 1
    9543     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9544     1887567 :          full_data(idata) = data_tmp
    9545     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9546     1887567 :          idata = idata + 1
    9547     1887567 :          data_tmp = ISHFT(pack_tmp, 8)
    9548     1887567 :          ipack = ipack + 1
    9549     1887567 :          pack_tmp = packed_data(ipack)
    9550     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9551     1887567 :          pack_tmp = ISHFT(pack_tmp, -8)
    9552     1887567 :          idata = idata + 1
    9553     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9554     1887567 :          full_data(idata) = data_tmp
    9555     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9556     1887567 :          idata = idata + 1
    9557     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9558     1887567 :          full_data(idata) = data_tmp
    9559     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9560     1887567 :          idata = idata + 1
    9561     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9562     1887567 :          full_data(idata) = data_tmp
    9563     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9564     1887567 :          idata = idata + 1
    9565     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9566     1887567 :          full_data(idata) = data_tmp
    9567     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9568     1887567 :          idata = idata + 1
    9569     1887567 :          data_tmp = ISHFT(pack_tmp, 14)
    9570     1887567 :          ipack = ipack + 1
    9571     1887567 :          pack_tmp = packed_data(ipack)
    9572     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9573     1887567 :          pack_tmp = ISHFT(pack_tmp, -14)
    9574     1887567 :          idata = idata + 1
    9575     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9576     1887567 :          full_data(idata) = data_tmp
    9577     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9578     1887567 :          idata = idata + 1
    9579     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9580     1887567 :          full_data(idata) = data_tmp
    9581     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9582     1887567 :          idata = idata + 1
    9583     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9584     1887567 :          full_data(idata) = data_tmp
    9585     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9586     1887567 :          idata = idata + 1
    9587     1887567 :          data_tmp = ISHFT(pack_tmp, 6)
    9588     1887567 :          ipack = ipack + 1
    9589     1887567 :          pack_tmp = packed_data(ipack)
    9590     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9591     1887567 :          pack_tmp = ISHFT(pack_tmp, -6)
    9592     1887567 :          idata = idata + 1
    9593     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9594     1887567 :          full_data(idata) = data_tmp
    9595     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9596     1887567 :          idata = idata + 1
    9597     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9598     1887567 :          full_data(idata) = data_tmp
    9599     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9600     1887567 :          idata = idata + 1
    9601     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9602     1887567 :          full_data(idata) = data_tmp
    9603     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9604     1887567 :          idata = idata + 1
    9605     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9606     1887567 :          full_data(idata) = data_tmp
    9607     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9608     1887567 :          idata = idata + 1
    9609     1887567 :          data_tmp = ISHFT(pack_tmp, 12)
    9610     1887567 :          ipack = ipack + 1
    9611     1887567 :          pack_tmp = packed_data(ipack)
    9612     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9613     1887567 :          pack_tmp = ISHFT(pack_tmp, -12)
    9614     1887567 :          idata = idata + 1
    9615     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9616     1887567 :          full_data(idata) = data_tmp
    9617     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9618     1887567 :          idata = idata + 1
    9619     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9620     1887567 :          full_data(idata) = data_tmp
    9621     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9622     1887567 :          idata = idata + 1
    9623     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9624     1887567 :          full_data(idata) = data_tmp
    9625     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9626     1887567 :          idata = idata + 1
    9627     1887567 :          data_tmp = ISHFT(pack_tmp, 4)
    9628     1887567 :          ipack = ipack + 1
    9629     1887567 :          pack_tmp = packed_data(ipack)
    9630     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9631     1887567 :          pack_tmp = ISHFT(pack_tmp, -4)
    9632     1887567 :          idata = idata + 1
    9633     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9634     1887567 :          full_data(idata) = data_tmp
    9635     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9636     1887567 :          idata = idata + 1
    9637     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9638     1887567 :          full_data(idata) = data_tmp
    9639     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9640     1887567 :          idata = idata + 1
    9641     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9642     1887567 :          full_data(idata) = data_tmp
    9643     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9644     1887567 :          idata = idata + 1
    9645     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9646     1887567 :          full_data(idata) = data_tmp
    9647     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9648     1887567 :          idata = idata + 1
    9649     1887567 :          data_tmp = ISHFT(pack_tmp, 10)
    9650     1887567 :          ipack = ipack + 1
    9651     1887567 :          pack_tmp = packed_data(ipack)
    9652     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9653     1887567 :          pack_tmp = ISHFT(pack_tmp, -10)
    9654     1887567 :          idata = idata + 1
    9655     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9656     1887567 :          full_data(idata) = data_tmp
    9657     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9658     1887567 :          idata = idata + 1
    9659     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9660     1887567 :          full_data(idata) = data_tmp
    9661     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9662     1887567 :          idata = idata + 1
    9663     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9664     1887567 :          full_data(idata) = data_tmp
    9665     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9666     1887567 :          idata = idata + 1
    9667     1887567 :          data_tmp = ISHFT(pack_tmp, 2)
    9668     1887567 :          ipack = ipack + 1
    9669     1887567 :          pack_tmp = packed_data(ipack)
    9670     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9671     1887567 :          pack_tmp = ISHFT(pack_tmp, -2)
    9672     1887567 :          idata = idata + 1
    9673     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9674     1887567 :          full_data(idata) = data_tmp
    9675     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9676     1887567 :          idata = idata + 1
    9677     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9678     1887567 :          full_data(idata) = data_tmp
    9679     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9680     1887567 :          idata = idata + 1
    9681     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9682     1887567 :          full_data(idata) = data_tmp
    9683     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9684     1887567 :          idata = idata + 1
    9685     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9686     1887567 :          full_data(idata) = data_tmp
    9687     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9688     1887567 :          idata = idata + 1
    9689     1887567 :          data_tmp = ISHFT(pack_tmp, 8)
    9690     1887567 :          ipack = ipack + 1
    9691     1887567 :          pack_tmp = packed_data(ipack)
    9692     1887567 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9693     1887567 :          pack_tmp = ISHFT(pack_tmp, -8)
    9694     1887567 :          idata = idata + 1
    9695     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9696     1887567 :          full_data(idata) = data_tmp
    9697     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9698     1887567 :          idata = idata + 1
    9699     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9700     1887567 :          full_data(idata) = data_tmp
    9701     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9702     1887567 :          idata = idata + 1
    9703     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9704     1887567 :          full_data(idata) = data_tmp
    9705     1887567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9706     1887567 :          idata = idata + 1
    9707     1887567 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9708     1887567 :          full_data(idata) = data_tmp
    9709     1888032 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9710             :       END DO
    9711      122833 :       IF (Ndata_rep < Ndata) THEN
    9712        8642 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9713             :       END IF
    9714      122833 :    END SUBROUTINE bits2ints_14
    9715             : 
    9716             : ! **************************************************************************************************
    9717             : !> \brief ...
    9718             : !> \param Ndata ...
    9719             : !> \param packed_data ...
    9720             : !> \param full_data ...
    9721             : ! **************************************************************************************************
    9722       27440 :    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       27440 :       idata = 0
    9733       27440 :       ipack = 0
    9734       27440 :       Ndata_rep = (Ndata/64)*64
    9735       27440 :       DO kdata = 1, Ndata_rep, 64
    9736      427344 :          pack_tmp = 0
    9737      427344 :          idata = idata + 1
    9738      427344 :          data_tmp = full_data(idata)
    9739      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9740      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9741      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9742      427344 :          idata = idata + 1
    9743      427344 :          data_tmp = full_data(idata)
    9744      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9745      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9746      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9747      427344 :          idata = idata + 1
    9748      427344 :          data_tmp = full_data(idata)
    9749      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9750      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9751      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9752      427344 :          idata = idata + 1
    9753      427344 :          data_tmp = full_data(idata)
    9754      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9755      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9756      427344 :          pack_tmp = ISHFT(pack_tmp, -4)
    9757      427344 :          idata = idata + 1
    9758      427344 :          data_tmp = full_data(idata)
    9759      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9760      427344 :          data_tmp = IAND(data_tmp, mask_left(4))
    9761      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9762      427344 :          ipack = ipack + 1
    9763      427344 :          packed_data(ipack) = pack_tmp
    9764      427344 :          data_tmp = full_data(idata)
    9765      427344 :          pack_tmp = ISHFT(data_tmp, 53)
    9766      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9767      427344 :          idata = idata + 1
    9768      427344 :          data_tmp = full_data(idata)
    9769      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9770      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9771      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9772      427344 :          idata = idata + 1
    9773      427344 :          data_tmp = full_data(idata)
    9774      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9775      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9776      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9777      427344 :          idata = idata + 1
    9778      427344 :          data_tmp = full_data(idata)
    9779      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9780      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9781      427344 :          pack_tmp = ISHFT(pack_tmp, -8)
    9782      427344 :          idata = idata + 1
    9783      427344 :          data_tmp = full_data(idata)
    9784      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9785      427344 :          data_tmp = IAND(data_tmp, mask_left(8))
    9786      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9787      427344 :          ipack = ipack + 1
    9788      427344 :          packed_data(ipack) = pack_tmp
    9789      427344 :          data_tmp = full_data(idata)
    9790      427344 :          pack_tmp = ISHFT(data_tmp, 57)
    9791      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9792      427344 :          idata = idata + 1
    9793      427344 :          data_tmp = full_data(idata)
    9794      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9795      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9796      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9797      427344 :          idata = idata + 1
    9798      427344 :          data_tmp = full_data(idata)
    9799      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9800      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9801      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9802      427344 :          idata = idata + 1
    9803      427344 :          data_tmp = full_data(idata)
    9804      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9805      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9806      427344 :          pack_tmp = ISHFT(pack_tmp, -12)
    9807      427344 :          idata = idata + 1
    9808      427344 :          data_tmp = full_data(idata)
    9809      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9810      427344 :          data_tmp = IAND(data_tmp, mask_left(12))
    9811      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9812      427344 :          ipack = ipack + 1
    9813      427344 :          packed_data(ipack) = pack_tmp
    9814      427344 :          data_tmp = full_data(idata)
    9815      427344 :          pack_tmp = ISHFT(data_tmp, 61)
    9816      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9817      427344 :          idata = idata + 1
    9818      427344 :          data_tmp = full_data(idata)
    9819      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9820      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9821      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9822      427344 :          idata = idata + 1
    9823      427344 :          data_tmp = full_data(idata)
    9824      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9825      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9826      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9827      427344 :          idata = idata + 1
    9828      427344 :          data_tmp = full_data(idata)
    9829      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9830      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9831      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9832      427344 :          idata = idata + 1
    9833      427344 :          data_tmp = full_data(idata)
    9834      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9835      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9836      427344 :          pack_tmp = ISHFT(pack_tmp, -1)
    9837      427344 :          idata = idata + 1
    9838      427344 :          data_tmp = full_data(idata)
    9839      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9840      427344 :          data_tmp = IAND(data_tmp, mask_left(1))
    9841      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9842      427344 :          ipack = ipack + 1
    9843      427344 :          packed_data(ipack) = pack_tmp
    9844      427344 :          data_tmp = full_data(idata)
    9845      427344 :          pack_tmp = ISHFT(data_tmp, 50)
    9846      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9847      427344 :          idata = idata + 1
    9848      427344 :          data_tmp = full_data(idata)
    9849      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9850      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9851      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9852      427344 :          idata = idata + 1
    9853      427344 :          data_tmp = full_data(idata)
    9854      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9855      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9856      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9857      427344 :          idata = idata + 1
    9858      427344 :          data_tmp = full_data(idata)
    9859      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9860      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9861      427344 :          pack_tmp = ISHFT(pack_tmp, -5)
    9862      427344 :          idata = idata + 1
    9863      427344 :          data_tmp = full_data(idata)
    9864      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9865      427344 :          data_tmp = IAND(data_tmp, mask_left(5))
    9866      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9867      427344 :          ipack = ipack + 1
    9868      427344 :          packed_data(ipack) = pack_tmp
    9869      427344 :          data_tmp = full_data(idata)
    9870      427344 :          pack_tmp = ISHFT(data_tmp, 54)
    9871      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9872      427344 :          idata = idata + 1
    9873      427344 :          data_tmp = full_data(idata)
    9874      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9875      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9876      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9877      427344 :          idata = idata + 1
    9878      427344 :          data_tmp = full_data(idata)
    9879      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9880      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9881      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9882      427344 :          idata = idata + 1
    9883      427344 :          data_tmp = full_data(idata)
    9884      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9885      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9886      427344 :          pack_tmp = ISHFT(pack_tmp, -9)
    9887      427344 :          idata = idata + 1
    9888      427344 :          data_tmp = full_data(idata)
    9889      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9890      427344 :          data_tmp = IAND(data_tmp, mask_left(9))
    9891      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9892      427344 :          ipack = ipack + 1
    9893      427344 :          packed_data(ipack) = pack_tmp
    9894      427344 :          data_tmp = full_data(idata)
    9895      427344 :          pack_tmp = ISHFT(data_tmp, 58)
    9896      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9897      427344 :          idata = idata + 1
    9898      427344 :          data_tmp = full_data(idata)
    9899      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9900      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9901      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9902      427344 :          idata = idata + 1
    9903      427344 :          data_tmp = full_data(idata)
    9904      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9905      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9906      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9907      427344 :          idata = idata + 1
    9908      427344 :          data_tmp = full_data(idata)
    9909      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9910      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9911      427344 :          pack_tmp = ISHFT(pack_tmp, -13)
    9912      427344 :          idata = idata + 1
    9913      427344 :          data_tmp = full_data(idata)
    9914      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9915      427344 :          data_tmp = IAND(data_tmp, mask_left(13))
    9916      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9917      427344 :          ipack = ipack + 1
    9918      427344 :          packed_data(ipack) = pack_tmp
    9919      427344 :          data_tmp = full_data(idata)
    9920      427344 :          pack_tmp = ISHFT(data_tmp, 62)
    9921      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9922      427344 :          idata = idata + 1
    9923      427344 :          data_tmp = full_data(idata)
    9924      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9925      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9926      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9927      427344 :          idata = idata + 1
    9928      427344 :          data_tmp = full_data(idata)
    9929      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9930      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9931      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9932      427344 :          idata = idata + 1
    9933      427344 :          data_tmp = full_data(idata)
    9934      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9935      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9936      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9937      427344 :          idata = idata + 1
    9938      427344 :          data_tmp = full_data(idata)
    9939      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9940      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9941      427344 :          pack_tmp = ISHFT(pack_tmp, -2)
    9942      427344 :          idata = idata + 1
    9943      427344 :          data_tmp = full_data(idata)
    9944      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9945      427344 :          data_tmp = IAND(data_tmp, mask_left(2))
    9946      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9947      427344 :          ipack = ipack + 1
    9948      427344 :          packed_data(ipack) = pack_tmp
    9949      427344 :          data_tmp = full_data(idata)
    9950      427344 :          pack_tmp = ISHFT(data_tmp, 51)
    9951      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9952      427344 :          idata = idata + 1
    9953      427344 :          data_tmp = full_data(idata)
    9954      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9955      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9956      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9957      427344 :          idata = idata + 1
    9958      427344 :          data_tmp = full_data(idata)
    9959      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9960      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9961      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9962      427344 :          idata = idata + 1
    9963      427344 :          data_tmp = full_data(idata)
    9964      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9965      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9966      427344 :          pack_tmp = ISHFT(pack_tmp, -6)
    9967      427344 :          idata = idata + 1
    9968      427344 :          data_tmp = full_data(idata)
    9969      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9970      427344 :          data_tmp = IAND(data_tmp, mask_left(6))
    9971      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9972      427344 :          ipack = ipack + 1
    9973      427344 :          packed_data(ipack) = pack_tmp
    9974      427344 :          data_tmp = full_data(idata)
    9975      427344 :          pack_tmp = ISHFT(data_tmp, 55)
    9976      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9977      427344 :          idata = idata + 1
    9978      427344 :          data_tmp = full_data(idata)
    9979      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9980      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9981      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9982      427344 :          idata = idata + 1
    9983      427344 :          data_tmp = full_data(idata)
    9984      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9985      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9986      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
    9987      427344 :          idata = idata + 1
    9988      427344 :          data_tmp = full_data(idata)
    9989      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9990      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9991      427344 :          pack_tmp = ISHFT(pack_tmp, -10)
    9992      427344 :          idata = idata + 1
    9993      427344 :          data_tmp = full_data(idata)
    9994      427344 :          data_tmp = ISHFT(data_tmp, 49)
    9995      427344 :          data_tmp = IAND(data_tmp, mask_left(10))
    9996      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9997      427344 :          ipack = ipack + 1
    9998      427344 :          packed_data(ipack) = pack_tmp
    9999      427344 :          data_tmp = full_data(idata)
   10000      427344 :          pack_tmp = ISHFT(data_tmp, 59)
   10001      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10002      427344 :          idata = idata + 1
   10003      427344 :          data_tmp = full_data(idata)
   10004      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10005      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10006      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10007      427344 :          idata = idata + 1
   10008      427344 :          data_tmp = full_data(idata)
   10009      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10010      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10011      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10012      427344 :          idata = idata + 1
   10013      427344 :          data_tmp = full_data(idata)
   10014      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10015      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10016      427344 :          pack_tmp = ISHFT(pack_tmp, -14)
   10017      427344 :          idata = idata + 1
   10018      427344 :          data_tmp = full_data(idata)
   10019      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10020      427344 :          data_tmp = IAND(data_tmp, mask_left(14))
   10021      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10022      427344 :          ipack = ipack + 1
   10023      427344 :          packed_data(ipack) = pack_tmp
   10024      427344 :          data_tmp = full_data(idata)
   10025      427344 :          pack_tmp = ISHFT(data_tmp, 63)
   10026      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10027      427344 :          idata = idata + 1
   10028      427344 :          data_tmp = full_data(idata)
   10029      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10030      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10031      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10032      427344 :          idata = idata + 1
   10033      427344 :          data_tmp = full_data(idata)
   10034      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10035      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10036      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10037      427344 :          idata = idata + 1
   10038      427344 :          data_tmp = full_data(idata)
   10039      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10040      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10041      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10042      427344 :          idata = idata + 1
   10043      427344 :          data_tmp = full_data(idata)
   10044      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10045      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10046      427344 :          pack_tmp = ISHFT(pack_tmp, -3)
   10047      427344 :          idata = idata + 1
   10048      427344 :          data_tmp = full_data(idata)
   10049      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10050      427344 :          data_tmp = IAND(data_tmp, mask_left(3))
   10051      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10052      427344 :          ipack = ipack + 1
   10053      427344 :          packed_data(ipack) = pack_tmp
   10054      427344 :          data_tmp = full_data(idata)
   10055      427344 :          pack_tmp = ISHFT(data_tmp, 52)
   10056      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10057      427344 :          idata = idata + 1
   10058      427344 :          data_tmp = full_data(idata)
   10059      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10060      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10061      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10062      427344 :          idata = idata + 1
   10063      427344 :          data_tmp = full_data(idata)
   10064      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10065      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10066      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10067      427344 :          idata = idata + 1
   10068      427344 :          data_tmp = full_data(idata)
   10069      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10070      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10071      427344 :          pack_tmp = ISHFT(pack_tmp, -7)
   10072      427344 :          idata = idata + 1
   10073      427344 :          data_tmp = full_data(idata)
   10074      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10075      427344 :          data_tmp = IAND(data_tmp, mask_left(7))
   10076      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10077      427344 :          ipack = ipack + 1
   10078      427344 :          packed_data(ipack) = pack_tmp
   10079      427344 :          data_tmp = full_data(idata)
   10080      427344 :          pack_tmp = ISHFT(data_tmp, 56)
   10081      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10082      427344 :          idata = idata + 1
   10083      427344 :          data_tmp = full_data(idata)
   10084      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10085      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10086      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10087      427344 :          idata = idata + 1
   10088      427344 :          data_tmp = full_data(idata)
   10089      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10090      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10091      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10092      427344 :          idata = idata + 1
   10093      427344 :          data_tmp = full_data(idata)
   10094      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10095      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10096      427344 :          pack_tmp = ISHFT(pack_tmp, -11)
   10097      427344 :          idata = idata + 1
   10098      427344 :          data_tmp = full_data(idata)
   10099      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10100      427344 :          data_tmp = IAND(data_tmp, mask_left(11))
   10101      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10102      427344 :          ipack = ipack + 1
   10103      427344 :          packed_data(ipack) = pack_tmp
   10104      427344 :          data_tmp = full_data(idata)
   10105      427344 :          pack_tmp = ISHFT(data_tmp, 60)
   10106      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10107      427344 :          idata = idata + 1
   10108      427344 :          data_tmp = full_data(idata)
   10109      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10110      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10111      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10112      427344 :          idata = idata + 1
   10113      427344 :          data_tmp = full_data(idata)
   10114      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10115      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10116      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10117      427344 :          idata = idata + 1
   10118      427344 :          data_tmp = full_data(idata)
   10119      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10120      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10121      427344 :          pack_tmp = ISHFT(pack_tmp, -15)
   10122      427344 :          idata = idata + 1
   10123      427344 :          data_tmp = full_data(idata)
   10124      427344 :          data_tmp = ISHFT(data_tmp, 49)
   10125      427344 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10126             :          pack_tmp = ISHFT(pack_tmp, 0)
   10127      427344 :          pack_tmp = ISHFT(pack_tmp, 0)
   10128      427344 :          ipack = ipack + 1
   10129      427427 :          packed_data(ipack) = pack_tmp
   10130             :       END DO
   10131       27440 :       IF (Ndata_rep < Ndata) THEN
   10132        1376 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10133             :       END IF
   10134       27440 :    END SUBROUTINE ints2bits_15
   10135             : 
   10136             : ! **************************************************************************************************
   10137             : !> \brief ...
   10138             : !> \param Ndata ...
   10139             : !> \param packed_data ...
   10140             : !> \param full_data ...
   10141             : ! **************************************************************************************************
   10142      124919 :    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      124919 :       ipack = 0
   10153      124919 :       idata = 0
   10154      124919 :       pack_tmp = 0
   10155      124919 :       Ndata_rep = (Ndata/64)*64
   10156      124919 :       DO kdata = 1, Ndata_rep, 64
   10157     1908689 :          idata = idata + 1
   10158     1908689 :          data_tmp = ISHFT(pack_tmp, 15)
   10159     1908689 :          ipack = ipack + 1
   10160     1908689 :          pack_tmp = packed_data(ipack)
   10161     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   10162     1908689 :          pack_tmp = ISHFT(pack_tmp, -15)
   10163     1908689 :          idata = idata + 1
   10164     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10165     1908689 :          full_data(idata) = data_tmp
   10166     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10167     1908689 :          idata = idata + 1
   10168     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10169     1908689 :          full_data(idata) = data_tmp
   10170     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10171     1908689 :          idata = idata + 1
   10172     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10173     1908689 :          full_data(idata) = data_tmp
   10174     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10175     1908689 :          idata = idata + 1
   10176     1908689 :          data_tmp = ISHFT(pack_tmp, 11)
   10177     1908689 :          ipack = ipack + 1
   10178     1908689 :          pack_tmp = packed_data(ipack)
   10179     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   10180     1908689 :          pack_tmp = ISHFT(pack_tmp, -11)
   10181     1908689 :          idata = idata + 1
   10182     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10183     1908689 :          full_data(idata) = data_tmp
   10184     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10185     1908689 :          idata = idata + 1
   10186     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10187     1908689 :          full_data(idata) = data_tmp
   10188     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10189     1908689 :          idata = idata + 1
   10190     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10191     1908689 :          full_data(idata) = data_tmp
   10192     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10193     1908689 :          idata = idata + 1
   10194     1908689 :          data_tmp = ISHFT(pack_tmp, 7)
   10195     1908689 :          ipack = ipack + 1
   10196     1908689 :          pack_tmp = packed_data(ipack)
   10197     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   10198     1908689 :          pack_tmp = ISHFT(pack_tmp, -7)
   10199     1908689 :          idata = idata + 1
   10200     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10201     1908689 :          full_data(idata) = data_tmp
   10202     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10203     1908689 :          idata = idata + 1
   10204     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10205     1908689 :          full_data(idata) = data_tmp
   10206     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10207     1908689 :          idata = idata + 1
   10208     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10209     1908689 :          full_data(idata) = data_tmp
   10210     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10211     1908689 :          idata = idata + 1
   10212     1908689 :          data_tmp = ISHFT(pack_tmp, 3)
   10213     1908689 :          ipack = ipack + 1
   10214     1908689 :          pack_tmp = packed_data(ipack)
   10215     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   10216     1908689 :          pack_tmp = ISHFT(pack_tmp, -3)
   10217     1908689 :          idata = idata + 1
   10218     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10219     1908689 :          full_data(idata) = data_tmp
   10220     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10221     1908689 :          idata = idata + 1
   10222     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10223     1908689 :          full_data(idata) = data_tmp
   10224     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10225     1908689 :          idata = idata + 1
   10226     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10227     1908689 :          full_data(idata) = data_tmp
   10228     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10229     1908689 :          idata = idata + 1
   10230     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10231     1908689 :          full_data(idata) = data_tmp
   10232     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10233     1908689 :          idata = idata + 1
   10234     1908689 :          data_tmp = ISHFT(pack_tmp, 14)
   10235     1908689 :          ipack = ipack + 1
   10236     1908689 :          pack_tmp = packed_data(ipack)
   10237     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   10238     1908689 :          pack_tmp = ISHFT(pack_tmp, -14)
   10239     1908689 :          idata = idata + 1
   10240     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10241     1908689 :          full_data(idata) = data_tmp
   10242     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10243     1908689 :          idata = idata + 1
   10244     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10245     1908689 :          full_data(idata) = data_tmp
   10246     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10247     1908689 :          idata = idata + 1
   10248     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10249     1908689 :          full_data(idata) = data_tmp
   10250     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10251     1908689 :          idata = idata + 1
   10252     1908689 :          data_tmp = ISHFT(pack_tmp, 10)
   10253     1908689 :          ipack = ipack + 1
   10254     1908689 :          pack_tmp = packed_data(ipack)
   10255     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   10256     1908689 :          pack_tmp = ISHFT(pack_tmp, -10)
   10257     1908689 :          idata = idata + 1
   10258     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10259     1908689 :          full_data(idata) = data_tmp
   10260     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10261     1908689 :          idata = idata + 1
   10262     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10263     1908689 :          full_data(idata) = data_tmp
   10264     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10265     1908689 :          idata = idata + 1
   10266     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10267     1908689 :          full_data(idata) = data_tmp
   10268     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10269     1908689 :          idata = idata + 1
   10270     1908689 :          data_tmp = ISHFT(pack_tmp, 6)
   10271     1908689 :          ipack = ipack + 1
   10272     1908689 :          pack_tmp = packed_data(ipack)
   10273     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   10274     1908689 :          pack_tmp = ISHFT(pack_tmp, -6)
   10275     1908689 :          idata = idata + 1
   10276     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10277     1908689 :          full_data(idata) = data_tmp
   10278     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10279     1908689 :          idata = idata + 1
   10280     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10281     1908689 :          full_data(idata) = data_tmp
   10282     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10283     1908689 :          idata = idata + 1
   10284     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10285     1908689 :          full_data(idata) = data_tmp
   10286     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10287     1908689 :          idata = idata + 1
   10288     1908689 :          data_tmp = ISHFT(pack_tmp, 2)
   10289     1908689 :          ipack = ipack + 1
   10290     1908689 :          pack_tmp = packed_data(ipack)
   10291     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   10292     1908689 :          pack_tmp = ISHFT(pack_tmp, -2)
   10293     1908689 :          idata = idata + 1
   10294     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10295     1908689 :          full_data(idata) = data_tmp
   10296     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10297     1908689 :          idata = idata + 1
   10298     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10299     1908689 :          full_data(idata) = data_tmp
   10300     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10301     1908689 :          idata = idata + 1
   10302     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10303     1908689 :          full_data(idata) = data_tmp
   10304     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10305     1908689 :          idata = idata + 1
   10306     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10307     1908689 :          full_data(idata) = data_tmp
   10308     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10309     1908689 :          idata = idata + 1
   10310     1908689 :          data_tmp = ISHFT(pack_tmp, 13)
   10311     1908689 :          ipack = ipack + 1
   10312     1908689 :          pack_tmp = packed_data(ipack)
   10313     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   10314     1908689 :          pack_tmp = ISHFT(pack_tmp, -13)
   10315     1908689 :          idata = idata + 1
   10316     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10317     1908689 :          full_data(idata) = data_tmp
   10318     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10319     1908689 :          idata = idata + 1
   10320     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10321     1908689 :          full_data(idata) = data_tmp
   10322     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10323     1908689 :          idata = idata + 1
   10324     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10325     1908689 :          full_data(idata) = data_tmp
   10326     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10327     1908689 :          idata = idata + 1
   10328     1908689 :          data_tmp = ISHFT(pack_tmp, 9)
   10329     1908689 :          ipack = ipack + 1
   10330     1908689 :          pack_tmp = packed_data(ipack)
   10331     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   10332     1908689 :          pack_tmp = ISHFT(pack_tmp, -9)
   10333     1908689 :          idata = idata + 1
   10334     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10335     1908689 :          full_data(idata) = data_tmp
   10336     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10337     1908689 :          idata = idata + 1
   10338     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10339     1908689 :          full_data(idata) = data_tmp
   10340     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10341     1908689 :          idata = idata + 1
   10342     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10343     1908689 :          full_data(idata) = data_tmp
   10344     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10345     1908689 :          idata = idata + 1
   10346     1908689 :          data_tmp = ISHFT(pack_tmp, 5)
   10347     1908689 :          ipack = ipack + 1
   10348     1908689 :          pack_tmp = packed_data(ipack)
   10349     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   10350     1908689 :          pack_tmp = ISHFT(pack_tmp, -5)
   10351     1908689 :          idata = idata + 1
   10352     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10353     1908689 :          full_data(idata) = data_tmp
   10354     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10355     1908689 :          idata = idata + 1
   10356     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10357     1908689 :          full_data(idata) = data_tmp
   10358     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10359     1908689 :          idata = idata + 1
   10360     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10361     1908689 :          full_data(idata) = data_tmp
   10362     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10363     1908689 :          idata = idata + 1
   10364     1908689 :          data_tmp = ISHFT(pack_tmp, 1)
   10365     1908689 :          ipack = ipack + 1
   10366     1908689 :          pack_tmp = packed_data(ipack)
   10367     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   10368     1908689 :          pack_tmp = ISHFT(pack_tmp, -1)
   10369     1908689 :          idata = idata + 1
   10370     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10371     1908689 :          full_data(idata) = data_tmp
   10372     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10373     1908689 :          idata = idata + 1
   10374     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10375     1908689 :          full_data(idata) = data_tmp
   10376     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10377     1908689 :          idata = idata + 1
   10378     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10379     1908689 :          full_data(idata) = data_tmp
   10380     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10381     1908689 :          idata = idata + 1
   10382     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10383     1908689 :          full_data(idata) = data_tmp
   10384     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10385     1908689 :          idata = idata + 1
   10386     1908689 :          data_tmp = ISHFT(pack_tmp, 12)
   10387     1908689 :          ipack = ipack + 1
   10388     1908689 :          pack_tmp = packed_data(ipack)
   10389     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   10390     1908689 :          pack_tmp = ISHFT(pack_tmp, -12)
   10391     1908689 :          idata = idata + 1
   10392     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10393     1908689 :          full_data(idata) = data_tmp
   10394     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10395     1908689 :          idata = idata + 1
   10396     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10397     1908689 :          full_data(idata) = data_tmp
   10398     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10399     1908689 :          idata = idata + 1
   10400     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10401     1908689 :          full_data(idata) = data_tmp
   10402     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10403     1908689 :          idata = idata + 1
   10404     1908689 :          data_tmp = ISHFT(pack_tmp, 8)
   10405     1908689 :          ipack = ipack + 1
   10406     1908689 :          pack_tmp = packed_data(ipack)
   10407     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   10408     1908689 :          pack_tmp = ISHFT(pack_tmp, -8)
   10409     1908689 :          idata = idata + 1
   10410     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10411     1908689 :          full_data(idata) = data_tmp
   10412     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10413     1908689 :          idata = idata + 1
   10414     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10415     1908689 :          full_data(idata) = data_tmp
   10416     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10417     1908689 :          idata = idata + 1
   10418     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10419     1908689 :          full_data(idata) = data_tmp
   10420     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10421     1908689 :          idata = idata + 1
   10422     1908689 :          data_tmp = ISHFT(pack_tmp, 4)
   10423     1908689 :          ipack = ipack + 1
   10424     1908689 :          pack_tmp = packed_data(ipack)
   10425     1908689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   10426     1908689 :          pack_tmp = ISHFT(pack_tmp, -4)
   10427     1908689 :          idata = idata + 1
   10428     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10429     1908689 :          full_data(idata) = data_tmp
   10430     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10431     1908689 :          idata = idata + 1
   10432     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10433     1908689 :          full_data(idata) = data_tmp
   10434     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10435     1908689 :          idata = idata + 1
   10436     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10437     1908689 :          full_data(idata) = data_tmp
   10438     1908689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10439     1908689 :          idata = idata + 1
   10440     1908689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10441     1908689 :          full_data(idata) = data_tmp
   10442     1909326 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10443             :       END DO
   10444      124919 :       IF (Ndata_rep < Ndata) THEN
   10445       10590 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10446             :       END IF
   10447      124919 :    END SUBROUTINE bits2ints_15
   10448             : 
   10449             : ! **************************************************************************************************
   10450             : !> \brief ...
   10451             : !> \param Ndata ...
   10452             : !> \param packed_data ...
   10453             : !> \param full_data ...
   10454             : ! **************************************************************************************************
   10455       28303 :    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       28303 :       idata = 0
   10466       28303 :       ipack = 0
   10467       28303 :       Ndata_rep = (Ndata/64)*64
   10468       28303 :       DO kdata = 1, Ndata_rep, 64
   10469      438864 :          pack_tmp = 0
   10470      438864 :          idata = idata + 1
   10471      438864 :          data_tmp = full_data(idata)
   10472      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10473      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10474      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10475      438864 :          idata = idata + 1
   10476      438864 :          data_tmp = full_data(idata)
   10477      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10478      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10479      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10480      438864 :          idata = idata + 1
   10481      438864 :          data_tmp = full_data(idata)
   10482      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10483      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10484      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10485      438864 :          idata = idata + 1
   10486      438864 :          data_tmp = full_data(idata)
   10487      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10488      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10489      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10490      438864 :          idata = idata + 1
   10491      438864 :          data_tmp = full_data(idata)
   10492             :          data_tmp = ISHFT(data_tmp, 48)
   10493      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10494      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10495      438864 :          ipack = ipack + 1
   10496      438864 :          packed_data(ipack) = pack_tmp
   10497      438864 :          data_tmp = full_data(idata)
   10498      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10499      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10500      438864 :          idata = idata + 1
   10501      438864 :          data_tmp = full_data(idata)
   10502      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10503      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10504      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10505      438864 :          idata = idata + 1
   10506      438864 :          data_tmp = full_data(idata)
   10507      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10508      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10509      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10510      438864 :          idata = idata + 1
   10511      438864 :          data_tmp = full_data(idata)
   10512      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10513      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10514      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10515      438864 :          idata = idata + 1
   10516      438864 :          data_tmp = full_data(idata)
   10517             :          data_tmp = ISHFT(data_tmp, 48)
   10518      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10519      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10520      438864 :          ipack = ipack + 1
   10521      438864 :          packed_data(ipack) = pack_tmp
   10522      438864 :          data_tmp = full_data(idata)
   10523      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10524      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10525      438864 :          idata = idata + 1
   10526      438864 :          data_tmp = full_data(idata)
   10527      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10528      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10529      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10530      438864 :          idata = idata + 1
   10531      438864 :          data_tmp = full_data(idata)
   10532      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10533      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10534      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10535      438864 :          idata = idata + 1
   10536      438864 :          data_tmp = full_data(idata)
   10537      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10538      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10539      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10540      438864 :          idata = idata + 1
   10541      438864 :          data_tmp = full_data(idata)
   10542             :          data_tmp = ISHFT(data_tmp, 48)
   10543      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10544      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10545      438864 :          ipack = ipack + 1
   10546      438864 :          packed_data(ipack) = pack_tmp
   10547      438864 :          data_tmp = full_data(idata)
   10548      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10549      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10550      438864 :          idata = idata + 1
   10551      438864 :          data_tmp = full_data(idata)
   10552      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10553      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10554      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10555      438864 :          idata = idata + 1
   10556      438864 :          data_tmp = full_data(idata)
   10557      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10558      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10559      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10560      438864 :          idata = idata + 1
   10561      438864 :          data_tmp = full_data(idata)
   10562      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10563      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10564      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10565      438864 :          idata = idata + 1
   10566      438864 :          data_tmp = full_data(idata)
   10567             :          data_tmp = ISHFT(data_tmp, 48)
   10568      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10569      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10570      438864 :          ipack = ipack + 1
   10571      438864 :          packed_data(ipack) = pack_tmp
   10572      438864 :          data_tmp = full_data(idata)
   10573      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10574      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10575      438864 :          idata = idata + 1
   10576      438864 :          data_tmp = full_data(idata)
   10577      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10578      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10579      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10580      438864 :          idata = idata + 1
   10581      438864 :          data_tmp = full_data(idata)
   10582      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10583      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10584      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10585      438864 :          idata = idata + 1
   10586      438864 :          data_tmp = full_data(idata)
   10587      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10588      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10589      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10590      438864 :          idata = idata + 1
   10591      438864 :          data_tmp = full_data(idata)
   10592             :          data_tmp = ISHFT(data_tmp, 48)
   10593      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10594      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10595      438864 :          ipack = ipack + 1
   10596      438864 :          packed_data(ipack) = pack_tmp
   10597      438864 :          data_tmp = full_data(idata)
   10598      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10599      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10600      438864 :          idata = idata + 1
   10601      438864 :          data_tmp = full_data(idata)
   10602      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10603      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10604      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10605      438864 :          idata = idata + 1
   10606      438864 :          data_tmp = full_data(idata)
   10607      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10608      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10609      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10610      438864 :          idata = idata + 1
   10611      438864 :          data_tmp = full_data(idata)
   10612      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10613      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10614      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10615      438864 :          idata = idata + 1
   10616      438864 :          data_tmp = full_data(idata)
   10617             :          data_tmp = ISHFT(data_tmp, 48)
   10618      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10619      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10620      438864 :          ipack = ipack + 1
   10621      438864 :          packed_data(ipack) = pack_tmp
   10622      438864 :          data_tmp = full_data(idata)
   10623      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10624      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10625      438864 :          idata = idata + 1
   10626      438864 :          data_tmp = full_data(idata)
   10627      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10628      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10629      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10630      438864 :          idata = idata + 1
   10631      438864 :          data_tmp = full_data(idata)
   10632      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10633      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10634      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10635      438864 :          idata = idata + 1
   10636      438864 :          data_tmp = full_data(idata)
   10637      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10638      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10639      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10640      438864 :          idata = idata + 1
   10641      438864 :          data_tmp = full_data(idata)
   10642             :          data_tmp = ISHFT(data_tmp, 48)
   10643      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10644      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10645      438864 :          ipack = ipack + 1
   10646      438864 :          packed_data(ipack) = pack_tmp
   10647      438864 :          data_tmp = full_data(idata)
   10648      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10649      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10650      438864 :          idata = idata + 1
   10651      438864 :          data_tmp = full_data(idata)
   10652      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10653      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10654      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10655      438864 :          idata = idata + 1
   10656      438864 :          data_tmp = full_data(idata)
   10657      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10658      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10659      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10660      438864 :          idata = idata + 1
   10661      438864 :          data_tmp = full_data(idata)
   10662      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10663      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10664      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10665      438864 :          idata = idata + 1
   10666      438864 :          data_tmp = full_data(idata)
   10667             :          data_tmp = ISHFT(data_tmp, 48)
   10668      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10669      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10670      438864 :          ipack = ipack + 1
   10671      438864 :          packed_data(ipack) = pack_tmp
   10672      438864 :          data_tmp = full_data(idata)
   10673      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10674      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10675      438864 :          idata = idata + 1
   10676      438864 :          data_tmp = full_data(idata)
   10677      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10678      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10679      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10680      438864 :          idata = idata + 1
   10681      438864 :          data_tmp = full_data(idata)
   10682      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10683      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10684      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10685      438864 :          idata = idata + 1
   10686      438864 :          data_tmp = full_data(idata)
   10687      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10688      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10689      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10690      438864 :          idata = idata + 1
   10691      438864 :          data_tmp = full_data(idata)
   10692             :          data_tmp = ISHFT(data_tmp, 48)
   10693      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10694      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10695      438864 :          ipack = ipack + 1
   10696      438864 :          packed_data(ipack) = pack_tmp
   10697      438864 :          data_tmp = full_data(idata)
   10698      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10699      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10700      438864 :          idata = idata + 1
   10701      438864 :          data_tmp = full_data(idata)
   10702      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10703      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10704      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10705      438864 :          idata = idata + 1
   10706      438864 :          data_tmp = full_data(idata)
   10707      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10708      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10709      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10710      438864 :          idata = idata + 1
   10711      438864 :          data_tmp = full_data(idata)
   10712      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10713      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10714      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10715      438864 :          idata = idata + 1
   10716      438864 :          data_tmp = full_data(idata)
   10717             :          data_tmp = ISHFT(data_tmp, 48)
   10718      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10719      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10720      438864 :          ipack = ipack + 1
   10721      438864 :          packed_data(ipack) = pack_tmp
   10722      438864 :          data_tmp = full_data(idata)
   10723      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10724      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10725      438864 :          idata = idata + 1
   10726      438864 :          data_tmp = full_data(idata)
   10727      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10728      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10729      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10730      438864 :          idata = idata + 1
   10731      438864 :          data_tmp = full_data(idata)
   10732      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10733      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10734      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10735      438864 :          idata = idata + 1
   10736      438864 :          data_tmp = full_data(idata)
   10737      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10738      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10739      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10740      438864 :          idata = idata + 1
   10741      438864 :          data_tmp = full_data(idata)
   10742             :          data_tmp = ISHFT(data_tmp, 48)
   10743      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10744      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10745      438864 :          ipack = ipack + 1
   10746      438864 :          packed_data(ipack) = pack_tmp
   10747      438864 :          data_tmp = full_data(idata)
   10748      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10749      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10750      438864 :          idata = idata + 1
   10751      438864 :          data_tmp = full_data(idata)
   10752      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10753      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10754      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10755      438864 :          idata = idata + 1
   10756      438864 :          data_tmp = full_data(idata)
   10757      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10758      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10759      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10760      438864 :          idata = idata + 1
   10761      438864 :          data_tmp = full_data(idata)
   10762      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10763      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10764      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10765      438864 :          idata = idata + 1
   10766      438864 :          data_tmp = full_data(idata)
   10767             :          data_tmp = ISHFT(data_tmp, 48)
   10768      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10769      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10770      438864 :          ipack = ipack + 1
   10771      438864 :          packed_data(ipack) = pack_tmp
   10772      438864 :          data_tmp = full_data(idata)
   10773      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10774      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10775      438864 :          idata = idata + 1
   10776      438864 :          data_tmp = full_data(idata)
   10777      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10778      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10779      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10780      438864 :          idata = idata + 1
   10781      438864 :          data_tmp = full_data(idata)
   10782      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10783      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10784      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10785      438864 :          idata = idata + 1
   10786      438864 :          data_tmp = full_data(idata)
   10787      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10788      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10789      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10790      438864 :          idata = idata + 1
   10791      438864 :          data_tmp = full_data(idata)
   10792             :          data_tmp = ISHFT(data_tmp, 48)
   10793      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10794      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10795      438864 :          ipack = ipack + 1
   10796      438864 :          packed_data(ipack) = pack_tmp
   10797      438864 :          data_tmp = full_data(idata)
   10798      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10799      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10800      438864 :          idata = idata + 1
   10801      438864 :          data_tmp = full_data(idata)
   10802      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10803      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10804      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10805      438864 :          idata = idata + 1
   10806      438864 :          data_tmp = full_data(idata)
   10807      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10808      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10809      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10810      438864 :          idata = idata + 1
   10811      438864 :          data_tmp = full_data(idata)
   10812      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10813      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10814      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10815      438864 :          idata = idata + 1
   10816      438864 :          data_tmp = full_data(idata)
   10817             :          data_tmp = ISHFT(data_tmp, 48)
   10818      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10819      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10820      438864 :          ipack = ipack + 1
   10821      438864 :          packed_data(ipack) = pack_tmp
   10822      438864 :          data_tmp = full_data(idata)
   10823      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10824      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10825      438864 :          idata = idata + 1
   10826      438864 :          data_tmp = full_data(idata)
   10827      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10828      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10829      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10830      438864 :          idata = idata + 1
   10831      438864 :          data_tmp = full_data(idata)
   10832      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10833      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10834      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10835      438864 :          idata = idata + 1
   10836      438864 :          data_tmp = full_data(idata)
   10837      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10838      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10839      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10840      438864 :          idata = idata + 1
   10841      438864 :          data_tmp = full_data(idata)
   10842             :          data_tmp = ISHFT(data_tmp, 48)
   10843      438864 :          data_tmp = IAND(data_tmp, mask_left(0))
   10844      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10845      438864 :          ipack = ipack + 1
   10846      438864 :          packed_data(ipack) = pack_tmp
   10847      438864 :          data_tmp = full_data(idata)
   10848      438864 :          pack_tmp = ISHFT(data_tmp, 48)
   10849      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10850      438864 :          idata = idata + 1
   10851      438864 :          data_tmp = full_data(idata)
   10852      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10853      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10854      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10855      438864 :          idata = idata + 1
   10856      438864 :          data_tmp = full_data(idata)
   10857      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10858      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10859      438864 :          pack_tmp = ISHFT(pack_tmp, -16)
   10860      438864 :          idata = idata + 1
   10861      438864 :          data_tmp = full_data(idata)
   10862      438864 :          data_tmp = ISHFT(data_tmp, 48)
   10863      438864 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10864             :          pack_tmp = ISHFT(pack_tmp, 0)
   10865      438864 :          pack_tmp = ISHFT(pack_tmp, 0)
   10866      438864 :          ipack = ipack + 1
   10867      439738 :          packed_data(ipack) = pack_tmp
   10868             :       END DO
   10869       28303 :       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       28303 :    END SUBROUTINE ints2bits_16
   10873             : 
   10874             : ! **************************************************************************************************
   10875             : !> \brief ...
   10876             : !> \param Ndata ...
   10877             : !> \param packed_data ...
   10878             : !> \param full_data ...
   10879             : ! **************************************************************************************************
   10880      137247 :    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      137247 :       ipack = 0
   10891      137247 :       idata = 0
   10892      137247 :       pack_tmp = 0
   10893      137247 :       Ndata_rep = (Ndata/64)*64
   10894      137247 :       DO kdata = 1, Ndata_rep, 64
   10895     2070688 :          idata = idata + 1
   10896     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10897     2070688 :          ipack = ipack + 1
   10898     2070688 :          pack_tmp = packed_data(ipack)
   10899     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10900     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10901     2070688 :          idata = idata + 1
   10902     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10903     2070688 :          full_data(idata) = data_tmp
   10904     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10905     2070688 :          idata = idata + 1
   10906     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10907     2070688 :          full_data(idata) = data_tmp
   10908     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10909     2070688 :          idata = idata + 1
   10910     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10911     2070688 :          full_data(idata) = data_tmp
   10912     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10913     2070688 :          idata = idata + 1
   10914     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10915     2070688 :          ipack = ipack + 1
   10916     2070688 :          pack_tmp = packed_data(ipack)
   10917     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10918     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10919     2070688 :          idata = idata + 1
   10920     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10921     2070688 :          full_data(idata) = data_tmp
   10922     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10923     2070688 :          idata = idata + 1
   10924     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10925     2070688 :          full_data(idata) = data_tmp
   10926     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10927     2070688 :          idata = idata + 1
   10928     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10929     2070688 :          full_data(idata) = data_tmp
   10930     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10931     2070688 :          idata = idata + 1
   10932     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10933     2070688 :          ipack = ipack + 1
   10934     2070688 :          pack_tmp = packed_data(ipack)
   10935     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10936     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10937     2070688 :          idata = idata + 1
   10938     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10939     2070688 :          full_data(idata) = data_tmp
   10940     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10941     2070688 :          idata = idata + 1
   10942     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10943     2070688 :          full_data(idata) = data_tmp
   10944     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10945     2070688 :          idata = idata + 1
   10946     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10947     2070688 :          full_data(idata) = data_tmp
   10948     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10949     2070688 :          idata = idata + 1
   10950     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10951     2070688 :          ipack = ipack + 1
   10952     2070688 :          pack_tmp = packed_data(ipack)
   10953     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10954     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10955     2070688 :          idata = idata + 1
   10956     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10957     2070688 :          full_data(idata) = data_tmp
   10958     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10959     2070688 :          idata = idata + 1
   10960     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10961     2070688 :          full_data(idata) = data_tmp
   10962     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10963     2070688 :          idata = idata + 1
   10964     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10965     2070688 :          full_data(idata) = data_tmp
   10966     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10967     2070688 :          idata = idata + 1
   10968     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10969     2070688 :          ipack = ipack + 1
   10970     2070688 :          pack_tmp = packed_data(ipack)
   10971     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10972     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10973     2070688 :          idata = idata + 1
   10974     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10975     2070688 :          full_data(idata) = data_tmp
   10976     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10977     2070688 :          idata = idata + 1
   10978     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10979     2070688 :          full_data(idata) = data_tmp
   10980     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10981     2070688 :          idata = idata + 1
   10982     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10983     2070688 :          full_data(idata) = data_tmp
   10984     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10985     2070688 :          idata = idata + 1
   10986     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   10987     2070688 :          ipack = ipack + 1
   10988     2070688 :          pack_tmp = packed_data(ipack)
   10989     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10990     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   10991     2070688 :          idata = idata + 1
   10992     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10993     2070688 :          full_data(idata) = data_tmp
   10994     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10995     2070688 :          idata = idata + 1
   10996     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10997     2070688 :          full_data(idata) = data_tmp
   10998     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10999     2070688 :          idata = idata + 1
   11000     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11001     2070688 :          full_data(idata) = data_tmp
   11002     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11003     2070688 :          idata = idata + 1
   11004     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11005     2070688 :          ipack = ipack + 1
   11006     2070688 :          pack_tmp = packed_data(ipack)
   11007     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11008     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11009     2070688 :          idata = idata + 1
   11010     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11011     2070688 :          full_data(idata) = data_tmp
   11012     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11013     2070688 :          idata = idata + 1
   11014     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11015     2070688 :          full_data(idata) = data_tmp
   11016     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11017     2070688 :          idata = idata + 1
   11018     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11019     2070688 :          full_data(idata) = data_tmp
   11020     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11021     2070688 :          idata = idata + 1
   11022     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11023     2070688 :          ipack = ipack + 1
   11024     2070688 :          pack_tmp = packed_data(ipack)
   11025     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11026     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11027     2070688 :          idata = idata + 1
   11028     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11029     2070688 :          full_data(idata) = data_tmp
   11030     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11031     2070688 :          idata = idata + 1
   11032     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11033     2070688 :          full_data(idata) = data_tmp
   11034     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11035     2070688 :          idata = idata + 1
   11036     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11037     2070688 :          full_data(idata) = data_tmp
   11038     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11039     2070688 :          idata = idata + 1
   11040     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11041     2070688 :          ipack = ipack + 1
   11042     2070688 :          pack_tmp = packed_data(ipack)
   11043     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11044     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11045     2070688 :          idata = idata + 1
   11046     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11047     2070688 :          full_data(idata) = data_tmp
   11048     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11049     2070688 :          idata = idata + 1
   11050     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11051     2070688 :          full_data(idata) = data_tmp
   11052     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11053     2070688 :          idata = idata + 1
   11054     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11055     2070688 :          full_data(idata) = data_tmp
   11056     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11057     2070688 :          idata = idata + 1
   11058     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11059     2070688 :          ipack = ipack + 1
   11060     2070688 :          pack_tmp = packed_data(ipack)
   11061     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11062     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11063     2070688 :          idata = idata + 1
   11064     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11065     2070688 :          full_data(idata) = data_tmp
   11066     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11067     2070688 :          idata = idata + 1
   11068     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11069     2070688 :          full_data(idata) = data_tmp
   11070     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11071     2070688 :          idata = idata + 1
   11072     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11073     2070688 :          full_data(idata) = data_tmp
   11074     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11075     2070688 :          idata = idata + 1
   11076     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11077     2070688 :          ipack = ipack + 1
   11078     2070688 :          pack_tmp = packed_data(ipack)
   11079     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11080     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11081     2070688 :          idata = idata + 1
   11082     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11083     2070688 :          full_data(idata) = data_tmp
   11084     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11085     2070688 :          idata = idata + 1
   11086     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11087     2070688 :          full_data(idata) = data_tmp
   11088     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11089     2070688 :          idata = idata + 1
   11090     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11091     2070688 :          full_data(idata) = data_tmp
   11092     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11093     2070688 :          idata = idata + 1
   11094     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11095     2070688 :          ipack = ipack + 1
   11096     2070688 :          pack_tmp = packed_data(ipack)
   11097     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11098     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11099     2070688 :          idata = idata + 1
   11100     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11101     2070688 :          full_data(idata) = data_tmp
   11102     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11103     2070688 :          idata = idata + 1
   11104     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11105     2070688 :          full_data(idata) = data_tmp
   11106     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11107     2070688 :          idata = idata + 1
   11108     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11109     2070688 :          full_data(idata) = data_tmp
   11110     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11111     2070688 :          idata = idata + 1
   11112     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11113     2070688 :          ipack = ipack + 1
   11114     2070688 :          pack_tmp = packed_data(ipack)
   11115     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11116     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11117     2070688 :          idata = idata + 1
   11118     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11119     2070688 :          full_data(idata) = data_tmp
   11120     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11121     2070688 :          idata = idata + 1
   11122     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11123     2070688 :          full_data(idata) = data_tmp
   11124     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11125     2070688 :          idata = idata + 1
   11126     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11127     2070688 :          full_data(idata) = data_tmp
   11128     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11129     2070688 :          idata = idata + 1
   11130     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11131     2070688 :          ipack = ipack + 1
   11132     2070688 :          pack_tmp = packed_data(ipack)
   11133     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11134     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11135     2070688 :          idata = idata + 1
   11136     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11137     2070688 :          full_data(idata) = data_tmp
   11138     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11139     2070688 :          idata = idata + 1
   11140     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11141     2070688 :          full_data(idata) = data_tmp
   11142     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11143     2070688 :          idata = idata + 1
   11144     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11145     2070688 :          full_data(idata) = data_tmp
   11146     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11147     2070688 :          idata = idata + 1
   11148     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11149     2070688 :          ipack = ipack + 1
   11150     2070688 :          pack_tmp = packed_data(ipack)
   11151     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11152     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11153     2070688 :          idata = idata + 1
   11154     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11155     2070688 :          full_data(idata) = data_tmp
   11156     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11157     2070688 :          idata = idata + 1
   11158     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11159     2070688 :          full_data(idata) = data_tmp
   11160     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11161     2070688 :          idata = idata + 1
   11162     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11163     2070688 :          full_data(idata) = data_tmp
   11164     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11165     2070688 :          idata = idata + 1
   11166     2070688 :          data_tmp = ISHFT(pack_tmp, 16)
   11167     2070688 :          ipack = ipack + 1
   11168     2070688 :          pack_tmp = packed_data(ipack)
   11169     2070688 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11170     2070688 :          pack_tmp = ISHFT(pack_tmp, -16)
   11171     2070688 :          idata = idata + 1
   11172     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11173     2070688 :          full_data(idata) = data_tmp
   11174     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11175     2070688 :          idata = idata + 1
   11176     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11177     2070688 :          full_data(idata) = data_tmp
   11178     2070688 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11179     2070688 :          idata = idata + 1
   11180     2070688 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11181     2070688 :          full_data(idata) = data_tmp
   11182     2078517 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11183             :       END DO
   11184      137247 :       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      137247 :    END SUBROUTINE bits2ints_16
   11188             : 
   11189             : ! **************************************************************************************************
   11190             : !> \brief ...
   11191             : !> \param Ndata ...
   11192             : !> \param packed_data ...
   11193             : !> \param full_data ...
   11194             : ! **************************************************************************************************
   11195       31815 :    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       31815 :       idata = 0
   11206       31815 :       ipack = 0
   11207       31815 :       Ndata_rep = (Ndata/64)*64
   11208       31815 :       DO kdata = 1, Ndata_rep, 64
   11209      481368 :          pack_tmp = 0
   11210      481368 :          idata = idata + 1
   11211      481368 :          data_tmp = full_data(idata)
   11212      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11213      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11214      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11215      481368 :          idata = idata + 1
   11216      481368 :          data_tmp = full_data(idata)
   11217      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11218      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11219      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11220      481368 :          idata = idata + 1
   11221      481368 :          data_tmp = full_data(idata)
   11222      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11223      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11224      481368 :          pack_tmp = ISHFT(pack_tmp, -13)
   11225      481368 :          idata = idata + 1
   11226      481368 :          data_tmp = full_data(idata)
   11227      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11228      481368 :          data_tmp = IAND(data_tmp, mask_left(13))
   11229      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11230      481368 :          ipack = ipack + 1
   11231      481368 :          packed_data(ipack) = pack_tmp
   11232      481368 :          data_tmp = full_data(idata)
   11233      481368 :          pack_tmp = ISHFT(data_tmp, 60)
   11234      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11235      481368 :          idata = idata + 1
   11236      481368 :          data_tmp = full_data(idata)
   11237      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11238      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11239      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11240      481368 :          idata = idata + 1
   11241      481368 :          data_tmp = full_data(idata)
   11242      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11243      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11244      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11245      481368 :          idata = idata + 1
   11246      481368 :          data_tmp = full_data(idata)
   11247      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11248      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11249      481368 :          pack_tmp = ISHFT(pack_tmp, -9)
   11250      481368 :          idata = idata + 1
   11251      481368 :          data_tmp = full_data(idata)
   11252      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11253      481368 :          data_tmp = IAND(data_tmp, mask_left(9))
   11254      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11255      481368 :          ipack = ipack + 1
   11256      481368 :          packed_data(ipack) = pack_tmp
   11257      481368 :          data_tmp = full_data(idata)
   11258      481368 :          pack_tmp = ISHFT(data_tmp, 56)
   11259      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11260      481368 :          idata = idata + 1
   11261      481368 :          data_tmp = full_data(idata)
   11262      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11263      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11264      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11265      481368 :          idata = idata + 1
   11266      481368 :          data_tmp = full_data(idata)
   11267      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11268      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11269      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11270      481368 :          idata = idata + 1
   11271      481368 :          data_tmp = full_data(idata)
   11272      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11273      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11274      481368 :          pack_tmp = ISHFT(pack_tmp, -5)
   11275      481368 :          idata = idata + 1
   11276      481368 :          data_tmp = full_data(idata)
   11277      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11278      481368 :          data_tmp = IAND(data_tmp, mask_left(5))
   11279      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11280      481368 :          ipack = ipack + 1
   11281      481368 :          packed_data(ipack) = pack_tmp
   11282      481368 :          data_tmp = full_data(idata)
   11283      481368 :          pack_tmp = ISHFT(data_tmp, 52)
   11284      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11285      481368 :          idata = idata + 1
   11286      481368 :          data_tmp = full_data(idata)
   11287      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11288      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11289      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11290      481368 :          idata = idata + 1
   11291      481368 :          data_tmp = full_data(idata)
   11292      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11293      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11294      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11295      481368 :          idata = idata + 1
   11296      481368 :          data_tmp = full_data(idata)
   11297      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11298      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11299      481368 :          pack_tmp = ISHFT(pack_tmp, -1)
   11300      481368 :          idata = idata + 1
   11301      481368 :          data_tmp = full_data(idata)
   11302      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11303      481368 :          data_tmp = IAND(data_tmp, mask_left(1))
   11304      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11305      481368 :          ipack = ipack + 1
   11306      481368 :          packed_data(ipack) = pack_tmp
   11307      481368 :          data_tmp = full_data(idata)
   11308      481368 :          pack_tmp = ISHFT(data_tmp, 48)
   11309      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11310      481368 :          idata = idata + 1
   11311      481368 :          data_tmp = full_data(idata)
   11312      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11313      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11314      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11315      481368 :          idata = idata + 1
   11316      481368 :          data_tmp = full_data(idata)
   11317      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11318      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11319      481368 :          pack_tmp = ISHFT(pack_tmp, -14)
   11320      481368 :          idata = idata + 1
   11321      481368 :          data_tmp = full_data(idata)
   11322      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11323      481368 :          data_tmp = IAND(data_tmp, mask_left(14))
   11324      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11325      481368 :          ipack = ipack + 1
   11326      481368 :          packed_data(ipack) = pack_tmp
   11327      481368 :          data_tmp = full_data(idata)
   11328      481368 :          pack_tmp = ISHFT(data_tmp, 61)
   11329      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11330      481368 :          idata = idata + 1
   11331      481368 :          data_tmp = full_data(idata)
   11332      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11333      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11334      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11335      481368 :          idata = idata + 1
   11336      481368 :          data_tmp = full_data(idata)
   11337      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11338      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11339      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11340      481368 :          idata = idata + 1
   11341      481368 :          data_tmp = full_data(idata)
   11342      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11343      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11344      481368 :          pack_tmp = ISHFT(pack_tmp, -10)
   11345      481368 :          idata = idata + 1
   11346      481368 :          data_tmp = full_data(idata)
   11347      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11348      481368 :          data_tmp = IAND(data_tmp, mask_left(10))
   11349      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11350      481368 :          ipack = ipack + 1
   11351      481368 :          packed_data(ipack) = pack_tmp
   11352      481368 :          data_tmp = full_data(idata)
   11353      481368 :          pack_tmp = ISHFT(data_tmp, 57)
   11354      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11355      481368 :          idata = idata + 1
   11356      481368 :          data_tmp = full_data(idata)
   11357      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11358      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11359      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11360      481368 :          idata = idata + 1
   11361      481368 :          data_tmp = full_data(idata)
   11362      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11363      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11364      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11365      481368 :          idata = idata + 1
   11366      481368 :          data_tmp = full_data(idata)
   11367      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11368      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11369      481368 :          pack_tmp = ISHFT(pack_tmp, -6)
   11370      481368 :          idata = idata + 1
   11371      481368 :          data_tmp = full_data(idata)
   11372      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11373      481368 :          data_tmp = IAND(data_tmp, mask_left(6))
   11374      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11375      481368 :          ipack = ipack + 1
   11376      481368 :          packed_data(ipack) = pack_tmp
   11377      481368 :          data_tmp = full_data(idata)
   11378      481368 :          pack_tmp = ISHFT(data_tmp, 53)
   11379      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11380      481368 :          idata = idata + 1
   11381      481368 :          data_tmp = full_data(idata)
   11382      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11383      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11384      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11385      481368 :          idata = idata + 1
   11386      481368 :          data_tmp = full_data(idata)
   11387      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11388      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11389      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11390      481368 :          idata = idata + 1
   11391      481368 :          data_tmp = full_data(idata)
   11392      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11393      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11394      481368 :          pack_tmp = ISHFT(pack_tmp, -2)
   11395      481368 :          idata = idata + 1
   11396      481368 :          data_tmp = full_data(idata)
   11397      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11398      481368 :          data_tmp = IAND(data_tmp, mask_left(2))
   11399      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11400      481368 :          ipack = ipack + 1
   11401      481368 :          packed_data(ipack) = pack_tmp
   11402      481368 :          data_tmp = full_data(idata)
   11403      481368 :          pack_tmp = ISHFT(data_tmp, 49)
   11404      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11405      481368 :          idata = idata + 1
   11406      481368 :          data_tmp = full_data(idata)
   11407      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11408      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11409      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11410      481368 :          idata = idata + 1
   11411      481368 :          data_tmp = full_data(idata)
   11412      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11413      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11414      481368 :          pack_tmp = ISHFT(pack_tmp, -15)
   11415      481368 :          idata = idata + 1
   11416      481368 :          data_tmp = full_data(idata)
   11417      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11418      481368 :          data_tmp = IAND(data_tmp, mask_left(15))
   11419      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11420      481368 :          ipack = ipack + 1
   11421      481368 :          packed_data(ipack) = pack_tmp
   11422      481368 :          data_tmp = full_data(idata)
   11423      481368 :          pack_tmp = ISHFT(data_tmp, 62)
   11424      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11425      481368 :          idata = idata + 1
   11426      481368 :          data_tmp = full_data(idata)
   11427      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11428      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11429      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11430      481368 :          idata = idata + 1
   11431      481368 :          data_tmp = full_data(idata)
   11432      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11433      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11434      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11435      481368 :          idata = idata + 1
   11436      481368 :          data_tmp = full_data(idata)
   11437      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11438      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11439      481368 :          pack_tmp = ISHFT(pack_tmp, -11)
   11440      481368 :          idata = idata + 1
   11441      481368 :          data_tmp = full_data(idata)
   11442      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11443      481368 :          data_tmp = IAND(data_tmp, mask_left(11))
   11444      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11445      481368 :          ipack = ipack + 1
   11446      481368 :          packed_data(ipack) = pack_tmp
   11447      481368 :          data_tmp = full_data(idata)
   11448      481368 :          pack_tmp = ISHFT(data_tmp, 58)
   11449      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11450      481368 :          idata = idata + 1
   11451      481368 :          data_tmp = full_data(idata)
   11452      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11453      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11454      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11455      481368 :          idata = idata + 1
   11456      481368 :          data_tmp = full_data(idata)
   11457      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11458      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11459      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11460      481368 :          idata = idata + 1
   11461      481368 :          data_tmp = full_data(idata)
   11462      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11463      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11464      481368 :          pack_tmp = ISHFT(pack_tmp, -7)
   11465      481368 :          idata = idata + 1
   11466      481368 :          data_tmp = full_data(idata)
   11467      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11468      481368 :          data_tmp = IAND(data_tmp, mask_left(7))
   11469      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11470      481368 :          ipack = ipack + 1
   11471      481368 :          packed_data(ipack) = pack_tmp
   11472      481368 :          data_tmp = full_data(idata)
   11473      481368 :          pack_tmp = ISHFT(data_tmp, 54)
   11474      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11475      481368 :          idata = idata + 1
   11476      481368 :          data_tmp = full_data(idata)
   11477      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11478      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11479      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11480      481368 :          idata = idata + 1
   11481      481368 :          data_tmp = full_data(idata)
   11482      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11483      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11484      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11485      481368 :          idata = idata + 1
   11486      481368 :          data_tmp = full_data(idata)
   11487      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11488      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11489      481368 :          pack_tmp = ISHFT(pack_tmp, -3)
   11490      481368 :          idata = idata + 1
   11491      481368 :          data_tmp = full_data(idata)
   11492      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11493      481368 :          data_tmp = IAND(data_tmp, mask_left(3))
   11494      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11495      481368 :          ipack = ipack + 1
   11496      481368 :          packed_data(ipack) = pack_tmp
   11497      481368 :          data_tmp = full_data(idata)
   11498      481368 :          pack_tmp = ISHFT(data_tmp, 50)
   11499      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11500      481368 :          idata = idata + 1
   11501      481368 :          data_tmp = full_data(idata)
   11502      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11503      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11504      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11505      481368 :          idata = idata + 1
   11506      481368 :          data_tmp = full_data(idata)
   11507      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11508      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11509      481368 :          pack_tmp = ISHFT(pack_tmp, -16)
   11510      481368 :          idata = idata + 1
   11511      481368 :          data_tmp = full_data(idata)
   11512      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11513      481368 :          data_tmp = IAND(data_tmp, mask_left(16))
   11514      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11515      481368 :          ipack = ipack + 1
   11516      481368 :          packed_data(ipack) = pack_tmp
   11517      481368 :          data_tmp = full_data(idata)
   11518      481368 :          pack_tmp = ISHFT(data_tmp, 63)
   11519      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11520      481368 :          idata = idata + 1
   11521      481368 :          data_tmp = full_data(idata)
   11522      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11523      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11524      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11525      481368 :          idata = idata + 1
   11526      481368 :          data_tmp = full_data(idata)
   11527      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11528      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11529      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11530      481368 :          idata = idata + 1
   11531      481368 :          data_tmp = full_data(idata)
   11532      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11533      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11534      481368 :          pack_tmp = ISHFT(pack_tmp, -12)
   11535      481368 :          idata = idata + 1
   11536      481368 :          data_tmp = full_data(idata)
   11537      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11538      481368 :          data_tmp = IAND(data_tmp, mask_left(12))
   11539      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11540      481368 :          ipack = ipack + 1
   11541      481368 :          packed_data(ipack) = pack_tmp
   11542      481368 :          data_tmp = full_data(idata)
   11543      481368 :          pack_tmp = ISHFT(data_tmp, 59)
   11544      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11545      481368 :          idata = idata + 1
   11546      481368 :          data_tmp = full_data(idata)
   11547      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11548      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11549      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11550      481368 :          idata = idata + 1
   11551      481368 :          data_tmp = full_data(idata)
   11552      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11553      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11554      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11555      481368 :          idata = idata + 1
   11556      481368 :          data_tmp = full_data(idata)
   11557      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11558      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11559      481368 :          pack_tmp = ISHFT(pack_tmp, -8)
   11560      481368 :          idata = idata + 1
   11561      481368 :          data_tmp = full_data(idata)
   11562      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11563      481368 :          data_tmp = IAND(data_tmp, mask_left(8))
   11564      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11565      481368 :          ipack = ipack + 1
   11566      481368 :          packed_data(ipack) = pack_tmp
   11567      481368 :          data_tmp = full_data(idata)
   11568      481368 :          pack_tmp = ISHFT(data_tmp, 55)
   11569      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11570      481368 :          idata = idata + 1
   11571      481368 :          data_tmp = full_data(idata)
   11572      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11573      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11574      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11575      481368 :          idata = idata + 1
   11576      481368 :          data_tmp = full_data(idata)
   11577      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11578      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11579      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11580      481368 :          idata = idata + 1
   11581      481368 :          data_tmp = full_data(idata)
   11582      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11583      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11584      481368 :          pack_tmp = ISHFT(pack_tmp, -4)
   11585      481368 :          idata = idata + 1
   11586      481368 :          data_tmp = full_data(idata)
   11587      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11588      481368 :          data_tmp = IAND(data_tmp, mask_left(4))
   11589      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11590      481368 :          ipack = ipack + 1
   11591      481368 :          packed_data(ipack) = pack_tmp
   11592      481368 :          data_tmp = full_data(idata)
   11593      481368 :          pack_tmp = ISHFT(data_tmp, 51)
   11594      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11595      481368 :          idata = idata + 1
   11596      481368 :          data_tmp = full_data(idata)
   11597      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11598      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11599      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11600      481368 :          idata = idata + 1
   11601      481368 :          data_tmp = full_data(idata)
   11602      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11603      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11604      481368 :          pack_tmp = ISHFT(pack_tmp, -17)
   11605      481368 :          idata = idata + 1
   11606      481368 :          data_tmp = full_data(idata)
   11607      481368 :          data_tmp = ISHFT(data_tmp, 47)
   11608      481368 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11609             :          pack_tmp = ISHFT(pack_tmp, 0)
   11610      481368 :          pack_tmp = ISHFT(pack_tmp, 0)
   11611      481368 :          ipack = ipack + 1
   11612      481511 :          packed_data(ipack) = pack_tmp
   11613             :       END DO
   11614       31815 :       IF (Ndata_rep < Ndata) THEN
   11615        3152 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11616             :       END IF
   11617       31815 :    END SUBROUTINE ints2bits_17
   11618             : 
   11619             : ! **************************************************************************************************
   11620             : !> \brief ...
   11621             : !> \param Ndata ...
   11622             : !> \param packed_data ...
   11623             : !> \param full_data ...
   11624             : ! **************************************************************************************************
   11625      162945 :    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      162945 :       ipack = 0
   11636      162945 :       idata = 0
   11637      162945 :       pack_tmp = 0
   11638      162945 :       Ndata_rep = (Ndata/64)*64
   11639      162945 :       DO kdata = 1, Ndata_rep, 64
   11640     2382198 :          idata = idata + 1
   11641     2382198 :          data_tmp = ISHFT(pack_tmp, 17)
   11642     2382198 :          ipack = ipack + 1
   11643     2382198 :          pack_tmp = packed_data(ipack)
   11644     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   11645     2382198 :          pack_tmp = ISHFT(pack_tmp, -17)
   11646     2382198 :          idata = idata + 1
   11647     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11648     2382198 :          full_data(idata) = data_tmp
   11649     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11650     2382198 :          idata = idata + 1
   11651     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11652     2382198 :          full_data(idata) = data_tmp
   11653     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11654     2382198 :          idata = idata + 1
   11655     2382198 :          data_tmp = ISHFT(pack_tmp, 4)
   11656     2382198 :          ipack = ipack + 1
   11657     2382198 :          pack_tmp = packed_data(ipack)
   11658     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   11659     2382198 :          pack_tmp = ISHFT(pack_tmp, -4)
   11660     2382198 :          idata = idata + 1
   11661     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11662     2382198 :          full_data(idata) = data_tmp
   11663     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11664     2382198 :          idata = idata + 1
   11665     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11666     2382198 :          full_data(idata) = data_tmp
   11667     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11668     2382198 :          idata = idata + 1
   11669     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11670     2382198 :          full_data(idata) = data_tmp
   11671     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11672     2382198 :          idata = idata + 1
   11673     2382198 :          data_tmp = ISHFT(pack_tmp, 8)
   11674     2382198 :          ipack = ipack + 1
   11675     2382198 :          pack_tmp = packed_data(ipack)
   11676     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   11677     2382198 :          pack_tmp = ISHFT(pack_tmp, -8)
   11678     2382198 :          idata = idata + 1
   11679     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11680     2382198 :          full_data(idata) = data_tmp
   11681     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11682     2382198 :          idata = idata + 1
   11683     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11684     2382198 :          full_data(idata) = data_tmp
   11685     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11686     2382198 :          idata = idata + 1
   11687     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11688     2382198 :          full_data(idata) = data_tmp
   11689     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11690     2382198 :          idata = idata + 1
   11691     2382198 :          data_tmp = ISHFT(pack_tmp, 12)
   11692     2382198 :          ipack = ipack + 1
   11693     2382198 :          pack_tmp = packed_data(ipack)
   11694     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   11695     2382198 :          pack_tmp = ISHFT(pack_tmp, -12)
   11696     2382198 :          idata = idata + 1
   11697     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11698     2382198 :          full_data(idata) = data_tmp
   11699     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11700     2382198 :          idata = idata + 1
   11701     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11702     2382198 :          full_data(idata) = data_tmp
   11703     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11704     2382198 :          idata = idata + 1
   11705     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11706     2382198 :          full_data(idata) = data_tmp
   11707     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11708     2382198 :          idata = idata + 1
   11709     2382198 :          data_tmp = ISHFT(pack_tmp, 16)
   11710     2382198 :          ipack = ipack + 1
   11711     2382198 :          pack_tmp = packed_data(ipack)
   11712     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11713     2382198 :          pack_tmp = ISHFT(pack_tmp, -16)
   11714     2382198 :          idata = idata + 1
   11715     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11716     2382198 :          full_data(idata) = data_tmp
   11717     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11718     2382198 :          idata = idata + 1
   11719     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11720     2382198 :          full_data(idata) = data_tmp
   11721     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11722     2382198 :          idata = idata + 1
   11723     2382198 :          data_tmp = ISHFT(pack_tmp, 3)
   11724     2382198 :          ipack = ipack + 1
   11725     2382198 :          pack_tmp = packed_data(ipack)
   11726     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   11727     2382198 :          pack_tmp = ISHFT(pack_tmp, -3)
   11728     2382198 :          idata = idata + 1
   11729     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11730     2382198 :          full_data(idata) = data_tmp
   11731     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11732     2382198 :          idata = idata + 1
   11733     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11734     2382198 :          full_data(idata) = data_tmp
   11735     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11736     2382198 :          idata = idata + 1
   11737     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11738     2382198 :          full_data(idata) = data_tmp
   11739     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11740     2382198 :          idata = idata + 1
   11741     2382198 :          data_tmp = ISHFT(pack_tmp, 7)
   11742     2382198 :          ipack = ipack + 1
   11743     2382198 :          pack_tmp = packed_data(ipack)
   11744     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   11745     2382198 :          pack_tmp = ISHFT(pack_tmp, -7)
   11746     2382198 :          idata = idata + 1
   11747     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11748     2382198 :          full_data(idata) = data_tmp
   11749     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11750     2382198 :          idata = idata + 1
   11751     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11752     2382198 :          full_data(idata) = data_tmp
   11753     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11754     2382198 :          idata = idata + 1
   11755     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11756     2382198 :          full_data(idata) = data_tmp
   11757     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11758     2382198 :          idata = idata + 1
   11759     2382198 :          data_tmp = ISHFT(pack_tmp, 11)
   11760     2382198 :          ipack = ipack + 1
   11761     2382198 :          pack_tmp = packed_data(ipack)
   11762     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   11763     2382198 :          pack_tmp = ISHFT(pack_tmp, -11)
   11764     2382198 :          idata = idata + 1
   11765     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11766     2382198 :          full_data(idata) = data_tmp
   11767     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11768     2382198 :          idata = idata + 1
   11769     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11770     2382198 :          full_data(idata) = data_tmp
   11771     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11772     2382198 :          idata = idata + 1
   11773     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11774     2382198 :          full_data(idata) = data_tmp
   11775     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11776     2382198 :          idata = idata + 1
   11777     2382198 :          data_tmp = ISHFT(pack_tmp, 15)
   11778     2382198 :          ipack = ipack + 1
   11779     2382198 :          pack_tmp = packed_data(ipack)
   11780     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   11781     2382198 :          pack_tmp = ISHFT(pack_tmp, -15)
   11782     2382198 :          idata = idata + 1
   11783     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11784     2382198 :          full_data(idata) = data_tmp
   11785     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11786     2382198 :          idata = idata + 1
   11787     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11788     2382198 :          full_data(idata) = data_tmp
   11789     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11790     2382198 :          idata = idata + 1
   11791     2382198 :          data_tmp = ISHFT(pack_tmp, 2)
   11792     2382198 :          ipack = ipack + 1
   11793     2382198 :          pack_tmp = packed_data(ipack)
   11794     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   11795     2382198 :          pack_tmp = ISHFT(pack_tmp, -2)
   11796     2382198 :          idata = idata + 1
   11797     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11798     2382198 :          full_data(idata) = data_tmp
   11799     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11800     2382198 :          idata = idata + 1
   11801     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11802     2382198 :          full_data(idata) = data_tmp
   11803     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11804     2382198 :          idata = idata + 1
   11805     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11806     2382198 :          full_data(idata) = data_tmp
   11807     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11808     2382198 :          idata = idata + 1
   11809     2382198 :          data_tmp = ISHFT(pack_tmp, 6)
   11810     2382198 :          ipack = ipack + 1
   11811     2382198 :          pack_tmp = packed_data(ipack)
   11812     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   11813     2382198 :          pack_tmp = ISHFT(pack_tmp, -6)
   11814     2382198 :          idata = idata + 1
   11815     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11816     2382198 :          full_data(idata) = data_tmp
   11817     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11818     2382198 :          idata = idata + 1
   11819     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11820     2382198 :          full_data(idata) = data_tmp
   11821     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11822     2382198 :          idata = idata + 1
   11823     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11824     2382198 :          full_data(idata) = data_tmp
   11825     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11826     2382198 :          idata = idata + 1
   11827     2382198 :          data_tmp = ISHFT(pack_tmp, 10)
   11828     2382198 :          ipack = ipack + 1
   11829     2382198 :          pack_tmp = packed_data(ipack)
   11830     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   11831     2382198 :          pack_tmp = ISHFT(pack_tmp, -10)
   11832     2382198 :          idata = idata + 1
   11833     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11834     2382198 :          full_data(idata) = data_tmp
   11835     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11836     2382198 :          idata = idata + 1
   11837     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11838     2382198 :          full_data(idata) = data_tmp
   11839     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11840     2382198 :          idata = idata + 1
   11841     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11842     2382198 :          full_data(idata) = data_tmp
   11843     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11844     2382198 :          idata = idata + 1
   11845     2382198 :          data_tmp = ISHFT(pack_tmp, 14)
   11846     2382198 :          ipack = ipack + 1
   11847     2382198 :          pack_tmp = packed_data(ipack)
   11848     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   11849     2382198 :          pack_tmp = ISHFT(pack_tmp, -14)
   11850     2382198 :          idata = idata + 1
   11851     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11852     2382198 :          full_data(idata) = data_tmp
   11853     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11854     2382198 :          idata = idata + 1
   11855     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11856     2382198 :          full_data(idata) = data_tmp
   11857     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11858     2382198 :          idata = idata + 1
   11859     2382198 :          data_tmp = ISHFT(pack_tmp, 1)
   11860     2382198 :          ipack = ipack + 1
   11861     2382198 :          pack_tmp = packed_data(ipack)
   11862     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   11863     2382198 :          pack_tmp = ISHFT(pack_tmp, -1)
   11864     2382198 :          idata = idata + 1
   11865     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11866     2382198 :          full_data(idata) = data_tmp
   11867     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11868     2382198 :          idata = idata + 1
   11869     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11870     2382198 :          full_data(idata) = data_tmp
   11871     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11872     2382198 :          idata = idata + 1
   11873     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11874     2382198 :          full_data(idata) = data_tmp
   11875     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11876     2382198 :          idata = idata + 1
   11877     2382198 :          data_tmp = ISHFT(pack_tmp, 5)
   11878     2382198 :          ipack = ipack + 1
   11879     2382198 :          pack_tmp = packed_data(ipack)
   11880     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   11881     2382198 :          pack_tmp = ISHFT(pack_tmp, -5)
   11882     2382198 :          idata = idata + 1
   11883     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11884     2382198 :          full_data(idata) = data_tmp
   11885     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11886     2382198 :          idata = idata + 1
   11887     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11888     2382198 :          full_data(idata) = data_tmp
   11889     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11890     2382198 :          idata = idata + 1
   11891     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11892     2382198 :          full_data(idata) = data_tmp
   11893     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11894     2382198 :          idata = idata + 1
   11895     2382198 :          data_tmp = ISHFT(pack_tmp, 9)
   11896     2382198 :          ipack = ipack + 1
   11897     2382198 :          pack_tmp = packed_data(ipack)
   11898     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   11899     2382198 :          pack_tmp = ISHFT(pack_tmp, -9)
   11900     2382198 :          idata = idata + 1
   11901     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11902     2382198 :          full_data(idata) = data_tmp
   11903     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11904     2382198 :          idata = idata + 1
   11905     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11906     2382198 :          full_data(idata) = data_tmp
   11907     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11908     2382198 :          idata = idata + 1
   11909     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11910     2382198 :          full_data(idata) = data_tmp
   11911     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11912     2382198 :          idata = idata + 1
   11913     2382198 :          data_tmp = ISHFT(pack_tmp, 13)
   11914     2382198 :          ipack = ipack + 1
   11915     2382198 :          pack_tmp = packed_data(ipack)
   11916     2382198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   11917     2382198 :          pack_tmp = ISHFT(pack_tmp, -13)
   11918     2382198 :          idata = idata + 1
   11919     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11920     2382198 :          full_data(idata) = data_tmp
   11921     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11922     2382198 :          idata = idata + 1
   11923     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11924     2382198 :          full_data(idata) = data_tmp
   11925     2382198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11926     2382198 :          idata = idata + 1
   11927     2382198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11928     2382198 :          full_data(idata) = data_tmp
   11929     2383225 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11930             :       END DO
   11931      162945 :       IF (Ndata_rep < Ndata) THEN
   11932       25652 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11933             :       END IF
   11934      162945 :    END SUBROUTINE bits2ints_17
   11935             : 
   11936             : ! **************************************************************************************************
   11937             : !> \brief ...
   11938             : !> \param Ndata ...
   11939             : !> \param packed_data ...
   11940             : !> \param full_data ...
   11941             : ! **************************************************************************************************
   11942       32716 :    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       32716 :       idata = 0
   11953       32716 :       ipack = 0
   11954       32716 :       Ndata_rep = (Ndata/64)*64
   11955       32716 :       DO kdata = 1, Ndata_rep, 64
   11956      490272 :          pack_tmp = 0
   11957      490272 :          idata = idata + 1
   11958      490272 :          data_tmp = full_data(idata)
   11959      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11960      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11961      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   11962      490272 :          idata = idata + 1
   11963      490272 :          data_tmp = full_data(idata)
   11964      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11965      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11966      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   11967      490272 :          idata = idata + 1
   11968      490272 :          data_tmp = full_data(idata)
   11969      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11970      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11971      490272 :          pack_tmp = ISHFT(pack_tmp, -10)
   11972      490272 :          idata = idata + 1
   11973      490272 :          data_tmp = full_data(idata)
   11974      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11975      490272 :          data_tmp = IAND(data_tmp, mask_left(10))
   11976      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11977      490272 :          ipack = ipack + 1
   11978      490272 :          packed_data(ipack) = pack_tmp
   11979      490272 :          data_tmp = full_data(idata)
   11980      490272 :          pack_tmp = ISHFT(data_tmp, 56)
   11981      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   11982      490272 :          idata = idata + 1
   11983      490272 :          data_tmp = full_data(idata)
   11984      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11985      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11986      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   11987      490272 :          idata = idata + 1
   11988      490272 :          data_tmp = full_data(idata)
   11989      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11990      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11991      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   11992      490272 :          idata = idata + 1
   11993      490272 :          data_tmp = full_data(idata)
   11994      490272 :          data_tmp = ISHFT(data_tmp, 46)
   11995      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11996      490272 :          pack_tmp = ISHFT(pack_tmp, -2)
   11997      490272 :          idata = idata + 1
   11998      490272 :          data_tmp = full_data(idata)
   11999      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12000      490272 :          data_tmp = IAND(data_tmp, mask_left(2))
   12001      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12002      490272 :          ipack = ipack + 1
   12003      490272 :          packed_data(ipack) = pack_tmp
   12004      490272 :          data_tmp = full_data(idata)
   12005      490272 :          pack_tmp = ISHFT(data_tmp, 48)
   12006      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12007      490272 :          idata = idata + 1
   12008      490272 :          data_tmp = full_data(idata)
   12009      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12010      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12011      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12012      490272 :          idata = idata + 1
   12013      490272 :          data_tmp = full_data(idata)
   12014      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12015      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12016      490272 :          pack_tmp = ISHFT(pack_tmp, -12)
   12017      490272 :          idata = idata + 1
   12018      490272 :          data_tmp = full_data(idata)
   12019      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12020      490272 :          data_tmp = IAND(data_tmp, mask_left(12))
   12021      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12022      490272 :          ipack = ipack + 1
   12023      490272 :          packed_data(ipack) = pack_tmp
   12024      490272 :          data_tmp = full_data(idata)
   12025      490272 :          pack_tmp = ISHFT(data_tmp, 58)
   12026      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12027      490272 :          idata = idata + 1
   12028      490272 :          data_tmp = full_data(idata)
   12029      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12030      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12031      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12032      490272 :          idata = idata + 1
   12033      490272 :          data_tmp = full_data(idata)
   12034      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12035      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12036      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12037      490272 :          idata = idata + 1
   12038      490272 :          data_tmp = full_data(idata)
   12039      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12040      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12041      490272 :          pack_tmp = ISHFT(pack_tmp, -4)
   12042      490272 :          idata = idata + 1
   12043      490272 :          data_tmp = full_data(idata)
   12044      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12045      490272 :          data_tmp = IAND(data_tmp, mask_left(4))
   12046      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12047      490272 :          ipack = ipack + 1
   12048      490272 :          packed_data(ipack) = pack_tmp
   12049      490272 :          data_tmp = full_data(idata)
   12050      490272 :          pack_tmp = ISHFT(data_tmp, 50)
   12051      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12052      490272 :          idata = idata + 1
   12053      490272 :          data_tmp = full_data(idata)
   12054      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12055      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12056      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12057      490272 :          idata = idata + 1
   12058      490272 :          data_tmp = full_data(idata)
   12059      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12060      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12061      490272 :          pack_tmp = ISHFT(pack_tmp, -14)
   12062      490272 :          idata = idata + 1
   12063      490272 :          data_tmp = full_data(idata)
   12064      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12065      490272 :          data_tmp = IAND(data_tmp, mask_left(14))
   12066      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12067      490272 :          ipack = ipack + 1
   12068      490272 :          packed_data(ipack) = pack_tmp
   12069      490272 :          data_tmp = full_data(idata)
   12070      490272 :          pack_tmp = ISHFT(data_tmp, 60)
   12071      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12072      490272 :          idata = idata + 1
   12073      490272 :          data_tmp = full_data(idata)
   12074      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12075      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12076      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12077      490272 :          idata = idata + 1
   12078      490272 :          data_tmp = full_data(idata)
   12079      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12080      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12081      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12082      490272 :          idata = idata + 1
   12083      490272 :          data_tmp = full_data(idata)
   12084      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12085      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12086      490272 :          pack_tmp = ISHFT(pack_tmp, -6)
   12087      490272 :          idata = idata + 1
   12088      490272 :          data_tmp = full_data(idata)
   12089      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12090      490272 :          data_tmp = IAND(data_tmp, mask_left(6))
   12091      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12092      490272 :          ipack = ipack + 1
   12093      490272 :          packed_data(ipack) = pack_tmp
   12094      490272 :          data_tmp = full_data(idata)
   12095      490272 :          pack_tmp = ISHFT(data_tmp, 52)
   12096      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12097      490272 :          idata = idata + 1
   12098      490272 :          data_tmp = full_data(idata)
   12099      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12100      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12101      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12102      490272 :          idata = idata + 1
   12103      490272 :          data_tmp = full_data(idata)
   12104      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12105      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12106      490272 :          pack_tmp = ISHFT(pack_tmp, -16)
   12107      490272 :          idata = idata + 1
   12108      490272 :          data_tmp = full_data(idata)
   12109      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12110      490272 :          data_tmp = IAND(data_tmp, mask_left(16))
   12111      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12112      490272 :          ipack = ipack + 1
   12113      490272 :          packed_data(ipack) = pack_tmp
   12114      490272 :          data_tmp = full_data(idata)
   12115      490272 :          pack_tmp = ISHFT(data_tmp, 62)
   12116      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12117      490272 :          idata = idata + 1
   12118      490272 :          data_tmp = full_data(idata)
   12119      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12120      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12121      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12122      490272 :          idata = idata + 1
   12123      490272 :          data_tmp = full_data(idata)
   12124      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12125      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12126      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12127      490272 :          idata = idata + 1
   12128      490272 :          data_tmp = full_data(idata)
   12129      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12130      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12131      490272 :          pack_tmp = ISHFT(pack_tmp, -8)
   12132      490272 :          idata = idata + 1
   12133      490272 :          data_tmp = full_data(idata)
   12134      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12135      490272 :          data_tmp = IAND(data_tmp, mask_left(8))
   12136      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12137      490272 :          ipack = ipack + 1
   12138      490272 :          packed_data(ipack) = pack_tmp
   12139      490272 :          data_tmp = full_data(idata)
   12140      490272 :          pack_tmp = ISHFT(data_tmp, 54)
   12141      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12142      490272 :          idata = idata + 1
   12143      490272 :          data_tmp = full_data(idata)
   12144      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12145      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12146      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12147      490272 :          idata = idata + 1
   12148      490272 :          data_tmp = full_data(idata)
   12149      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12150      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12151      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12152      490272 :          idata = idata + 1
   12153      490272 :          data_tmp = full_data(idata)
   12154      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12155      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12156      490272 :          pack_tmp = ISHFT(pack_tmp, 0)
   12157      490272 :          idata = idata + 1
   12158      490272 :          data_tmp = full_data(idata)
   12159             :          data_tmp = ISHFT(data_tmp, 46)
   12160      490272 :          data_tmp = IAND(data_tmp, mask_left(0))
   12161      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12162      490272 :          ipack = ipack + 1
   12163      490272 :          packed_data(ipack) = pack_tmp
   12164      490272 :          data_tmp = full_data(idata)
   12165      490272 :          pack_tmp = ISHFT(data_tmp, 46)
   12166      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12167      490272 :          idata = idata + 1
   12168      490272 :          data_tmp = full_data(idata)
   12169      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12170      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12171      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12172      490272 :          idata = idata + 1
   12173      490272 :          data_tmp = full_data(idata)
   12174      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12175      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12176      490272 :          pack_tmp = ISHFT(pack_tmp, -10)
   12177      490272 :          idata = idata + 1
   12178      490272 :          data_tmp = full_data(idata)
   12179      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12180      490272 :          data_tmp = IAND(data_tmp, mask_left(10))
   12181      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12182      490272 :          ipack = ipack + 1
   12183      490272 :          packed_data(ipack) = pack_tmp
   12184      490272 :          data_tmp = full_data(idata)
   12185      490272 :          pack_tmp = ISHFT(data_tmp, 56)
   12186      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12187      490272 :          idata = idata + 1
   12188      490272 :          data_tmp = full_data(idata)
   12189      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12190      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12191      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12192      490272 :          idata = idata + 1
   12193      490272 :          data_tmp = full_data(idata)
   12194      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12195      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12196      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12197      490272 :          idata = idata + 1
   12198      490272 :          data_tmp = full_data(idata)
   12199      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12200      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12201      490272 :          pack_tmp = ISHFT(pack_tmp, -2)
   12202      490272 :          idata = idata + 1
   12203      490272 :          data_tmp = full_data(idata)
   12204      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12205      490272 :          data_tmp = IAND(data_tmp, mask_left(2))
   12206      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12207      490272 :          ipack = ipack + 1
   12208      490272 :          packed_data(ipack) = pack_tmp
   12209      490272 :          data_tmp = full_data(idata)
   12210      490272 :          pack_tmp = ISHFT(data_tmp, 48)
   12211      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12212      490272 :          idata = idata + 1
   12213      490272 :          data_tmp = full_data(idata)
   12214      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12215      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12216      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12217      490272 :          idata = idata + 1
   12218      490272 :          data_tmp = full_data(idata)
   12219      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12220      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12221      490272 :          pack_tmp = ISHFT(pack_tmp, -12)
   12222      490272 :          idata = idata + 1
   12223      490272 :          data_tmp = full_data(idata)
   12224      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12225      490272 :          data_tmp = IAND(data_tmp, mask_left(12))
   12226      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12227      490272 :          ipack = ipack + 1
   12228      490272 :          packed_data(ipack) = pack_tmp
   12229      490272 :          data_tmp = full_data(idata)
   12230      490272 :          pack_tmp = ISHFT(data_tmp, 58)
   12231      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12232      490272 :          idata = idata + 1
   12233      490272 :          data_tmp = full_data(idata)
   12234      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12235      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12236      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12237      490272 :          idata = idata + 1
   12238      490272 :          data_tmp = full_data(idata)
   12239      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12240      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12241      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12242      490272 :          idata = idata + 1
   12243      490272 :          data_tmp = full_data(idata)
   12244      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12245      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12246      490272 :          pack_tmp = ISHFT(pack_tmp, -4)
   12247      490272 :          idata = idata + 1
   12248      490272 :          data_tmp = full_data(idata)
   12249      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12250      490272 :          data_tmp = IAND(data_tmp, mask_left(4))
   12251      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12252      490272 :          ipack = ipack + 1
   12253      490272 :          packed_data(ipack) = pack_tmp
   12254      490272 :          data_tmp = full_data(idata)
   12255      490272 :          pack_tmp = ISHFT(data_tmp, 50)
   12256      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12257      490272 :          idata = idata + 1
   12258      490272 :          data_tmp = full_data(idata)
   12259      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12260      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12261      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12262      490272 :          idata = idata + 1
   12263      490272 :          data_tmp = full_data(idata)
   12264      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12265      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12266      490272 :          pack_tmp = ISHFT(pack_tmp, -14)
   12267      490272 :          idata = idata + 1
   12268      490272 :          data_tmp = full_data(idata)
   12269      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12270      490272 :          data_tmp = IAND(data_tmp, mask_left(14))
   12271      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12272      490272 :          ipack = ipack + 1
   12273      490272 :          packed_data(ipack) = pack_tmp
   12274      490272 :          data_tmp = full_data(idata)
   12275      490272 :          pack_tmp = ISHFT(data_tmp, 60)
   12276      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12277      490272 :          idata = idata + 1
   12278      490272 :          data_tmp = full_data(idata)
   12279      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12280      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12281      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12282      490272 :          idata = idata + 1
   12283      490272 :          data_tmp = full_data(idata)
   12284      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12285      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12286      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12287      490272 :          idata = idata + 1
   12288      490272 :          data_tmp = full_data(idata)
   12289      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12290      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12291      490272 :          pack_tmp = ISHFT(pack_tmp, -6)
   12292      490272 :          idata = idata + 1
   12293      490272 :          data_tmp = full_data(idata)
   12294      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12295      490272 :          data_tmp = IAND(data_tmp, mask_left(6))
   12296      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12297      490272 :          ipack = ipack + 1
   12298      490272 :          packed_data(ipack) = pack_tmp
   12299      490272 :          data_tmp = full_data(idata)
   12300      490272 :          pack_tmp = ISHFT(data_tmp, 52)
   12301      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12302      490272 :          idata = idata + 1
   12303      490272 :          data_tmp = full_data(idata)
   12304      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12305      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12306      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12307      490272 :          idata = idata + 1
   12308      490272 :          data_tmp = full_data(idata)
   12309      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12310      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12311      490272 :          pack_tmp = ISHFT(pack_tmp, -16)
   12312      490272 :          idata = idata + 1
   12313      490272 :          data_tmp = full_data(idata)
   12314      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12315      490272 :          data_tmp = IAND(data_tmp, mask_left(16))
   12316      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12317      490272 :          ipack = ipack + 1
   12318      490272 :          packed_data(ipack) = pack_tmp
   12319      490272 :          data_tmp = full_data(idata)
   12320      490272 :          pack_tmp = ISHFT(data_tmp, 62)
   12321      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12322      490272 :          idata = idata + 1
   12323      490272 :          data_tmp = full_data(idata)
   12324      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12325      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12326      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12327      490272 :          idata = idata + 1
   12328      490272 :          data_tmp = full_data(idata)
   12329      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12330      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12331      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12332      490272 :          idata = idata + 1
   12333      490272 :          data_tmp = full_data(idata)
   12334      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12335      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12336      490272 :          pack_tmp = ISHFT(pack_tmp, -8)
   12337      490272 :          idata = idata + 1
   12338      490272 :          data_tmp = full_data(idata)
   12339      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12340      490272 :          data_tmp = IAND(data_tmp, mask_left(8))
   12341      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12342      490272 :          ipack = ipack + 1
   12343      490272 :          packed_data(ipack) = pack_tmp
   12344      490272 :          data_tmp = full_data(idata)
   12345      490272 :          pack_tmp = ISHFT(data_tmp, 54)
   12346      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12347      490272 :          idata = idata + 1
   12348      490272 :          data_tmp = full_data(idata)
   12349      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12350      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12351      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12352      490272 :          idata = idata + 1
   12353      490272 :          data_tmp = full_data(idata)
   12354      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12355      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12356      490272 :          pack_tmp = ISHFT(pack_tmp, -18)
   12357      490272 :          idata = idata + 1
   12358      490272 :          data_tmp = full_data(idata)
   12359      490272 :          data_tmp = ISHFT(data_tmp, 46)
   12360      490272 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12361             :          pack_tmp = ISHFT(pack_tmp, 0)
   12362      490272 :          pack_tmp = ISHFT(pack_tmp, 0)
   12363      490272 :          ipack = ipack + 1
   12364      490370 :          packed_data(ipack) = pack_tmp
   12365             :       END DO
   12366       32716 :       IF (Ndata_rep < Ndata) THEN
   12367        3904 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12368             :       END IF
   12369       32716 :    END SUBROUTINE ints2bits_18
   12370             : 
   12371             : ! **************************************************************************************************
   12372             : !> \brief ...
   12373             : !> \param Ndata ...
   12374             : !> \param packed_data ...
   12375             : !> \param full_data ...
   12376             : ! **************************************************************************************************
   12377      170130 :    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      170130 :       ipack = 0
   12388      170130 :       idata = 0
   12389      170130 :       pack_tmp = 0
   12390      170130 :       Ndata_rep = (Ndata/64)*64
   12391      170130 :       DO kdata = 1, Ndata_rep, 64
   12392     2450743 :          idata = idata + 1
   12393     2450743 :          data_tmp = ISHFT(pack_tmp, 18)
   12394     2450743 :          ipack = ipack + 1
   12395     2450743 :          pack_tmp = packed_data(ipack)
   12396     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12397     2450743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12398     2450743 :          idata = idata + 1
   12399     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12400     2450743 :          full_data(idata) = data_tmp
   12401     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12402     2450743 :          idata = idata + 1
   12403     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12404     2450743 :          full_data(idata) = data_tmp
   12405     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12406     2450743 :          idata = idata + 1
   12407     2450743 :          data_tmp = ISHFT(pack_tmp, 8)
   12408     2450743 :          ipack = ipack + 1
   12409     2450743 :          pack_tmp = packed_data(ipack)
   12410     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12411     2450743 :          pack_tmp = ISHFT(pack_tmp, -8)
   12412     2450743 :          idata = idata + 1
   12413     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12414     2450743 :          full_data(idata) = data_tmp
   12415     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12416     2450743 :          idata = idata + 1
   12417     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12418     2450743 :          full_data(idata) = data_tmp
   12419     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12420     2450743 :          idata = idata + 1
   12421     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12422     2450743 :          full_data(idata) = data_tmp
   12423     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12424     2450743 :          idata = idata + 1
   12425     2450743 :          data_tmp = ISHFT(pack_tmp, 16)
   12426     2450743 :          ipack = ipack + 1
   12427     2450743 :          pack_tmp = packed_data(ipack)
   12428     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12429     2450743 :          pack_tmp = ISHFT(pack_tmp, -16)
   12430     2450743 :          idata = idata + 1
   12431     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12432     2450743 :          full_data(idata) = data_tmp
   12433     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12434     2450743 :          idata = idata + 1
   12435     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12436     2450743 :          full_data(idata) = data_tmp
   12437     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12438     2450743 :          idata = idata + 1
   12439     2450743 :          data_tmp = ISHFT(pack_tmp, 6)
   12440     2450743 :          ipack = ipack + 1
   12441     2450743 :          pack_tmp = packed_data(ipack)
   12442     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12443     2450743 :          pack_tmp = ISHFT(pack_tmp, -6)
   12444     2450743 :          idata = idata + 1
   12445     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12446     2450743 :          full_data(idata) = data_tmp
   12447     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12448     2450743 :          idata = idata + 1
   12449     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12450     2450743 :          full_data(idata) = data_tmp
   12451     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12452     2450743 :          idata = idata + 1
   12453     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12454     2450743 :          full_data(idata) = data_tmp
   12455     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12456     2450743 :          idata = idata + 1
   12457     2450743 :          data_tmp = ISHFT(pack_tmp, 14)
   12458     2450743 :          ipack = ipack + 1
   12459     2450743 :          pack_tmp = packed_data(ipack)
   12460     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12461     2450743 :          pack_tmp = ISHFT(pack_tmp, -14)
   12462     2450743 :          idata = idata + 1
   12463     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12464     2450743 :          full_data(idata) = data_tmp
   12465     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12466     2450743 :          idata = idata + 1
   12467     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12468     2450743 :          full_data(idata) = data_tmp
   12469     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12470     2450743 :          idata = idata + 1
   12471     2450743 :          data_tmp = ISHFT(pack_tmp, 4)
   12472     2450743 :          ipack = ipack + 1
   12473     2450743 :          pack_tmp = packed_data(ipack)
   12474     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12475     2450743 :          pack_tmp = ISHFT(pack_tmp, -4)
   12476     2450743 :          idata = idata + 1
   12477     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12478     2450743 :          full_data(idata) = data_tmp
   12479     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12480     2450743 :          idata = idata + 1
   12481     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12482     2450743 :          full_data(idata) = data_tmp
   12483     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12484     2450743 :          idata = idata + 1
   12485     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12486     2450743 :          full_data(idata) = data_tmp
   12487     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12488     2450743 :          idata = idata + 1
   12489     2450743 :          data_tmp = ISHFT(pack_tmp, 12)
   12490     2450743 :          ipack = ipack + 1
   12491     2450743 :          pack_tmp = packed_data(ipack)
   12492     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12493     2450743 :          pack_tmp = ISHFT(pack_tmp, -12)
   12494     2450743 :          idata = idata + 1
   12495     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12496     2450743 :          full_data(idata) = data_tmp
   12497     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12498     2450743 :          idata = idata + 1
   12499     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12500     2450743 :          full_data(idata) = data_tmp
   12501     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12502     2450743 :          idata = idata + 1
   12503     2450743 :          data_tmp = ISHFT(pack_tmp, 2)
   12504     2450743 :          ipack = ipack + 1
   12505     2450743 :          pack_tmp = packed_data(ipack)
   12506     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12507     2450743 :          pack_tmp = ISHFT(pack_tmp, -2)
   12508     2450743 :          idata = idata + 1
   12509     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12510     2450743 :          full_data(idata) = data_tmp
   12511     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12512     2450743 :          idata = idata + 1
   12513     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12514     2450743 :          full_data(idata) = data_tmp
   12515     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12516     2450743 :          idata = idata + 1
   12517     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12518     2450743 :          full_data(idata) = data_tmp
   12519     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12520     2450743 :          idata = idata + 1
   12521     2450743 :          data_tmp = ISHFT(pack_tmp, 10)
   12522     2450743 :          ipack = ipack + 1
   12523     2450743 :          pack_tmp = packed_data(ipack)
   12524     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12525     2450743 :          pack_tmp = ISHFT(pack_tmp, -10)
   12526     2450743 :          idata = idata + 1
   12527     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12528     2450743 :          full_data(idata) = data_tmp
   12529     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12530     2450743 :          idata = idata + 1
   12531     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12532     2450743 :          full_data(idata) = data_tmp
   12533     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12534     2450743 :          idata = idata + 1
   12535     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12536     2450743 :          full_data(idata) = data_tmp
   12537     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12538     2450743 :          idata = idata + 1
   12539     2450743 :          data_tmp = ISHFT(pack_tmp, 18)
   12540     2450743 :          ipack = ipack + 1
   12541     2450743 :          pack_tmp = packed_data(ipack)
   12542     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12543     2450743 :          pack_tmp = ISHFT(pack_tmp, -18)
   12544     2450743 :          idata = idata + 1
   12545     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12546     2450743 :          full_data(idata) = data_tmp
   12547     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12548     2450743 :          idata = idata + 1
   12549     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12550     2450743 :          full_data(idata) = data_tmp
   12551     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12552     2450743 :          idata = idata + 1
   12553     2450743 :          data_tmp = ISHFT(pack_tmp, 8)
   12554     2450743 :          ipack = ipack + 1
   12555     2450743 :          pack_tmp = packed_data(ipack)
   12556     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12557     2450743 :          pack_tmp = ISHFT(pack_tmp, -8)
   12558     2450743 :          idata = idata + 1
   12559     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12560     2450743 :          full_data(idata) = data_tmp
   12561     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12562     2450743 :          idata = idata + 1
   12563     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12564     2450743 :          full_data(idata) = data_tmp
   12565     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12566     2450743 :          idata = idata + 1
   12567     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12568     2450743 :          full_data(idata) = data_tmp
   12569     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12570     2450743 :          idata = idata + 1
   12571     2450743 :          data_tmp = ISHFT(pack_tmp, 16)
   12572     2450743 :          ipack = ipack + 1
   12573     2450743 :          pack_tmp = packed_data(ipack)
   12574     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12575     2450743 :          pack_tmp = ISHFT(pack_tmp, -16)
   12576     2450743 :          idata = idata + 1
   12577     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12578     2450743 :          full_data(idata) = data_tmp
   12579     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12580     2450743 :          idata = idata + 1
   12581     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12582     2450743 :          full_data(idata) = data_tmp
   12583     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12584     2450743 :          idata = idata + 1
   12585     2450743 :          data_tmp = ISHFT(pack_tmp, 6)
   12586     2450743 :          ipack = ipack + 1
   12587     2450743 :          pack_tmp = packed_data(ipack)
   12588     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12589     2450743 :          pack_tmp = ISHFT(pack_tmp, -6)
   12590     2450743 :          idata = idata + 1
   12591     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12592     2450743 :          full_data(idata) = data_tmp
   12593     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12594     2450743 :          idata = idata + 1
   12595     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12596     2450743 :          full_data(idata) = data_tmp
   12597     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12598     2450743 :          idata = idata + 1
   12599     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12600     2450743 :          full_data(idata) = data_tmp
   12601     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12602     2450743 :          idata = idata + 1
   12603     2450743 :          data_tmp = ISHFT(pack_tmp, 14)
   12604     2450743 :          ipack = ipack + 1
   12605     2450743 :          pack_tmp = packed_data(ipack)
   12606     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12607     2450743 :          pack_tmp = ISHFT(pack_tmp, -14)
   12608     2450743 :          idata = idata + 1
   12609     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12610     2450743 :          full_data(idata) = data_tmp
   12611     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12612     2450743 :          idata = idata + 1
   12613     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12614     2450743 :          full_data(idata) = data_tmp
   12615     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12616     2450743 :          idata = idata + 1
   12617     2450743 :          data_tmp = ISHFT(pack_tmp, 4)
   12618     2450743 :          ipack = ipack + 1
   12619     2450743 :          pack_tmp = packed_data(ipack)
   12620     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12621     2450743 :          pack_tmp = ISHFT(pack_tmp, -4)
   12622     2450743 :          idata = idata + 1
   12623     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12624     2450743 :          full_data(idata) = data_tmp
   12625     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12626     2450743 :          idata = idata + 1
   12627     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12628     2450743 :          full_data(idata) = data_tmp
   12629     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12630     2450743 :          idata = idata + 1
   12631     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12632     2450743 :          full_data(idata) = data_tmp
   12633     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12634     2450743 :          idata = idata + 1
   12635     2450743 :          data_tmp = ISHFT(pack_tmp, 12)
   12636     2450743 :          ipack = ipack + 1
   12637     2450743 :          pack_tmp = packed_data(ipack)
   12638     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12639     2450743 :          pack_tmp = ISHFT(pack_tmp, -12)
   12640     2450743 :          idata = idata + 1
   12641     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12642     2450743 :          full_data(idata) = data_tmp
   12643     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12644     2450743 :          idata = idata + 1
   12645     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12646     2450743 :          full_data(idata) = data_tmp
   12647     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12648     2450743 :          idata = idata + 1
   12649     2450743 :          data_tmp = ISHFT(pack_tmp, 2)
   12650     2450743 :          ipack = ipack + 1
   12651     2450743 :          pack_tmp = packed_data(ipack)
   12652     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12653     2450743 :          pack_tmp = ISHFT(pack_tmp, -2)
   12654     2450743 :          idata = idata + 1
   12655     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12656     2450743 :          full_data(idata) = data_tmp
   12657     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12658     2450743 :          idata = idata + 1
   12659     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12660     2450743 :          full_data(idata) = data_tmp
   12661     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12662     2450743 :          idata = idata + 1
   12663     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12664     2450743 :          full_data(idata) = data_tmp
   12665     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12666     2450743 :          idata = idata + 1
   12667     2450743 :          data_tmp = ISHFT(pack_tmp, 10)
   12668     2450743 :          ipack = ipack + 1
   12669     2450743 :          pack_tmp = packed_data(ipack)
   12670     2450743 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12671     2450743 :          pack_tmp = ISHFT(pack_tmp, -10)
   12672     2450743 :          idata = idata + 1
   12673     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12674     2450743 :          full_data(idata) = data_tmp
   12675     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12676     2450743 :          idata = idata + 1
   12677     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12678     2450743 :          full_data(idata) = data_tmp
   12679     2450743 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12680     2450743 :          idata = idata + 1
   12681     2450743 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12682     2450743 :          full_data(idata) = data_tmp
   12683     2451486 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12684             :       END DO
   12685      170130 :       IF (Ndata_rep < Ndata) THEN
   12686       31922 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12687             :       END IF
   12688      170130 :    END SUBROUTINE bits2ints_18
   12689             : 
   12690             : ! **************************************************************************************************
   12691             : !> \brief ...
   12692             : !> \param Ndata ...
   12693             : !> \param packed_data ...
   12694             : !> \param full_data ...
   12695             : ! **************************************************************************************************
   12696       30451 :    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       30451 :       idata = 0
   12707       30451 :       ipack = 0
   12708       30451 :       Ndata_rep = (Ndata/64)*64
   12709       30451 :       DO kdata = 1, Ndata_rep, 64
   12710      462840 :          pack_tmp = 0
   12711      462840 :          idata = idata + 1
   12712      462840 :          data_tmp = full_data(idata)
   12713      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12714      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12715      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12716      462840 :          idata = idata + 1
   12717      462840 :          data_tmp = full_data(idata)
   12718      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12719      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12720      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12721      462840 :          idata = idata + 1
   12722      462840 :          data_tmp = full_data(idata)
   12723      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12724      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12725      462840 :          pack_tmp = ISHFT(pack_tmp, -7)
   12726      462840 :          idata = idata + 1
   12727      462840 :          data_tmp = full_data(idata)
   12728      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12729      462840 :          data_tmp = IAND(data_tmp, mask_left(7))
   12730      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12731      462840 :          ipack = ipack + 1
   12732      462840 :          packed_data(ipack) = pack_tmp
   12733      462840 :          data_tmp = full_data(idata)
   12734      462840 :          pack_tmp = ISHFT(data_tmp, 52)
   12735      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12736      462840 :          idata = idata + 1
   12737      462840 :          data_tmp = full_data(idata)
   12738      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12739      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12740      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12741      462840 :          idata = idata + 1
   12742      462840 :          data_tmp = full_data(idata)
   12743      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12744      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12745      462840 :          pack_tmp = ISHFT(pack_tmp, -14)
   12746      462840 :          idata = idata + 1
   12747      462840 :          data_tmp = full_data(idata)
   12748      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12749      462840 :          data_tmp = IAND(data_tmp, mask_left(14))
   12750      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12751      462840 :          ipack = ipack + 1
   12752      462840 :          packed_data(ipack) = pack_tmp
   12753      462840 :          data_tmp = full_data(idata)
   12754      462840 :          pack_tmp = ISHFT(data_tmp, 59)
   12755      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12756      462840 :          idata = idata + 1
   12757      462840 :          data_tmp = full_data(idata)
   12758      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12759      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12760      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12761      462840 :          idata = idata + 1
   12762      462840 :          data_tmp = full_data(idata)
   12763      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12764      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12765      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12766      462840 :          idata = idata + 1
   12767      462840 :          data_tmp = full_data(idata)
   12768      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12769      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12770      462840 :          pack_tmp = ISHFT(pack_tmp, -2)
   12771      462840 :          idata = idata + 1
   12772      462840 :          data_tmp = full_data(idata)
   12773      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12774      462840 :          data_tmp = IAND(data_tmp, mask_left(2))
   12775      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12776      462840 :          ipack = ipack + 1
   12777      462840 :          packed_data(ipack) = pack_tmp
   12778      462840 :          data_tmp = full_data(idata)
   12779      462840 :          pack_tmp = ISHFT(data_tmp, 47)
   12780      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12781      462840 :          idata = idata + 1
   12782      462840 :          data_tmp = full_data(idata)
   12783      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12784      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12785      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12786      462840 :          idata = idata + 1
   12787      462840 :          data_tmp = full_data(idata)
   12788      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12789      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12790      462840 :          pack_tmp = ISHFT(pack_tmp, -9)
   12791      462840 :          idata = idata + 1
   12792      462840 :          data_tmp = full_data(idata)
   12793      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12794      462840 :          data_tmp = IAND(data_tmp, mask_left(9))
   12795      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12796      462840 :          ipack = ipack + 1
   12797      462840 :          packed_data(ipack) = pack_tmp
   12798      462840 :          data_tmp = full_data(idata)
   12799      462840 :          pack_tmp = ISHFT(data_tmp, 54)
   12800      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12801      462840 :          idata = idata + 1
   12802      462840 :          data_tmp = full_data(idata)
   12803      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12804      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12805      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12806      462840 :          idata = idata + 1
   12807      462840 :          data_tmp = full_data(idata)
   12808      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12809      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12810      462840 :          pack_tmp = ISHFT(pack_tmp, -16)
   12811      462840 :          idata = idata + 1
   12812      462840 :          data_tmp = full_data(idata)
   12813      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12814      462840 :          data_tmp = IAND(data_tmp, mask_left(16))
   12815      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12816      462840 :          ipack = ipack + 1
   12817      462840 :          packed_data(ipack) = pack_tmp
   12818      462840 :          data_tmp = full_data(idata)
   12819      462840 :          pack_tmp = ISHFT(data_tmp, 61)
   12820      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12821      462840 :          idata = idata + 1
   12822      462840 :          data_tmp = full_data(idata)
   12823      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12824      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12825      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12826      462840 :          idata = idata + 1
   12827      462840 :          data_tmp = full_data(idata)
   12828      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12829      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12830      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12831      462840 :          idata = idata + 1
   12832      462840 :          data_tmp = full_data(idata)
   12833      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12834      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12835      462840 :          pack_tmp = ISHFT(pack_tmp, -4)
   12836      462840 :          idata = idata + 1
   12837      462840 :          data_tmp = full_data(idata)
   12838      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12839      462840 :          data_tmp = IAND(data_tmp, mask_left(4))
   12840      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12841      462840 :          ipack = ipack + 1
   12842      462840 :          packed_data(ipack) = pack_tmp
   12843      462840 :          data_tmp = full_data(idata)
   12844      462840 :          pack_tmp = ISHFT(data_tmp, 49)
   12845      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12846      462840 :          idata = idata + 1
   12847      462840 :          data_tmp = full_data(idata)
   12848      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12849      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12850      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12851      462840 :          idata = idata + 1
   12852      462840 :          data_tmp = full_data(idata)
   12853      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12854      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12855      462840 :          pack_tmp = ISHFT(pack_tmp, -11)
   12856      462840 :          idata = idata + 1
   12857      462840 :          data_tmp = full_data(idata)
   12858      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12859      462840 :          data_tmp = IAND(data_tmp, mask_left(11))
   12860      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12861      462840 :          ipack = ipack + 1
   12862      462840 :          packed_data(ipack) = pack_tmp
   12863      462840 :          data_tmp = full_data(idata)
   12864      462840 :          pack_tmp = ISHFT(data_tmp, 56)
   12865      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12866      462840 :          idata = idata + 1
   12867      462840 :          data_tmp = full_data(idata)
   12868      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12869      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12870      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12871      462840 :          idata = idata + 1
   12872      462840 :          data_tmp = full_data(idata)
   12873      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12874      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12875      462840 :          pack_tmp = ISHFT(pack_tmp, -18)
   12876      462840 :          idata = idata + 1
   12877      462840 :          data_tmp = full_data(idata)
   12878      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12879      462840 :          data_tmp = IAND(data_tmp, mask_left(18))
   12880      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12881      462840 :          ipack = ipack + 1
   12882      462840 :          packed_data(ipack) = pack_tmp
   12883      462840 :          data_tmp = full_data(idata)
   12884      462840 :          pack_tmp = ISHFT(data_tmp, 63)
   12885      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12886      462840 :          idata = idata + 1
   12887      462840 :          data_tmp = full_data(idata)
   12888      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12889      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12890      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12891      462840 :          idata = idata + 1
   12892      462840 :          data_tmp = full_data(idata)
   12893      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12894      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12895      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12896      462840 :          idata = idata + 1
   12897      462840 :          data_tmp = full_data(idata)
   12898      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12899      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12900      462840 :          pack_tmp = ISHFT(pack_tmp, -6)
   12901      462840 :          idata = idata + 1
   12902      462840 :          data_tmp = full_data(idata)
   12903      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12904      462840 :          data_tmp = IAND(data_tmp, mask_left(6))
   12905      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12906      462840 :          ipack = ipack + 1
   12907      462840 :          packed_data(ipack) = pack_tmp
   12908      462840 :          data_tmp = full_data(idata)
   12909      462840 :          pack_tmp = ISHFT(data_tmp, 51)
   12910      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12911      462840 :          idata = idata + 1
   12912      462840 :          data_tmp = full_data(idata)
   12913      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12914      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12915      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12916      462840 :          idata = idata + 1
   12917      462840 :          data_tmp = full_data(idata)
   12918      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12919      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12920      462840 :          pack_tmp = ISHFT(pack_tmp, -13)
   12921      462840 :          idata = idata + 1
   12922      462840 :          data_tmp = full_data(idata)
   12923      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12924      462840 :          data_tmp = IAND(data_tmp, mask_left(13))
   12925      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12926      462840 :          ipack = ipack + 1
   12927      462840 :          packed_data(ipack) = pack_tmp
   12928      462840 :          data_tmp = full_data(idata)
   12929      462840 :          pack_tmp = ISHFT(data_tmp, 58)
   12930      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12931      462840 :          idata = idata + 1
   12932      462840 :          data_tmp = full_data(idata)
   12933      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12934      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12935      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12936      462840 :          idata = idata + 1
   12937      462840 :          data_tmp = full_data(idata)
   12938      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12939      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12940      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12941      462840 :          idata = idata + 1
   12942      462840 :          data_tmp = full_data(idata)
   12943      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12944      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12945      462840 :          pack_tmp = ISHFT(pack_tmp, -1)
   12946      462840 :          idata = idata + 1
   12947      462840 :          data_tmp = full_data(idata)
   12948      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12949      462840 :          data_tmp = IAND(data_tmp, mask_left(1))
   12950      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12951      462840 :          ipack = ipack + 1
   12952      462840 :          packed_data(ipack) = pack_tmp
   12953      462840 :          data_tmp = full_data(idata)
   12954      462840 :          pack_tmp = ISHFT(data_tmp, 46)
   12955      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12956      462840 :          idata = idata + 1
   12957      462840 :          data_tmp = full_data(idata)
   12958      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12959      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12960      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12961      462840 :          idata = idata + 1
   12962      462840 :          data_tmp = full_data(idata)
   12963      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12964      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12965      462840 :          pack_tmp = ISHFT(pack_tmp, -8)
   12966      462840 :          idata = idata + 1
   12967      462840 :          data_tmp = full_data(idata)
   12968      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12969      462840 :          data_tmp = IAND(data_tmp, mask_left(8))
   12970      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12971      462840 :          ipack = ipack + 1
   12972      462840 :          packed_data(ipack) = pack_tmp
   12973      462840 :          data_tmp = full_data(idata)
   12974      462840 :          pack_tmp = ISHFT(data_tmp, 53)
   12975      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12976      462840 :          idata = idata + 1
   12977      462840 :          data_tmp = full_data(idata)
   12978      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12979      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12980      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12981      462840 :          idata = idata + 1
   12982      462840 :          data_tmp = full_data(idata)
   12983      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12984      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12985      462840 :          pack_tmp = ISHFT(pack_tmp, -15)
   12986      462840 :          idata = idata + 1
   12987      462840 :          data_tmp = full_data(idata)
   12988      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12989      462840 :          data_tmp = IAND(data_tmp, mask_left(15))
   12990      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12991      462840 :          ipack = ipack + 1
   12992      462840 :          packed_data(ipack) = pack_tmp
   12993      462840 :          data_tmp = full_data(idata)
   12994      462840 :          pack_tmp = ISHFT(data_tmp, 60)
   12995      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   12996      462840 :          idata = idata + 1
   12997      462840 :          data_tmp = full_data(idata)
   12998      462840 :          data_tmp = ISHFT(data_tmp, 45)
   12999      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13000      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13001      462840 :          idata = idata + 1
   13002      462840 :          data_tmp = full_data(idata)
   13003      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13004      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13005      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13006      462840 :          idata = idata + 1
   13007      462840 :          data_tmp = full_data(idata)
   13008      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13009      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13010      462840 :          pack_tmp = ISHFT(pack_tmp, -3)
   13011      462840 :          idata = idata + 1
   13012      462840 :          data_tmp = full_data(idata)
   13013      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13014      462840 :          data_tmp = IAND(data_tmp, mask_left(3))
   13015      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13016      462840 :          ipack = ipack + 1
   13017      462840 :          packed_data(ipack) = pack_tmp
   13018      462840 :          data_tmp = full_data(idata)
   13019      462840 :          pack_tmp = ISHFT(data_tmp, 48)
   13020      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13021      462840 :          idata = idata + 1
   13022      462840 :          data_tmp = full_data(idata)
   13023      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13024      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13025      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13026      462840 :          idata = idata + 1
   13027      462840 :          data_tmp = full_data(idata)
   13028      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13029      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13030      462840 :          pack_tmp = ISHFT(pack_tmp, -10)
   13031      462840 :          idata = idata + 1
   13032      462840 :          data_tmp = full_data(idata)
   13033      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13034      462840 :          data_tmp = IAND(data_tmp, mask_left(10))
   13035      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13036      462840 :          ipack = ipack + 1
   13037      462840 :          packed_data(ipack) = pack_tmp
   13038      462840 :          data_tmp = full_data(idata)
   13039      462840 :          pack_tmp = ISHFT(data_tmp, 55)
   13040      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13041      462840 :          idata = idata + 1
   13042      462840 :          data_tmp = full_data(idata)
   13043      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13044      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13045      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13046      462840 :          idata = idata + 1
   13047      462840 :          data_tmp = full_data(idata)
   13048      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13049      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13050      462840 :          pack_tmp = ISHFT(pack_tmp, -17)
   13051      462840 :          idata = idata + 1
   13052      462840 :          data_tmp = full_data(idata)
   13053      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13054      462840 :          data_tmp = IAND(data_tmp, mask_left(17))
   13055      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13056      462840 :          ipack = ipack + 1
   13057      462840 :          packed_data(ipack) = pack_tmp
   13058      462840 :          data_tmp = full_data(idata)
   13059      462840 :          pack_tmp = ISHFT(data_tmp, 62)
   13060      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13061      462840 :          idata = idata + 1
   13062      462840 :          data_tmp = full_data(idata)
   13063      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13064      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13065      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13066      462840 :          idata = idata + 1
   13067      462840 :          data_tmp = full_data(idata)
   13068      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13069      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13070      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13071      462840 :          idata = idata + 1
   13072      462840 :          data_tmp = full_data(idata)
   13073      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13074      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13075      462840 :          pack_tmp = ISHFT(pack_tmp, -5)
   13076      462840 :          idata = idata + 1
   13077      462840 :          data_tmp = full_data(idata)
   13078      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13079      462840 :          data_tmp = IAND(data_tmp, mask_left(5))
   13080      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13081      462840 :          ipack = ipack + 1
   13082      462840 :          packed_data(ipack) = pack_tmp
   13083      462840 :          data_tmp = full_data(idata)
   13084      462840 :          pack_tmp = ISHFT(data_tmp, 50)
   13085      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13086      462840 :          idata = idata + 1
   13087      462840 :          data_tmp = full_data(idata)
   13088      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13089      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13090      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13091      462840 :          idata = idata + 1
   13092      462840 :          data_tmp = full_data(idata)
   13093      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13094      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13095      462840 :          pack_tmp = ISHFT(pack_tmp, -12)
   13096      462840 :          idata = idata + 1
   13097      462840 :          data_tmp = full_data(idata)
   13098      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13099      462840 :          data_tmp = IAND(data_tmp, mask_left(12))
   13100      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13101      462840 :          ipack = ipack + 1
   13102      462840 :          packed_data(ipack) = pack_tmp
   13103      462840 :          data_tmp = full_data(idata)
   13104      462840 :          pack_tmp = ISHFT(data_tmp, 57)
   13105      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13106      462840 :          idata = idata + 1
   13107      462840 :          data_tmp = full_data(idata)
   13108      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13109      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13110      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13111      462840 :          idata = idata + 1
   13112      462840 :          data_tmp = full_data(idata)
   13113      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13114      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13115      462840 :          pack_tmp = ISHFT(pack_tmp, -19)
   13116      462840 :          idata = idata + 1
   13117      462840 :          data_tmp = full_data(idata)
   13118      462840 :          data_tmp = ISHFT(data_tmp, 45)
   13119      462840 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13120             :          pack_tmp = ISHFT(pack_tmp, 0)
   13121      462840 :          pack_tmp = ISHFT(pack_tmp, 0)
   13122      462840 :          ipack = ipack + 1
   13123      462934 :          packed_data(ipack) = pack_tmp
   13124             :       END DO
   13125       30451 :       IF (Ndata_rep < Ndata) THEN
   13126        2768 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13127             :       END IF
   13128       30451 :    END SUBROUTINE ints2bits_19
   13129             : 
   13130             : ! **************************************************************************************************
   13131             : !> \brief ...
   13132             : !> \param Ndata ...
   13133             : !> \param packed_data ...
   13134             : !> \param full_data ...
   13135             : ! **************************************************************************************************
   13136      154065 :    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      154065 :       ipack = 0
   13147      154065 :       idata = 0
   13148      154065 :       pack_tmp = 0
   13149      154065 :       Ndata_rep = (Ndata/64)*64
   13150      154065 :       DO kdata = 1, Ndata_rep, 64
   13151     2260912 :          idata = idata + 1
   13152     2260912 :          data_tmp = ISHFT(pack_tmp, 19)
   13153     2260912 :          ipack = ipack + 1
   13154     2260912 :          pack_tmp = packed_data(ipack)
   13155     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   13156     2260912 :          pack_tmp = ISHFT(pack_tmp, -19)
   13157     2260912 :          idata = idata + 1
   13158     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13159     2260912 :          full_data(idata) = data_tmp
   13160     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13161     2260912 :          idata = idata + 1
   13162     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13163     2260912 :          full_data(idata) = data_tmp
   13164     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13165     2260912 :          idata = idata + 1
   13166     2260912 :          data_tmp = ISHFT(pack_tmp, 12)
   13167     2260912 :          ipack = ipack + 1
   13168     2260912 :          pack_tmp = packed_data(ipack)
   13169     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13170     2260912 :          pack_tmp = ISHFT(pack_tmp, -12)
   13171     2260912 :          idata = idata + 1
   13172     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13173     2260912 :          full_data(idata) = data_tmp
   13174     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13175     2260912 :          idata = idata + 1
   13176     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13177     2260912 :          full_data(idata) = data_tmp
   13178     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13179     2260912 :          idata = idata + 1
   13180     2260912 :          data_tmp = ISHFT(pack_tmp, 5)
   13181     2260912 :          ipack = ipack + 1
   13182     2260912 :          pack_tmp = packed_data(ipack)
   13183     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   13184     2260912 :          pack_tmp = ISHFT(pack_tmp, -5)
   13185     2260912 :          idata = idata + 1
   13186     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13187     2260912 :          full_data(idata) = data_tmp
   13188     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13189     2260912 :          idata = idata + 1
   13190     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13191     2260912 :          full_data(idata) = data_tmp
   13192     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13193     2260912 :          idata = idata + 1
   13194     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13195     2260912 :          full_data(idata) = data_tmp
   13196     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13197     2260912 :          idata = idata + 1
   13198     2260912 :          data_tmp = ISHFT(pack_tmp, 17)
   13199     2260912 :          ipack = ipack + 1
   13200     2260912 :          pack_tmp = packed_data(ipack)
   13201     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   13202     2260912 :          pack_tmp = ISHFT(pack_tmp, -17)
   13203     2260912 :          idata = idata + 1
   13204     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13205     2260912 :          full_data(idata) = data_tmp
   13206     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13207     2260912 :          idata = idata + 1
   13208     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13209     2260912 :          full_data(idata) = data_tmp
   13210     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13211     2260912 :          idata = idata + 1
   13212     2260912 :          data_tmp = ISHFT(pack_tmp, 10)
   13213     2260912 :          ipack = ipack + 1
   13214     2260912 :          pack_tmp = packed_data(ipack)
   13215     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   13216     2260912 :          pack_tmp = ISHFT(pack_tmp, -10)
   13217     2260912 :          idata = idata + 1
   13218     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13219     2260912 :          full_data(idata) = data_tmp
   13220     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13221     2260912 :          idata = idata + 1
   13222     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13223     2260912 :          full_data(idata) = data_tmp
   13224     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13225     2260912 :          idata = idata + 1
   13226     2260912 :          data_tmp = ISHFT(pack_tmp, 3)
   13227     2260912 :          ipack = ipack + 1
   13228     2260912 :          pack_tmp = packed_data(ipack)
   13229     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   13230     2260912 :          pack_tmp = ISHFT(pack_tmp, -3)
   13231     2260912 :          idata = idata + 1
   13232     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13233     2260912 :          full_data(idata) = data_tmp
   13234     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13235     2260912 :          idata = idata + 1
   13236     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13237     2260912 :          full_data(idata) = data_tmp
   13238     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13239     2260912 :          idata = idata + 1
   13240     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13241     2260912 :          full_data(idata) = data_tmp
   13242     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13243     2260912 :          idata = idata + 1
   13244     2260912 :          data_tmp = ISHFT(pack_tmp, 15)
   13245     2260912 :          ipack = ipack + 1
   13246     2260912 :          pack_tmp = packed_data(ipack)
   13247     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   13248     2260912 :          pack_tmp = ISHFT(pack_tmp, -15)
   13249     2260912 :          idata = idata + 1
   13250     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13251     2260912 :          full_data(idata) = data_tmp
   13252     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13253     2260912 :          idata = idata + 1
   13254     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13255     2260912 :          full_data(idata) = data_tmp
   13256     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13257     2260912 :          idata = idata + 1
   13258     2260912 :          data_tmp = ISHFT(pack_tmp, 8)
   13259     2260912 :          ipack = ipack + 1
   13260     2260912 :          pack_tmp = packed_data(ipack)
   13261     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13262     2260912 :          pack_tmp = ISHFT(pack_tmp, -8)
   13263     2260912 :          idata = idata + 1
   13264     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13265     2260912 :          full_data(idata) = data_tmp
   13266     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13267     2260912 :          idata = idata + 1
   13268     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13269     2260912 :          full_data(idata) = data_tmp
   13270     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13271     2260912 :          idata = idata + 1
   13272     2260912 :          data_tmp = ISHFT(pack_tmp, 1)
   13273     2260912 :          ipack = ipack + 1
   13274     2260912 :          pack_tmp = packed_data(ipack)
   13275     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   13276     2260912 :          pack_tmp = ISHFT(pack_tmp, -1)
   13277     2260912 :          idata = idata + 1
   13278     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13279     2260912 :          full_data(idata) = data_tmp
   13280     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13281     2260912 :          idata = idata + 1
   13282     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13283     2260912 :          full_data(idata) = data_tmp
   13284     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13285     2260912 :          idata = idata + 1
   13286     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13287     2260912 :          full_data(idata) = data_tmp
   13288     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13289     2260912 :          idata = idata + 1
   13290     2260912 :          data_tmp = ISHFT(pack_tmp, 13)
   13291     2260912 :          ipack = ipack + 1
   13292     2260912 :          pack_tmp = packed_data(ipack)
   13293     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   13294     2260912 :          pack_tmp = ISHFT(pack_tmp, -13)
   13295     2260912 :          idata = idata + 1
   13296     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13297     2260912 :          full_data(idata) = data_tmp
   13298     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13299     2260912 :          idata = idata + 1
   13300     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13301     2260912 :          full_data(idata) = data_tmp
   13302     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13303     2260912 :          idata = idata + 1
   13304     2260912 :          data_tmp = ISHFT(pack_tmp, 6)
   13305     2260912 :          ipack = ipack + 1
   13306     2260912 :          pack_tmp = packed_data(ipack)
   13307     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   13308     2260912 :          pack_tmp = ISHFT(pack_tmp, -6)
   13309     2260912 :          idata = idata + 1
   13310     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13311     2260912 :          full_data(idata) = data_tmp
   13312     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13313     2260912 :          idata = idata + 1
   13314     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13315     2260912 :          full_data(idata) = data_tmp
   13316     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13317     2260912 :          idata = idata + 1
   13318     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13319     2260912 :          full_data(idata) = data_tmp
   13320     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13321     2260912 :          idata = idata + 1
   13322     2260912 :          data_tmp = ISHFT(pack_tmp, 18)
   13323     2260912 :          ipack = ipack + 1
   13324     2260912 :          pack_tmp = packed_data(ipack)
   13325     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   13326     2260912 :          pack_tmp = ISHFT(pack_tmp, -18)
   13327     2260912 :          idata = idata + 1
   13328     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13329     2260912 :          full_data(idata) = data_tmp
   13330     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13331     2260912 :          idata = idata + 1
   13332     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13333     2260912 :          full_data(idata) = data_tmp
   13334     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13335     2260912 :          idata = idata + 1
   13336     2260912 :          data_tmp = ISHFT(pack_tmp, 11)
   13337     2260912 :          ipack = ipack + 1
   13338     2260912 :          pack_tmp = packed_data(ipack)
   13339     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   13340     2260912 :          pack_tmp = ISHFT(pack_tmp, -11)
   13341     2260912 :          idata = idata + 1
   13342     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13343     2260912 :          full_data(idata) = data_tmp
   13344     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13345     2260912 :          idata = idata + 1
   13346     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13347     2260912 :          full_data(idata) = data_tmp
   13348     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13349     2260912 :          idata = idata + 1
   13350     2260912 :          data_tmp = ISHFT(pack_tmp, 4)
   13351     2260912 :          ipack = ipack + 1
   13352     2260912 :          pack_tmp = packed_data(ipack)
   13353     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13354     2260912 :          pack_tmp = ISHFT(pack_tmp, -4)
   13355     2260912 :          idata = idata + 1
   13356     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13357     2260912 :          full_data(idata) = data_tmp
   13358     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13359     2260912 :          idata = idata + 1
   13360     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13361     2260912 :          full_data(idata) = data_tmp
   13362     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13363     2260912 :          idata = idata + 1
   13364     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13365     2260912 :          full_data(idata) = data_tmp
   13366     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13367     2260912 :          idata = idata + 1
   13368     2260912 :          data_tmp = ISHFT(pack_tmp, 16)
   13369     2260912 :          ipack = ipack + 1
   13370     2260912 :          pack_tmp = packed_data(ipack)
   13371     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13372     2260912 :          pack_tmp = ISHFT(pack_tmp, -16)
   13373     2260912 :          idata = idata + 1
   13374     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13375     2260912 :          full_data(idata) = data_tmp
   13376     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13377     2260912 :          idata = idata + 1
   13378     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13379     2260912 :          full_data(idata) = data_tmp
   13380     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13381     2260912 :          idata = idata + 1
   13382     2260912 :          data_tmp = ISHFT(pack_tmp, 9)
   13383     2260912 :          ipack = ipack + 1
   13384     2260912 :          pack_tmp = packed_data(ipack)
   13385     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   13386     2260912 :          pack_tmp = ISHFT(pack_tmp, -9)
   13387     2260912 :          idata = idata + 1
   13388     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13389     2260912 :          full_data(idata) = data_tmp
   13390     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13391     2260912 :          idata = idata + 1
   13392     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13393     2260912 :          full_data(idata) = data_tmp
   13394     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13395     2260912 :          idata = idata + 1
   13396     2260912 :          data_tmp = ISHFT(pack_tmp, 2)
   13397     2260912 :          ipack = ipack + 1
   13398     2260912 :          pack_tmp = packed_data(ipack)
   13399     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   13400     2260912 :          pack_tmp = ISHFT(pack_tmp, -2)
   13401     2260912 :          idata = idata + 1
   13402     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13403     2260912 :          full_data(idata) = data_tmp
   13404     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13405     2260912 :          idata = idata + 1
   13406     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13407     2260912 :          full_data(idata) = data_tmp
   13408     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13409     2260912 :          idata = idata + 1
   13410     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13411     2260912 :          full_data(idata) = data_tmp
   13412     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13413     2260912 :          idata = idata + 1
   13414     2260912 :          data_tmp = ISHFT(pack_tmp, 14)
   13415     2260912 :          ipack = ipack + 1
   13416     2260912 :          pack_tmp = packed_data(ipack)
   13417     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   13418     2260912 :          pack_tmp = ISHFT(pack_tmp, -14)
   13419     2260912 :          idata = idata + 1
   13420     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13421     2260912 :          full_data(idata) = data_tmp
   13422     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13423     2260912 :          idata = idata + 1
   13424     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13425     2260912 :          full_data(idata) = data_tmp
   13426     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13427     2260912 :          idata = idata + 1
   13428     2260912 :          data_tmp = ISHFT(pack_tmp, 7)
   13429     2260912 :          ipack = ipack + 1
   13430     2260912 :          pack_tmp = packed_data(ipack)
   13431     2260912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   13432     2260912 :          pack_tmp = ISHFT(pack_tmp, -7)
   13433     2260912 :          idata = idata + 1
   13434     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13435     2260912 :          full_data(idata) = data_tmp
   13436     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13437     2260912 :          idata = idata + 1
   13438     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13439     2260912 :          full_data(idata) = data_tmp
   13440     2260912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13441     2260912 :          idata = idata + 1
   13442     2260912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13443     2260912 :          full_data(idata) = data_tmp
   13444     2261685 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13445             :       END DO
   13446      154065 :       IF (Ndata_rep < Ndata) THEN
   13447       23200 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13448             :       END IF
   13449      154065 :    END SUBROUTINE bits2ints_19
   13450             : 
   13451             : ! **************************************************************************************************
   13452             : !> \brief ...
   13453             : !> \param Ndata ...
   13454             : !> \param packed_data ...
   13455             : !> \param full_data ...
   13456             : ! **************************************************************************************************
   13457       41404 :    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       41404 :       idata = 0
   13468       41404 :       ipack = 0
   13469       41404 :       Ndata_rep = (Ndata/64)*64
   13470       41404 :       DO kdata = 1, Ndata_rep, 64
   13471      592298 :          pack_tmp = 0
   13472      592298 :          idata = idata + 1
   13473      592298 :          data_tmp = full_data(idata)
   13474      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13475      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13476      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13477      592298 :          idata = idata + 1
   13478      592298 :          data_tmp = full_data(idata)
   13479      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13480      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13481      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13482      592298 :          idata = idata + 1
   13483      592298 :          data_tmp = full_data(idata)
   13484      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13485      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13486      592298 :          pack_tmp = ISHFT(pack_tmp, -4)
   13487      592298 :          idata = idata + 1
   13488      592298 :          data_tmp = full_data(idata)
   13489      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13490      592298 :          data_tmp = IAND(data_tmp, mask_left(4))
   13491      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13492      592298 :          ipack = ipack + 1
   13493      592298 :          packed_data(ipack) = pack_tmp
   13494      592298 :          data_tmp = full_data(idata)
   13495      592298 :          pack_tmp = ISHFT(data_tmp, 48)
   13496      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13497      592298 :          idata = idata + 1
   13498      592298 :          data_tmp = full_data(idata)
   13499      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13500      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13501      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13502      592298 :          idata = idata + 1
   13503      592298 :          data_tmp = full_data(idata)
   13504      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13505      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13506      592298 :          pack_tmp = ISHFT(pack_tmp, -8)
   13507      592298 :          idata = idata + 1
   13508      592298 :          data_tmp = full_data(idata)
   13509      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13510      592298 :          data_tmp = IAND(data_tmp, mask_left(8))
   13511      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13512      592298 :          ipack = ipack + 1
   13513      592298 :          packed_data(ipack) = pack_tmp
   13514      592298 :          data_tmp = full_data(idata)
   13515      592298 :          pack_tmp = ISHFT(data_tmp, 52)
   13516      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13517      592298 :          idata = idata + 1
   13518      592298 :          data_tmp = full_data(idata)
   13519      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13520      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13521      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13522      592298 :          idata = idata + 1
   13523      592298 :          data_tmp = full_data(idata)
   13524      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13525      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13526      592298 :          pack_tmp = ISHFT(pack_tmp, -12)
   13527      592298 :          idata = idata + 1
   13528      592298 :          data_tmp = full_data(idata)
   13529      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13530      592298 :          data_tmp = IAND(data_tmp, mask_left(12))
   13531      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13532      592298 :          ipack = ipack + 1
   13533      592298 :          packed_data(ipack) = pack_tmp
   13534      592298 :          data_tmp = full_data(idata)
   13535      592298 :          pack_tmp = ISHFT(data_tmp, 56)
   13536      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13537      592298 :          idata = idata + 1
   13538      592298 :          data_tmp = full_data(idata)
   13539      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13540      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13541      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13542      592298 :          idata = idata + 1
   13543      592298 :          data_tmp = full_data(idata)
   13544      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13545      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13546      592298 :          pack_tmp = ISHFT(pack_tmp, -16)
   13547      592298 :          idata = idata + 1
   13548      592298 :          data_tmp = full_data(idata)
   13549      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13550      592298 :          data_tmp = IAND(data_tmp, mask_left(16))
   13551      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13552      592298 :          ipack = ipack + 1
   13553      592298 :          packed_data(ipack) = pack_tmp
   13554      592298 :          data_tmp = full_data(idata)
   13555      592298 :          pack_tmp = ISHFT(data_tmp, 60)
   13556      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13557      592298 :          idata = idata + 1
   13558      592298 :          data_tmp = full_data(idata)
   13559      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13560      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13561      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13562      592298 :          idata = idata + 1
   13563      592298 :          data_tmp = full_data(idata)
   13564      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13565      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13566      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13567      592298 :          idata = idata + 1
   13568      592298 :          data_tmp = full_data(idata)
   13569      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13570      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13571      592298 :          pack_tmp = ISHFT(pack_tmp, 0)
   13572      592298 :          idata = idata + 1
   13573      592298 :          data_tmp = full_data(idata)
   13574             :          data_tmp = ISHFT(data_tmp, 44)
   13575      592298 :          data_tmp = IAND(data_tmp, mask_left(0))
   13576      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13577      592298 :          ipack = ipack + 1
   13578      592298 :          packed_data(ipack) = pack_tmp
   13579      592298 :          data_tmp = full_data(idata)
   13580      592298 :          pack_tmp = ISHFT(data_tmp, 44)
   13581      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13582      592298 :          idata = idata + 1
   13583      592298 :          data_tmp = full_data(idata)
   13584      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13585      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13586      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13587      592298 :          idata = idata + 1
   13588      592298 :          data_tmp = full_data(idata)
   13589      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13590      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13591      592298 :          pack_tmp = ISHFT(pack_tmp, -4)
   13592      592298 :          idata = idata + 1
   13593      592298 :          data_tmp = full_data(idata)
   13594      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13595      592298 :          data_tmp = IAND(data_tmp, mask_left(4))
   13596      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13597      592298 :          ipack = ipack + 1
   13598      592298 :          packed_data(ipack) = pack_tmp
   13599      592298 :          data_tmp = full_data(idata)
   13600      592298 :          pack_tmp = ISHFT(data_tmp, 48)
   13601      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13602      592298 :          idata = idata + 1
   13603      592298 :          data_tmp = full_data(idata)
   13604      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13605      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13606      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13607      592298 :          idata = idata + 1
   13608      592298 :          data_tmp = full_data(idata)
   13609      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13610      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13611      592298 :          pack_tmp = ISHFT(pack_tmp, -8)
   13612      592298 :          idata = idata + 1
   13613      592298 :          data_tmp = full_data(idata)
   13614      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13615      592298 :          data_tmp = IAND(data_tmp, mask_left(8))
   13616      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13617      592298 :          ipack = ipack + 1
   13618      592298 :          packed_data(ipack) = pack_tmp
   13619      592298 :          data_tmp = full_data(idata)
   13620      592298 :          pack_tmp = ISHFT(data_tmp, 52)
   13621      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13622      592298 :          idata = idata + 1
   13623      592298 :          data_tmp = full_data(idata)
   13624      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13625      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13626      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13627      592298 :          idata = idata + 1
   13628      592298 :          data_tmp = full_data(idata)
   13629      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13630      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13631      592298 :          pack_tmp = ISHFT(pack_tmp, -12)
   13632      592298 :          idata = idata + 1
   13633      592298 :          data_tmp = full_data(idata)
   13634      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13635      592298 :          data_tmp = IAND(data_tmp, mask_left(12))
   13636      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13637      592298 :          ipack = ipack + 1
   13638      592298 :          packed_data(ipack) = pack_tmp
   13639      592298 :          data_tmp = full_data(idata)
   13640      592298 :          pack_tmp = ISHFT(data_tmp, 56)
   13641      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13642      592298 :          idata = idata + 1
   13643      592298 :          data_tmp = full_data(idata)
   13644      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13645      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13646      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13647      592298 :          idata = idata + 1
   13648      592298 :          data_tmp = full_data(idata)
   13649      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13650      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13651      592298 :          pack_tmp = ISHFT(pack_tmp, -16)
   13652      592298 :          idata = idata + 1
   13653      592298 :          data_tmp = full_data(idata)
   13654      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13655      592298 :          data_tmp = IAND(data_tmp, mask_left(16))
   13656      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13657      592298 :          ipack = ipack + 1
   13658      592298 :          packed_data(ipack) = pack_tmp
   13659      592298 :          data_tmp = full_data(idata)
   13660      592298 :          pack_tmp = ISHFT(data_tmp, 60)
   13661      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13662      592298 :          idata = idata + 1
   13663      592298 :          data_tmp = full_data(idata)
   13664      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13665      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13666      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13667      592298 :          idata = idata + 1
   13668      592298 :          data_tmp = full_data(idata)
   13669      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13670      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13671      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13672      592298 :          idata = idata + 1
   13673      592298 :          data_tmp = full_data(idata)
   13674      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13675      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13676      592298 :          pack_tmp = ISHFT(pack_tmp, 0)
   13677      592298 :          idata = idata + 1
   13678      592298 :          data_tmp = full_data(idata)
   13679             :          data_tmp = ISHFT(data_tmp, 44)
   13680      592298 :          data_tmp = IAND(data_tmp, mask_left(0))
   13681      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13682      592298 :          ipack = ipack + 1
   13683      592298 :          packed_data(ipack) = pack_tmp
   13684      592298 :          data_tmp = full_data(idata)
   13685      592298 :          pack_tmp = ISHFT(data_tmp, 44)
   13686      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13687      592298 :          idata = idata + 1
   13688      592298 :          data_tmp = full_data(idata)
   13689      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13690      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13691      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13692      592298 :          idata = idata + 1
   13693      592298 :          data_tmp = full_data(idata)
   13694      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13695      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13696      592298 :          pack_tmp = ISHFT(pack_tmp, -4)
   13697      592298 :          idata = idata + 1
   13698      592298 :          data_tmp = full_data(idata)
   13699      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13700      592298 :          data_tmp = IAND(data_tmp, mask_left(4))
   13701      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13702      592298 :          ipack = ipack + 1
   13703      592298 :          packed_data(ipack) = pack_tmp
   13704      592298 :          data_tmp = full_data(idata)
   13705      592298 :          pack_tmp = ISHFT(data_tmp, 48)
   13706      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13707      592298 :          idata = idata + 1
   13708      592298 :          data_tmp = full_data(idata)
   13709      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13710      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13711      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13712      592298 :          idata = idata + 1
   13713      592298 :          data_tmp = full_data(idata)
   13714      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13715      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13716      592298 :          pack_tmp = ISHFT(pack_tmp, -8)
   13717      592298 :          idata = idata + 1
   13718      592298 :          data_tmp = full_data(idata)
   13719      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13720      592298 :          data_tmp = IAND(data_tmp, mask_left(8))
   13721      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13722      592298 :          ipack = ipack + 1
   13723      592298 :          packed_data(ipack) = pack_tmp
   13724      592298 :          data_tmp = full_data(idata)
   13725      592298 :          pack_tmp = ISHFT(data_tmp, 52)
   13726      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13727      592298 :          idata = idata + 1
   13728      592298 :          data_tmp = full_data(idata)
   13729      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13730      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13731      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13732      592298 :          idata = idata + 1
   13733      592298 :          data_tmp = full_data(idata)
   13734      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13735      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13736      592298 :          pack_tmp = ISHFT(pack_tmp, -12)
   13737      592298 :          idata = idata + 1
   13738      592298 :          data_tmp = full_data(idata)
   13739      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13740      592298 :          data_tmp = IAND(data_tmp, mask_left(12))
   13741      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13742      592298 :          ipack = ipack + 1
   13743      592298 :          packed_data(ipack) = pack_tmp
   13744      592298 :          data_tmp = full_data(idata)
   13745      592298 :          pack_tmp = ISHFT(data_tmp, 56)
   13746      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13747      592298 :          idata = idata + 1
   13748      592298 :          data_tmp = full_data(idata)
   13749      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13750      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13751      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13752      592298 :          idata = idata + 1
   13753      592298 :          data_tmp = full_data(idata)
   13754      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13755      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13756      592298 :          pack_tmp = ISHFT(pack_tmp, -16)
   13757      592298 :          idata = idata + 1
   13758      592298 :          data_tmp = full_data(idata)
   13759      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13760      592298 :          data_tmp = IAND(data_tmp, mask_left(16))
   13761      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13762      592298 :          ipack = ipack + 1
   13763      592298 :          packed_data(ipack) = pack_tmp
   13764      592298 :          data_tmp = full_data(idata)
   13765      592298 :          pack_tmp = ISHFT(data_tmp, 60)
   13766      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13767      592298 :          idata = idata + 1
   13768      592298 :          data_tmp = full_data(idata)
   13769      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13770      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13771      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13772      592298 :          idata = idata + 1
   13773      592298 :          data_tmp = full_data(idata)
   13774      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13775      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13776      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13777      592298 :          idata = idata + 1
   13778      592298 :          data_tmp = full_data(idata)
   13779      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13780      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13781      592298 :          pack_tmp = ISHFT(pack_tmp, 0)
   13782      592298 :          idata = idata + 1
   13783      592298 :          data_tmp = full_data(idata)
   13784             :          data_tmp = ISHFT(data_tmp, 44)
   13785      592298 :          data_tmp = IAND(data_tmp, mask_left(0))
   13786      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13787      592298 :          ipack = ipack + 1
   13788      592298 :          packed_data(ipack) = pack_tmp
   13789      592298 :          data_tmp = full_data(idata)
   13790      592298 :          pack_tmp = ISHFT(data_tmp, 44)
   13791      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13792      592298 :          idata = idata + 1
   13793      592298 :          data_tmp = full_data(idata)
   13794      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13795      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13796      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13797      592298 :          idata = idata + 1
   13798      592298 :          data_tmp = full_data(idata)
   13799      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13800      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13801      592298 :          pack_tmp = ISHFT(pack_tmp, -4)
   13802      592298 :          idata = idata + 1
   13803      592298 :          data_tmp = full_data(idata)
   13804      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13805      592298 :          data_tmp = IAND(data_tmp, mask_left(4))
   13806      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13807      592298 :          ipack = ipack + 1
   13808      592298 :          packed_data(ipack) = pack_tmp
   13809      592298 :          data_tmp = full_data(idata)
   13810      592298 :          pack_tmp = ISHFT(data_tmp, 48)
   13811      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13812      592298 :          idata = idata + 1
   13813      592298 :          data_tmp = full_data(idata)
   13814      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13815      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13816      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13817      592298 :          idata = idata + 1
   13818      592298 :          data_tmp = full_data(idata)
   13819      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13820      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13821      592298 :          pack_tmp = ISHFT(pack_tmp, -8)
   13822      592298 :          idata = idata + 1
   13823      592298 :          data_tmp = full_data(idata)
   13824      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13825      592298 :          data_tmp = IAND(data_tmp, mask_left(8))
   13826      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13827      592298 :          ipack = ipack + 1
   13828      592298 :          packed_data(ipack) = pack_tmp
   13829      592298 :          data_tmp = full_data(idata)
   13830      592298 :          pack_tmp = ISHFT(data_tmp, 52)
   13831      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13832      592298 :          idata = idata + 1
   13833      592298 :          data_tmp = full_data(idata)
   13834      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13835      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13836      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13837      592298 :          idata = idata + 1
   13838      592298 :          data_tmp = full_data(idata)
   13839      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13840      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13841      592298 :          pack_tmp = ISHFT(pack_tmp, -12)
   13842      592298 :          idata = idata + 1
   13843      592298 :          data_tmp = full_data(idata)
   13844      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13845      592298 :          data_tmp = IAND(data_tmp, mask_left(12))
   13846      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13847      592298 :          ipack = ipack + 1
   13848      592298 :          packed_data(ipack) = pack_tmp
   13849      592298 :          data_tmp = full_data(idata)
   13850      592298 :          pack_tmp = ISHFT(data_tmp, 56)
   13851      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13852      592298 :          idata = idata + 1
   13853      592298 :          data_tmp = full_data(idata)
   13854      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13855      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13856      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13857      592298 :          idata = idata + 1
   13858      592298 :          data_tmp = full_data(idata)
   13859      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13860      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13861      592298 :          pack_tmp = ISHFT(pack_tmp, -16)
   13862      592298 :          idata = idata + 1
   13863      592298 :          data_tmp = full_data(idata)
   13864      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13865      592298 :          data_tmp = IAND(data_tmp, mask_left(16))
   13866      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13867      592298 :          ipack = ipack + 1
   13868      592298 :          packed_data(ipack) = pack_tmp
   13869      592298 :          data_tmp = full_data(idata)
   13870      592298 :          pack_tmp = ISHFT(data_tmp, 60)
   13871      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13872      592298 :          idata = idata + 1
   13873      592298 :          data_tmp = full_data(idata)
   13874      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13875      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13876      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13877      592298 :          idata = idata + 1
   13878      592298 :          data_tmp = full_data(idata)
   13879      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13880      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13881      592298 :          pack_tmp = ISHFT(pack_tmp, -20)
   13882      592298 :          idata = idata + 1
   13883      592298 :          data_tmp = full_data(idata)
   13884      592298 :          data_tmp = ISHFT(data_tmp, 44)
   13885      592298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13886             :          pack_tmp = ISHFT(pack_tmp, 0)
   13887      592298 :          pack_tmp = ISHFT(pack_tmp, 0)
   13888      592298 :          ipack = ipack + 1
   13889      592685 :          packed_data(ipack) = pack_tmp
   13890             :       END DO
   13891       41404 :       IF (Ndata_rep < Ndata) THEN
   13892        7308 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13893             :       END IF
   13894       41404 :    END SUBROUTINE ints2bits_20
   13895             : 
   13896             : ! **************************************************************************************************
   13897             : !> \brief ...
   13898             : !> \param Ndata ...
   13899             : !> \param packed_data ...
   13900             : !> \param full_data ...
   13901             : ! **************************************************************************************************
   13902      283358 :    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      283358 :       ipack = 0
   13913      283358 :       idata = 0
   13914      283358 :       pack_tmp = 0
   13915      283358 :       Ndata_rep = (Ndata/64)*64
   13916      283358 :       DO kdata = 1, Ndata_rep, 64
   13917     3799329 :          idata = idata + 1
   13918     3799329 :          data_tmp = ISHFT(pack_tmp, 20)
   13919     3799329 :          ipack = ipack + 1
   13920     3799329 :          pack_tmp = packed_data(ipack)
   13921     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13922     3799329 :          pack_tmp = ISHFT(pack_tmp, -20)
   13923     3799329 :          idata = idata + 1
   13924     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13925     3799329 :          full_data(idata) = data_tmp
   13926     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13927     3799329 :          idata = idata + 1
   13928     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13929     3799329 :          full_data(idata) = data_tmp
   13930     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13931     3799329 :          idata = idata + 1
   13932     3799329 :          data_tmp = ISHFT(pack_tmp, 16)
   13933     3799329 :          ipack = ipack + 1
   13934     3799329 :          pack_tmp = packed_data(ipack)
   13935     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13936     3799329 :          pack_tmp = ISHFT(pack_tmp, -16)
   13937     3799329 :          idata = idata + 1
   13938     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13939     3799329 :          full_data(idata) = data_tmp
   13940     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13941     3799329 :          idata = idata + 1
   13942     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13943     3799329 :          full_data(idata) = data_tmp
   13944     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13945     3799329 :          idata = idata + 1
   13946     3799329 :          data_tmp = ISHFT(pack_tmp, 12)
   13947     3799329 :          ipack = ipack + 1
   13948     3799329 :          pack_tmp = packed_data(ipack)
   13949     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13950     3799329 :          pack_tmp = ISHFT(pack_tmp, -12)
   13951     3799329 :          idata = idata + 1
   13952     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13953     3799329 :          full_data(idata) = data_tmp
   13954     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13955     3799329 :          idata = idata + 1
   13956     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13957     3799329 :          full_data(idata) = data_tmp
   13958     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13959     3799329 :          idata = idata + 1
   13960     3799329 :          data_tmp = ISHFT(pack_tmp, 8)
   13961     3799329 :          ipack = ipack + 1
   13962     3799329 :          pack_tmp = packed_data(ipack)
   13963     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13964     3799329 :          pack_tmp = ISHFT(pack_tmp, -8)
   13965     3799329 :          idata = idata + 1
   13966     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13967     3799329 :          full_data(idata) = data_tmp
   13968     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13969     3799329 :          idata = idata + 1
   13970     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13971     3799329 :          full_data(idata) = data_tmp
   13972     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13973     3799329 :          idata = idata + 1
   13974     3799329 :          data_tmp = ISHFT(pack_tmp, 4)
   13975     3799329 :          ipack = ipack + 1
   13976     3799329 :          pack_tmp = packed_data(ipack)
   13977     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13978     3799329 :          pack_tmp = ISHFT(pack_tmp, -4)
   13979     3799329 :          idata = idata + 1
   13980     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13981     3799329 :          full_data(idata) = data_tmp
   13982     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13983     3799329 :          idata = idata + 1
   13984     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13985     3799329 :          full_data(idata) = data_tmp
   13986     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13987     3799329 :          idata = idata + 1
   13988     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13989     3799329 :          full_data(idata) = data_tmp
   13990     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13991     3799329 :          idata = idata + 1
   13992     3799329 :          data_tmp = ISHFT(pack_tmp, 20)
   13993     3799329 :          ipack = ipack + 1
   13994     3799329 :          pack_tmp = packed_data(ipack)
   13995     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13996     3799329 :          pack_tmp = ISHFT(pack_tmp, -20)
   13997     3799329 :          idata = idata + 1
   13998     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13999     3799329 :          full_data(idata) = data_tmp
   14000     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14001     3799329 :          idata = idata + 1
   14002     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14003     3799329 :          full_data(idata) = data_tmp
   14004     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14005     3799329 :          idata = idata + 1
   14006     3799329 :          data_tmp = ISHFT(pack_tmp, 16)
   14007     3799329 :          ipack = ipack + 1
   14008     3799329 :          pack_tmp = packed_data(ipack)
   14009     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14010     3799329 :          pack_tmp = ISHFT(pack_tmp, -16)
   14011     3799329 :          idata = idata + 1
   14012     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14013     3799329 :          full_data(idata) = data_tmp
   14014     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14015     3799329 :          idata = idata + 1
   14016     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14017     3799329 :          full_data(idata) = data_tmp
   14018     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14019     3799329 :          idata = idata + 1
   14020     3799329 :          data_tmp = ISHFT(pack_tmp, 12)
   14021     3799329 :          ipack = ipack + 1
   14022     3799329 :          pack_tmp = packed_data(ipack)
   14023     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14024     3799329 :          pack_tmp = ISHFT(pack_tmp, -12)
   14025     3799329 :          idata = idata + 1
   14026     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14027     3799329 :          full_data(idata) = data_tmp
   14028     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14029     3799329 :          idata = idata + 1
   14030     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14031     3799329 :          full_data(idata) = data_tmp
   14032     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14033     3799329 :          idata = idata + 1
   14034     3799329 :          data_tmp = ISHFT(pack_tmp, 8)
   14035     3799329 :          ipack = ipack + 1
   14036     3799329 :          pack_tmp = packed_data(ipack)
   14037     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14038     3799329 :          pack_tmp = ISHFT(pack_tmp, -8)
   14039     3799329 :          idata = idata + 1
   14040     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14041     3799329 :          full_data(idata) = data_tmp
   14042     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14043     3799329 :          idata = idata + 1
   14044     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14045     3799329 :          full_data(idata) = data_tmp
   14046     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14047     3799329 :          idata = idata + 1
   14048     3799329 :          data_tmp = ISHFT(pack_tmp, 4)
   14049     3799329 :          ipack = ipack + 1
   14050     3799329 :          pack_tmp = packed_data(ipack)
   14051     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14052     3799329 :          pack_tmp = ISHFT(pack_tmp, -4)
   14053     3799329 :          idata = idata + 1
   14054     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14055     3799329 :          full_data(idata) = data_tmp
   14056     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14057     3799329 :          idata = idata + 1
   14058     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14059     3799329 :          full_data(idata) = data_tmp
   14060     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14061     3799329 :          idata = idata + 1
   14062     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14063     3799329 :          full_data(idata) = data_tmp
   14064     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14065     3799329 :          idata = idata + 1
   14066     3799329 :          data_tmp = ISHFT(pack_tmp, 20)
   14067     3799329 :          ipack = ipack + 1
   14068     3799329 :          pack_tmp = packed_data(ipack)
   14069     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14070     3799329 :          pack_tmp = ISHFT(pack_tmp, -20)
   14071     3799329 :          idata = idata + 1
   14072     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14073     3799329 :          full_data(idata) = data_tmp
   14074     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14075     3799329 :          idata = idata + 1
   14076     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14077     3799329 :          full_data(idata) = data_tmp
   14078     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14079     3799329 :          idata = idata + 1
   14080     3799329 :          data_tmp = ISHFT(pack_tmp, 16)
   14081     3799329 :          ipack = ipack + 1
   14082     3799329 :          pack_tmp = packed_data(ipack)
   14083     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14084     3799329 :          pack_tmp = ISHFT(pack_tmp, -16)
   14085     3799329 :          idata = idata + 1
   14086     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14087     3799329 :          full_data(idata) = data_tmp
   14088     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14089     3799329 :          idata = idata + 1
   14090     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14091     3799329 :          full_data(idata) = data_tmp
   14092     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14093     3799329 :          idata = idata + 1
   14094     3799329 :          data_tmp = ISHFT(pack_tmp, 12)
   14095     3799329 :          ipack = ipack + 1
   14096     3799329 :          pack_tmp = packed_data(ipack)
   14097     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14098     3799329 :          pack_tmp = ISHFT(pack_tmp, -12)
   14099     3799329 :          idata = idata + 1
   14100     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14101     3799329 :          full_data(idata) = data_tmp
   14102     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14103     3799329 :          idata = idata + 1
   14104     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14105     3799329 :          full_data(idata) = data_tmp
   14106     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14107     3799329 :          idata = idata + 1
   14108     3799329 :          data_tmp = ISHFT(pack_tmp, 8)
   14109     3799329 :          ipack = ipack + 1
   14110     3799329 :          pack_tmp = packed_data(ipack)
   14111     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14112     3799329 :          pack_tmp = ISHFT(pack_tmp, -8)
   14113     3799329 :          idata = idata + 1
   14114     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14115     3799329 :          full_data(idata) = data_tmp
   14116     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14117     3799329 :          idata = idata + 1
   14118     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14119     3799329 :          full_data(idata) = data_tmp
   14120     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14121     3799329 :          idata = idata + 1
   14122     3799329 :          data_tmp = ISHFT(pack_tmp, 4)
   14123     3799329 :          ipack = ipack + 1
   14124     3799329 :          pack_tmp = packed_data(ipack)
   14125     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14126     3799329 :          pack_tmp = ISHFT(pack_tmp, -4)
   14127     3799329 :          idata = idata + 1
   14128     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14129     3799329 :          full_data(idata) = data_tmp
   14130     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14131     3799329 :          idata = idata + 1
   14132     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14133     3799329 :          full_data(idata) = data_tmp
   14134     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14135     3799329 :          idata = idata + 1
   14136     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14137     3799329 :          full_data(idata) = data_tmp
   14138     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14139     3799329 :          idata = idata + 1
   14140     3799329 :          data_tmp = ISHFT(pack_tmp, 20)
   14141     3799329 :          ipack = ipack + 1
   14142     3799329 :          pack_tmp = packed_data(ipack)
   14143     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14144     3799329 :          pack_tmp = ISHFT(pack_tmp, -20)
   14145     3799329 :          idata = idata + 1
   14146     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14147     3799329 :          full_data(idata) = data_tmp
   14148     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14149     3799329 :          idata = idata + 1
   14150     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14151     3799329 :          full_data(idata) = data_tmp
   14152     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14153     3799329 :          idata = idata + 1
   14154     3799329 :          data_tmp = ISHFT(pack_tmp, 16)
   14155     3799329 :          ipack = ipack + 1
   14156     3799329 :          pack_tmp = packed_data(ipack)
   14157     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14158     3799329 :          pack_tmp = ISHFT(pack_tmp, -16)
   14159     3799329 :          idata = idata + 1
   14160     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14161     3799329 :          full_data(idata) = data_tmp
   14162     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14163     3799329 :          idata = idata + 1
   14164     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14165     3799329 :          full_data(idata) = data_tmp
   14166     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14167     3799329 :          idata = idata + 1
   14168     3799329 :          data_tmp = ISHFT(pack_tmp, 12)
   14169     3799329 :          ipack = ipack + 1
   14170     3799329 :          pack_tmp = packed_data(ipack)
   14171     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14172     3799329 :          pack_tmp = ISHFT(pack_tmp, -12)
   14173     3799329 :          idata = idata + 1
   14174     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14175     3799329 :          full_data(idata) = data_tmp
   14176     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14177     3799329 :          idata = idata + 1
   14178     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14179     3799329 :          full_data(idata) = data_tmp
   14180     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14181     3799329 :          idata = idata + 1
   14182     3799329 :          data_tmp = ISHFT(pack_tmp, 8)
   14183     3799329 :          ipack = ipack + 1
   14184     3799329 :          pack_tmp = packed_data(ipack)
   14185     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14186     3799329 :          pack_tmp = ISHFT(pack_tmp, -8)
   14187     3799329 :          idata = idata + 1
   14188     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14189     3799329 :          full_data(idata) = data_tmp
   14190     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14191     3799329 :          idata = idata + 1
   14192     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14193     3799329 :          full_data(idata) = data_tmp
   14194     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14195     3799329 :          idata = idata + 1
   14196     3799329 :          data_tmp = ISHFT(pack_tmp, 4)
   14197     3799329 :          ipack = ipack + 1
   14198     3799329 :          pack_tmp = packed_data(ipack)
   14199     3799329 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14200     3799329 :          pack_tmp = ISHFT(pack_tmp, -4)
   14201     3799329 :          idata = idata + 1
   14202     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14203     3799329 :          full_data(idata) = data_tmp
   14204     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14205     3799329 :          idata = idata + 1
   14206     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14207     3799329 :          full_data(idata) = data_tmp
   14208     3799329 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14209     3799329 :          idata = idata + 1
   14210     3799329 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14211     3799329 :          full_data(idata) = data_tmp
   14212     3803175 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14213             :       END DO
   14214      283358 :       IF (Ndata_rep < Ndata) THEN
   14215       77790 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14216             :       END IF
   14217      283358 :    END SUBROUTINE bits2ints_20
   14218             : 
   14219             : ! **************************************************************************************************
   14220             : !> \brief ...
   14221             : !> \param Ndata ...
   14222             : !> \param packed_data ...
   14223             : !> \param full_data ...
   14224             : ! **************************************************************************************************
   14225       29421 :    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       29421 :       idata = 0
   14236       29421 :       ipack = 0
   14237       29421 :       Ndata_rep = (Ndata/64)*64
   14238       29421 :       DO kdata = 1, Ndata_rep, 64
   14239      448160 :          pack_tmp = 0
   14240      448160 :          idata = idata + 1
   14241      448160 :          data_tmp = full_data(idata)
   14242      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14243      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14244      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14245      448160 :          idata = idata + 1
   14246      448160 :          data_tmp = full_data(idata)
   14247      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14248      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14249      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14250      448160 :          idata = idata + 1
   14251      448160 :          data_tmp = full_data(idata)
   14252      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14253      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14254      448160 :          pack_tmp = ISHFT(pack_tmp, -1)
   14255      448160 :          idata = idata + 1
   14256      448160 :          data_tmp = full_data(idata)
   14257      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14258      448160 :          data_tmp = IAND(data_tmp, mask_left(1))
   14259      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14260      448160 :          ipack = ipack + 1
   14261      448160 :          packed_data(ipack) = pack_tmp
   14262      448160 :          data_tmp = full_data(idata)
   14263      448160 :          pack_tmp = ISHFT(data_tmp, 44)
   14264      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14265      448160 :          idata = idata + 1
   14266      448160 :          data_tmp = full_data(idata)
   14267      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14268      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14269      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14270      448160 :          idata = idata + 1
   14271      448160 :          data_tmp = full_data(idata)
   14272      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14273      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14274      448160 :          pack_tmp = ISHFT(pack_tmp, -2)
   14275      448160 :          idata = idata + 1
   14276      448160 :          data_tmp = full_data(idata)
   14277      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14278      448160 :          data_tmp = IAND(data_tmp, mask_left(2))
   14279      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14280      448160 :          ipack = ipack + 1
   14281      448160 :          packed_data(ipack) = pack_tmp
   14282      448160 :          data_tmp = full_data(idata)
   14283      448160 :          pack_tmp = ISHFT(data_tmp, 45)
   14284      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14285      448160 :          idata = idata + 1
   14286      448160 :          data_tmp = full_data(idata)
   14287      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14288      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14289      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14290      448160 :          idata = idata + 1
   14291      448160 :          data_tmp = full_data(idata)
   14292      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14293      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14294      448160 :          pack_tmp = ISHFT(pack_tmp, -3)
   14295      448160 :          idata = idata + 1
   14296      448160 :          data_tmp = full_data(idata)
   14297      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14298      448160 :          data_tmp = IAND(data_tmp, mask_left(3))
   14299      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14300      448160 :          ipack = ipack + 1
   14301      448160 :          packed_data(ipack) = pack_tmp
   14302      448160 :          data_tmp = full_data(idata)
   14303      448160 :          pack_tmp = ISHFT(data_tmp, 46)
   14304      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14305      448160 :          idata = idata + 1
   14306      448160 :          data_tmp = full_data(idata)
   14307      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14308      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14309      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14310      448160 :          idata = idata + 1
   14311      448160 :          data_tmp = full_data(idata)
   14312      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14313      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14314      448160 :          pack_tmp = ISHFT(pack_tmp, -4)
   14315      448160 :          idata = idata + 1
   14316      448160 :          data_tmp = full_data(idata)
   14317      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14318      448160 :          data_tmp = IAND(data_tmp, mask_left(4))
   14319      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14320      448160 :          ipack = ipack + 1
   14321      448160 :          packed_data(ipack) = pack_tmp
   14322      448160 :          data_tmp = full_data(idata)
   14323      448160 :          pack_tmp = ISHFT(data_tmp, 47)
   14324      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14325      448160 :          idata = idata + 1
   14326      448160 :          data_tmp = full_data(idata)
   14327      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14328      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14329      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14330      448160 :          idata = idata + 1
   14331      448160 :          data_tmp = full_data(idata)
   14332      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14333      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14334      448160 :          pack_tmp = ISHFT(pack_tmp, -5)
   14335      448160 :          idata = idata + 1
   14336      448160 :          data_tmp = full_data(idata)
   14337      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14338      448160 :          data_tmp = IAND(data_tmp, mask_left(5))
   14339      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14340      448160 :          ipack = ipack + 1
   14341      448160 :          packed_data(ipack) = pack_tmp
   14342      448160 :          data_tmp = full_data(idata)
   14343      448160 :          pack_tmp = ISHFT(data_tmp, 48)
   14344      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14345      448160 :          idata = idata + 1
   14346      448160 :          data_tmp = full_data(idata)
   14347      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14348      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14349      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14350      448160 :          idata = idata + 1
   14351      448160 :          data_tmp = full_data(idata)
   14352      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14353      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14354      448160 :          pack_tmp = ISHFT(pack_tmp, -6)
   14355      448160 :          idata = idata + 1
   14356      448160 :          data_tmp = full_data(idata)
   14357      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14358      448160 :          data_tmp = IAND(data_tmp, mask_left(6))
   14359      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14360      448160 :          ipack = ipack + 1
   14361      448160 :          packed_data(ipack) = pack_tmp
   14362      448160 :          data_tmp = full_data(idata)
   14363      448160 :          pack_tmp = ISHFT(data_tmp, 49)
   14364      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14365      448160 :          idata = idata + 1
   14366      448160 :          data_tmp = full_data(idata)
   14367      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14368      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14369      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14370      448160 :          idata = idata + 1
   14371      448160 :          data_tmp = full_data(idata)
   14372      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14373      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14374      448160 :          pack_tmp = ISHFT(pack_tmp, -7)
   14375      448160 :          idata = idata + 1
   14376      448160 :          data_tmp = full_data(idata)
   14377      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14378      448160 :          data_tmp = IAND(data_tmp, mask_left(7))
   14379      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14380      448160 :          ipack = ipack + 1
   14381      448160 :          packed_data(ipack) = pack_tmp
   14382      448160 :          data_tmp = full_data(idata)
   14383      448160 :          pack_tmp = ISHFT(data_tmp, 50)
   14384      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14385      448160 :          idata = idata + 1
   14386      448160 :          data_tmp = full_data(idata)
   14387      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14388      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14389      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14390      448160 :          idata = idata + 1
   14391      448160 :          data_tmp = full_data(idata)
   14392      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14393      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14394      448160 :          pack_tmp = ISHFT(pack_tmp, -8)
   14395      448160 :          idata = idata + 1
   14396      448160 :          data_tmp = full_data(idata)
   14397      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14398      448160 :          data_tmp = IAND(data_tmp, mask_left(8))
   14399      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14400      448160 :          ipack = ipack + 1
   14401      448160 :          packed_data(ipack) = pack_tmp
   14402      448160 :          data_tmp = full_data(idata)
   14403      448160 :          pack_tmp = ISHFT(data_tmp, 51)
   14404      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14405      448160 :          idata = idata + 1
   14406      448160 :          data_tmp = full_data(idata)
   14407      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14408      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14409      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14410      448160 :          idata = idata + 1
   14411      448160 :          data_tmp = full_data(idata)
   14412      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14413      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14414      448160 :          pack_tmp = ISHFT(pack_tmp, -9)
   14415      448160 :          idata = idata + 1
   14416      448160 :          data_tmp = full_data(idata)
   14417      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14418      448160 :          data_tmp = IAND(data_tmp, mask_left(9))
   14419      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14420      448160 :          ipack = ipack + 1
   14421      448160 :          packed_data(ipack) = pack_tmp
   14422      448160 :          data_tmp = full_data(idata)
   14423      448160 :          pack_tmp = ISHFT(data_tmp, 52)
   14424      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14425      448160 :          idata = idata + 1
   14426      448160 :          data_tmp = full_data(idata)
   14427      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14428      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14429      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14430      448160 :          idata = idata + 1
   14431      448160 :          data_tmp = full_data(idata)
   14432      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14433      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14434      448160 :          pack_tmp = ISHFT(pack_tmp, -10)
   14435      448160 :          idata = idata + 1
   14436      448160 :          data_tmp = full_data(idata)
   14437      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14438      448160 :          data_tmp = IAND(data_tmp, mask_left(10))
   14439      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14440      448160 :          ipack = ipack + 1
   14441      448160 :          packed_data(ipack) = pack_tmp
   14442      448160 :          data_tmp = full_data(idata)
   14443      448160 :          pack_tmp = ISHFT(data_tmp, 53)
   14444      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14445      448160 :          idata = idata + 1
   14446      448160 :          data_tmp = full_data(idata)
   14447      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14448      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14449      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14450      448160 :          idata = idata + 1
   14451      448160 :          data_tmp = full_data(idata)
   14452      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14453      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14454      448160 :          pack_tmp = ISHFT(pack_tmp, -11)
   14455      448160 :          idata = idata + 1
   14456      448160 :          data_tmp = full_data(idata)
   14457      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14458      448160 :          data_tmp = IAND(data_tmp, mask_left(11))
   14459      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14460      448160 :          ipack = ipack + 1
   14461      448160 :          packed_data(ipack) = pack_tmp
   14462      448160 :          data_tmp = full_data(idata)
   14463      448160 :          pack_tmp = ISHFT(data_tmp, 54)
   14464      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14465      448160 :          idata = idata + 1
   14466      448160 :          data_tmp = full_data(idata)
   14467      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14468      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14469      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14470      448160 :          idata = idata + 1
   14471      448160 :          data_tmp = full_data(idata)
   14472      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14473      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14474      448160 :          pack_tmp = ISHFT(pack_tmp, -12)
   14475      448160 :          idata = idata + 1
   14476      448160 :          data_tmp = full_data(idata)
   14477      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14478      448160 :          data_tmp = IAND(data_tmp, mask_left(12))
   14479      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14480      448160 :          ipack = ipack + 1
   14481      448160 :          packed_data(ipack) = pack_tmp
   14482      448160 :          data_tmp = full_data(idata)
   14483      448160 :          pack_tmp = ISHFT(data_tmp, 55)
   14484      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14485      448160 :          idata = idata + 1
   14486      448160 :          data_tmp = full_data(idata)
   14487      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14488      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14489      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14490      448160 :          idata = idata + 1
   14491      448160 :          data_tmp = full_data(idata)
   14492      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14493      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14494      448160 :          pack_tmp = ISHFT(pack_tmp, -13)
   14495      448160 :          idata = idata + 1
   14496      448160 :          data_tmp = full_data(idata)
   14497      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14498      448160 :          data_tmp = IAND(data_tmp, mask_left(13))
   14499      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14500      448160 :          ipack = ipack + 1
   14501      448160 :          packed_data(ipack) = pack_tmp
   14502      448160 :          data_tmp = full_data(idata)
   14503      448160 :          pack_tmp = ISHFT(data_tmp, 56)
   14504      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14505      448160 :          idata = idata + 1
   14506      448160 :          data_tmp = full_data(idata)
   14507      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14508      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14509      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14510      448160 :          idata = idata + 1
   14511      448160 :          data_tmp = full_data(idata)
   14512      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14513      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14514      448160 :          pack_tmp = ISHFT(pack_tmp, -14)
   14515      448160 :          idata = idata + 1
   14516      448160 :          data_tmp = full_data(idata)
   14517      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14518      448160 :          data_tmp = IAND(data_tmp, mask_left(14))
   14519      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14520      448160 :          ipack = ipack + 1
   14521      448160 :          packed_data(ipack) = pack_tmp
   14522      448160 :          data_tmp = full_data(idata)
   14523      448160 :          pack_tmp = ISHFT(data_tmp, 57)
   14524      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14525      448160 :          idata = idata + 1
   14526      448160 :          data_tmp = full_data(idata)
   14527      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14528      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14529      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14530      448160 :          idata = idata + 1
   14531      448160 :          data_tmp = full_data(idata)
   14532      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14533      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14534      448160 :          pack_tmp = ISHFT(pack_tmp, -15)
   14535      448160 :          idata = idata + 1
   14536      448160 :          data_tmp = full_data(idata)
   14537      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14538      448160 :          data_tmp = IAND(data_tmp, mask_left(15))
   14539      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14540      448160 :          ipack = ipack + 1
   14541      448160 :          packed_data(ipack) = pack_tmp
   14542      448160 :          data_tmp = full_data(idata)
   14543      448160 :          pack_tmp = ISHFT(data_tmp, 58)
   14544      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14545      448160 :          idata = idata + 1
   14546      448160 :          data_tmp = full_data(idata)
   14547      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14548      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14549      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14550      448160 :          idata = idata + 1
   14551      448160 :          data_tmp = full_data(idata)
   14552      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14553      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14554      448160 :          pack_tmp = ISHFT(pack_tmp, -16)
   14555      448160 :          idata = idata + 1
   14556      448160 :          data_tmp = full_data(idata)
   14557      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14558      448160 :          data_tmp = IAND(data_tmp, mask_left(16))
   14559      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14560      448160 :          ipack = ipack + 1
   14561      448160 :          packed_data(ipack) = pack_tmp
   14562      448160 :          data_tmp = full_data(idata)
   14563      448160 :          pack_tmp = ISHFT(data_tmp, 59)
   14564      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14565      448160 :          idata = idata + 1
   14566      448160 :          data_tmp = full_data(idata)
   14567      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14568      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14569      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14570      448160 :          idata = idata + 1
   14571      448160 :          data_tmp = full_data(idata)
   14572      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14573      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14574      448160 :          pack_tmp = ISHFT(pack_tmp, -17)
   14575      448160 :          idata = idata + 1
   14576      448160 :          data_tmp = full_data(idata)
   14577      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14578      448160 :          data_tmp = IAND(data_tmp, mask_left(17))
   14579      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14580      448160 :          ipack = ipack + 1
   14581      448160 :          packed_data(ipack) = pack_tmp
   14582      448160 :          data_tmp = full_data(idata)
   14583      448160 :          pack_tmp = ISHFT(data_tmp, 60)
   14584      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14585      448160 :          idata = idata + 1
   14586      448160 :          data_tmp = full_data(idata)
   14587      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14588      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14589      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14590      448160 :          idata = idata + 1
   14591      448160 :          data_tmp = full_data(idata)
   14592      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14593      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14594      448160 :          pack_tmp = ISHFT(pack_tmp, -18)
   14595      448160 :          idata = idata + 1
   14596      448160 :          data_tmp = full_data(idata)
   14597      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14598      448160 :          data_tmp = IAND(data_tmp, mask_left(18))
   14599      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14600      448160 :          ipack = ipack + 1
   14601      448160 :          packed_data(ipack) = pack_tmp
   14602      448160 :          data_tmp = full_data(idata)
   14603      448160 :          pack_tmp = ISHFT(data_tmp, 61)
   14604      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14605      448160 :          idata = idata + 1
   14606      448160 :          data_tmp = full_data(idata)
   14607      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14608      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14609      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14610      448160 :          idata = idata + 1
   14611      448160 :          data_tmp = full_data(idata)
   14612      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14613      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14614      448160 :          pack_tmp = ISHFT(pack_tmp, -19)
   14615      448160 :          idata = idata + 1
   14616      448160 :          data_tmp = full_data(idata)
   14617      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14618      448160 :          data_tmp = IAND(data_tmp, mask_left(19))
   14619      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14620      448160 :          ipack = ipack + 1
   14621      448160 :          packed_data(ipack) = pack_tmp
   14622      448160 :          data_tmp = full_data(idata)
   14623      448160 :          pack_tmp = ISHFT(data_tmp, 62)
   14624      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14625      448160 :          idata = idata + 1
   14626      448160 :          data_tmp = full_data(idata)
   14627      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14628      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14629      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14630      448160 :          idata = idata + 1
   14631      448160 :          data_tmp = full_data(idata)
   14632      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14633      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14634      448160 :          pack_tmp = ISHFT(pack_tmp, -20)
   14635      448160 :          idata = idata + 1
   14636      448160 :          data_tmp = full_data(idata)
   14637      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14638      448160 :          data_tmp = IAND(data_tmp, mask_left(20))
   14639      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14640      448160 :          ipack = ipack + 1
   14641      448160 :          packed_data(ipack) = pack_tmp
   14642      448160 :          data_tmp = full_data(idata)
   14643      448160 :          pack_tmp = ISHFT(data_tmp, 63)
   14644      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14645      448160 :          idata = idata + 1
   14646      448160 :          data_tmp = full_data(idata)
   14647      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14648      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14649      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14650      448160 :          idata = idata + 1
   14651      448160 :          data_tmp = full_data(idata)
   14652      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14653      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14654      448160 :          pack_tmp = ISHFT(pack_tmp, -21)
   14655      448160 :          idata = idata + 1
   14656      448160 :          data_tmp = full_data(idata)
   14657      448160 :          data_tmp = ISHFT(data_tmp, 43)
   14658      448160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14659             :          pack_tmp = ISHFT(pack_tmp, 0)
   14660      448160 :          pack_tmp = ISHFT(pack_tmp, 0)
   14661      448160 :          ipack = ipack + 1
   14662      448512 :          packed_data(ipack) = pack_tmp
   14663             :       END DO
   14664       29421 :       IF (Ndata_rep < Ndata) THEN
   14665        2656 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14666             :       END IF
   14667       29421 :    END SUBROUTINE ints2bits_21
   14668             : 
   14669             : ! **************************************************************************************************
   14670             : !> \brief ...
   14671             : !> \param Ndata ...
   14672             : !> \param packed_data ...
   14673             : !> \param full_data ...
   14674             : ! **************************************************************************************************
   14675      150602 :    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      150602 :       ipack = 0
   14686      150602 :       idata = 0
   14687      150602 :       pack_tmp = 0
   14688      150602 :       Ndata_rep = (Ndata/64)*64
   14689      150602 :       DO kdata = 1, Ndata_rep, 64
   14690     2203932 :          idata = idata + 1
   14691     2203932 :          data_tmp = ISHFT(pack_tmp, 21)
   14692     2203932 :          ipack = ipack + 1
   14693     2203932 :          pack_tmp = packed_data(ipack)
   14694     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   14695     2203932 :          pack_tmp = ISHFT(pack_tmp, -21)
   14696     2203932 :          idata = idata + 1
   14697     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14698     2203932 :          full_data(idata) = data_tmp
   14699     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14700     2203932 :          idata = idata + 1
   14701     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14702     2203932 :          full_data(idata) = data_tmp
   14703     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14704     2203932 :          idata = idata + 1
   14705     2203932 :          data_tmp = ISHFT(pack_tmp, 20)
   14706     2203932 :          ipack = ipack + 1
   14707     2203932 :          pack_tmp = packed_data(ipack)
   14708     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14709     2203932 :          pack_tmp = ISHFT(pack_tmp, -20)
   14710     2203932 :          idata = idata + 1
   14711     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14712     2203932 :          full_data(idata) = data_tmp
   14713     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14714     2203932 :          idata = idata + 1
   14715     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14716     2203932 :          full_data(idata) = data_tmp
   14717     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14718     2203932 :          idata = idata + 1
   14719     2203932 :          data_tmp = ISHFT(pack_tmp, 19)
   14720     2203932 :          ipack = ipack + 1
   14721     2203932 :          pack_tmp = packed_data(ipack)
   14722     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   14723     2203932 :          pack_tmp = ISHFT(pack_tmp, -19)
   14724     2203932 :          idata = idata + 1
   14725     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14726     2203932 :          full_data(idata) = data_tmp
   14727     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14728     2203932 :          idata = idata + 1
   14729     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14730     2203932 :          full_data(idata) = data_tmp
   14731     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14732     2203932 :          idata = idata + 1
   14733     2203932 :          data_tmp = ISHFT(pack_tmp, 18)
   14734     2203932 :          ipack = ipack + 1
   14735     2203932 :          pack_tmp = packed_data(ipack)
   14736     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   14737     2203932 :          pack_tmp = ISHFT(pack_tmp, -18)
   14738     2203932 :          idata = idata + 1
   14739     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14740     2203932 :          full_data(idata) = data_tmp
   14741     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14742     2203932 :          idata = idata + 1
   14743     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14744     2203932 :          full_data(idata) = data_tmp
   14745     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14746     2203932 :          idata = idata + 1
   14747     2203932 :          data_tmp = ISHFT(pack_tmp, 17)
   14748     2203932 :          ipack = ipack + 1
   14749     2203932 :          pack_tmp = packed_data(ipack)
   14750     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   14751     2203932 :          pack_tmp = ISHFT(pack_tmp, -17)
   14752     2203932 :          idata = idata + 1
   14753     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14754     2203932 :          full_data(idata) = data_tmp
   14755     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14756     2203932 :          idata = idata + 1
   14757     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14758     2203932 :          full_data(idata) = data_tmp
   14759     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14760     2203932 :          idata = idata + 1
   14761     2203932 :          data_tmp = ISHFT(pack_tmp, 16)
   14762     2203932 :          ipack = ipack + 1
   14763     2203932 :          pack_tmp = packed_data(ipack)
   14764     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14765     2203932 :          pack_tmp = ISHFT(pack_tmp, -16)
   14766     2203932 :          idata = idata + 1
   14767     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14768     2203932 :          full_data(idata) = data_tmp
   14769     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14770     2203932 :          idata = idata + 1
   14771     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14772     2203932 :          full_data(idata) = data_tmp
   14773     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14774     2203932 :          idata = idata + 1
   14775     2203932 :          data_tmp = ISHFT(pack_tmp, 15)
   14776     2203932 :          ipack = ipack + 1
   14777     2203932 :          pack_tmp = packed_data(ipack)
   14778     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   14779     2203932 :          pack_tmp = ISHFT(pack_tmp, -15)
   14780     2203932 :          idata = idata + 1
   14781     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14782     2203932 :          full_data(idata) = data_tmp
   14783     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14784     2203932 :          idata = idata + 1
   14785     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14786     2203932 :          full_data(idata) = data_tmp
   14787     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14788     2203932 :          idata = idata + 1
   14789     2203932 :          data_tmp = ISHFT(pack_tmp, 14)
   14790     2203932 :          ipack = ipack + 1
   14791     2203932 :          pack_tmp = packed_data(ipack)
   14792     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   14793     2203932 :          pack_tmp = ISHFT(pack_tmp, -14)
   14794     2203932 :          idata = idata + 1
   14795     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14796     2203932 :          full_data(idata) = data_tmp
   14797     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14798     2203932 :          idata = idata + 1
   14799     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14800     2203932 :          full_data(idata) = data_tmp
   14801     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14802     2203932 :          idata = idata + 1
   14803     2203932 :          data_tmp = ISHFT(pack_tmp, 13)
   14804     2203932 :          ipack = ipack + 1
   14805     2203932 :          pack_tmp = packed_data(ipack)
   14806     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   14807     2203932 :          pack_tmp = ISHFT(pack_tmp, -13)
   14808     2203932 :          idata = idata + 1
   14809     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14810     2203932 :          full_data(idata) = data_tmp
   14811     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14812     2203932 :          idata = idata + 1
   14813     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14814     2203932 :          full_data(idata) = data_tmp
   14815     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14816     2203932 :          idata = idata + 1
   14817     2203932 :          data_tmp = ISHFT(pack_tmp, 12)
   14818     2203932 :          ipack = ipack + 1
   14819     2203932 :          pack_tmp = packed_data(ipack)
   14820     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14821     2203932 :          pack_tmp = ISHFT(pack_tmp, -12)
   14822     2203932 :          idata = idata + 1
   14823     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14824     2203932 :          full_data(idata) = data_tmp
   14825     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14826     2203932 :          idata = idata + 1
   14827     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14828     2203932 :          full_data(idata) = data_tmp
   14829     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14830     2203932 :          idata = idata + 1
   14831     2203932 :          data_tmp = ISHFT(pack_tmp, 11)
   14832     2203932 :          ipack = ipack + 1
   14833     2203932 :          pack_tmp = packed_data(ipack)
   14834     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   14835     2203932 :          pack_tmp = ISHFT(pack_tmp, -11)
   14836     2203932 :          idata = idata + 1
   14837     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14838     2203932 :          full_data(idata) = data_tmp
   14839     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14840     2203932 :          idata = idata + 1
   14841     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14842     2203932 :          full_data(idata) = data_tmp
   14843     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14844     2203932 :          idata = idata + 1
   14845     2203932 :          data_tmp = ISHFT(pack_tmp, 10)
   14846     2203932 :          ipack = ipack + 1
   14847     2203932 :          pack_tmp = packed_data(ipack)
   14848     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   14849     2203932 :          pack_tmp = ISHFT(pack_tmp, -10)
   14850     2203932 :          idata = idata + 1
   14851     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14852     2203932 :          full_data(idata) = data_tmp
   14853     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14854     2203932 :          idata = idata + 1
   14855     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14856     2203932 :          full_data(idata) = data_tmp
   14857     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14858     2203932 :          idata = idata + 1
   14859     2203932 :          data_tmp = ISHFT(pack_tmp, 9)
   14860     2203932 :          ipack = ipack + 1
   14861     2203932 :          pack_tmp = packed_data(ipack)
   14862     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   14863     2203932 :          pack_tmp = ISHFT(pack_tmp, -9)
   14864     2203932 :          idata = idata + 1
   14865     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14866     2203932 :          full_data(idata) = data_tmp
   14867     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14868     2203932 :          idata = idata + 1
   14869     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14870     2203932 :          full_data(idata) = data_tmp
   14871     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14872     2203932 :          idata = idata + 1
   14873     2203932 :          data_tmp = ISHFT(pack_tmp, 8)
   14874     2203932 :          ipack = ipack + 1
   14875     2203932 :          pack_tmp = packed_data(ipack)
   14876     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14877     2203932 :          pack_tmp = ISHFT(pack_tmp, -8)
   14878     2203932 :          idata = idata + 1
   14879     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14880     2203932 :          full_data(idata) = data_tmp
   14881     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14882     2203932 :          idata = idata + 1
   14883     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14884     2203932 :          full_data(idata) = data_tmp
   14885     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14886     2203932 :          idata = idata + 1
   14887     2203932 :          data_tmp = ISHFT(pack_tmp, 7)
   14888     2203932 :          ipack = ipack + 1
   14889     2203932 :          pack_tmp = packed_data(ipack)
   14890     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   14891     2203932 :          pack_tmp = ISHFT(pack_tmp, -7)
   14892     2203932 :          idata = idata + 1
   14893     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14894     2203932 :          full_data(idata) = data_tmp
   14895     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14896     2203932 :          idata = idata + 1
   14897     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14898     2203932 :          full_data(idata) = data_tmp
   14899     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14900     2203932 :          idata = idata + 1
   14901     2203932 :          data_tmp = ISHFT(pack_tmp, 6)
   14902     2203932 :          ipack = ipack + 1
   14903     2203932 :          pack_tmp = packed_data(ipack)
   14904     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   14905     2203932 :          pack_tmp = ISHFT(pack_tmp, -6)
   14906     2203932 :          idata = idata + 1
   14907     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14908     2203932 :          full_data(idata) = data_tmp
   14909     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14910     2203932 :          idata = idata + 1
   14911     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14912     2203932 :          full_data(idata) = data_tmp
   14913     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14914     2203932 :          idata = idata + 1
   14915     2203932 :          data_tmp = ISHFT(pack_tmp, 5)
   14916     2203932 :          ipack = ipack + 1
   14917     2203932 :          pack_tmp = packed_data(ipack)
   14918     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   14919     2203932 :          pack_tmp = ISHFT(pack_tmp, -5)
   14920     2203932 :          idata = idata + 1
   14921     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14922     2203932 :          full_data(idata) = data_tmp
   14923     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14924     2203932 :          idata = idata + 1
   14925     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14926     2203932 :          full_data(idata) = data_tmp
   14927     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14928     2203932 :          idata = idata + 1
   14929     2203932 :          data_tmp = ISHFT(pack_tmp, 4)
   14930     2203932 :          ipack = ipack + 1
   14931     2203932 :          pack_tmp = packed_data(ipack)
   14932     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14933     2203932 :          pack_tmp = ISHFT(pack_tmp, -4)
   14934     2203932 :          idata = idata + 1
   14935     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14936     2203932 :          full_data(idata) = data_tmp
   14937     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14938     2203932 :          idata = idata + 1
   14939     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14940     2203932 :          full_data(idata) = data_tmp
   14941     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14942     2203932 :          idata = idata + 1
   14943     2203932 :          data_tmp = ISHFT(pack_tmp, 3)
   14944     2203932 :          ipack = ipack + 1
   14945     2203932 :          pack_tmp = packed_data(ipack)
   14946     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   14947     2203932 :          pack_tmp = ISHFT(pack_tmp, -3)
   14948     2203932 :          idata = idata + 1
   14949     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14950     2203932 :          full_data(idata) = data_tmp
   14951     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14952     2203932 :          idata = idata + 1
   14953     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14954     2203932 :          full_data(idata) = data_tmp
   14955     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14956     2203932 :          idata = idata + 1
   14957     2203932 :          data_tmp = ISHFT(pack_tmp, 2)
   14958     2203932 :          ipack = ipack + 1
   14959     2203932 :          pack_tmp = packed_data(ipack)
   14960     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   14961     2203932 :          pack_tmp = ISHFT(pack_tmp, -2)
   14962     2203932 :          idata = idata + 1
   14963     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14964     2203932 :          full_data(idata) = data_tmp
   14965     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14966     2203932 :          idata = idata + 1
   14967     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14968     2203932 :          full_data(idata) = data_tmp
   14969     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14970     2203932 :          idata = idata + 1
   14971     2203932 :          data_tmp = ISHFT(pack_tmp, 1)
   14972     2203932 :          ipack = ipack + 1
   14973     2203932 :          pack_tmp = packed_data(ipack)
   14974     2203932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   14975     2203932 :          pack_tmp = ISHFT(pack_tmp, -1)
   14976     2203932 :          idata = idata + 1
   14977     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14978     2203932 :          full_data(idata) = data_tmp
   14979     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14980     2203932 :          idata = idata + 1
   14981     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14982     2203932 :          full_data(idata) = data_tmp
   14983     2203932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14984     2203932 :          idata = idata + 1
   14985     2203932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14986     2203932 :          full_data(idata) = data_tmp
   14987     2207322 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14988             :       END DO
   14989      150602 :       IF (Ndata_rep < Ndata) THEN
   14990       24200 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14991             :       END IF
   14992      150602 :    END SUBROUTINE bits2ints_21
   14993             : 
   14994             : ! **************************************************************************************************
   14995             : !> \brief ...
   14996             : !> \param Ndata ...
   14997             : !> \param packed_data ...
   14998             : !> \param full_data ...
   14999             : ! **************************************************************************************************
   15000       29274 :    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       29274 :       idata = 0
   15011       29274 :       ipack = 0
   15012       29274 :       Ndata_rep = (Ndata/64)*64
   15013       29274 :       DO kdata = 1, Ndata_rep, 64
   15014      444465 :          pack_tmp = 0
   15015      444465 :          idata = idata + 1
   15016      444465 :          data_tmp = full_data(idata)
   15017      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15018      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15019      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15020      444465 :          idata = idata + 1
   15021      444465 :          data_tmp = full_data(idata)
   15022      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15023      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15024      444465 :          pack_tmp = ISHFT(pack_tmp, -20)
   15025      444465 :          idata = idata + 1
   15026      444465 :          data_tmp = full_data(idata)
   15027      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15028      444465 :          data_tmp = IAND(data_tmp, mask_left(20))
   15029      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15030      444465 :          ipack = ipack + 1
   15031      444465 :          packed_data(ipack) = pack_tmp
   15032      444465 :          data_tmp = full_data(idata)
   15033      444465 :          pack_tmp = ISHFT(data_tmp, 62)
   15034      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15035      444465 :          idata = idata + 1
   15036      444465 :          data_tmp = full_data(idata)
   15037      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15038      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15039      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15040      444465 :          idata = idata + 1
   15041      444465 :          data_tmp = full_data(idata)
   15042      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15043      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15044      444465 :          pack_tmp = ISHFT(pack_tmp, -18)
   15045      444465 :          idata = idata + 1
   15046      444465 :          data_tmp = full_data(idata)
   15047      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15048      444465 :          data_tmp = IAND(data_tmp, mask_left(18))
   15049      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15050      444465 :          ipack = ipack + 1
   15051      444465 :          packed_data(ipack) = pack_tmp
   15052      444465 :          data_tmp = full_data(idata)
   15053      444465 :          pack_tmp = ISHFT(data_tmp, 60)
   15054      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15055      444465 :          idata = idata + 1
   15056      444465 :          data_tmp = full_data(idata)
   15057      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15058      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15059      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15060      444465 :          idata = idata + 1
   15061      444465 :          data_tmp = full_data(idata)
   15062      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15063      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15064      444465 :          pack_tmp = ISHFT(pack_tmp, -16)
   15065      444465 :          idata = idata + 1
   15066      444465 :          data_tmp = full_data(idata)
   15067      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15068      444465 :          data_tmp = IAND(data_tmp, mask_left(16))
   15069      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15070      444465 :          ipack = ipack + 1
   15071      444465 :          packed_data(ipack) = pack_tmp
   15072      444465 :          data_tmp = full_data(idata)
   15073      444465 :          pack_tmp = ISHFT(data_tmp, 58)
   15074      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15075      444465 :          idata = idata + 1
   15076      444465 :          data_tmp = full_data(idata)
   15077      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15078      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15079      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15080      444465 :          idata = idata + 1
   15081      444465 :          data_tmp = full_data(idata)
   15082      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15083      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15084      444465 :          pack_tmp = ISHFT(pack_tmp, -14)
   15085      444465 :          idata = idata + 1
   15086      444465 :          data_tmp = full_data(idata)
   15087      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15088      444465 :          data_tmp = IAND(data_tmp, mask_left(14))
   15089      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15090      444465 :          ipack = ipack + 1
   15091      444465 :          packed_data(ipack) = pack_tmp
   15092      444465 :          data_tmp = full_data(idata)
   15093      444465 :          pack_tmp = ISHFT(data_tmp, 56)
   15094      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15095      444465 :          idata = idata + 1
   15096      444465 :          data_tmp = full_data(idata)
   15097      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15098      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15099      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15100      444465 :          idata = idata + 1
   15101      444465 :          data_tmp = full_data(idata)
   15102      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15103      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15104      444465 :          pack_tmp = ISHFT(pack_tmp, -12)
   15105      444465 :          idata = idata + 1
   15106      444465 :          data_tmp = full_data(idata)
   15107      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15108      444465 :          data_tmp = IAND(data_tmp, mask_left(12))
   15109      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15110      444465 :          ipack = ipack + 1
   15111      444465 :          packed_data(ipack) = pack_tmp
   15112      444465 :          data_tmp = full_data(idata)
   15113      444465 :          pack_tmp = ISHFT(data_tmp, 54)
   15114      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15115      444465 :          idata = idata + 1
   15116      444465 :          data_tmp = full_data(idata)
   15117      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15118      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15119      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15120      444465 :          idata = idata + 1
   15121      444465 :          data_tmp = full_data(idata)
   15122      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15123      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15124      444465 :          pack_tmp = ISHFT(pack_tmp, -10)
   15125      444465 :          idata = idata + 1
   15126      444465 :          data_tmp = full_data(idata)
   15127      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15128      444465 :          data_tmp = IAND(data_tmp, mask_left(10))
   15129      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15130      444465 :          ipack = ipack + 1
   15131      444465 :          packed_data(ipack) = pack_tmp
   15132      444465 :          data_tmp = full_data(idata)
   15133      444465 :          pack_tmp = ISHFT(data_tmp, 52)
   15134      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15135      444465 :          idata = idata + 1
   15136      444465 :          data_tmp = full_data(idata)
   15137      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15138      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15139      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15140      444465 :          idata = idata + 1
   15141      444465 :          data_tmp = full_data(idata)
   15142      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15143      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15144      444465 :          pack_tmp = ISHFT(pack_tmp, -8)
   15145      444465 :          idata = idata + 1
   15146      444465 :          data_tmp = full_data(idata)
   15147      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15148      444465 :          data_tmp = IAND(data_tmp, mask_left(8))
   15149      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15150      444465 :          ipack = ipack + 1
   15151      444465 :          packed_data(ipack) = pack_tmp
   15152      444465 :          data_tmp = full_data(idata)
   15153      444465 :          pack_tmp = ISHFT(data_tmp, 50)
   15154      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15155      444465 :          idata = idata + 1
   15156      444465 :          data_tmp = full_data(idata)
   15157      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15158      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15159      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15160      444465 :          idata = idata + 1
   15161      444465 :          data_tmp = full_data(idata)
   15162      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15163      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15164      444465 :          pack_tmp = ISHFT(pack_tmp, -6)
   15165      444465 :          idata = idata + 1
   15166      444465 :          data_tmp = full_data(idata)
   15167      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15168      444465 :          data_tmp = IAND(data_tmp, mask_left(6))
   15169      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15170      444465 :          ipack = ipack + 1
   15171      444465 :          packed_data(ipack) = pack_tmp
   15172      444465 :          data_tmp = full_data(idata)
   15173      444465 :          pack_tmp = ISHFT(data_tmp, 48)
   15174      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15175      444465 :          idata = idata + 1
   15176      444465 :          data_tmp = full_data(idata)
   15177      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15178      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15179      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15180      444465 :          idata = idata + 1
   15181      444465 :          data_tmp = full_data(idata)
   15182      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15183      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15184      444465 :          pack_tmp = ISHFT(pack_tmp, -4)
   15185      444465 :          idata = idata + 1
   15186      444465 :          data_tmp = full_data(idata)
   15187      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15188      444465 :          data_tmp = IAND(data_tmp, mask_left(4))
   15189      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15190      444465 :          ipack = ipack + 1
   15191      444465 :          packed_data(ipack) = pack_tmp
   15192      444465 :          data_tmp = full_data(idata)
   15193      444465 :          pack_tmp = ISHFT(data_tmp, 46)
   15194      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15195      444465 :          idata = idata + 1
   15196      444465 :          data_tmp = full_data(idata)
   15197      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15198      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15199      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15200      444465 :          idata = idata + 1
   15201      444465 :          data_tmp = full_data(idata)
   15202      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15203      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15204      444465 :          pack_tmp = ISHFT(pack_tmp, -2)
   15205      444465 :          idata = idata + 1
   15206      444465 :          data_tmp = full_data(idata)
   15207      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15208      444465 :          data_tmp = IAND(data_tmp, mask_left(2))
   15209      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15210      444465 :          ipack = ipack + 1
   15211      444465 :          packed_data(ipack) = pack_tmp
   15212      444465 :          data_tmp = full_data(idata)
   15213      444465 :          pack_tmp = ISHFT(data_tmp, 44)
   15214      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15215      444465 :          idata = idata + 1
   15216      444465 :          data_tmp = full_data(idata)
   15217      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15218      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15219      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15220      444465 :          idata = idata + 1
   15221      444465 :          data_tmp = full_data(idata)
   15222      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15223      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15224      444465 :          pack_tmp = ISHFT(pack_tmp, 0)
   15225      444465 :          idata = idata + 1
   15226      444465 :          data_tmp = full_data(idata)
   15227             :          data_tmp = ISHFT(data_tmp, 42)
   15228      444465 :          data_tmp = IAND(data_tmp, mask_left(0))
   15229      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15230      444465 :          ipack = ipack + 1
   15231      444465 :          packed_data(ipack) = pack_tmp
   15232      444465 :          data_tmp = full_data(idata)
   15233      444465 :          pack_tmp = ISHFT(data_tmp, 42)
   15234      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15235      444465 :          idata = idata + 1
   15236      444465 :          data_tmp = full_data(idata)
   15237      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15238      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15239      444465 :          pack_tmp = ISHFT(pack_tmp, -20)
   15240      444465 :          idata = idata + 1
   15241      444465 :          data_tmp = full_data(idata)
   15242      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15243      444465 :          data_tmp = IAND(data_tmp, mask_left(20))
   15244      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15245      444465 :          ipack = ipack + 1
   15246      444465 :          packed_data(ipack) = pack_tmp
   15247      444465 :          data_tmp = full_data(idata)
   15248      444465 :          pack_tmp = ISHFT(data_tmp, 62)
   15249      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15250      444465 :          idata = idata + 1
   15251      444465 :          data_tmp = full_data(idata)
   15252      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15253      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15254      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15255      444465 :          idata = idata + 1
   15256      444465 :          data_tmp = full_data(idata)
   15257      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15258      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15259      444465 :          pack_tmp = ISHFT(pack_tmp, -18)
   15260      444465 :          idata = idata + 1
   15261      444465 :          data_tmp = full_data(idata)
   15262      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15263      444465 :          data_tmp = IAND(data_tmp, mask_left(18))
   15264      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15265      444465 :          ipack = ipack + 1
   15266      444465 :          packed_data(ipack) = pack_tmp
   15267      444465 :          data_tmp = full_data(idata)
   15268      444465 :          pack_tmp = ISHFT(data_tmp, 60)
   15269      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15270      444465 :          idata = idata + 1
   15271      444465 :          data_tmp = full_data(idata)
   15272      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15273      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15274      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15275      444465 :          idata = idata + 1
   15276      444465 :          data_tmp = full_data(idata)
   15277      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15278      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15279      444465 :          pack_tmp = ISHFT(pack_tmp, -16)
   15280      444465 :          idata = idata + 1
   15281      444465 :          data_tmp = full_data(idata)
   15282      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15283      444465 :          data_tmp = IAND(data_tmp, mask_left(16))
   15284      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15285      444465 :          ipack = ipack + 1
   15286      444465 :          packed_data(ipack) = pack_tmp
   15287      444465 :          data_tmp = full_data(idata)
   15288      444465 :          pack_tmp = ISHFT(data_tmp, 58)
   15289      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15290      444465 :          idata = idata + 1
   15291      444465 :          data_tmp = full_data(idata)
   15292      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15293      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15294      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15295      444465 :          idata = idata + 1
   15296      444465 :          data_tmp = full_data(idata)
   15297      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15298      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15299      444465 :          pack_tmp = ISHFT(pack_tmp, -14)
   15300      444465 :          idata = idata + 1
   15301      444465 :          data_tmp = full_data(idata)
   15302      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15303      444465 :          data_tmp = IAND(data_tmp, mask_left(14))
   15304      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15305      444465 :          ipack = ipack + 1
   15306      444465 :          packed_data(ipack) = pack_tmp
   15307      444465 :          data_tmp = full_data(idata)
   15308      444465 :          pack_tmp = ISHFT(data_tmp, 56)
   15309      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15310      444465 :          idata = idata + 1
   15311      444465 :          data_tmp = full_data(idata)
   15312      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15313      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15314      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15315      444465 :          idata = idata + 1
   15316      444465 :          data_tmp = full_data(idata)
   15317      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15318      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15319      444465 :          pack_tmp = ISHFT(pack_tmp, -12)
   15320      444465 :          idata = idata + 1
   15321      444465 :          data_tmp = full_data(idata)
   15322      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15323      444465 :          data_tmp = IAND(data_tmp, mask_left(12))
   15324      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15325      444465 :          ipack = ipack + 1
   15326      444465 :          packed_data(ipack) = pack_tmp
   15327      444465 :          data_tmp = full_data(idata)
   15328      444465 :          pack_tmp = ISHFT(data_tmp, 54)
   15329      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15330      444465 :          idata = idata + 1
   15331      444465 :          data_tmp = full_data(idata)
   15332      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15333      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15334      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15335      444465 :          idata = idata + 1
   15336      444465 :          data_tmp = full_data(idata)
   15337      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15338      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15339      444465 :          pack_tmp = ISHFT(pack_tmp, -10)
   15340      444465 :          idata = idata + 1
   15341      444465 :          data_tmp = full_data(idata)
   15342      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15343      444465 :          data_tmp = IAND(data_tmp, mask_left(10))
   15344      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15345      444465 :          ipack = ipack + 1
   15346      444465 :          packed_data(ipack) = pack_tmp
   15347      444465 :          data_tmp = full_data(idata)
   15348      444465 :          pack_tmp = ISHFT(data_tmp, 52)
   15349      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15350      444465 :          idata = idata + 1
   15351      444465 :          data_tmp = full_data(idata)
   15352      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15353      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15354      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15355      444465 :          idata = idata + 1
   15356      444465 :          data_tmp = full_data(idata)
   15357      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15358      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15359      444465 :          pack_tmp = ISHFT(pack_tmp, -8)
   15360      444465 :          idata = idata + 1
   15361      444465 :          data_tmp = full_data(idata)
   15362      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15363      444465 :          data_tmp = IAND(data_tmp, mask_left(8))
   15364      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15365      444465 :          ipack = ipack + 1
   15366      444465 :          packed_data(ipack) = pack_tmp
   15367      444465 :          data_tmp = full_data(idata)
   15368      444465 :          pack_tmp = ISHFT(data_tmp, 50)
   15369      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15370      444465 :          idata = idata + 1
   15371      444465 :          data_tmp = full_data(idata)
   15372      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15373      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15374      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15375      444465 :          idata = idata + 1
   15376      444465 :          data_tmp = full_data(idata)
   15377      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15378      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15379      444465 :          pack_tmp = ISHFT(pack_tmp, -6)
   15380      444465 :          idata = idata + 1
   15381      444465 :          data_tmp = full_data(idata)
   15382      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15383      444465 :          data_tmp = IAND(data_tmp, mask_left(6))
   15384      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15385      444465 :          ipack = ipack + 1
   15386      444465 :          packed_data(ipack) = pack_tmp
   15387      444465 :          data_tmp = full_data(idata)
   15388      444465 :          pack_tmp = ISHFT(data_tmp, 48)
   15389      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15390      444465 :          idata = idata + 1
   15391      444465 :          data_tmp = full_data(idata)
   15392      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15393      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15394      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15395      444465 :          idata = idata + 1
   15396      444465 :          data_tmp = full_data(idata)
   15397      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15398      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15399      444465 :          pack_tmp = ISHFT(pack_tmp, -4)
   15400      444465 :          idata = idata + 1
   15401      444465 :          data_tmp = full_data(idata)
   15402      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15403      444465 :          data_tmp = IAND(data_tmp, mask_left(4))
   15404      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15405      444465 :          ipack = ipack + 1
   15406      444465 :          packed_data(ipack) = pack_tmp
   15407      444465 :          data_tmp = full_data(idata)
   15408      444465 :          pack_tmp = ISHFT(data_tmp, 46)
   15409      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15410      444465 :          idata = idata + 1
   15411      444465 :          data_tmp = full_data(idata)
   15412      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15413      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15414      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15415      444465 :          idata = idata + 1
   15416      444465 :          data_tmp = full_data(idata)
   15417      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15418      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15419      444465 :          pack_tmp = ISHFT(pack_tmp, -2)
   15420      444465 :          idata = idata + 1
   15421      444465 :          data_tmp = full_data(idata)
   15422      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15423      444465 :          data_tmp = IAND(data_tmp, mask_left(2))
   15424      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15425      444465 :          ipack = ipack + 1
   15426      444465 :          packed_data(ipack) = pack_tmp
   15427      444465 :          data_tmp = full_data(idata)
   15428      444465 :          pack_tmp = ISHFT(data_tmp, 44)
   15429      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15430      444465 :          idata = idata + 1
   15431      444465 :          data_tmp = full_data(idata)
   15432      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15433      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15434      444465 :          pack_tmp = ISHFT(pack_tmp, -22)
   15435      444465 :          idata = idata + 1
   15436      444465 :          data_tmp = full_data(idata)
   15437      444465 :          data_tmp = ISHFT(data_tmp, 42)
   15438      444465 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15439             :          pack_tmp = ISHFT(pack_tmp, 0)
   15440      444465 :          pack_tmp = ISHFT(pack_tmp, 0)
   15441      444465 :          ipack = ipack + 1
   15442      444572 :          packed_data(ipack) = pack_tmp
   15443             :       END DO
   15444       29274 :       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       29274 :    END SUBROUTINE ints2bits_22
   15448             : 
   15449             : ! **************************************************************************************************
   15450             : !> \brief ...
   15451             : !> \param Ndata ...
   15452             : !> \param packed_data ...
   15453             : !> \param full_data ...
   15454             : ! **************************************************************************************************
   15455      150241 :    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      150241 :       ipack = 0
   15466      150241 :       idata = 0
   15467      150241 :       pack_tmp = 0
   15468      150241 :       Ndata_rep = (Ndata/64)*64
   15469      150241 :       DO kdata = 1, Ndata_rep, 64
   15470     2176430 :          idata = idata + 1
   15471     2176430 :          data_tmp = ISHFT(pack_tmp, 22)
   15472     2176430 :          ipack = ipack + 1
   15473     2176430 :          pack_tmp = packed_data(ipack)
   15474     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15475     2176430 :          pack_tmp = ISHFT(pack_tmp, -22)
   15476     2176430 :          idata = idata + 1
   15477     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15478     2176430 :          full_data(idata) = data_tmp
   15479     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15480     2176430 :          idata = idata + 1
   15481     2176430 :          data_tmp = ISHFT(pack_tmp, 2)
   15482     2176430 :          ipack = ipack + 1
   15483     2176430 :          pack_tmp = packed_data(ipack)
   15484     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15485     2176430 :          pack_tmp = ISHFT(pack_tmp, -2)
   15486     2176430 :          idata = idata + 1
   15487     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15488     2176430 :          full_data(idata) = data_tmp
   15489     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15490     2176430 :          idata = idata + 1
   15491     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15492     2176430 :          full_data(idata) = data_tmp
   15493     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15494     2176430 :          idata = idata + 1
   15495     2176430 :          data_tmp = ISHFT(pack_tmp, 4)
   15496     2176430 :          ipack = ipack + 1
   15497     2176430 :          pack_tmp = packed_data(ipack)
   15498     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15499     2176430 :          pack_tmp = ISHFT(pack_tmp, -4)
   15500     2176430 :          idata = idata + 1
   15501     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15502     2176430 :          full_data(idata) = data_tmp
   15503     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15504     2176430 :          idata = idata + 1
   15505     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15506     2176430 :          full_data(idata) = data_tmp
   15507     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15508     2176430 :          idata = idata + 1
   15509     2176430 :          data_tmp = ISHFT(pack_tmp, 6)
   15510     2176430 :          ipack = ipack + 1
   15511     2176430 :          pack_tmp = packed_data(ipack)
   15512     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15513     2176430 :          pack_tmp = ISHFT(pack_tmp, -6)
   15514     2176430 :          idata = idata + 1
   15515     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15516     2176430 :          full_data(idata) = data_tmp
   15517     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15518     2176430 :          idata = idata + 1
   15519     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15520     2176430 :          full_data(idata) = data_tmp
   15521     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15522     2176430 :          idata = idata + 1
   15523     2176430 :          data_tmp = ISHFT(pack_tmp, 8)
   15524     2176430 :          ipack = ipack + 1
   15525     2176430 :          pack_tmp = packed_data(ipack)
   15526     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15527     2176430 :          pack_tmp = ISHFT(pack_tmp, -8)
   15528     2176430 :          idata = idata + 1
   15529     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15530     2176430 :          full_data(idata) = data_tmp
   15531     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15532     2176430 :          idata = idata + 1
   15533     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15534     2176430 :          full_data(idata) = data_tmp
   15535     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15536     2176430 :          idata = idata + 1
   15537     2176430 :          data_tmp = ISHFT(pack_tmp, 10)
   15538     2176430 :          ipack = ipack + 1
   15539     2176430 :          pack_tmp = packed_data(ipack)
   15540     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15541     2176430 :          pack_tmp = ISHFT(pack_tmp, -10)
   15542     2176430 :          idata = idata + 1
   15543     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15544     2176430 :          full_data(idata) = data_tmp
   15545     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15546     2176430 :          idata = idata + 1
   15547     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15548     2176430 :          full_data(idata) = data_tmp
   15549     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15550     2176430 :          idata = idata + 1
   15551     2176430 :          data_tmp = ISHFT(pack_tmp, 12)
   15552     2176430 :          ipack = ipack + 1
   15553     2176430 :          pack_tmp = packed_data(ipack)
   15554     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15555     2176430 :          pack_tmp = ISHFT(pack_tmp, -12)
   15556     2176430 :          idata = idata + 1
   15557     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15558     2176430 :          full_data(idata) = data_tmp
   15559     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15560     2176430 :          idata = idata + 1
   15561     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15562     2176430 :          full_data(idata) = data_tmp
   15563     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15564     2176430 :          idata = idata + 1
   15565     2176430 :          data_tmp = ISHFT(pack_tmp, 14)
   15566     2176430 :          ipack = ipack + 1
   15567     2176430 :          pack_tmp = packed_data(ipack)
   15568     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15569     2176430 :          pack_tmp = ISHFT(pack_tmp, -14)
   15570     2176430 :          idata = idata + 1
   15571     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15572     2176430 :          full_data(idata) = data_tmp
   15573     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15574     2176430 :          idata = idata + 1
   15575     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15576     2176430 :          full_data(idata) = data_tmp
   15577     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15578     2176430 :          idata = idata + 1
   15579     2176430 :          data_tmp = ISHFT(pack_tmp, 16)
   15580     2176430 :          ipack = ipack + 1
   15581     2176430 :          pack_tmp = packed_data(ipack)
   15582     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15583     2176430 :          pack_tmp = ISHFT(pack_tmp, -16)
   15584     2176430 :          idata = idata + 1
   15585     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15586     2176430 :          full_data(idata) = data_tmp
   15587     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15588     2176430 :          idata = idata + 1
   15589     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15590     2176430 :          full_data(idata) = data_tmp
   15591     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15592     2176430 :          idata = idata + 1
   15593     2176430 :          data_tmp = ISHFT(pack_tmp, 18)
   15594     2176430 :          ipack = ipack + 1
   15595     2176430 :          pack_tmp = packed_data(ipack)
   15596     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15597     2176430 :          pack_tmp = ISHFT(pack_tmp, -18)
   15598     2176430 :          idata = idata + 1
   15599     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15600     2176430 :          full_data(idata) = data_tmp
   15601     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15602     2176430 :          idata = idata + 1
   15603     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15604     2176430 :          full_data(idata) = data_tmp
   15605     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15606     2176430 :          idata = idata + 1
   15607     2176430 :          data_tmp = ISHFT(pack_tmp, 20)
   15608     2176430 :          ipack = ipack + 1
   15609     2176430 :          pack_tmp = packed_data(ipack)
   15610     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15611     2176430 :          pack_tmp = ISHFT(pack_tmp, -20)
   15612     2176430 :          idata = idata + 1
   15613     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15614     2176430 :          full_data(idata) = data_tmp
   15615     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15616     2176430 :          idata = idata + 1
   15617     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15618     2176430 :          full_data(idata) = data_tmp
   15619     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15620     2176430 :          idata = idata + 1
   15621     2176430 :          data_tmp = ISHFT(pack_tmp, 22)
   15622     2176430 :          ipack = ipack + 1
   15623     2176430 :          pack_tmp = packed_data(ipack)
   15624     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15625     2176430 :          pack_tmp = ISHFT(pack_tmp, -22)
   15626     2176430 :          idata = idata + 1
   15627     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15628     2176430 :          full_data(idata) = data_tmp
   15629     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15630     2176430 :          idata = idata + 1
   15631     2176430 :          data_tmp = ISHFT(pack_tmp, 2)
   15632     2176430 :          ipack = ipack + 1
   15633     2176430 :          pack_tmp = packed_data(ipack)
   15634     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15635     2176430 :          pack_tmp = ISHFT(pack_tmp, -2)
   15636     2176430 :          idata = idata + 1
   15637     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15638     2176430 :          full_data(idata) = data_tmp
   15639     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15640     2176430 :          idata = idata + 1
   15641     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15642     2176430 :          full_data(idata) = data_tmp
   15643     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15644     2176430 :          idata = idata + 1
   15645     2176430 :          data_tmp = ISHFT(pack_tmp, 4)
   15646     2176430 :          ipack = ipack + 1
   15647     2176430 :          pack_tmp = packed_data(ipack)
   15648     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15649     2176430 :          pack_tmp = ISHFT(pack_tmp, -4)
   15650     2176430 :          idata = idata + 1
   15651     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15652     2176430 :          full_data(idata) = data_tmp
   15653     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15654     2176430 :          idata = idata + 1
   15655     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15656     2176430 :          full_data(idata) = data_tmp
   15657     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15658     2176430 :          idata = idata + 1
   15659     2176430 :          data_tmp = ISHFT(pack_tmp, 6)
   15660     2176430 :          ipack = ipack + 1
   15661     2176430 :          pack_tmp = packed_data(ipack)
   15662     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15663     2176430 :          pack_tmp = ISHFT(pack_tmp, -6)
   15664     2176430 :          idata = idata + 1
   15665     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15666     2176430 :          full_data(idata) = data_tmp
   15667     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15668     2176430 :          idata = idata + 1
   15669     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15670     2176430 :          full_data(idata) = data_tmp
   15671     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15672     2176430 :          idata = idata + 1
   15673     2176430 :          data_tmp = ISHFT(pack_tmp, 8)
   15674     2176430 :          ipack = ipack + 1
   15675     2176430 :          pack_tmp = packed_data(ipack)
   15676     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15677     2176430 :          pack_tmp = ISHFT(pack_tmp, -8)
   15678     2176430 :          idata = idata + 1
   15679     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15680     2176430 :          full_data(idata) = data_tmp
   15681     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15682     2176430 :          idata = idata + 1
   15683     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15684     2176430 :          full_data(idata) = data_tmp
   15685     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15686     2176430 :          idata = idata + 1
   15687     2176430 :          data_tmp = ISHFT(pack_tmp, 10)
   15688     2176430 :          ipack = ipack + 1
   15689     2176430 :          pack_tmp = packed_data(ipack)
   15690     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15691     2176430 :          pack_tmp = ISHFT(pack_tmp, -10)
   15692     2176430 :          idata = idata + 1
   15693     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15694     2176430 :          full_data(idata) = data_tmp
   15695     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15696     2176430 :          idata = idata + 1
   15697     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15698     2176430 :          full_data(idata) = data_tmp
   15699     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15700     2176430 :          idata = idata + 1
   15701     2176430 :          data_tmp = ISHFT(pack_tmp, 12)
   15702     2176430 :          ipack = ipack + 1
   15703     2176430 :          pack_tmp = packed_data(ipack)
   15704     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15705     2176430 :          pack_tmp = ISHFT(pack_tmp, -12)
   15706     2176430 :          idata = idata + 1
   15707     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15708     2176430 :          full_data(idata) = data_tmp
   15709     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15710     2176430 :          idata = idata + 1
   15711     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15712     2176430 :          full_data(idata) = data_tmp
   15713     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15714     2176430 :          idata = idata + 1
   15715     2176430 :          data_tmp = ISHFT(pack_tmp, 14)
   15716     2176430 :          ipack = ipack + 1
   15717     2176430 :          pack_tmp = packed_data(ipack)
   15718     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15719     2176430 :          pack_tmp = ISHFT(pack_tmp, -14)
   15720     2176430 :          idata = idata + 1
   15721     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15722     2176430 :          full_data(idata) = data_tmp
   15723     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15724     2176430 :          idata = idata + 1
   15725     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15726     2176430 :          full_data(idata) = data_tmp
   15727     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15728     2176430 :          idata = idata + 1
   15729     2176430 :          data_tmp = ISHFT(pack_tmp, 16)
   15730     2176430 :          ipack = ipack + 1
   15731     2176430 :          pack_tmp = packed_data(ipack)
   15732     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15733     2176430 :          pack_tmp = ISHFT(pack_tmp, -16)
   15734     2176430 :          idata = idata + 1
   15735     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15736     2176430 :          full_data(idata) = data_tmp
   15737     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15738     2176430 :          idata = idata + 1
   15739     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15740     2176430 :          full_data(idata) = data_tmp
   15741     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15742     2176430 :          idata = idata + 1
   15743     2176430 :          data_tmp = ISHFT(pack_tmp, 18)
   15744     2176430 :          ipack = ipack + 1
   15745     2176430 :          pack_tmp = packed_data(ipack)
   15746     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15747     2176430 :          pack_tmp = ISHFT(pack_tmp, -18)
   15748     2176430 :          idata = idata + 1
   15749     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15750     2176430 :          full_data(idata) = data_tmp
   15751     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15752     2176430 :          idata = idata + 1
   15753     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15754     2176430 :          full_data(idata) = data_tmp
   15755     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15756     2176430 :          idata = idata + 1
   15757     2176430 :          data_tmp = ISHFT(pack_tmp, 20)
   15758     2176430 :          ipack = ipack + 1
   15759     2176430 :          pack_tmp = packed_data(ipack)
   15760     2176430 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15761     2176430 :          pack_tmp = ISHFT(pack_tmp, -20)
   15762     2176430 :          idata = idata + 1
   15763     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15764     2176430 :          full_data(idata) = data_tmp
   15765     2176430 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15766     2176430 :          idata = idata + 1
   15767     2176430 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15768     2176430 :          full_data(idata) = data_tmp
   15769     2177159 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15770             :       END DO
   15771      150241 :       IF (Ndata_rep < Ndata) THEN
   15772       26756 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15773             :       END IF
   15774      150241 :    END SUBROUTINE bits2ints_22
   15775             : 
   15776             : ! **************************************************************************************************
   15777             : !> \brief ...
   15778             : !> \param Ndata ...
   15779             : !> \param packed_data ...
   15780             : !> \param full_data ...
   15781             : ! **************************************************************************************************
   15782       73600 :    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       73600 :       idata = 0
   15793       73600 :       ipack = 0
   15794       73600 :       Ndata_rep = (Ndata/64)*64
   15795       73600 :       DO kdata = 1, Ndata_rep, 64
   15796      961690 :          pack_tmp = 0
   15797      961690 :          idata = idata + 1
   15798      961690 :          data_tmp = full_data(idata)
   15799      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15800      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15801      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15802      961690 :          idata = idata + 1
   15803      961690 :          data_tmp = full_data(idata)
   15804      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15805      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15806      961690 :          pack_tmp = ISHFT(pack_tmp, -18)
   15807      961690 :          idata = idata + 1
   15808      961690 :          data_tmp = full_data(idata)
   15809      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15810      961690 :          data_tmp = IAND(data_tmp, mask_left(18))
   15811      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15812      961690 :          ipack = ipack + 1
   15813      961690 :          packed_data(ipack) = pack_tmp
   15814      961690 :          data_tmp = full_data(idata)
   15815      961690 :          pack_tmp = ISHFT(data_tmp, 59)
   15816      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15817      961690 :          idata = idata + 1
   15818      961690 :          data_tmp = full_data(idata)
   15819      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15820      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15821      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15822      961690 :          idata = idata + 1
   15823      961690 :          data_tmp = full_data(idata)
   15824      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15825      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15826      961690 :          pack_tmp = ISHFT(pack_tmp, -13)
   15827      961690 :          idata = idata + 1
   15828      961690 :          data_tmp = full_data(idata)
   15829      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15830      961690 :          data_tmp = IAND(data_tmp, mask_left(13))
   15831      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15832      961690 :          ipack = ipack + 1
   15833      961690 :          packed_data(ipack) = pack_tmp
   15834      961690 :          data_tmp = full_data(idata)
   15835      961690 :          pack_tmp = ISHFT(data_tmp, 54)
   15836      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15837      961690 :          idata = idata + 1
   15838      961690 :          data_tmp = full_data(idata)
   15839      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15840      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15841      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15842      961690 :          idata = idata + 1
   15843      961690 :          data_tmp = full_data(idata)
   15844      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15845      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15846      961690 :          pack_tmp = ISHFT(pack_tmp, -8)
   15847      961690 :          idata = idata + 1
   15848      961690 :          data_tmp = full_data(idata)
   15849      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15850      961690 :          data_tmp = IAND(data_tmp, mask_left(8))
   15851      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15852      961690 :          ipack = ipack + 1
   15853      961690 :          packed_data(ipack) = pack_tmp
   15854      961690 :          data_tmp = full_data(idata)
   15855      961690 :          pack_tmp = ISHFT(data_tmp, 49)
   15856      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15857      961690 :          idata = idata + 1
   15858      961690 :          data_tmp = full_data(idata)
   15859      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15860      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15861      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15862      961690 :          idata = idata + 1
   15863      961690 :          data_tmp = full_data(idata)
   15864      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15865      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15866      961690 :          pack_tmp = ISHFT(pack_tmp, -3)
   15867      961690 :          idata = idata + 1
   15868      961690 :          data_tmp = full_data(idata)
   15869      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15870      961690 :          data_tmp = IAND(data_tmp, mask_left(3))
   15871      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15872      961690 :          ipack = ipack + 1
   15873      961690 :          packed_data(ipack) = pack_tmp
   15874      961690 :          data_tmp = full_data(idata)
   15875      961690 :          pack_tmp = ISHFT(data_tmp, 44)
   15876      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15877      961690 :          idata = idata + 1
   15878      961690 :          data_tmp = full_data(idata)
   15879      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15880      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15881      961690 :          pack_tmp = ISHFT(pack_tmp, -21)
   15882      961690 :          idata = idata + 1
   15883      961690 :          data_tmp = full_data(idata)
   15884      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15885      961690 :          data_tmp = IAND(data_tmp, mask_left(21))
   15886      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15887      961690 :          ipack = ipack + 1
   15888      961690 :          packed_data(ipack) = pack_tmp
   15889      961690 :          data_tmp = full_data(idata)
   15890      961690 :          pack_tmp = ISHFT(data_tmp, 62)
   15891      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15892      961690 :          idata = idata + 1
   15893      961690 :          data_tmp = full_data(idata)
   15894      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15895      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15896      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15897      961690 :          idata = idata + 1
   15898      961690 :          data_tmp = full_data(idata)
   15899      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15900      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15901      961690 :          pack_tmp = ISHFT(pack_tmp, -16)
   15902      961690 :          idata = idata + 1
   15903      961690 :          data_tmp = full_data(idata)
   15904      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15905      961690 :          data_tmp = IAND(data_tmp, mask_left(16))
   15906      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15907      961690 :          ipack = ipack + 1
   15908      961690 :          packed_data(ipack) = pack_tmp
   15909      961690 :          data_tmp = full_data(idata)
   15910      961690 :          pack_tmp = ISHFT(data_tmp, 57)
   15911      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15912      961690 :          idata = idata + 1
   15913      961690 :          data_tmp = full_data(idata)
   15914      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15915      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15916      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15917      961690 :          idata = idata + 1
   15918      961690 :          data_tmp = full_data(idata)
   15919      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15920      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15921      961690 :          pack_tmp = ISHFT(pack_tmp, -11)
   15922      961690 :          idata = idata + 1
   15923      961690 :          data_tmp = full_data(idata)
   15924      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15925      961690 :          data_tmp = IAND(data_tmp, mask_left(11))
   15926      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15927      961690 :          ipack = ipack + 1
   15928      961690 :          packed_data(ipack) = pack_tmp
   15929      961690 :          data_tmp = full_data(idata)
   15930      961690 :          pack_tmp = ISHFT(data_tmp, 52)
   15931      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15932      961690 :          idata = idata + 1
   15933      961690 :          data_tmp = full_data(idata)
   15934      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15935      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15936      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15937      961690 :          idata = idata + 1
   15938      961690 :          data_tmp = full_data(idata)
   15939      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15940      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15941      961690 :          pack_tmp = ISHFT(pack_tmp, -6)
   15942      961690 :          idata = idata + 1
   15943      961690 :          data_tmp = full_data(idata)
   15944      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15945      961690 :          data_tmp = IAND(data_tmp, mask_left(6))
   15946      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15947      961690 :          ipack = ipack + 1
   15948      961690 :          packed_data(ipack) = pack_tmp
   15949      961690 :          data_tmp = full_data(idata)
   15950      961690 :          pack_tmp = ISHFT(data_tmp, 47)
   15951      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15952      961690 :          idata = idata + 1
   15953      961690 :          data_tmp = full_data(idata)
   15954      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15955      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15956      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15957      961690 :          idata = idata + 1
   15958      961690 :          data_tmp = full_data(idata)
   15959      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15960      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15961      961690 :          pack_tmp = ISHFT(pack_tmp, -1)
   15962      961690 :          idata = idata + 1
   15963      961690 :          data_tmp = full_data(idata)
   15964      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15965      961690 :          data_tmp = IAND(data_tmp, mask_left(1))
   15966      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15967      961690 :          ipack = ipack + 1
   15968      961690 :          packed_data(ipack) = pack_tmp
   15969      961690 :          data_tmp = full_data(idata)
   15970      961690 :          pack_tmp = ISHFT(data_tmp, 42)
   15971      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15972      961690 :          idata = idata + 1
   15973      961690 :          data_tmp = full_data(idata)
   15974      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15975      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15976      961690 :          pack_tmp = ISHFT(pack_tmp, -19)
   15977      961690 :          idata = idata + 1
   15978      961690 :          data_tmp = full_data(idata)
   15979      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15980      961690 :          data_tmp = IAND(data_tmp, mask_left(19))
   15981      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15982      961690 :          ipack = ipack + 1
   15983      961690 :          packed_data(ipack) = pack_tmp
   15984      961690 :          data_tmp = full_data(idata)
   15985      961690 :          pack_tmp = ISHFT(data_tmp, 60)
   15986      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15987      961690 :          idata = idata + 1
   15988      961690 :          data_tmp = full_data(idata)
   15989      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15990      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15991      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   15992      961690 :          idata = idata + 1
   15993      961690 :          data_tmp = full_data(idata)
   15994      961690 :          data_tmp = ISHFT(data_tmp, 41)
   15995      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15996      961690 :          pack_tmp = ISHFT(pack_tmp, -14)
   15997      961690 :          idata = idata + 1
   15998      961690 :          data_tmp = full_data(idata)
   15999      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16000      961690 :          data_tmp = IAND(data_tmp, mask_left(14))
   16001      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16002      961690 :          ipack = ipack + 1
   16003      961690 :          packed_data(ipack) = pack_tmp
   16004      961690 :          data_tmp = full_data(idata)
   16005      961690 :          pack_tmp = ISHFT(data_tmp, 55)
   16006      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16007      961690 :          idata = idata + 1
   16008      961690 :          data_tmp = full_data(idata)
   16009      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16010      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16011      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16012      961690 :          idata = idata + 1
   16013      961690 :          data_tmp = full_data(idata)
   16014      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16015      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16016      961690 :          pack_tmp = ISHFT(pack_tmp, -9)
   16017      961690 :          idata = idata + 1
   16018      961690 :          data_tmp = full_data(idata)
   16019      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16020      961690 :          data_tmp = IAND(data_tmp, mask_left(9))
   16021      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16022      961690 :          ipack = ipack + 1
   16023      961690 :          packed_data(ipack) = pack_tmp
   16024      961690 :          data_tmp = full_data(idata)
   16025      961690 :          pack_tmp = ISHFT(data_tmp, 50)
   16026      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16027      961690 :          idata = idata + 1
   16028      961690 :          data_tmp = full_data(idata)
   16029      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16030      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16031      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16032      961690 :          idata = idata + 1
   16033      961690 :          data_tmp = full_data(idata)
   16034      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16035      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16036      961690 :          pack_tmp = ISHFT(pack_tmp, -4)
   16037      961690 :          idata = idata + 1
   16038      961690 :          data_tmp = full_data(idata)
   16039      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16040      961690 :          data_tmp = IAND(data_tmp, mask_left(4))
   16041      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16042      961690 :          ipack = ipack + 1
   16043      961690 :          packed_data(ipack) = pack_tmp
   16044      961690 :          data_tmp = full_data(idata)
   16045      961690 :          pack_tmp = ISHFT(data_tmp, 45)
   16046      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16047      961690 :          idata = idata + 1
   16048      961690 :          data_tmp = full_data(idata)
   16049      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16050      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16051      961690 :          pack_tmp = ISHFT(pack_tmp, -22)
   16052      961690 :          idata = idata + 1
   16053      961690 :          data_tmp = full_data(idata)
   16054      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16055      961690 :          data_tmp = IAND(data_tmp, mask_left(22))
   16056      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16057      961690 :          ipack = ipack + 1
   16058      961690 :          packed_data(ipack) = pack_tmp
   16059      961690 :          data_tmp = full_data(idata)
   16060      961690 :          pack_tmp = ISHFT(data_tmp, 63)
   16061      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16062      961690 :          idata = idata + 1
   16063      961690 :          data_tmp = full_data(idata)
   16064      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16065      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16066      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16067      961690 :          idata = idata + 1
   16068      961690 :          data_tmp = full_data(idata)
   16069      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16070      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16071      961690 :          pack_tmp = ISHFT(pack_tmp, -17)
   16072      961690 :          idata = idata + 1
   16073      961690 :          data_tmp = full_data(idata)
   16074      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16075      961690 :          data_tmp = IAND(data_tmp, mask_left(17))
   16076      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16077      961690 :          ipack = ipack + 1
   16078      961690 :          packed_data(ipack) = pack_tmp
   16079      961690 :          data_tmp = full_data(idata)
   16080      961690 :          pack_tmp = ISHFT(data_tmp, 58)
   16081      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16082      961690 :          idata = idata + 1
   16083      961690 :          data_tmp = full_data(idata)
   16084      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16085      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16086      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16087      961690 :          idata = idata + 1
   16088      961690 :          data_tmp = full_data(idata)
   16089      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16090      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16091      961690 :          pack_tmp = ISHFT(pack_tmp, -12)
   16092      961690 :          idata = idata + 1
   16093      961690 :          data_tmp = full_data(idata)
   16094      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16095      961690 :          data_tmp = IAND(data_tmp, mask_left(12))
   16096      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16097      961690 :          ipack = ipack + 1
   16098      961690 :          packed_data(ipack) = pack_tmp
   16099      961690 :          data_tmp = full_data(idata)
   16100      961690 :          pack_tmp = ISHFT(data_tmp, 53)
   16101      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16102      961690 :          idata = idata + 1
   16103      961690 :          data_tmp = full_data(idata)
   16104      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16105      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16106      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16107      961690 :          idata = idata + 1
   16108      961690 :          data_tmp = full_data(idata)
   16109      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16110      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16111      961690 :          pack_tmp = ISHFT(pack_tmp, -7)
   16112      961690 :          idata = idata + 1
   16113      961690 :          data_tmp = full_data(idata)
   16114      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16115      961690 :          data_tmp = IAND(data_tmp, mask_left(7))
   16116      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16117      961690 :          ipack = ipack + 1
   16118      961690 :          packed_data(ipack) = pack_tmp
   16119      961690 :          data_tmp = full_data(idata)
   16120      961690 :          pack_tmp = ISHFT(data_tmp, 48)
   16121      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16122      961690 :          idata = idata + 1
   16123      961690 :          data_tmp = full_data(idata)
   16124      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16125      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16126      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16127      961690 :          idata = idata + 1
   16128      961690 :          data_tmp = full_data(idata)
   16129      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16130      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16131      961690 :          pack_tmp = ISHFT(pack_tmp, -2)
   16132      961690 :          idata = idata + 1
   16133      961690 :          data_tmp = full_data(idata)
   16134      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16135      961690 :          data_tmp = IAND(data_tmp, mask_left(2))
   16136      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16137      961690 :          ipack = ipack + 1
   16138      961690 :          packed_data(ipack) = pack_tmp
   16139      961690 :          data_tmp = full_data(idata)
   16140      961690 :          pack_tmp = ISHFT(data_tmp, 43)
   16141      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16142      961690 :          idata = idata + 1
   16143      961690 :          data_tmp = full_data(idata)
   16144      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16145      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16146      961690 :          pack_tmp = ISHFT(pack_tmp, -20)
   16147      961690 :          idata = idata + 1
   16148      961690 :          data_tmp = full_data(idata)
   16149      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16150      961690 :          data_tmp = IAND(data_tmp, mask_left(20))
   16151      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16152      961690 :          ipack = ipack + 1
   16153      961690 :          packed_data(ipack) = pack_tmp
   16154      961690 :          data_tmp = full_data(idata)
   16155      961690 :          pack_tmp = ISHFT(data_tmp, 61)
   16156      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16157      961690 :          idata = idata + 1
   16158      961690 :          data_tmp = full_data(idata)
   16159      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16160      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16161      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16162      961690 :          idata = idata + 1
   16163      961690 :          data_tmp = full_data(idata)
   16164      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16165      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16166      961690 :          pack_tmp = ISHFT(pack_tmp, -15)
   16167      961690 :          idata = idata + 1
   16168      961690 :          data_tmp = full_data(idata)
   16169      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16170      961690 :          data_tmp = IAND(data_tmp, mask_left(15))
   16171      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16172      961690 :          ipack = ipack + 1
   16173      961690 :          packed_data(ipack) = pack_tmp
   16174      961690 :          data_tmp = full_data(idata)
   16175      961690 :          pack_tmp = ISHFT(data_tmp, 56)
   16176      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16177      961690 :          idata = idata + 1
   16178      961690 :          data_tmp = full_data(idata)
   16179      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16180      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16181      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16182      961690 :          idata = idata + 1
   16183      961690 :          data_tmp = full_data(idata)
   16184      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16185      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16186      961690 :          pack_tmp = ISHFT(pack_tmp, -10)
   16187      961690 :          idata = idata + 1
   16188      961690 :          data_tmp = full_data(idata)
   16189      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16190      961690 :          data_tmp = IAND(data_tmp, mask_left(10))
   16191      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16192      961690 :          ipack = ipack + 1
   16193      961690 :          packed_data(ipack) = pack_tmp
   16194      961690 :          data_tmp = full_data(idata)
   16195      961690 :          pack_tmp = ISHFT(data_tmp, 51)
   16196      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16197      961690 :          idata = idata + 1
   16198      961690 :          data_tmp = full_data(idata)
   16199      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16200      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16201      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16202      961690 :          idata = idata + 1
   16203      961690 :          data_tmp = full_data(idata)
   16204      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16205      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16206      961690 :          pack_tmp = ISHFT(pack_tmp, -5)
   16207      961690 :          idata = idata + 1
   16208      961690 :          data_tmp = full_data(idata)
   16209      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16210      961690 :          data_tmp = IAND(data_tmp, mask_left(5))
   16211      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16212      961690 :          ipack = ipack + 1
   16213      961690 :          packed_data(ipack) = pack_tmp
   16214      961690 :          data_tmp = full_data(idata)
   16215      961690 :          pack_tmp = ISHFT(data_tmp, 46)
   16216      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16217      961690 :          idata = idata + 1
   16218      961690 :          data_tmp = full_data(idata)
   16219      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16220      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16221      961690 :          pack_tmp = ISHFT(pack_tmp, -23)
   16222      961690 :          idata = idata + 1
   16223      961690 :          data_tmp = full_data(idata)
   16224      961690 :          data_tmp = ISHFT(data_tmp, 41)
   16225      961690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16226             :          pack_tmp = ISHFT(pack_tmp, 0)
   16227      961690 :          pack_tmp = ISHFT(pack_tmp, 0)
   16228      961690 :          ipack = ipack + 1
   16229      962344 :          packed_data(ipack) = pack_tmp
   16230             :       END DO
   16231       73600 :       IF (Ndata_rep < Ndata) THEN
   16232       13932 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16233             :       END IF
   16234       73600 :    END SUBROUTINE ints2bits_23
   16235             : 
   16236             : ! **************************************************************************************************
   16237             : !> \brief ...
   16238             : !> \param Ndata ...
   16239             : !> \param packed_data ...
   16240             : !> \param full_data ...
   16241             : ! **************************************************************************************************
   16242      228106 :    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      228106 :       ipack = 0
   16253      228106 :       idata = 0
   16254      228106 :       pack_tmp = 0
   16255      228106 :       Ndata_rep = (Ndata/64)*64
   16256      228106 :       DO kdata = 1, Ndata_rep, 64
   16257     3081914 :          idata = idata + 1
   16258     3081914 :          data_tmp = ISHFT(pack_tmp, 23)
   16259     3081914 :          ipack = ipack + 1
   16260     3081914 :          pack_tmp = packed_data(ipack)
   16261     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   16262     3081914 :          pack_tmp = ISHFT(pack_tmp, -23)
   16263     3081914 :          idata = idata + 1
   16264     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16265     3081914 :          full_data(idata) = data_tmp
   16266     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16267     3081914 :          idata = idata + 1
   16268     3081914 :          data_tmp = ISHFT(pack_tmp, 5)
   16269     3081914 :          ipack = ipack + 1
   16270     3081914 :          pack_tmp = packed_data(ipack)
   16271     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   16272     3081914 :          pack_tmp = ISHFT(pack_tmp, -5)
   16273     3081914 :          idata = idata + 1
   16274     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16275     3081914 :          full_data(idata) = data_tmp
   16276     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16277     3081914 :          idata = idata + 1
   16278     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16279     3081914 :          full_data(idata) = data_tmp
   16280     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16281     3081914 :          idata = idata + 1
   16282     3081914 :          data_tmp = ISHFT(pack_tmp, 10)
   16283     3081914 :          ipack = ipack + 1
   16284     3081914 :          pack_tmp = packed_data(ipack)
   16285     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   16286     3081914 :          pack_tmp = ISHFT(pack_tmp, -10)
   16287     3081914 :          idata = idata + 1
   16288     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16289     3081914 :          full_data(idata) = data_tmp
   16290     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16291     3081914 :          idata = idata + 1
   16292     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16293     3081914 :          full_data(idata) = data_tmp
   16294     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16295     3081914 :          idata = idata + 1
   16296     3081914 :          data_tmp = ISHFT(pack_tmp, 15)
   16297     3081914 :          ipack = ipack + 1
   16298     3081914 :          pack_tmp = packed_data(ipack)
   16299     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   16300     3081914 :          pack_tmp = ISHFT(pack_tmp, -15)
   16301     3081914 :          idata = idata + 1
   16302     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16303     3081914 :          full_data(idata) = data_tmp
   16304     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16305     3081914 :          idata = idata + 1
   16306     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16307     3081914 :          full_data(idata) = data_tmp
   16308     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16309     3081914 :          idata = idata + 1
   16310     3081914 :          data_tmp = ISHFT(pack_tmp, 20)
   16311     3081914 :          ipack = ipack + 1
   16312     3081914 :          pack_tmp = packed_data(ipack)
   16313     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   16314     3081914 :          pack_tmp = ISHFT(pack_tmp, -20)
   16315     3081914 :          idata = idata + 1
   16316     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16317     3081914 :          full_data(idata) = data_tmp
   16318     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16319     3081914 :          idata = idata + 1
   16320     3081914 :          data_tmp = ISHFT(pack_tmp, 2)
   16321     3081914 :          ipack = ipack + 1
   16322     3081914 :          pack_tmp = packed_data(ipack)
   16323     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   16324     3081914 :          pack_tmp = ISHFT(pack_tmp, -2)
   16325     3081914 :          idata = idata + 1
   16326     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16327     3081914 :          full_data(idata) = data_tmp
   16328     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16329     3081914 :          idata = idata + 1
   16330     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16331     3081914 :          full_data(idata) = data_tmp
   16332     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16333     3081914 :          idata = idata + 1
   16334     3081914 :          data_tmp = ISHFT(pack_tmp, 7)
   16335     3081914 :          ipack = ipack + 1
   16336     3081914 :          pack_tmp = packed_data(ipack)
   16337     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   16338     3081914 :          pack_tmp = ISHFT(pack_tmp, -7)
   16339     3081914 :          idata = idata + 1
   16340     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16341     3081914 :          full_data(idata) = data_tmp
   16342     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16343     3081914 :          idata = idata + 1
   16344     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16345     3081914 :          full_data(idata) = data_tmp
   16346     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16347     3081914 :          idata = idata + 1
   16348     3081914 :          data_tmp = ISHFT(pack_tmp, 12)
   16349     3081914 :          ipack = ipack + 1
   16350     3081914 :          pack_tmp = packed_data(ipack)
   16351     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   16352     3081914 :          pack_tmp = ISHFT(pack_tmp, -12)
   16353     3081914 :          idata = idata + 1
   16354     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16355     3081914 :          full_data(idata) = data_tmp
   16356     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16357     3081914 :          idata = idata + 1
   16358     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16359     3081914 :          full_data(idata) = data_tmp
   16360     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16361     3081914 :          idata = idata + 1
   16362     3081914 :          data_tmp = ISHFT(pack_tmp, 17)
   16363     3081914 :          ipack = ipack + 1
   16364     3081914 :          pack_tmp = packed_data(ipack)
   16365     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   16366     3081914 :          pack_tmp = ISHFT(pack_tmp, -17)
   16367     3081914 :          idata = idata + 1
   16368     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16369     3081914 :          full_data(idata) = data_tmp
   16370     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16371     3081914 :          idata = idata + 1
   16372     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16373     3081914 :          full_data(idata) = data_tmp
   16374     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16375     3081914 :          idata = idata + 1
   16376     3081914 :          data_tmp = ISHFT(pack_tmp, 22)
   16377     3081914 :          ipack = ipack + 1
   16378     3081914 :          pack_tmp = packed_data(ipack)
   16379     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   16380     3081914 :          pack_tmp = ISHFT(pack_tmp, -22)
   16381     3081914 :          idata = idata + 1
   16382     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16383     3081914 :          full_data(idata) = data_tmp
   16384     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16385     3081914 :          idata = idata + 1
   16386     3081914 :          data_tmp = ISHFT(pack_tmp, 4)
   16387     3081914 :          ipack = ipack + 1
   16388     3081914 :          pack_tmp = packed_data(ipack)
   16389     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   16390     3081914 :          pack_tmp = ISHFT(pack_tmp, -4)
   16391     3081914 :          idata = idata + 1
   16392     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16393     3081914 :          full_data(idata) = data_tmp
   16394     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16395     3081914 :          idata = idata + 1
   16396     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16397     3081914 :          full_data(idata) = data_tmp
   16398     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16399     3081914 :          idata = idata + 1
   16400     3081914 :          data_tmp = ISHFT(pack_tmp, 9)
   16401     3081914 :          ipack = ipack + 1
   16402     3081914 :          pack_tmp = packed_data(ipack)
   16403     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   16404     3081914 :          pack_tmp = ISHFT(pack_tmp, -9)
   16405     3081914 :          idata = idata + 1
   16406     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16407     3081914 :          full_data(idata) = data_tmp
   16408     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16409     3081914 :          idata = idata + 1
   16410     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16411     3081914 :          full_data(idata) = data_tmp
   16412     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16413     3081914 :          idata = idata + 1
   16414     3081914 :          data_tmp = ISHFT(pack_tmp, 14)
   16415     3081914 :          ipack = ipack + 1
   16416     3081914 :          pack_tmp = packed_data(ipack)
   16417     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   16418     3081914 :          pack_tmp = ISHFT(pack_tmp, -14)
   16419     3081914 :          idata = idata + 1
   16420     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16421     3081914 :          full_data(idata) = data_tmp
   16422     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16423     3081914 :          idata = idata + 1
   16424     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16425     3081914 :          full_data(idata) = data_tmp
   16426     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16427     3081914 :          idata = idata + 1
   16428     3081914 :          data_tmp = ISHFT(pack_tmp, 19)
   16429     3081914 :          ipack = ipack + 1
   16430     3081914 :          pack_tmp = packed_data(ipack)
   16431     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   16432     3081914 :          pack_tmp = ISHFT(pack_tmp, -19)
   16433     3081914 :          idata = idata + 1
   16434     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16435     3081914 :          full_data(idata) = data_tmp
   16436     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16437     3081914 :          idata = idata + 1
   16438     3081914 :          data_tmp = ISHFT(pack_tmp, 1)
   16439     3081914 :          ipack = ipack + 1
   16440     3081914 :          pack_tmp = packed_data(ipack)
   16441     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   16442     3081914 :          pack_tmp = ISHFT(pack_tmp, -1)
   16443     3081914 :          idata = idata + 1
   16444     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16445     3081914 :          full_data(idata) = data_tmp
   16446     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16447     3081914 :          idata = idata + 1
   16448     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16449     3081914 :          full_data(idata) = data_tmp
   16450     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16451     3081914 :          idata = idata + 1
   16452     3081914 :          data_tmp = ISHFT(pack_tmp, 6)
   16453     3081914 :          ipack = ipack + 1
   16454     3081914 :          pack_tmp = packed_data(ipack)
   16455     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   16456     3081914 :          pack_tmp = ISHFT(pack_tmp, -6)
   16457     3081914 :          idata = idata + 1
   16458     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16459     3081914 :          full_data(idata) = data_tmp
   16460     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16461     3081914 :          idata = idata + 1
   16462     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16463     3081914 :          full_data(idata) = data_tmp
   16464     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16465     3081914 :          idata = idata + 1
   16466     3081914 :          data_tmp = ISHFT(pack_tmp, 11)
   16467     3081914 :          ipack = ipack + 1
   16468     3081914 :          pack_tmp = packed_data(ipack)
   16469     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   16470     3081914 :          pack_tmp = ISHFT(pack_tmp, -11)
   16471     3081914 :          idata = idata + 1
   16472     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16473     3081914 :          full_data(idata) = data_tmp
   16474     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16475     3081914 :          idata = idata + 1
   16476     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16477     3081914 :          full_data(idata) = data_tmp
   16478     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16479     3081914 :          idata = idata + 1
   16480     3081914 :          data_tmp = ISHFT(pack_tmp, 16)
   16481     3081914 :          ipack = ipack + 1
   16482     3081914 :          pack_tmp = packed_data(ipack)
   16483     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   16484     3081914 :          pack_tmp = ISHFT(pack_tmp, -16)
   16485     3081914 :          idata = idata + 1
   16486     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16487     3081914 :          full_data(idata) = data_tmp
   16488     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16489     3081914 :          idata = idata + 1
   16490     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16491     3081914 :          full_data(idata) = data_tmp
   16492     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16493     3081914 :          idata = idata + 1
   16494     3081914 :          data_tmp = ISHFT(pack_tmp, 21)
   16495     3081914 :          ipack = ipack + 1
   16496     3081914 :          pack_tmp = packed_data(ipack)
   16497     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   16498     3081914 :          pack_tmp = ISHFT(pack_tmp, -21)
   16499     3081914 :          idata = idata + 1
   16500     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16501     3081914 :          full_data(idata) = data_tmp
   16502     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16503     3081914 :          idata = idata + 1
   16504     3081914 :          data_tmp = ISHFT(pack_tmp, 3)
   16505     3081914 :          ipack = ipack + 1
   16506     3081914 :          pack_tmp = packed_data(ipack)
   16507     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   16508     3081914 :          pack_tmp = ISHFT(pack_tmp, -3)
   16509     3081914 :          idata = idata + 1
   16510     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16511     3081914 :          full_data(idata) = data_tmp
   16512     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16513     3081914 :          idata = idata + 1
   16514     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16515     3081914 :          full_data(idata) = data_tmp
   16516     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16517     3081914 :          idata = idata + 1
   16518     3081914 :          data_tmp = ISHFT(pack_tmp, 8)
   16519     3081914 :          ipack = ipack + 1
   16520     3081914 :          pack_tmp = packed_data(ipack)
   16521     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   16522     3081914 :          pack_tmp = ISHFT(pack_tmp, -8)
   16523     3081914 :          idata = idata + 1
   16524     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16525     3081914 :          full_data(idata) = data_tmp
   16526     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16527     3081914 :          idata = idata + 1
   16528     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16529     3081914 :          full_data(idata) = data_tmp
   16530     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16531     3081914 :          idata = idata + 1
   16532     3081914 :          data_tmp = ISHFT(pack_tmp, 13)
   16533     3081914 :          ipack = ipack + 1
   16534     3081914 :          pack_tmp = packed_data(ipack)
   16535     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   16536     3081914 :          pack_tmp = ISHFT(pack_tmp, -13)
   16537     3081914 :          idata = idata + 1
   16538     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16539     3081914 :          full_data(idata) = data_tmp
   16540     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16541     3081914 :          idata = idata + 1
   16542     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16543     3081914 :          full_data(idata) = data_tmp
   16544     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16545     3081914 :          idata = idata + 1
   16546     3081914 :          data_tmp = ISHFT(pack_tmp, 18)
   16547     3081914 :          ipack = ipack + 1
   16548     3081914 :          pack_tmp = packed_data(ipack)
   16549     3081914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   16550     3081914 :          pack_tmp = ISHFT(pack_tmp, -18)
   16551     3081914 :          idata = idata + 1
   16552     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16553     3081914 :          full_data(idata) = data_tmp
   16554     3081914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16555     3081914 :          idata = idata + 1
   16556     3081914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16557     3081914 :          full_data(idata) = data_tmp
   16558     3083506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16559             :       END DO
   16560      228106 :       IF (Ndata_rep < Ndata) THEN
   16561       37964 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16562             :       END IF
   16563      228106 :    END SUBROUTINE bits2ints_23
   16564             : 
   16565             : ! **************************************************************************************************
   16566             : !> \brief ...
   16567             : !> \param Ndata ...
   16568             : !> \param packed_data ...
   16569             : !> \param full_data ...
   16570             : ! **************************************************************************************************
   16571       36154 :    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       36154 :       idata = 0
   16582       36154 :       ipack = 0
   16583       36154 :       Ndata_rep = (Ndata/64)*64
   16584       36154 :       DO kdata = 1, Ndata_rep, 64
   16585      522721 :          pack_tmp = 0
   16586      522721 :          idata = idata + 1
   16587      522721 :          data_tmp = full_data(idata)
   16588      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16589      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16590      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16591      522721 :          idata = idata + 1
   16592      522721 :          data_tmp = full_data(idata)
   16593      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16594      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16595      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16596      522721 :          idata = idata + 1
   16597      522721 :          data_tmp = full_data(idata)
   16598      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16599      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16600      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16601      522721 :          ipack = ipack + 1
   16602      522721 :          packed_data(ipack) = pack_tmp
   16603      522721 :          data_tmp = full_data(idata)
   16604      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16605      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16606      522721 :          idata = idata + 1
   16607      522721 :          data_tmp = full_data(idata)
   16608      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16609      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16610      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16611      522721 :          idata = idata + 1
   16612      522721 :          data_tmp = full_data(idata)
   16613      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16614      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16615      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16616      522721 :          idata = idata + 1
   16617      522721 :          data_tmp = full_data(idata)
   16618      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16619      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16620      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16621      522721 :          ipack = ipack + 1
   16622      522721 :          packed_data(ipack) = pack_tmp
   16623      522721 :          data_tmp = full_data(idata)
   16624      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16625      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16626      522721 :          idata = idata + 1
   16627      522721 :          data_tmp = full_data(idata)
   16628      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16629      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16630      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16631      522721 :          idata = idata + 1
   16632      522721 :          data_tmp = full_data(idata)
   16633      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16634      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16635      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16636      522721 :          idata = idata + 1
   16637      522721 :          data_tmp = full_data(idata)
   16638             :          data_tmp = ISHFT(data_tmp, 40)
   16639      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16640      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16641      522721 :          ipack = ipack + 1
   16642      522721 :          packed_data(ipack) = pack_tmp
   16643      522721 :          data_tmp = full_data(idata)
   16644      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16645      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16646      522721 :          idata = idata + 1
   16647      522721 :          data_tmp = full_data(idata)
   16648      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16649      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16650      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16651      522721 :          idata = idata + 1
   16652      522721 :          data_tmp = full_data(idata)
   16653      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16654      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16655      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16656      522721 :          ipack = ipack + 1
   16657      522721 :          packed_data(ipack) = pack_tmp
   16658      522721 :          data_tmp = full_data(idata)
   16659      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16660      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16661      522721 :          idata = idata + 1
   16662      522721 :          data_tmp = full_data(idata)
   16663      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16664      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16665      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16666      522721 :          idata = idata + 1
   16667      522721 :          data_tmp = full_data(idata)
   16668      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16669      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16670      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16671      522721 :          idata = idata + 1
   16672      522721 :          data_tmp = full_data(idata)
   16673      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16674      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16675      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16676      522721 :          ipack = ipack + 1
   16677      522721 :          packed_data(ipack) = pack_tmp
   16678      522721 :          data_tmp = full_data(idata)
   16679      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16680      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16681      522721 :          idata = idata + 1
   16682      522721 :          data_tmp = full_data(idata)
   16683      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16684      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16685      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16686      522721 :          idata = idata + 1
   16687      522721 :          data_tmp = full_data(idata)
   16688      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16689      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16690      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16691      522721 :          idata = idata + 1
   16692      522721 :          data_tmp = full_data(idata)
   16693             :          data_tmp = ISHFT(data_tmp, 40)
   16694      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16695      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16696      522721 :          ipack = ipack + 1
   16697      522721 :          packed_data(ipack) = pack_tmp
   16698      522721 :          data_tmp = full_data(idata)
   16699      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16700      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16701      522721 :          idata = idata + 1
   16702      522721 :          data_tmp = full_data(idata)
   16703      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16704      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16705      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16706      522721 :          idata = idata + 1
   16707      522721 :          data_tmp = full_data(idata)
   16708      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16709      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16710      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16711      522721 :          ipack = ipack + 1
   16712      522721 :          packed_data(ipack) = pack_tmp
   16713      522721 :          data_tmp = full_data(idata)
   16714      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16715      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16716      522721 :          idata = idata + 1
   16717      522721 :          data_tmp = full_data(idata)
   16718      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16719      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16720      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16721      522721 :          idata = idata + 1
   16722      522721 :          data_tmp = full_data(idata)
   16723      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16724      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16725      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16726      522721 :          idata = idata + 1
   16727      522721 :          data_tmp = full_data(idata)
   16728      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16729      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16730      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16731      522721 :          ipack = ipack + 1
   16732      522721 :          packed_data(ipack) = pack_tmp
   16733      522721 :          data_tmp = full_data(idata)
   16734      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16735      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16736      522721 :          idata = idata + 1
   16737      522721 :          data_tmp = full_data(idata)
   16738      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16739      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16740      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16741      522721 :          idata = idata + 1
   16742      522721 :          data_tmp = full_data(idata)
   16743      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16744      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16745      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16746      522721 :          idata = idata + 1
   16747      522721 :          data_tmp = full_data(idata)
   16748             :          data_tmp = ISHFT(data_tmp, 40)
   16749      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16750      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16751      522721 :          ipack = ipack + 1
   16752      522721 :          packed_data(ipack) = pack_tmp
   16753      522721 :          data_tmp = full_data(idata)
   16754      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16755      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16756      522721 :          idata = idata + 1
   16757      522721 :          data_tmp = full_data(idata)
   16758      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16759      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16760      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16761      522721 :          idata = idata + 1
   16762      522721 :          data_tmp = full_data(idata)
   16763      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16764      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16765      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16766      522721 :          ipack = ipack + 1
   16767      522721 :          packed_data(ipack) = pack_tmp
   16768      522721 :          data_tmp = full_data(idata)
   16769      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16770      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16771      522721 :          idata = idata + 1
   16772      522721 :          data_tmp = full_data(idata)
   16773      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16774      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16775      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16776      522721 :          idata = idata + 1
   16777      522721 :          data_tmp = full_data(idata)
   16778      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16779      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16780      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16781      522721 :          idata = idata + 1
   16782      522721 :          data_tmp = full_data(idata)
   16783      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16784      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16785      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16786      522721 :          ipack = ipack + 1
   16787      522721 :          packed_data(ipack) = pack_tmp
   16788      522721 :          data_tmp = full_data(idata)
   16789      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16790      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16791      522721 :          idata = idata + 1
   16792      522721 :          data_tmp = full_data(idata)
   16793      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16794      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16795      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16796      522721 :          idata = idata + 1
   16797      522721 :          data_tmp = full_data(idata)
   16798      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16799      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16800      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16801      522721 :          idata = idata + 1
   16802      522721 :          data_tmp = full_data(idata)
   16803             :          data_tmp = ISHFT(data_tmp, 40)
   16804      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16805      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16806      522721 :          ipack = ipack + 1
   16807      522721 :          packed_data(ipack) = pack_tmp
   16808      522721 :          data_tmp = full_data(idata)
   16809      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16810      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16811      522721 :          idata = idata + 1
   16812      522721 :          data_tmp = full_data(idata)
   16813      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16814      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16815      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16816      522721 :          idata = idata + 1
   16817      522721 :          data_tmp = full_data(idata)
   16818      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16819      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16820      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16821      522721 :          ipack = ipack + 1
   16822      522721 :          packed_data(ipack) = pack_tmp
   16823      522721 :          data_tmp = full_data(idata)
   16824      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16825      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16826      522721 :          idata = idata + 1
   16827      522721 :          data_tmp = full_data(idata)
   16828      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16829      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16830      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16831      522721 :          idata = idata + 1
   16832      522721 :          data_tmp = full_data(idata)
   16833      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16834      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16835      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16836      522721 :          idata = idata + 1
   16837      522721 :          data_tmp = full_data(idata)
   16838      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16839      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16840      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16841      522721 :          ipack = ipack + 1
   16842      522721 :          packed_data(ipack) = pack_tmp
   16843      522721 :          data_tmp = full_data(idata)
   16844      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16845      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16846      522721 :          idata = idata + 1
   16847      522721 :          data_tmp = full_data(idata)
   16848      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16849      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16850      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16851      522721 :          idata = idata + 1
   16852      522721 :          data_tmp = full_data(idata)
   16853      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16854      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16855      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16856      522721 :          idata = idata + 1
   16857      522721 :          data_tmp = full_data(idata)
   16858             :          data_tmp = ISHFT(data_tmp, 40)
   16859      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16860      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16861      522721 :          ipack = ipack + 1
   16862      522721 :          packed_data(ipack) = pack_tmp
   16863      522721 :          data_tmp = full_data(idata)
   16864      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16865      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16866      522721 :          idata = idata + 1
   16867      522721 :          data_tmp = full_data(idata)
   16868      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16869      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16870      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16871      522721 :          idata = idata + 1
   16872      522721 :          data_tmp = full_data(idata)
   16873      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16874      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16875      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16876      522721 :          ipack = ipack + 1
   16877      522721 :          packed_data(ipack) = pack_tmp
   16878      522721 :          data_tmp = full_data(idata)
   16879      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16880      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16881      522721 :          idata = idata + 1
   16882      522721 :          data_tmp = full_data(idata)
   16883      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16884      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16885      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16886      522721 :          idata = idata + 1
   16887      522721 :          data_tmp = full_data(idata)
   16888      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16889      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16890      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16891      522721 :          idata = idata + 1
   16892      522721 :          data_tmp = full_data(idata)
   16893      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16894      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16895      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16896      522721 :          ipack = ipack + 1
   16897      522721 :          packed_data(ipack) = pack_tmp
   16898      522721 :          data_tmp = full_data(idata)
   16899      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16900      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16901      522721 :          idata = idata + 1
   16902      522721 :          data_tmp = full_data(idata)
   16903      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16904      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16905      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16906      522721 :          idata = idata + 1
   16907      522721 :          data_tmp = full_data(idata)
   16908      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16909      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16910      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16911      522721 :          idata = idata + 1
   16912      522721 :          data_tmp = full_data(idata)
   16913             :          data_tmp = ISHFT(data_tmp, 40)
   16914      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16915      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16916      522721 :          ipack = ipack + 1
   16917      522721 :          packed_data(ipack) = pack_tmp
   16918      522721 :          data_tmp = full_data(idata)
   16919      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16920      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16921      522721 :          idata = idata + 1
   16922      522721 :          data_tmp = full_data(idata)
   16923      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16924      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16925      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16926      522721 :          idata = idata + 1
   16927      522721 :          data_tmp = full_data(idata)
   16928      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16929      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16930      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16931      522721 :          ipack = ipack + 1
   16932      522721 :          packed_data(ipack) = pack_tmp
   16933      522721 :          data_tmp = full_data(idata)
   16934      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16935      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16936      522721 :          idata = idata + 1
   16937      522721 :          data_tmp = full_data(idata)
   16938      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16939      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16940      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16941      522721 :          idata = idata + 1
   16942      522721 :          data_tmp = full_data(idata)
   16943      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16944      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16945      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   16946      522721 :          idata = idata + 1
   16947      522721 :          data_tmp = full_data(idata)
   16948      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16949      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   16950      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16951      522721 :          ipack = ipack + 1
   16952      522721 :          packed_data(ipack) = pack_tmp
   16953      522721 :          data_tmp = full_data(idata)
   16954      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   16955      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16956      522721 :          idata = idata + 1
   16957      522721 :          data_tmp = full_data(idata)
   16958      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16959      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16960      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16961      522721 :          idata = idata + 1
   16962      522721 :          data_tmp = full_data(idata)
   16963      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16964      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16965      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   16966      522721 :          idata = idata + 1
   16967      522721 :          data_tmp = full_data(idata)
   16968             :          data_tmp = ISHFT(data_tmp, 40)
   16969      522721 :          data_tmp = IAND(data_tmp, mask_left(0))
   16970      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16971      522721 :          ipack = ipack + 1
   16972      522721 :          packed_data(ipack) = pack_tmp
   16973      522721 :          data_tmp = full_data(idata)
   16974      522721 :          pack_tmp = ISHFT(data_tmp, 40)
   16975      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16976      522721 :          idata = idata + 1
   16977      522721 :          data_tmp = full_data(idata)
   16978      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16979      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16980      522721 :          pack_tmp = ISHFT(pack_tmp, -16)
   16981      522721 :          idata = idata + 1
   16982      522721 :          data_tmp = full_data(idata)
   16983      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16984      522721 :          data_tmp = IAND(data_tmp, mask_left(16))
   16985      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16986      522721 :          ipack = ipack + 1
   16987      522721 :          packed_data(ipack) = pack_tmp
   16988      522721 :          data_tmp = full_data(idata)
   16989      522721 :          pack_tmp = ISHFT(data_tmp, 56)
   16990      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16991      522721 :          idata = idata + 1
   16992      522721 :          data_tmp = full_data(idata)
   16993      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16994      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16995      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   16996      522721 :          idata = idata + 1
   16997      522721 :          data_tmp = full_data(idata)
   16998      522721 :          data_tmp = ISHFT(data_tmp, 40)
   16999      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17000      522721 :          pack_tmp = ISHFT(pack_tmp, -8)
   17001      522721 :          idata = idata + 1
   17002      522721 :          data_tmp = full_data(idata)
   17003      522721 :          data_tmp = ISHFT(data_tmp, 40)
   17004      522721 :          data_tmp = IAND(data_tmp, mask_left(8))
   17005      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17006      522721 :          ipack = ipack + 1
   17007      522721 :          packed_data(ipack) = pack_tmp
   17008      522721 :          data_tmp = full_data(idata)
   17009      522721 :          pack_tmp = ISHFT(data_tmp, 48)
   17010      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   17011      522721 :          idata = idata + 1
   17012      522721 :          data_tmp = full_data(idata)
   17013      522721 :          data_tmp = ISHFT(data_tmp, 40)
   17014      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17015      522721 :          pack_tmp = ISHFT(pack_tmp, -24)
   17016      522721 :          idata = idata + 1
   17017      522721 :          data_tmp = full_data(idata)
   17018      522721 :          data_tmp = ISHFT(data_tmp, 40)
   17019      522721 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17020             :          pack_tmp = ISHFT(pack_tmp, 0)
   17021      522721 :          pack_tmp = ISHFT(pack_tmp, 0)
   17022      522721 :          ipack = ipack + 1
   17023      523401 :          packed_data(ipack) = pack_tmp
   17024             :       END DO
   17025       36154 :       IF (Ndata_rep < Ndata) THEN
   17026        6558 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17027             :       END IF
   17028       36154 :    END SUBROUTINE ints2bits_24
   17029             : 
   17030             : ! **************************************************************************************************
   17031             : !> \brief ...
   17032             : !> \param Ndata ...
   17033             : !> \param packed_data ...
   17034             : !> \param full_data ...
   17035             : ! **************************************************************************************************
   17036      160649 :    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      160649 :       ipack = 0
   17047      160649 :       idata = 0
   17048      160649 :       pack_tmp = 0
   17049      160649 :       Ndata_rep = (Ndata/64)*64
   17050      160649 :       DO kdata = 1, Ndata_rep, 64
   17051     2271252 :          idata = idata + 1
   17052     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17053     2271252 :          ipack = ipack + 1
   17054     2271252 :          pack_tmp = packed_data(ipack)
   17055     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17056     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17057     2271252 :          idata = idata + 1
   17058     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17059     2271252 :          full_data(idata) = data_tmp
   17060     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17061     2271252 :          idata = idata + 1
   17062     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17063     2271252 :          ipack = ipack + 1
   17064     2271252 :          pack_tmp = packed_data(ipack)
   17065     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17066     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17067     2271252 :          idata = idata + 1
   17068     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17069     2271252 :          full_data(idata) = data_tmp
   17070     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17071     2271252 :          idata = idata + 1
   17072     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17073     2271252 :          full_data(idata) = data_tmp
   17074     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17075     2271252 :          idata = idata + 1
   17076     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17077     2271252 :          ipack = ipack + 1
   17078     2271252 :          pack_tmp = packed_data(ipack)
   17079     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17080     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17081     2271252 :          idata = idata + 1
   17082     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17083     2271252 :          full_data(idata) = data_tmp
   17084     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17085     2271252 :          idata = idata + 1
   17086     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17087     2271252 :          full_data(idata) = data_tmp
   17088     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17089     2271252 :          idata = idata + 1
   17090     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17091     2271252 :          ipack = ipack + 1
   17092     2271252 :          pack_tmp = packed_data(ipack)
   17093     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17094     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17095     2271252 :          idata = idata + 1
   17096     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17097     2271252 :          full_data(idata) = data_tmp
   17098     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17099     2271252 :          idata = idata + 1
   17100     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17101     2271252 :          ipack = ipack + 1
   17102     2271252 :          pack_tmp = packed_data(ipack)
   17103     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17104     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17105     2271252 :          idata = idata + 1
   17106     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17107     2271252 :          full_data(idata) = data_tmp
   17108     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17109     2271252 :          idata = idata + 1
   17110     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17111     2271252 :          full_data(idata) = data_tmp
   17112     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17113     2271252 :          idata = idata + 1
   17114     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17115     2271252 :          ipack = ipack + 1
   17116     2271252 :          pack_tmp = packed_data(ipack)
   17117     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17118     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17119     2271252 :          idata = idata + 1
   17120     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17121     2271252 :          full_data(idata) = data_tmp
   17122     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17123     2271252 :          idata = idata + 1
   17124     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17125     2271252 :          full_data(idata) = data_tmp
   17126     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17127     2271252 :          idata = idata + 1
   17128     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17129     2271252 :          ipack = ipack + 1
   17130     2271252 :          pack_tmp = packed_data(ipack)
   17131     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17132     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17133     2271252 :          idata = idata + 1
   17134     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17135     2271252 :          full_data(idata) = data_tmp
   17136     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17137     2271252 :          idata = idata + 1
   17138     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17139     2271252 :          ipack = ipack + 1
   17140     2271252 :          pack_tmp = packed_data(ipack)
   17141     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17142     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17143     2271252 :          idata = idata + 1
   17144     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17145     2271252 :          full_data(idata) = data_tmp
   17146     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17147     2271252 :          idata = idata + 1
   17148     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17149     2271252 :          full_data(idata) = data_tmp
   17150     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17151     2271252 :          idata = idata + 1
   17152     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17153     2271252 :          ipack = ipack + 1
   17154     2271252 :          pack_tmp = packed_data(ipack)
   17155     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17156     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17157     2271252 :          idata = idata + 1
   17158     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17159     2271252 :          full_data(idata) = data_tmp
   17160     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17161     2271252 :          idata = idata + 1
   17162     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17163     2271252 :          full_data(idata) = data_tmp
   17164     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17165     2271252 :          idata = idata + 1
   17166     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17167     2271252 :          ipack = ipack + 1
   17168     2271252 :          pack_tmp = packed_data(ipack)
   17169     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17170     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17171     2271252 :          idata = idata + 1
   17172     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17173     2271252 :          full_data(idata) = data_tmp
   17174     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17175     2271252 :          idata = idata + 1
   17176     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17177     2271252 :          ipack = ipack + 1
   17178     2271252 :          pack_tmp = packed_data(ipack)
   17179     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17180     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17181     2271252 :          idata = idata + 1
   17182     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17183     2271252 :          full_data(idata) = data_tmp
   17184     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17185     2271252 :          idata = idata + 1
   17186     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17187     2271252 :          full_data(idata) = data_tmp
   17188     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17189     2271252 :          idata = idata + 1
   17190     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17191     2271252 :          ipack = ipack + 1
   17192     2271252 :          pack_tmp = packed_data(ipack)
   17193     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17194     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17195     2271252 :          idata = idata + 1
   17196     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17197     2271252 :          full_data(idata) = data_tmp
   17198     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17199     2271252 :          idata = idata + 1
   17200     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17201     2271252 :          full_data(idata) = data_tmp
   17202     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17203     2271252 :          idata = idata + 1
   17204     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17205     2271252 :          ipack = ipack + 1
   17206     2271252 :          pack_tmp = packed_data(ipack)
   17207     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17208     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17209     2271252 :          idata = idata + 1
   17210     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17211     2271252 :          full_data(idata) = data_tmp
   17212     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17213     2271252 :          idata = idata + 1
   17214     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17215     2271252 :          ipack = ipack + 1
   17216     2271252 :          pack_tmp = packed_data(ipack)
   17217     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17218     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17219     2271252 :          idata = idata + 1
   17220     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17221     2271252 :          full_data(idata) = data_tmp
   17222     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17223     2271252 :          idata = idata + 1
   17224     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17225     2271252 :          full_data(idata) = data_tmp
   17226     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17227     2271252 :          idata = idata + 1
   17228     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17229     2271252 :          ipack = ipack + 1
   17230     2271252 :          pack_tmp = packed_data(ipack)
   17231     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17232     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17233     2271252 :          idata = idata + 1
   17234     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17235     2271252 :          full_data(idata) = data_tmp
   17236     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17237     2271252 :          idata = idata + 1
   17238     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17239     2271252 :          full_data(idata) = data_tmp
   17240     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17241     2271252 :          idata = idata + 1
   17242     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17243     2271252 :          ipack = ipack + 1
   17244     2271252 :          pack_tmp = packed_data(ipack)
   17245     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17246     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17247     2271252 :          idata = idata + 1
   17248     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17249     2271252 :          full_data(idata) = data_tmp
   17250     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17251     2271252 :          idata = idata + 1
   17252     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17253     2271252 :          ipack = ipack + 1
   17254     2271252 :          pack_tmp = packed_data(ipack)
   17255     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17256     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17257     2271252 :          idata = idata + 1
   17258     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17259     2271252 :          full_data(idata) = data_tmp
   17260     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17261     2271252 :          idata = idata + 1
   17262     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17263     2271252 :          full_data(idata) = data_tmp
   17264     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17265     2271252 :          idata = idata + 1
   17266     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17267     2271252 :          ipack = ipack + 1
   17268     2271252 :          pack_tmp = packed_data(ipack)
   17269     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17270     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17271     2271252 :          idata = idata + 1
   17272     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17273     2271252 :          full_data(idata) = data_tmp
   17274     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17275     2271252 :          idata = idata + 1
   17276     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17277     2271252 :          full_data(idata) = data_tmp
   17278     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17279     2271252 :          idata = idata + 1
   17280     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17281     2271252 :          ipack = ipack + 1
   17282     2271252 :          pack_tmp = packed_data(ipack)
   17283     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17284     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17285     2271252 :          idata = idata + 1
   17286     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17287     2271252 :          full_data(idata) = data_tmp
   17288     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17289     2271252 :          idata = idata + 1
   17290     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17291     2271252 :          ipack = ipack + 1
   17292     2271252 :          pack_tmp = packed_data(ipack)
   17293     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17294     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17295     2271252 :          idata = idata + 1
   17296     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17297     2271252 :          full_data(idata) = data_tmp
   17298     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17299     2271252 :          idata = idata + 1
   17300     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17301     2271252 :          full_data(idata) = data_tmp
   17302     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17303     2271252 :          idata = idata + 1
   17304     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17305     2271252 :          ipack = ipack + 1
   17306     2271252 :          pack_tmp = packed_data(ipack)
   17307     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17308     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17309     2271252 :          idata = idata + 1
   17310     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17311     2271252 :          full_data(idata) = data_tmp
   17312     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17313     2271252 :          idata = idata + 1
   17314     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17315     2271252 :          full_data(idata) = data_tmp
   17316     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17317     2271252 :          idata = idata + 1
   17318     2271252 :          data_tmp = ISHFT(pack_tmp, 24)
   17319     2271252 :          ipack = ipack + 1
   17320     2271252 :          pack_tmp = packed_data(ipack)
   17321     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17322     2271252 :          pack_tmp = ISHFT(pack_tmp, -24)
   17323     2271252 :          idata = idata + 1
   17324     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17325     2271252 :          full_data(idata) = data_tmp
   17326     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17327     2271252 :          idata = idata + 1
   17328     2271252 :          data_tmp = ISHFT(pack_tmp, 8)
   17329     2271252 :          ipack = ipack + 1
   17330     2271252 :          pack_tmp = packed_data(ipack)
   17331     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17332     2271252 :          pack_tmp = ISHFT(pack_tmp, -8)
   17333     2271252 :          idata = idata + 1
   17334     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17335     2271252 :          full_data(idata) = data_tmp
   17336     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17337     2271252 :          idata = idata + 1
   17338     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17339     2271252 :          full_data(idata) = data_tmp
   17340     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17341     2271252 :          idata = idata + 1
   17342     2271252 :          data_tmp = ISHFT(pack_tmp, 16)
   17343     2271252 :          ipack = ipack + 1
   17344     2271252 :          pack_tmp = packed_data(ipack)
   17345     2271252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17346     2271252 :          pack_tmp = ISHFT(pack_tmp, -16)
   17347     2271252 :          idata = idata + 1
   17348     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17349     2271252 :          full_data(idata) = data_tmp
   17350     2271252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17351     2271252 :          idata = idata + 1
   17352     2271252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17353     2271252 :          full_data(idata) = data_tmp
   17354     2275058 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17355             :       END DO
   17356      160649 :       IF (Ndata_rep < Ndata) THEN
   17357       35192 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17358             :       END IF
   17359      160649 :    END SUBROUTINE bits2ints_24
   17360             : 
   17361             : ! **************************************************************************************************
   17362             : !> \brief ...
   17363             : !> \param Ndata ...
   17364             : !> \param packed_data ...
   17365             : !> \param full_data ...
   17366             : ! **************************************************************************************************
   17367       37335 :    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       37335 :       idata = 0
   17378       37335 :       ipack = 0
   17379       37335 :       Ndata_rep = (Ndata/64)*64
   17380       37335 :       DO kdata = 1, Ndata_rep, 64
   17381      533355 :          pack_tmp = 0
   17382      533355 :          idata = idata + 1
   17383      533355 :          data_tmp = full_data(idata)
   17384      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17385      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17386      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17387      533355 :          idata = idata + 1
   17388      533355 :          data_tmp = full_data(idata)
   17389      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17390      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17391      533355 :          pack_tmp = ISHFT(pack_tmp, -14)
   17392      533355 :          idata = idata + 1
   17393      533355 :          data_tmp = full_data(idata)
   17394      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17395      533355 :          data_tmp = IAND(data_tmp, mask_left(14))
   17396      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17397      533355 :          ipack = ipack + 1
   17398      533355 :          packed_data(ipack) = pack_tmp
   17399      533355 :          data_tmp = full_data(idata)
   17400      533355 :          pack_tmp = ISHFT(data_tmp, 53)
   17401      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17402      533355 :          idata = idata + 1
   17403      533355 :          data_tmp = full_data(idata)
   17404      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17405      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17406      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17407      533355 :          idata = idata + 1
   17408      533355 :          data_tmp = full_data(idata)
   17409      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17410      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17411      533355 :          pack_tmp = ISHFT(pack_tmp, -3)
   17412      533355 :          idata = idata + 1
   17413      533355 :          data_tmp = full_data(idata)
   17414      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17415      533355 :          data_tmp = IAND(data_tmp, mask_left(3))
   17416      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17417      533355 :          ipack = ipack + 1
   17418      533355 :          packed_data(ipack) = pack_tmp
   17419      533355 :          data_tmp = full_data(idata)
   17420      533355 :          pack_tmp = ISHFT(data_tmp, 42)
   17421      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17422      533355 :          idata = idata + 1
   17423      533355 :          data_tmp = full_data(idata)
   17424      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17425      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17426      533355 :          pack_tmp = ISHFT(pack_tmp, -17)
   17427      533355 :          idata = idata + 1
   17428      533355 :          data_tmp = full_data(idata)
   17429      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17430      533355 :          data_tmp = IAND(data_tmp, mask_left(17))
   17431      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17432      533355 :          ipack = ipack + 1
   17433      533355 :          packed_data(ipack) = pack_tmp
   17434      533355 :          data_tmp = full_data(idata)
   17435      533355 :          pack_tmp = ISHFT(data_tmp, 56)
   17436      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17437      533355 :          idata = idata + 1
   17438      533355 :          data_tmp = full_data(idata)
   17439      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17440      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17441      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17442      533355 :          idata = idata + 1
   17443      533355 :          data_tmp = full_data(idata)
   17444      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17445      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17446      533355 :          pack_tmp = ISHFT(pack_tmp, -6)
   17447      533355 :          idata = idata + 1
   17448      533355 :          data_tmp = full_data(idata)
   17449      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17450      533355 :          data_tmp = IAND(data_tmp, mask_left(6))
   17451      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17452      533355 :          ipack = ipack + 1
   17453      533355 :          packed_data(ipack) = pack_tmp
   17454      533355 :          data_tmp = full_data(idata)
   17455      533355 :          pack_tmp = ISHFT(data_tmp, 45)
   17456      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17457      533355 :          idata = idata + 1
   17458      533355 :          data_tmp = full_data(idata)
   17459      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17460      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17461      533355 :          pack_tmp = ISHFT(pack_tmp, -20)
   17462      533355 :          idata = idata + 1
   17463      533355 :          data_tmp = full_data(idata)
   17464      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17465      533355 :          data_tmp = IAND(data_tmp, mask_left(20))
   17466      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17467      533355 :          ipack = ipack + 1
   17468      533355 :          packed_data(ipack) = pack_tmp
   17469      533355 :          data_tmp = full_data(idata)
   17470      533355 :          pack_tmp = ISHFT(data_tmp, 59)
   17471      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17472      533355 :          idata = idata + 1
   17473      533355 :          data_tmp = full_data(idata)
   17474      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17475      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17476      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17477      533355 :          idata = idata + 1
   17478      533355 :          data_tmp = full_data(idata)
   17479      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17480      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17481      533355 :          pack_tmp = ISHFT(pack_tmp, -9)
   17482      533355 :          idata = idata + 1
   17483      533355 :          data_tmp = full_data(idata)
   17484      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17485      533355 :          data_tmp = IAND(data_tmp, mask_left(9))
   17486      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17487      533355 :          ipack = ipack + 1
   17488      533355 :          packed_data(ipack) = pack_tmp
   17489      533355 :          data_tmp = full_data(idata)
   17490      533355 :          pack_tmp = ISHFT(data_tmp, 48)
   17491      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17492      533355 :          idata = idata + 1
   17493      533355 :          data_tmp = full_data(idata)
   17494      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17495      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17496      533355 :          pack_tmp = ISHFT(pack_tmp, -23)
   17497      533355 :          idata = idata + 1
   17498      533355 :          data_tmp = full_data(idata)
   17499      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17500      533355 :          data_tmp = IAND(data_tmp, mask_left(23))
   17501      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17502      533355 :          ipack = ipack + 1
   17503      533355 :          packed_data(ipack) = pack_tmp
   17504      533355 :          data_tmp = full_data(idata)
   17505      533355 :          pack_tmp = ISHFT(data_tmp, 62)
   17506      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17507      533355 :          idata = idata + 1
   17508      533355 :          data_tmp = full_data(idata)
   17509      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17510      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17511      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17512      533355 :          idata = idata + 1
   17513      533355 :          data_tmp = full_data(idata)
   17514      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17515      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17516      533355 :          pack_tmp = ISHFT(pack_tmp, -12)
   17517      533355 :          idata = idata + 1
   17518      533355 :          data_tmp = full_data(idata)
   17519      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17520      533355 :          data_tmp = IAND(data_tmp, mask_left(12))
   17521      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17522      533355 :          ipack = ipack + 1
   17523      533355 :          packed_data(ipack) = pack_tmp
   17524      533355 :          data_tmp = full_data(idata)
   17525      533355 :          pack_tmp = ISHFT(data_tmp, 51)
   17526      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17527      533355 :          idata = idata + 1
   17528      533355 :          data_tmp = full_data(idata)
   17529      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17530      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17531      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17532      533355 :          idata = idata + 1
   17533      533355 :          data_tmp = full_data(idata)
   17534      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17535      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17536      533355 :          pack_tmp = ISHFT(pack_tmp, -1)
   17537      533355 :          idata = idata + 1
   17538      533355 :          data_tmp = full_data(idata)
   17539      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17540      533355 :          data_tmp = IAND(data_tmp, mask_left(1))
   17541      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17542      533355 :          ipack = ipack + 1
   17543      533355 :          packed_data(ipack) = pack_tmp
   17544      533355 :          data_tmp = full_data(idata)
   17545      533355 :          pack_tmp = ISHFT(data_tmp, 40)
   17546      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17547      533355 :          idata = idata + 1
   17548      533355 :          data_tmp = full_data(idata)
   17549      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17550      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17551      533355 :          pack_tmp = ISHFT(pack_tmp, -15)
   17552      533355 :          idata = idata + 1
   17553      533355 :          data_tmp = full_data(idata)
   17554      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17555      533355 :          data_tmp = IAND(data_tmp, mask_left(15))
   17556      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17557      533355 :          ipack = ipack + 1
   17558      533355 :          packed_data(ipack) = pack_tmp
   17559      533355 :          data_tmp = full_data(idata)
   17560      533355 :          pack_tmp = ISHFT(data_tmp, 54)
   17561      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17562      533355 :          idata = idata + 1
   17563      533355 :          data_tmp = full_data(idata)
   17564      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17565      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17566      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17567      533355 :          idata = idata + 1
   17568      533355 :          data_tmp = full_data(idata)
   17569      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17570      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17571      533355 :          pack_tmp = ISHFT(pack_tmp, -4)
   17572      533355 :          idata = idata + 1
   17573      533355 :          data_tmp = full_data(idata)
   17574      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17575      533355 :          data_tmp = IAND(data_tmp, mask_left(4))
   17576      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17577      533355 :          ipack = ipack + 1
   17578      533355 :          packed_data(ipack) = pack_tmp
   17579      533355 :          data_tmp = full_data(idata)
   17580      533355 :          pack_tmp = ISHFT(data_tmp, 43)
   17581      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17582      533355 :          idata = idata + 1
   17583      533355 :          data_tmp = full_data(idata)
   17584      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17585      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17586      533355 :          pack_tmp = ISHFT(pack_tmp, -18)
   17587      533355 :          idata = idata + 1
   17588      533355 :          data_tmp = full_data(idata)
   17589      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17590      533355 :          data_tmp = IAND(data_tmp, mask_left(18))
   17591      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17592      533355 :          ipack = ipack + 1
   17593      533355 :          packed_data(ipack) = pack_tmp
   17594      533355 :          data_tmp = full_data(idata)
   17595      533355 :          pack_tmp = ISHFT(data_tmp, 57)
   17596      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17597      533355 :          idata = idata + 1
   17598      533355 :          data_tmp = full_data(idata)
   17599      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17600      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17601      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17602      533355 :          idata = idata + 1
   17603      533355 :          data_tmp = full_data(idata)
   17604      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17605      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17606      533355 :          pack_tmp = ISHFT(pack_tmp, -7)
   17607      533355 :          idata = idata + 1
   17608      533355 :          data_tmp = full_data(idata)
   17609      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17610      533355 :          data_tmp = IAND(data_tmp, mask_left(7))
   17611      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17612      533355 :          ipack = ipack + 1
   17613      533355 :          packed_data(ipack) = pack_tmp
   17614      533355 :          data_tmp = full_data(idata)
   17615      533355 :          pack_tmp = ISHFT(data_tmp, 46)
   17616      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17617      533355 :          idata = idata + 1
   17618      533355 :          data_tmp = full_data(idata)
   17619      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17620      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17621      533355 :          pack_tmp = ISHFT(pack_tmp, -21)
   17622      533355 :          idata = idata + 1
   17623      533355 :          data_tmp = full_data(idata)
   17624      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17625      533355 :          data_tmp = IAND(data_tmp, mask_left(21))
   17626      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17627      533355 :          ipack = ipack + 1
   17628      533355 :          packed_data(ipack) = pack_tmp
   17629      533355 :          data_tmp = full_data(idata)
   17630      533355 :          pack_tmp = ISHFT(data_tmp, 60)
   17631      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17632      533355 :          idata = idata + 1
   17633      533355 :          data_tmp = full_data(idata)
   17634      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17635      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17636      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17637      533355 :          idata = idata + 1
   17638      533355 :          data_tmp = full_data(idata)
   17639      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17640      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17641      533355 :          pack_tmp = ISHFT(pack_tmp, -10)
   17642      533355 :          idata = idata + 1
   17643      533355 :          data_tmp = full_data(idata)
   17644      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17645      533355 :          data_tmp = IAND(data_tmp, mask_left(10))
   17646      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17647      533355 :          ipack = ipack + 1
   17648      533355 :          packed_data(ipack) = pack_tmp
   17649      533355 :          data_tmp = full_data(idata)
   17650      533355 :          pack_tmp = ISHFT(data_tmp, 49)
   17651      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17652      533355 :          idata = idata + 1
   17653      533355 :          data_tmp = full_data(idata)
   17654      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17655      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17656      533355 :          pack_tmp = ISHFT(pack_tmp, -24)
   17657      533355 :          idata = idata + 1
   17658      533355 :          data_tmp = full_data(idata)
   17659      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17660      533355 :          data_tmp = IAND(data_tmp, mask_left(24))
   17661      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17662      533355 :          ipack = ipack + 1
   17663      533355 :          packed_data(ipack) = pack_tmp
   17664      533355 :          data_tmp = full_data(idata)
   17665      533355 :          pack_tmp = ISHFT(data_tmp, 63)
   17666      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17667      533355 :          idata = idata + 1
   17668      533355 :          data_tmp = full_data(idata)
   17669      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17670      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17671      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17672      533355 :          idata = idata + 1
   17673      533355 :          data_tmp = full_data(idata)
   17674      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17675      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17676      533355 :          pack_tmp = ISHFT(pack_tmp, -13)
   17677      533355 :          idata = idata + 1
   17678      533355 :          data_tmp = full_data(idata)
   17679      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17680      533355 :          data_tmp = IAND(data_tmp, mask_left(13))
   17681      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17682      533355 :          ipack = ipack + 1
   17683      533355 :          packed_data(ipack) = pack_tmp
   17684      533355 :          data_tmp = full_data(idata)
   17685      533355 :          pack_tmp = ISHFT(data_tmp, 52)
   17686      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17687      533355 :          idata = idata + 1
   17688      533355 :          data_tmp = full_data(idata)
   17689      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17690      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17691      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17692      533355 :          idata = idata + 1
   17693      533355 :          data_tmp = full_data(idata)
   17694      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17695      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17696      533355 :          pack_tmp = ISHFT(pack_tmp, -2)
   17697      533355 :          idata = idata + 1
   17698      533355 :          data_tmp = full_data(idata)
   17699      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17700      533355 :          data_tmp = IAND(data_tmp, mask_left(2))
   17701      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17702      533355 :          ipack = ipack + 1
   17703      533355 :          packed_data(ipack) = pack_tmp
   17704      533355 :          data_tmp = full_data(idata)
   17705      533355 :          pack_tmp = ISHFT(data_tmp, 41)
   17706      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17707      533355 :          idata = idata + 1
   17708      533355 :          data_tmp = full_data(idata)
   17709      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17710      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17711      533355 :          pack_tmp = ISHFT(pack_tmp, -16)
   17712      533355 :          idata = idata + 1
   17713      533355 :          data_tmp = full_data(idata)
   17714      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17715      533355 :          data_tmp = IAND(data_tmp, mask_left(16))
   17716      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17717      533355 :          ipack = ipack + 1
   17718      533355 :          packed_data(ipack) = pack_tmp
   17719      533355 :          data_tmp = full_data(idata)
   17720      533355 :          pack_tmp = ISHFT(data_tmp, 55)
   17721      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17722      533355 :          idata = idata + 1
   17723      533355 :          data_tmp = full_data(idata)
   17724      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17725      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17726      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17727      533355 :          idata = idata + 1
   17728      533355 :          data_tmp = full_data(idata)
   17729      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17730      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17731      533355 :          pack_tmp = ISHFT(pack_tmp, -5)
   17732      533355 :          idata = idata + 1
   17733      533355 :          data_tmp = full_data(idata)
   17734      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17735      533355 :          data_tmp = IAND(data_tmp, mask_left(5))
   17736      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17737      533355 :          ipack = ipack + 1
   17738      533355 :          packed_data(ipack) = pack_tmp
   17739      533355 :          data_tmp = full_data(idata)
   17740      533355 :          pack_tmp = ISHFT(data_tmp, 44)
   17741      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17742      533355 :          idata = idata + 1
   17743      533355 :          data_tmp = full_data(idata)
   17744      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17745      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17746      533355 :          pack_tmp = ISHFT(pack_tmp, -19)
   17747      533355 :          idata = idata + 1
   17748      533355 :          data_tmp = full_data(idata)
   17749      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17750      533355 :          data_tmp = IAND(data_tmp, mask_left(19))
   17751      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17752      533355 :          ipack = ipack + 1
   17753      533355 :          packed_data(ipack) = pack_tmp
   17754      533355 :          data_tmp = full_data(idata)
   17755      533355 :          pack_tmp = ISHFT(data_tmp, 58)
   17756      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17757      533355 :          idata = idata + 1
   17758      533355 :          data_tmp = full_data(idata)
   17759      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17760      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17761      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17762      533355 :          idata = idata + 1
   17763      533355 :          data_tmp = full_data(idata)
   17764      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17765      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17766      533355 :          pack_tmp = ISHFT(pack_tmp, -8)
   17767      533355 :          idata = idata + 1
   17768      533355 :          data_tmp = full_data(idata)
   17769      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17770      533355 :          data_tmp = IAND(data_tmp, mask_left(8))
   17771      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17772      533355 :          ipack = ipack + 1
   17773      533355 :          packed_data(ipack) = pack_tmp
   17774      533355 :          data_tmp = full_data(idata)
   17775      533355 :          pack_tmp = ISHFT(data_tmp, 47)
   17776      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17777      533355 :          idata = idata + 1
   17778      533355 :          data_tmp = full_data(idata)
   17779      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17780      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17781      533355 :          pack_tmp = ISHFT(pack_tmp, -22)
   17782      533355 :          idata = idata + 1
   17783      533355 :          data_tmp = full_data(idata)
   17784      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17785      533355 :          data_tmp = IAND(data_tmp, mask_left(22))
   17786      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17787      533355 :          ipack = ipack + 1
   17788      533355 :          packed_data(ipack) = pack_tmp
   17789      533355 :          data_tmp = full_data(idata)
   17790      533355 :          pack_tmp = ISHFT(data_tmp, 61)
   17791      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17792      533355 :          idata = idata + 1
   17793      533355 :          data_tmp = full_data(idata)
   17794      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17795      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17796      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17797      533355 :          idata = idata + 1
   17798      533355 :          data_tmp = full_data(idata)
   17799      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17800      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17801      533355 :          pack_tmp = ISHFT(pack_tmp, -11)
   17802      533355 :          idata = idata + 1
   17803      533355 :          data_tmp = full_data(idata)
   17804      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17805      533355 :          data_tmp = IAND(data_tmp, mask_left(11))
   17806      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17807      533355 :          ipack = ipack + 1
   17808      533355 :          packed_data(ipack) = pack_tmp
   17809      533355 :          data_tmp = full_data(idata)
   17810      533355 :          pack_tmp = ISHFT(data_tmp, 50)
   17811      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17812      533355 :          idata = idata + 1
   17813      533355 :          data_tmp = full_data(idata)
   17814      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17815      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17816      533355 :          pack_tmp = ISHFT(pack_tmp, -25)
   17817      533355 :          idata = idata + 1
   17818      533355 :          data_tmp = full_data(idata)
   17819      533355 :          data_tmp = ISHFT(data_tmp, 39)
   17820      533355 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17821             :          pack_tmp = ISHFT(pack_tmp, 0)
   17822      533355 :          pack_tmp = ISHFT(pack_tmp, 0)
   17823      533355 :          ipack = ipack + 1
   17824      533479 :          packed_data(ipack) = pack_tmp
   17825             :       END DO
   17826       37335 :       IF (Ndata_rep < Ndata) THEN
   17827        7402 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17828             :       END IF
   17829       37335 :    END SUBROUTINE ints2bits_25
   17830             : 
   17831             : ! **************************************************************************************************
   17832             : !> \brief ...
   17833             : !> \param Ndata ...
   17834             : !> \param packed_data ...
   17835             : !> \param full_data ...
   17836             : ! **************************************************************************************************
   17837      161635 :    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      161635 :       ipack = 0
   17848      161635 :       idata = 0
   17849      161635 :       pack_tmp = 0
   17850      161635 :       Ndata_rep = (Ndata/64)*64
   17851      161635 :       DO kdata = 1, Ndata_rep, 64
   17852     2277464 :          idata = idata + 1
   17853     2277464 :          data_tmp = ISHFT(pack_tmp, 25)
   17854     2277464 :          ipack = ipack + 1
   17855     2277464 :          pack_tmp = packed_data(ipack)
   17856     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   17857     2277464 :          pack_tmp = ISHFT(pack_tmp, -25)
   17858     2277464 :          idata = idata + 1
   17859     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17860     2277464 :          full_data(idata) = data_tmp
   17861     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17862     2277464 :          idata = idata + 1
   17863     2277464 :          data_tmp = ISHFT(pack_tmp, 11)
   17864     2277464 :          ipack = ipack + 1
   17865     2277464 :          pack_tmp = packed_data(ipack)
   17866     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   17867     2277464 :          pack_tmp = ISHFT(pack_tmp, -11)
   17868     2277464 :          idata = idata + 1
   17869     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17870     2277464 :          full_data(idata) = data_tmp
   17871     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17872     2277464 :          idata = idata + 1
   17873     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17874     2277464 :          full_data(idata) = data_tmp
   17875     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17876     2277464 :          idata = idata + 1
   17877     2277464 :          data_tmp = ISHFT(pack_tmp, 22)
   17878     2277464 :          ipack = ipack + 1
   17879     2277464 :          pack_tmp = packed_data(ipack)
   17880     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   17881     2277464 :          pack_tmp = ISHFT(pack_tmp, -22)
   17882     2277464 :          idata = idata + 1
   17883     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17884     2277464 :          full_data(idata) = data_tmp
   17885     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17886     2277464 :          idata = idata + 1
   17887     2277464 :          data_tmp = ISHFT(pack_tmp, 8)
   17888     2277464 :          ipack = ipack + 1
   17889     2277464 :          pack_tmp = packed_data(ipack)
   17890     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17891     2277464 :          pack_tmp = ISHFT(pack_tmp, -8)
   17892     2277464 :          idata = idata + 1
   17893     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17894     2277464 :          full_data(idata) = data_tmp
   17895     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17896     2277464 :          idata = idata + 1
   17897     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17898     2277464 :          full_data(idata) = data_tmp
   17899     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17900     2277464 :          idata = idata + 1
   17901     2277464 :          data_tmp = ISHFT(pack_tmp, 19)
   17902     2277464 :          ipack = ipack + 1
   17903     2277464 :          pack_tmp = packed_data(ipack)
   17904     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   17905     2277464 :          pack_tmp = ISHFT(pack_tmp, -19)
   17906     2277464 :          idata = idata + 1
   17907     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17908     2277464 :          full_data(idata) = data_tmp
   17909     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17910     2277464 :          idata = idata + 1
   17911     2277464 :          data_tmp = ISHFT(pack_tmp, 5)
   17912     2277464 :          ipack = ipack + 1
   17913     2277464 :          pack_tmp = packed_data(ipack)
   17914     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   17915     2277464 :          pack_tmp = ISHFT(pack_tmp, -5)
   17916     2277464 :          idata = idata + 1
   17917     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17918     2277464 :          full_data(idata) = data_tmp
   17919     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17920     2277464 :          idata = idata + 1
   17921     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17922     2277464 :          full_data(idata) = data_tmp
   17923     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17924     2277464 :          idata = idata + 1
   17925     2277464 :          data_tmp = ISHFT(pack_tmp, 16)
   17926     2277464 :          ipack = ipack + 1
   17927     2277464 :          pack_tmp = packed_data(ipack)
   17928     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17929     2277464 :          pack_tmp = ISHFT(pack_tmp, -16)
   17930     2277464 :          idata = idata + 1
   17931     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17932     2277464 :          full_data(idata) = data_tmp
   17933     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17934     2277464 :          idata = idata + 1
   17935     2277464 :          data_tmp = ISHFT(pack_tmp, 2)
   17936     2277464 :          ipack = ipack + 1
   17937     2277464 :          pack_tmp = packed_data(ipack)
   17938     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   17939     2277464 :          pack_tmp = ISHFT(pack_tmp, -2)
   17940     2277464 :          idata = idata + 1
   17941     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17942     2277464 :          full_data(idata) = data_tmp
   17943     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17944     2277464 :          idata = idata + 1
   17945     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17946     2277464 :          full_data(idata) = data_tmp
   17947     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17948     2277464 :          idata = idata + 1
   17949     2277464 :          data_tmp = ISHFT(pack_tmp, 13)
   17950     2277464 :          ipack = ipack + 1
   17951     2277464 :          pack_tmp = packed_data(ipack)
   17952     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   17953     2277464 :          pack_tmp = ISHFT(pack_tmp, -13)
   17954     2277464 :          idata = idata + 1
   17955     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17956     2277464 :          full_data(idata) = data_tmp
   17957     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17958     2277464 :          idata = idata + 1
   17959     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17960     2277464 :          full_data(idata) = data_tmp
   17961     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17962     2277464 :          idata = idata + 1
   17963     2277464 :          data_tmp = ISHFT(pack_tmp, 24)
   17964     2277464 :          ipack = ipack + 1
   17965     2277464 :          pack_tmp = packed_data(ipack)
   17966     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17967     2277464 :          pack_tmp = ISHFT(pack_tmp, -24)
   17968     2277464 :          idata = idata + 1
   17969     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17970     2277464 :          full_data(idata) = data_tmp
   17971     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17972     2277464 :          idata = idata + 1
   17973     2277464 :          data_tmp = ISHFT(pack_tmp, 10)
   17974     2277464 :          ipack = ipack + 1
   17975     2277464 :          pack_tmp = packed_data(ipack)
   17976     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   17977     2277464 :          pack_tmp = ISHFT(pack_tmp, -10)
   17978     2277464 :          idata = idata + 1
   17979     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17980     2277464 :          full_data(idata) = data_tmp
   17981     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17982     2277464 :          idata = idata + 1
   17983     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17984     2277464 :          full_data(idata) = data_tmp
   17985     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17986     2277464 :          idata = idata + 1
   17987     2277464 :          data_tmp = ISHFT(pack_tmp, 21)
   17988     2277464 :          ipack = ipack + 1
   17989     2277464 :          pack_tmp = packed_data(ipack)
   17990     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   17991     2277464 :          pack_tmp = ISHFT(pack_tmp, -21)
   17992     2277464 :          idata = idata + 1
   17993     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17994     2277464 :          full_data(idata) = data_tmp
   17995     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17996     2277464 :          idata = idata + 1
   17997     2277464 :          data_tmp = ISHFT(pack_tmp, 7)
   17998     2277464 :          ipack = ipack + 1
   17999     2277464 :          pack_tmp = packed_data(ipack)
   18000     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   18001     2277464 :          pack_tmp = ISHFT(pack_tmp, -7)
   18002     2277464 :          idata = idata + 1
   18003     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18004     2277464 :          full_data(idata) = data_tmp
   18005     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18006     2277464 :          idata = idata + 1
   18007     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18008     2277464 :          full_data(idata) = data_tmp
   18009     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18010     2277464 :          idata = idata + 1
   18011     2277464 :          data_tmp = ISHFT(pack_tmp, 18)
   18012     2277464 :          ipack = ipack + 1
   18013     2277464 :          pack_tmp = packed_data(ipack)
   18014     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18015     2277464 :          pack_tmp = ISHFT(pack_tmp, -18)
   18016     2277464 :          idata = idata + 1
   18017     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18018     2277464 :          full_data(idata) = data_tmp
   18019     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18020     2277464 :          idata = idata + 1
   18021     2277464 :          data_tmp = ISHFT(pack_tmp, 4)
   18022     2277464 :          ipack = ipack + 1
   18023     2277464 :          pack_tmp = packed_data(ipack)
   18024     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18025     2277464 :          pack_tmp = ISHFT(pack_tmp, -4)
   18026     2277464 :          idata = idata + 1
   18027     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18028     2277464 :          full_data(idata) = data_tmp
   18029     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18030     2277464 :          idata = idata + 1
   18031     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18032     2277464 :          full_data(idata) = data_tmp
   18033     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18034     2277464 :          idata = idata + 1
   18035     2277464 :          data_tmp = ISHFT(pack_tmp, 15)
   18036     2277464 :          ipack = ipack + 1
   18037     2277464 :          pack_tmp = packed_data(ipack)
   18038     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   18039     2277464 :          pack_tmp = ISHFT(pack_tmp, -15)
   18040     2277464 :          idata = idata + 1
   18041     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18042     2277464 :          full_data(idata) = data_tmp
   18043     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18044     2277464 :          idata = idata + 1
   18045     2277464 :          data_tmp = ISHFT(pack_tmp, 1)
   18046     2277464 :          ipack = ipack + 1
   18047     2277464 :          pack_tmp = packed_data(ipack)
   18048     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   18049     2277464 :          pack_tmp = ISHFT(pack_tmp, -1)
   18050     2277464 :          idata = idata + 1
   18051     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18052     2277464 :          full_data(idata) = data_tmp
   18053     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18054     2277464 :          idata = idata + 1
   18055     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18056     2277464 :          full_data(idata) = data_tmp
   18057     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18058     2277464 :          idata = idata + 1
   18059     2277464 :          data_tmp = ISHFT(pack_tmp, 12)
   18060     2277464 :          ipack = ipack + 1
   18061     2277464 :          pack_tmp = packed_data(ipack)
   18062     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18063     2277464 :          pack_tmp = ISHFT(pack_tmp, -12)
   18064     2277464 :          idata = idata + 1
   18065     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18066     2277464 :          full_data(idata) = data_tmp
   18067     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18068     2277464 :          idata = idata + 1
   18069     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18070     2277464 :          full_data(idata) = data_tmp
   18071     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18072     2277464 :          idata = idata + 1
   18073     2277464 :          data_tmp = ISHFT(pack_tmp, 23)
   18074     2277464 :          ipack = ipack + 1
   18075     2277464 :          pack_tmp = packed_data(ipack)
   18076     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   18077     2277464 :          pack_tmp = ISHFT(pack_tmp, -23)
   18078     2277464 :          idata = idata + 1
   18079     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18080     2277464 :          full_data(idata) = data_tmp
   18081     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18082     2277464 :          idata = idata + 1
   18083     2277464 :          data_tmp = ISHFT(pack_tmp, 9)
   18084     2277464 :          ipack = ipack + 1
   18085     2277464 :          pack_tmp = packed_data(ipack)
   18086     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   18087     2277464 :          pack_tmp = ISHFT(pack_tmp, -9)
   18088     2277464 :          idata = idata + 1
   18089     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18090     2277464 :          full_data(idata) = data_tmp
   18091     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18092     2277464 :          idata = idata + 1
   18093     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18094     2277464 :          full_data(idata) = data_tmp
   18095     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18096     2277464 :          idata = idata + 1
   18097     2277464 :          data_tmp = ISHFT(pack_tmp, 20)
   18098     2277464 :          ipack = ipack + 1
   18099     2277464 :          pack_tmp = packed_data(ipack)
   18100     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18101     2277464 :          pack_tmp = ISHFT(pack_tmp, -20)
   18102     2277464 :          idata = idata + 1
   18103     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18104     2277464 :          full_data(idata) = data_tmp
   18105     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18106     2277464 :          idata = idata + 1
   18107     2277464 :          data_tmp = ISHFT(pack_tmp, 6)
   18108     2277464 :          ipack = ipack + 1
   18109     2277464 :          pack_tmp = packed_data(ipack)
   18110     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18111     2277464 :          pack_tmp = ISHFT(pack_tmp, -6)
   18112     2277464 :          idata = idata + 1
   18113     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18114     2277464 :          full_data(idata) = data_tmp
   18115     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18116     2277464 :          idata = idata + 1
   18117     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18118     2277464 :          full_data(idata) = data_tmp
   18119     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18120     2277464 :          idata = idata + 1
   18121     2277464 :          data_tmp = ISHFT(pack_tmp, 17)
   18122     2277464 :          ipack = ipack + 1
   18123     2277464 :          pack_tmp = packed_data(ipack)
   18124     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   18125     2277464 :          pack_tmp = ISHFT(pack_tmp, -17)
   18126     2277464 :          idata = idata + 1
   18127     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18128     2277464 :          full_data(idata) = data_tmp
   18129     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18130     2277464 :          idata = idata + 1
   18131     2277464 :          data_tmp = ISHFT(pack_tmp, 3)
   18132     2277464 :          ipack = ipack + 1
   18133     2277464 :          pack_tmp = packed_data(ipack)
   18134     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   18135     2277464 :          pack_tmp = ISHFT(pack_tmp, -3)
   18136     2277464 :          idata = idata + 1
   18137     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18138     2277464 :          full_data(idata) = data_tmp
   18139     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18140     2277464 :          idata = idata + 1
   18141     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18142     2277464 :          full_data(idata) = data_tmp
   18143     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18144     2277464 :          idata = idata + 1
   18145     2277464 :          data_tmp = ISHFT(pack_tmp, 14)
   18146     2277464 :          ipack = ipack + 1
   18147     2277464 :          pack_tmp = packed_data(ipack)
   18148     2277464 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18149     2277464 :          pack_tmp = ISHFT(pack_tmp, -14)
   18150     2277464 :          idata = idata + 1
   18151     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18152     2277464 :          full_data(idata) = data_tmp
   18153     2277464 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18154     2277464 :          idata = idata + 1
   18155     2277464 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18156     2277464 :          full_data(idata) = data_tmp
   18157     2278047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18158             :       END DO
   18159      161635 :       IF (Ndata_rep < Ndata) THEN
   18160       35760 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18161             :       END IF
   18162      161635 :    END SUBROUTINE bits2ints_25
   18163             : 
   18164             : ! **************************************************************************************************
   18165             : !> \brief ...
   18166             : !> \param Ndata ...
   18167             : !> \param packed_data ...
   18168             : !> \param full_data ...
   18169             : ! **************************************************************************************************
   18170       30074 :    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       30074 :       idata = 0
   18181       30074 :       ipack = 0
   18182       30074 :       Ndata_rep = (Ndata/64)*64
   18183       30074 :       DO kdata = 1, Ndata_rep, 64
   18184      451555 :          pack_tmp = 0
   18185      451555 :          idata = idata + 1
   18186      451555 :          data_tmp = full_data(idata)
   18187      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18188      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18189      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18190      451555 :          idata = idata + 1
   18191      451555 :          data_tmp = full_data(idata)
   18192      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18193      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18194      451555 :          pack_tmp = ISHFT(pack_tmp, -12)
   18195      451555 :          idata = idata + 1
   18196      451555 :          data_tmp = full_data(idata)
   18197      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18198      451555 :          data_tmp = IAND(data_tmp, mask_left(12))
   18199      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18200      451555 :          ipack = ipack + 1
   18201      451555 :          packed_data(ipack) = pack_tmp
   18202      451555 :          data_tmp = full_data(idata)
   18203      451555 :          pack_tmp = ISHFT(data_tmp, 50)
   18204      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18205      451555 :          idata = idata + 1
   18206      451555 :          data_tmp = full_data(idata)
   18207      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18208      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18209      451555 :          pack_tmp = ISHFT(pack_tmp, -24)
   18210      451555 :          idata = idata + 1
   18211      451555 :          data_tmp = full_data(idata)
   18212      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18213      451555 :          data_tmp = IAND(data_tmp, mask_left(24))
   18214      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18215      451555 :          ipack = ipack + 1
   18216      451555 :          packed_data(ipack) = pack_tmp
   18217      451555 :          data_tmp = full_data(idata)
   18218      451555 :          pack_tmp = ISHFT(data_tmp, 62)
   18219      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18220      451555 :          idata = idata + 1
   18221      451555 :          data_tmp = full_data(idata)
   18222      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18223      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18224      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18225      451555 :          idata = idata + 1
   18226      451555 :          data_tmp = full_data(idata)
   18227      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18228      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18229      451555 :          pack_tmp = ISHFT(pack_tmp, -10)
   18230      451555 :          idata = idata + 1
   18231      451555 :          data_tmp = full_data(idata)
   18232      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18233      451555 :          data_tmp = IAND(data_tmp, mask_left(10))
   18234      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18235      451555 :          ipack = ipack + 1
   18236      451555 :          packed_data(ipack) = pack_tmp
   18237      451555 :          data_tmp = full_data(idata)
   18238      451555 :          pack_tmp = ISHFT(data_tmp, 48)
   18239      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18240      451555 :          idata = idata + 1
   18241      451555 :          data_tmp = full_data(idata)
   18242      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18243      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18244      451555 :          pack_tmp = ISHFT(pack_tmp, -22)
   18245      451555 :          idata = idata + 1
   18246      451555 :          data_tmp = full_data(idata)
   18247      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18248      451555 :          data_tmp = IAND(data_tmp, mask_left(22))
   18249      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18250      451555 :          ipack = ipack + 1
   18251      451555 :          packed_data(ipack) = pack_tmp
   18252      451555 :          data_tmp = full_data(idata)
   18253      451555 :          pack_tmp = ISHFT(data_tmp, 60)
   18254      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18255      451555 :          idata = idata + 1
   18256      451555 :          data_tmp = full_data(idata)
   18257      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18258      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18259      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18260      451555 :          idata = idata + 1
   18261      451555 :          data_tmp = full_data(idata)
   18262      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18263      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18264      451555 :          pack_tmp = ISHFT(pack_tmp, -8)
   18265      451555 :          idata = idata + 1
   18266      451555 :          data_tmp = full_data(idata)
   18267      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18268      451555 :          data_tmp = IAND(data_tmp, mask_left(8))
   18269      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18270      451555 :          ipack = ipack + 1
   18271      451555 :          packed_data(ipack) = pack_tmp
   18272      451555 :          data_tmp = full_data(idata)
   18273      451555 :          pack_tmp = ISHFT(data_tmp, 46)
   18274      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18275      451555 :          idata = idata + 1
   18276      451555 :          data_tmp = full_data(idata)
   18277      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18278      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18279      451555 :          pack_tmp = ISHFT(pack_tmp, -20)
   18280      451555 :          idata = idata + 1
   18281      451555 :          data_tmp = full_data(idata)
   18282      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18283      451555 :          data_tmp = IAND(data_tmp, mask_left(20))
   18284      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18285      451555 :          ipack = ipack + 1
   18286      451555 :          packed_data(ipack) = pack_tmp
   18287      451555 :          data_tmp = full_data(idata)
   18288      451555 :          pack_tmp = ISHFT(data_tmp, 58)
   18289      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18290      451555 :          idata = idata + 1
   18291      451555 :          data_tmp = full_data(idata)
   18292      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18293      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18294      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18295      451555 :          idata = idata + 1
   18296      451555 :          data_tmp = full_data(idata)
   18297      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18298      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18299      451555 :          pack_tmp = ISHFT(pack_tmp, -6)
   18300      451555 :          idata = idata + 1
   18301      451555 :          data_tmp = full_data(idata)
   18302      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18303      451555 :          data_tmp = IAND(data_tmp, mask_left(6))
   18304      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18305      451555 :          ipack = ipack + 1
   18306      451555 :          packed_data(ipack) = pack_tmp
   18307      451555 :          data_tmp = full_data(idata)
   18308      451555 :          pack_tmp = ISHFT(data_tmp, 44)
   18309      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18310      451555 :          idata = idata + 1
   18311      451555 :          data_tmp = full_data(idata)
   18312      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18313      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18314      451555 :          pack_tmp = ISHFT(pack_tmp, -18)
   18315      451555 :          idata = idata + 1
   18316      451555 :          data_tmp = full_data(idata)
   18317      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18318      451555 :          data_tmp = IAND(data_tmp, mask_left(18))
   18319      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18320      451555 :          ipack = ipack + 1
   18321      451555 :          packed_data(ipack) = pack_tmp
   18322      451555 :          data_tmp = full_data(idata)
   18323      451555 :          pack_tmp = ISHFT(data_tmp, 56)
   18324      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18325      451555 :          idata = idata + 1
   18326      451555 :          data_tmp = full_data(idata)
   18327      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18328      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18329      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18330      451555 :          idata = idata + 1
   18331      451555 :          data_tmp = full_data(idata)
   18332      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18333      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18334      451555 :          pack_tmp = ISHFT(pack_tmp, -4)
   18335      451555 :          idata = idata + 1
   18336      451555 :          data_tmp = full_data(idata)
   18337      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18338      451555 :          data_tmp = IAND(data_tmp, mask_left(4))
   18339      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18340      451555 :          ipack = ipack + 1
   18341      451555 :          packed_data(ipack) = pack_tmp
   18342      451555 :          data_tmp = full_data(idata)
   18343      451555 :          pack_tmp = ISHFT(data_tmp, 42)
   18344      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18345      451555 :          idata = idata + 1
   18346      451555 :          data_tmp = full_data(idata)
   18347      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18348      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18349      451555 :          pack_tmp = ISHFT(pack_tmp, -16)
   18350      451555 :          idata = idata + 1
   18351      451555 :          data_tmp = full_data(idata)
   18352      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18353      451555 :          data_tmp = IAND(data_tmp, mask_left(16))
   18354      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18355      451555 :          ipack = ipack + 1
   18356      451555 :          packed_data(ipack) = pack_tmp
   18357      451555 :          data_tmp = full_data(idata)
   18358      451555 :          pack_tmp = ISHFT(data_tmp, 54)
   18359      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18360      451555 :          idata = idata + 1
   18361      451555 :          data_tmp = full_data(idata)
   18362      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18363      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18364      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18365      451555 :          idata = idata + 1
   18366      451555 :          data_tmp = full_data(idata)
   18367      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18368      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18369      451555 :          pack_tmp = ISHFT(pack_tmp, -2)
   18370      451555 :          idata = idata + 1
   18371      451555 :          data_tmp = full_data(idata)
   18372      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18373      451555 :          data_tmp = IAND(data_tmp, mask_left(2))
   18374      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18375      451555 :          ipack = ipack + 1
   18376      451555 :          packed_data(ipack) = pack_tmp
   18377      451555 :          data_tmp = full_data(idata)
   18378      451555 :          pack_tmp = ISHFT(data_tmp, 40)
   18379      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18380      451555 :          idata = idata + 1
   18381      451555 :          data_tmp = full_data(idata)
   18382      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18383      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18384      451555 :          pack_tmp = ISHFT(pack_tmp, -14)
   18385      451555 :          idata = idata + 1
   18386      451555 :          data_tmp = full_data(idata)
   18387      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18388      451555 :          data_tmp = IAND(data_tmp, mask_left(14))
   18389      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18390      451555 :          ipack = ipack + 1
   18391      451555 :          packed_data(ipack) = pack_tmp
   18392      451555 :          data_tmp = full_data(idata)
   18393      451555 :          pack_tmp = ISHFT(data_tmp, 52)
   18394      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18395      451555 :          idata = idata + 1
   18396      451555 :          data_tmp = full_data(idata)
   18397      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18398      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18399      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18400      451555 :          idata = idata + 1
   18401      451555 :          data_tmp = full_data(idata)
   18402      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18403      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18404      451555 :          pack_tmp = ISHFT(pack_tmp, 0)
   18405      451555 :          idata = idata + 1
   18406      451555 :          data_tmp = full_data(idata)
   18407             :          data_tmp = ISHFT(data_tmp, 38)
   18408      451555 :          data_tmp = IAND(data_tmp, mask_left(0))
   18409      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18410      451555 :          ipack = ipack + 1
   18411      451555 :          packed_data(ipack) = pack_tmp
   18412      451555 :          data_tmp = full_data(idata)
   18413      451555 :          pack_tmp = ISHFT(data_tmp, 38)
   18414      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18415      451555 :          idata = idata + 1
   18416      451555 :          data_tmp = full_data(idata)
   18417      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18418      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18419      451555 :          pack_tmp = ISHFT(pack_tmp, -12)
   18420      451555 :          idata = idata + 1
   18421      451555 :          data_tmp = full_data(idata)
   18422      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18423      451555 :          data_tmp = IAND(data_tmp, mask_left(12))
   18424      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18425      451555 :          ipack = ipack + 1
   18426      451555 :          packed_data(ipack) = pack_tmp
   18427      451555 :          data_tmp = full_data(idata)
   18428      451555 :          pack_tmp = ISHFT(data_tmp, 50)
   18429      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18430      451555 :          idata = idata + 1
   18431      451555 :          data_tmp = full_data(idata)
   18432      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18433      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18434      451555 :          pack_tmp = ISHFT(pack_tmp, -24)
   18435      451555 :          idata = idata + 1
   18436      451555 :          data_tmp = full_data(idata)
   18437      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18438      451555 :          data_tmp = IAND(data_tmp, mask_left(24))
   18439      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18440      451555 :          ipack = ipack + 1
   18441      451555 :          packed_data(ipack) = pack_tmp
   18442      451555 :          data_tmp = full_data(idata)
   18443      451555 :          pack_tmp = ISHFT(data_tmp, 62)
   18444      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18445      451555 :          idata = idata + 1
   18446      451555 :          data_tmp = full_data(idata)
   18447      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18448      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18449      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18450      451555 :          idata = idata + 1
   18451      451555 :          data_tmp = full_data(idata)
   18452      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18453      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18454      451555 :          pack_tmp = ISHFT(pack_tmp, -10)
   18455      451555 :          idata = idata + 1
   18456      451555 :          data_tmp = full_data(idata)
   18457      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18458      451555 :          data_tmp = IAND(data_tmp, mask_left(10))
   18459      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18460      451555 :          ipack = ipack + 1
   18461      451555 :          packed_data(ipack) = pack_tmp
   18462      451555 :          data_tmp = full_data(idata)
   18463      451555 :          pack_tmp = ISHFT(data_tmp, 48)
   18464      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18465      451555 :          idata = idata + 1
   18466      451555 :          data_tmp = full_data(idata)
   18467      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18468      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18469      451555 :          pack_tmp = ISHFT(pack_tmp, -22)
   18470      451555 :          idata = idata + 1
   18471      451555 :          data_tmp = full_data(idata)
   18472      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18473      451555 :          data_tmp = IAND(data_tmp, mask_left(22))
   18474      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18475      451555 :          ipack = ipack + 1
   18476      451555 :          packed_data(ipack) = pack_tmp
   18477      451555 :          data_tmp = full_data(idata)
   18478      451555 :          pack_tmp = ISHFT(data_tmp, 60)
   18479      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18480      451555 :          idata = idata + 1
   18481      451555 :          data_tmp = full_data(idata)
   18482      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18483      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18484      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18485      451555 :          idata = idata + 1
   18486      451555 :          data_tmp = full_data(idata)
   18487      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18488      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18489      451555 :          pack_tmp = ISHFT(pack_tmp, -8)
   18490      451555 :          idata = idata + 1
   18491      451555 :          data_tmp = full_data(idata)
   18492      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18493      451555 :          data_tmp = IAND(data_tmp, mask_left(8))
   18494      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18495      451555 :          ipack = ipack + 1
   18496      451555 :          packed_data(ipack) = pack_tmp
   18497      451555 :          data_tmp = full_data(idata)
   18498      451555 :          pack_tmp = ISHFT(data_tmp, 46)
   18499      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18500      451555 :          idata = idata + 1
   18501      451555 :          data_tmp = full_data(idata)
   18502      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18503      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18504      451555 :          pack_tmp = ISHFT(pack_tmp, -20)
   18505      451555 :          idata = idata + 1
   18506      451555 :          data_tmp = full_data(idata)
   18507      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18508      451555 :          data_tmp = IAND(data_tmp, mask_left(20))
   18509      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18510      451555 :          ipack = ipack + 1
   18511      451555 :          packed_data(ipack) = pack_tmp
   18512      451555 :          data_tmp = full_data(idata)
   18513      451555 :          pack_tmp = ISHFT(data_tmp, 58)
   18514      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18515      451555 :          idata = idata + 1
   18516      451555 :          data_tmp = full_data(idata)
   18517      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18518      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18519      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18520      451555 :          idata = idata + 1
   18521      451555 :          data_tmp = full_data(idata)
   18522      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18523      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18524      451555 :          pack_tmp = ISHFT(pack_tmp, -6)
   18525      451555 :          idata = idata + 1
   18526      451555 :          data_tmp = full_data(idata)
   18527      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18528      451555 :          data_tmp = IAND(data_tmp, mask_left(6))
   18529      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18530      451555 :          ipack = ipack + 1
   18531      451555 :          packed_data(ipack) = pack_tmp
   18532      451555 :          data_tmp = full_data(idata)
   18533      451555 :          pack_tmp = ISHFT(data_tmp, 44)
   18534      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18535      451555 :          idata = idata + 1
   18536      451555 :          data_tmp = full_data(idata)
   18537      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18538      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18539      451555 :          pack_tmp = ISHFT(pack_tmp, -18)
   18540      451555 :          idata = idata + 1
   18541      451555 :          data_tmp = full_data(idata)
   18542      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18543      451555 :          data_tmp = IAND(data_tmp, mask_left(18))
   18544      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18545      451555 :          ipack = ipack + 1
   18546      451555 :          packed_data(ipack) = pack_tmp
   18547      451555 :          data_tmp = full_data(idata)
   18548      451555 :          pack_tmp = ISHFT(data_tmp, 56)
   18549      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18550      451555 :          idata = idata + 1
   18551      451555 :          data_tmp = full_data(idata)
   18552      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18553      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18554      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18555      451555 :          idata = idata + 1
   18556      451555 :          data_tmp = full_data(idata)
   18557      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18558      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18559      451555 :          pack_tmp = ISHFT(pack_tmp, -4)
   18560      451555 :          idata = idata + 1
   18561      451555 :          data_tmp = full_data(idata)
   18562      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18563      451555 :          data_tmp = IAND(data_tmp, mask_left(4))
   18564      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18565      451555 :          ipack = ipack + 1
   18566      451555 :          packed_data(ipack) = pack_tmp
   18567      451555 :          data_tmp = full_data(idata)
   18568      451555 :          pack_tmp = ISHFT(data_tmp, 42)
   18569      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18570      451555 :          idata = idata + 1
   18571      451555 :          data_tmp = full_data(idata)
   18572      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18573      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18574      451555 :          pack_tmp = ISHFT(pack_tmp, -16)
   18575      451555 :          idata = idata + 1
   18576      451555 :          data_tmp = full_data(idata)
   18577      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18578      451555 :          data_tmp = IAND(data_tmp, mask_left(16))
   18579      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18580      451555 :          ipack = ipack + 1
   18581      451555 :          packed_data(ipack) = pack_tmp
   18582      451555 :          data_tmp = full_data(idata)
   18583      451555 :          pack_tmp = ISHFT(data_tmp, 54)
   18584      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18585      451555 :          idata = idata + 1
   18586      451555 :          data_tmp = full_data(idata)
   18587      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18588      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18589      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18590      451555 :          idata = idata + 1
   18591      451555 :          data_tmp = full_data(idata)
   18592      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18593      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18594      451555 :          pack_tmp = ISHFT(pack_tmp, -2)
   18595      451555 :          idata = idata + 1
   18596      451555 :          data_tmp = full_data(idata)
   18597      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18598      451555 :          data_tmp = IAND(data_tmp, mask_left(2))
   18599      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18600      451555 :          ipack = ipack + 1
   18601      451555 :          packed_data(ipack) = pack_tmp
   18602      451555 :          data_tmp = full_data(idata)
   18603      451555 :          pack_tmp = ISHFT(data_tmp, 40)
   18604      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18605      451555 :          idata = idata + 1
   18606      451555 :          data_tmp = full_data(idata)
   18607      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18608      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18609      451555 :          pack_tmp = ISHFT(pack_tmp, -14)
   18610      451555 :          idata = idata + 1
   18611      451555 :          data_tmp = full_data(idata)
   18612      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18613      451555 :          data_tmp = IAND(data_tmp, mask_left(14))
   18614      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18615      451555 :          ipack = ipack + 1
   18616      451555 :          packed_data(ipack) = pack_tmp
   18617      451555 :          data_tmp = full_data(idata)
   18618      451555 :          pack_tmp = ISHFT(data_tmp, 52)
   18619      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18620      451555 :          idata = idata + 1
   18621      451555 :          data_tmp = full_data(idata)
   18622      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18623      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18624      451555 :          pack_tmp = ISHFT(pack_tmp, -26)
   18625      451555 :          idata = idata + 1
   18626      451555 :          data_tmp = full_data(idata)
   18627      451555 :          data_tmp = ISHFT(data_tmp, 38)
   18628      451555 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18629             :          pack_tmp = ISHFT(pack_tmp, 0)
   18630      451555 :          pack_tmp = ISHFT(pack_tmp, 0)
   18631      451555 :          ipack = ipack + 1
   18632      451681 :          packed_data(ipack) = pack_tmp
   18633             :       END DO
   18634       30074 :       IF (Ndata_rep < Ndata) THEN
   18635        3418 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18636             :       END IF
   18637       30074 :    END SUBROUTINE ints2bits_26
   18638             : 
   18639             : ! **************************************************************************************************
   18640             : !> \brief ...
   18641             : !> \param Ndata ...
   18642             : !> \param packed_data ...
   18643             : !> \param full_data ...
   18644             : ! **************************************************************************************************
   18645      133453 :    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      133453 :       ipack = 0
   18656      133453 :       idata = 0
   18657      133453 :       pack_tmp = 0
   18658      133453 :       Ndata_rep = (Ndata/64)*64
   18659      133453 :       DO kdata = 1, Ndata_rep, 64
   18660     1956249 :          idata = idata + 1
   18661     1956249 :          data_tmp = ISHFT(pack_tmp, 26)
   18662     1956249 :          ipack = ipack + 1
   18663     1956249 :          pack_tmp = packed_data(ipack)
   18664     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18665     1956249 :          pack_tmp = ISHFT(pack_tmp, -26)
   18666     1956249 :          idata = idata + 1
   18667     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18668     1956249 :          full_data(idata) = data_tmp
   18669     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18670     1956249 :          idata = idata + 1
   18671     1956249 :          data_tmp = ISHFT(pack_tmp, 14)
   18672     1956249 :          ipack = ipack + 1
   18673     1956249 :          pack_tmp = packed_data(ipack)
   18674     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18675     1956249 :          pack_tmp = ISHFT(pack_tmp, -14)
   18676     1956249 :          idata = idata + 1
   18677     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18678     1956249 :          full_data(idata) = data_tmp
   18679     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18680     1956249 :          idata = idata + 1
   18681     1956249 :          data_tmp = ISHFT(pack_tmp, 2)
   18682     1956249 :          ipack = ipack + 1
   18683     1956249 :          pack_tmp = packed_data(ipack)
   18684     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18685     1956249 :          pack_tmp = ISHFT(pack_tmp, -2)
   18686     1956249 :          idata = idata + 1
   18687     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18688     1956249 :          full_data(idata) = data_tmp
   18689     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18690     1956249 :          idata = idata + 1
   18691     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18692     1956249 :          full_data(idata) = data_tmp
   18693     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18694     1956249 :          idata = idata + 1
   18695     1956249 :          data_tmp = ISHFT(pack_tmp, 16)
   18696     1956249 :          ipack = ipack + 1
   18697     1956249 :          pack_tmp = packed_data(ipack)
   18698     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18699     1956249 :          pack_tmp = ISHFT(pack_tmp, -16)
   18700     1956249 :          idata = idata + 1
   18701     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18702     1956249 :          full_data(idata) = data_tmp
   18703     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18704     1956249 :          idata = idata + 1
   18705     1956249 :          data_tmp = ISHFT(pack_tmp, 4)
   18706     1956249 :          ipack = ipack + 1
   18707     1956249 :          pack_tmp = packed_data(ipack)
   18708     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18709     1956249 :          pack_tmp = ISHFT(pack_tmp, -4)
   18710     1956249 :          idata = idata + 1
   18711     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18712     1956249 :          full_data(idata) = data_tmp
   18713     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18714     1956249 :          idata = idata + 1
   18715     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18716     1956249 :          full_data(idata) = data_tmp
   18717     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18718     1956249 :          idata = idata + 1
   18719     1956249 :          data_tmp = ISHFT(pack_tmp, 18)
   18720     1956249 :          ipack = ipack + 1
   18721     1956249 :          pack_tmp = packed_data(ipack)
   18722     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18723     1956249 :          pack_tmp = ISHFT(pack_tmp, -18)
   18724     1956249 :          idata = idata + 1
   18725     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18726     1956249 :          full_data(idata) = data_tmp
   18727     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18728     1956249 :          idata = idata + 1
   18729     1956249 :          data_tmp = ISHFT(pack_tmp, 6)
   18730     1956249 :          ipack = ipack + 1
   18731     1956249 :          pack_tmp = packed_data(ipack)
   18732     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18733     1956249 :          pack_tmp = ISHFT(pack_tmp, -6)
   18734     1956249 :          idata = idata + 1
   18735     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18736     1956249 :          full_data(idata) = data_tmp
   18737     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18738     1956249 :          idata = idata + 1
   18739     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18740     1956249 :          full_data(idata) = data_tmp
   18741     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18742     1956249 :          idata = idata + 1
   18743     1956249 :          data_tmp = ISHFT(pack_tmp, 20)
   18744     1956249 :          ipack = ipack + 1
   18745     1956249 :          pack_tmp = packed_data(ipack)
   18746     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18747     1956249 :          pack_tmp = ISHFT(pack_tmp, -20)
   18748     1956249 :          idata = idata + 1
   18749     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18750     1956249 :          full_data(idata) = data_tmp
   18751     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18752     1956249 :          idata = idata + 1
   18753     1956249 :          data_tmp = ISHFT(pack_tmp, 8)
   18754     1956249 :          ipack = ipack + 1
   18755     1956249 :          pack_tmp = packed_data(ipack)
   18756     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18757     1956249 :          pack_tmp = ISHFT(pack_tmp, -8)
   18758     1956249 :          idata = idata + 1
   18759     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18760     1956249 :          full_data(idata) = data_tmp
   18761     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18762     1956249 :          idata = idata + 1
   18763     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18764     1956249 :          full_data(idata) = data_tmp
   18765     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18766     1956249 :          idata = idata + 1
   18767     1956249 :          data_tmp = ISHFT(pack_tmp, 22)
   18768     1956249 :          ipack = ipack + 1
   18769     1956249 :          pack_tmp = packed_data(ipack)
   18770     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18771     1956249 :          pack_tmp = ISHFT(pack_tmp, -22)
   18772     1956249 :          idata = idata + 1
   18773     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18774     1956249 :          full_data(idata) = data_tmp
   18775     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18776     1956249 :          idata = idata + 1
   18777     1956249 :          data_tmp = ISHFT(pack_tmp, 10)
   18778     1956249 :          ipack = ipack + 1
   18779     1956249 :          pack_tmp = packed_data(ipack)
   18780     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18781     1956249 :          pack_tmp = ISHFT(pack_tmp, -10)
   18782     1956249 :          idata = idata + 1
   18783     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18784     1956249 :          full_data(idata) = data_tmp
   18785     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18786     1956249 :          idata = idata + 1
   18787     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18788     1956249 :          full_data(idata) = data_tmp
   18789     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18790     1956249 :          idata = idata + 1
   18791     1956249 :          data_tmp = ISHFT(pack_tmp, 24)
   18792     1956249 :          ipack = ipack + 1
   18793     1956249 :          pack_tmp = packed_data(ipack)
   18794     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18795     1956249 :          pack_tmp = ISHFT(pack_tmp, -24)
   18796     1956249 :          idata = idata + 1
   18797     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18798     1956249 :          full_data(idata) = data_tmp
   18799     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18800     1956249 :          idata = idata + 1
   18801     1956249 :          data_tmp = ISHFT(pack_tmp, 12)
   18802     1956249 :          ipack = ipack + 1
   18803     1956249 :          pack_tmp = packed_data(ipack)
   18804     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18805     1956249 :          pack_tmp = ISHFT(pack_tmp, -12)
   18806     1956249 :          idata = idata + 1
   18807     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18808     1956249 :          full_data(idata) = data_tmp
   18809     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18810     1956249 :          idata = idata + 1
   18811     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18812     1956249 :          full_data(idata) = data_tmp
   18813     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18814     1956249 :          idata = idata + 1
   18815     1956249 :          data_tmp = ISHFT(pack_tmp, 26)
   18816     1956249 :          ipack = ipack + 1
   18817     1956249 :          pack_tmp = packed_data(ipack)
   18818     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18819     1956249 :          pack_tmp = ISHFT(pack_tmp, -26)
   18820     1956249 :          idata = idata + 1
   18821     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18822     1956249 :          full_data(idata) = data_tmp
   18823     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18824     1956249 :          idata = idata + 1
   18825     1956249 :          data_tmp = ISHFT(pack_tmp, 14)
   18826     1956249 :          ipack = ipack + 1
   18827     1956249 :          pack_tmp = packed_data(ipack)
   18828     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18829     1956249 :          pack_tmp = ISHFT(pack_tmp, -14)
   18830     1956249 :          idata = idata + 1
   18831     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18832     1956249 :          full_data(idata) = data_tmp
   18833     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18834     1956249 :          idata = idata + 1
   18835     1956249 :          data_tmp = ISHFT(pack_tmp, 2)
   18836     1956249 :          ipack = ipack + 1
   18837     1956249 :          pack_tmp = packed_data(ipack)
   18838     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18839     1956249 :          pack_tmp = ISHFT(pack_tmp, -2)
   18840     1956249 :          idata = idata + 1
   18841     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18842     1956249 :          full_data(idata) = data_tmp
   18843     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18844     1956249 :          idata = idata + 1
   18845     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18846     1956249 :          full_data(idata) = data_tmp
   18847     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18848     1956249 :          idata = idata + 1
   18849     1956249 :          data_tmp = ISHFT(pack_tmp, 16)
   18850     1956249 :          ipack = ipack + 1
   18851     1956249 :          pack_tmp = packed_data(ipack)
   18852     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18853     1956249 :          pack_tmp = ISHFT(pack_tmp, -16)
   18854     1956249 :          idata = idata + 1
   18855     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18856     1956249 :          full_data(idata) = data_tmp
   18857     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18858     1956249 :          idata = idata + 1
   18859     1956249 :          data_tmp = ISHFT(pack_tmp, 4)
   18860     1956249 :          ipack = ipack + 1
   18861     1956249 :          pack_tmp = packed_data(ipack)
   18862     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18863     1956249 :          pack_tmp = ISHFT(pack_tmp, -4)
   18864     1956249 :          idata = idata + 1
   18865     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18866     1956249 :          full_data(idata) = data_tmp
   18867     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18868     1956249 :          idata = idata + 1
   18869     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18870     1956249 :          full_data(idata) = data_tmp
   18871     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18872     1956249 :          idata = idata + 1
   18873     1956249 :          data_tmp = ISHFT(pack_tmp, 18)
   18874     1956249 :          ipack = ipack + 1
   18875     1956249 :          pack_tmp = packed_data(ipack)
   18876     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18877     1956249 :          pack_tmp = ISHFT(pack_tmp, -18)
   18878     1956249 :          idata = idata + 1
   18879     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18880     1956249 :          full_data(idata) = data_tmp
   18881     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18882     1956249 :          idata = idata + 1
   18883     1956249 :          data_tmp = ISHFT(pack_tmp, 6)
   18884     1956249 :          ipack = ipack + 1
   18885     1956249 :          pack_tmp = packed_data(ipack)
   18886     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18887     1956249 :          pack_tmp = ISHFT(pack_tmp, -6)
   18888     1956249 :          idata = idata + 1
   18889     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18890     1956249 :          full_data(idata) = data_tmp
   18891     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18892     1956249 :          idata = idata + 1
   18893     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18894     1956249 :          full_data(idata) = data_tmp
   18895     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18896     1956249 :          idata = idata + 1
   18897     1956249 :          data_tmp = ISHFT(pack_tmp, 20)
   18898     1956249 :          ipack = ipack + 1
   18899     1956249 :          pack_tmp = packed_data(ipack)
   18900     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18901     1956249 :          pack_tmp = ISHFT(pack_tmp, -20)
   18902     1956249 :          idata = idata + 1
   18903     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18904     1956249 :          full_data(idata) = data_tmp
   18905     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18906     1956249 :          idata = idata + 1
   18907     1956249 :          data_tmp = ISHFT(pack_tmp, 8)
   18908     1956249 :          ipack = ipack + 1
   18909     1956249 :          pack_tmp = packed_data(ipack)
   18910     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18911     1956249 :          pack_tmp = ISHFT(pack_tmp, -8)
   18912     1956249 :          idata = idata + 1
   18913     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18914     1956249 :          full_data(idata) = data_tmp
   18915     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18916     1956249 :          idata = idata + 1
   18917     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18918     1956249 :          full_data(idata) = data_tmp
   18919     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18920     1956249 :          idata = idata + 1
   18921     1956249 :          data_tmp = ISHFT(pack_tmp, 22)
   18922     1956249 :          ipack = ipack + 1
   18923     1956249 :          pack_tmp = packed_data(ipack)
   18924     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18925     1956249 :          pack_tmp = ISHFT(pack_tmp, -22)
   18926     1956249 :          idata = idata + 1
   18927     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18928     1956249 :          full_data(idata) = data_tmp
   18929     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18930     1956249 :          idata = idata + 1
   18931     1956249 :          data_tmp = ISHFT(pack_tmp, 10)
   18932     1956249 :          ipack = ipack + 1
   18933     1956249 :          pack_tmp = packed_data(ipack)
   18934     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18935     1956249 :          pack_tmp = ISHFT(pack_tmp, -10)
   18936     1956249 :          idata = idata + 1
   18937     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18938     1956249 :          full_data(idata) = data_tmp
   18939     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18940     1956249 :          idata = idata + 1
   18941     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18942     1956249 :          full_data(idata) = data_tmp
   18943     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18944     1956249 :          idata = idata + 1
   18945     1956249 :          data_tmp = ISHFT(pack_tmp, 24)
   18946     1956249 :          ipack = ipack + 1
   18947     1956249 :          pack_tmp = packed_data(ipack)
   18948     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18949     1956249 :          pack_tmp = ISHFT(pack_tmp, -24)
   18950     1956249 :          idata = idata + 1
   18951     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18952     1956249 :          full_data(idata) = data_tmp
   18953     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18954     1956249 :          idata = idata + 1
   18955     1956249 :          data_tmp = ISHFT(pack_tmp, 12)
   18956     1956249 :          ipack = ipack + 1
   18957     1956249 :          pack_tmp = packed_data(ipack)
   18958     1956249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18959     1956249 :          pack_tmp = ISHFT(pack_tmp, -12)
   18960     1956249 :          idata = idata + 1
   18961     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18962     1956249 :          full_data(idata) = data_tmp
   18963     1956249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18964     1956249 :          idata = idata + 1
   18965     1956249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18966     1956249 :          full_data(idata) = data_tmp
   18967     1956772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18968             :       END DO
   18969      133453 :       IF (Ndata_rep < Ndata) THEN
   18970       20814 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18971             :       END IF
   18972      133453 :    END SUBROUTINE bits2ints_26
   18973             : 
   18974             : ! **************************************************************************************************
   18975             : !> \brief ...
   18976             : !> \param Ndata ...
   18977             : !> \param packed_data ...
   18978             : !> \param full_data ...
   18979             : ! **************************************************************************************************
   18980       29599 :    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       29599 :       idata = 0
   18991       29599 :       ipack = 0
   18992       29599 :       Ndata_rep = (Ndata/64)*64
   18993       29599 :       DO kdata = 1, Ndata_rep, 64
   18994      446690 :          pack_tmp = 0
   18995      446690 :          idata = idata + 1
   18996      446690 :          data_tmp = full_data(idata)
   18997      446690 :          data_tmp = ISHFT(data_tmp, 37)
   18998      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18999      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19000      446690 :          idata = idata + 1
   19001      446690 :          data_tmp = full_data(idata)
   19002      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19003      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19004      446690 :          pack_tmp = ISHFT(pack_tmp, -10)
   19005      446690 :          idata = idata + 1
   19006      446690 :          data_tmp = full_data(idata)
   19007      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19008      446690 :          data_tmp = IAND(data_tmp, mask_left(10))
   19009      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19010      446690 :          ipack = ipack + 1
   19011      446690 :          packed_data(ipack) = pack_tmp
   19012      446690 :          data_tmp = full_data(idata)
   19013      446690 :          pack_tmp = ISHFT(data_tmp, 47)
   19014      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19015      446690 :          idata = idata + 1
   19016      446690 :          data_tmp = full_data(idata)
   19017      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19018      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19019      446690 :          pack_tmp = ISHFT(pack_tmp, -20)
   19020      446690 :          idata = idata + 1
   19021      446690 :          data_tmp = full_data(idata)
   19022      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19023      446690 :          data_tmp = IAND(data_tmp, mask_left(20))
   19024      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19025      446690 :          ipack = ipack + 1
   19026      446690 :          packed_data(ipack) = pack_tmp
   19027      446690 :          data_tmp = full_data(idata)
   19028      446690 :          pack_tmp = ISHFT(data_tmp, 57)
   19029      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19030      446690 :          idata = idata + 1
   19031      446690 :          data_tmp = full_data(idata)
   19032      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19033      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19034      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19035      446690 :          idata = idata + 1
   19036      446690 :          data_tmp = full_data(idata)
   19037      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19038      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19039      446690 :          pack_tmp = ISHFT(pack_tmp, -3)
   19040      446690 :          idata = idata + 1
   19041      446690 :          data_tmp = full_data(idata)
   19042      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19043      446690 :          data_tmp = IAND(data_tmp, mask_left(3))
   19044      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19045      446690 :          ipack = ipack + 1
   19046      446690 :          packed_data(ipack) = pack_tmp
   19047      446690 :          data_tmp = full_data(idata)
   19048      446690 :          pack_tmp = ISHFT(data_tmp, 40)
   19049      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19050      446690 :          idata = idata + 1
   19051      446690 :          data_tmp = full_data(idata)
   19052      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19053      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19054      446690 :          pack_tmp = ISHFT(pack_tmp, -13)
   19055      446690 :          idata = idata + 1
   19056      446690 :          data_tmp = full_data(idata)
   19057      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19058      446690 :          data_tmp = IAND(data_tmp, mask_left(13))
   19059      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19060      446690 :          ipack = ipack + 1
   19061      446690 :          packed_data(ipack) = pack_tmp
   19062      446690 :          data_tmp = full_data(idata)
   19063      446690 :          pack_tmp = ISHFT(data_tmp, 50)
   19064      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19065      446690 :          idata = idata + 1
   19066      446690 :          data_tmp = full_data(idata)
   19067      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19068      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19069      446690 :          pack_tmp = ISHFT(pack_tmp, -23)
   19070      446690 :          idata = idata + 1
   19071      446690 :          data_tmp = full_data(idata)
   19072      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19073      446690 :          data_tmp = IAND(data_tmp, mask_left(23))
   19074      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19075      446690 :          ipack = ipack + 1
   19076      446690 :          packed_data(ipack) = pack_tmp
   19077      446690 :          data_tmp = full_data(idata)
   19078      446690 :          pack_tmp = ISHFT(data_tmp, 60)
   19079      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19080      446690 :          idata = idata + 1
   19081      446690 :          data_tmp = full_data(idata)
   19082      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19083      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19084      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19085      446690 :          idata = idata + 1
   19086      446690 :          data_tmp = full_data(idata)
   19087      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19088      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19089      446690 :          pack_tmp = ISHFT(pack_tmp, -6)
   19090      446690 :          idata = idata + 1
   19091      446690 :          data_tmp = full_data(idata)
   19092      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19093      446690 :          data_tmp = IAND(data_tmp, mask_left(6))
   19094      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19095      446690 :          ipack = ipack + 1
   19096      446690 :          packed_data(ipack) = pack_tmp
   19097      446690 :          data_tmp = full_data(idata)
   19098      446690 :          pack_tmp = ISHFT(data_tmp, 43)
   19099      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19100      446690 :          idata = idata + 1
   19101      446690 :          data_tmp = full_data(idata)
   19102      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19103      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19104      446690 :          pack_tmp = ISHFT(pack_tmp, -16)
   19105      446690 :          idata = idata + 1
   19106      446690 :          data_tmp = full_data(idata)
   19107      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19108      446690 :          data_tmp = IAND(data_tmp, mask_left(16))
   19109      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19110      446690 :          ipack = ipack + 1
   19111      446690 :          packed_data(ipack) = pack_tmp
   19112      446690 :          data_tmp = full_data(idata)
   19113      446690 :          pack_tmp = ISHFT(data_tmp, 53)
   19114      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19115      446690 :          idata = idata + 1
   19116      446690 :          data_tmp = full_data(idata)
   19117      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19118      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19119      446690 :          pack_tmp = ISHFT(pack_tmp, -26)
   19120      446690 :          idata = idata + 1
   19121      446690 :          data_tmp = full_data(idata)
   19122      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19123      446690 :          data_tmp = IAND(data_tmp, mask_left(26))
   19124      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19125      446690 :          ipack = ipack + 1
   19126      446690 :          packed_data(ipack) = pack_tmp
   19127      446690 :          data_tmp = full_data(idata)
   19128      446690 :          pack_tmp = ISHFT(data_tmp, 63)
   19129      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19130      446690 :          idata = idata + 1
   19131      446690 :          data_tmp = full_data(idata)
   19132      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19133      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19134      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19135      446690 :          idata = idata + 1
   19136      446690 :          data_tmp = full_data(idata)
   19137      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19138      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19139      446690 :          pack_tmp = ISHFT(pack_tmp, -9)
   19140      446690 :          idata = idata + 1
   19141      446690 :          data_tmp = full_data(idata)
   19142      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19143      446690 :          data_tmp = IAND(data_tmp, mask_left(9))
   19144      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19145      446690 :          ipack = ipack + 1
   19146      446690 :          packed_data(ipack) = pack_tmp
   19147      446690 :          data_tmp = full_data(idata)
   19148      446690 :          pack_tmp = ISHFT(data_tmp, 46)
   19149      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19150      446690 :          idata = idata + 1
   19151      446690 :          data_tmp = full_data(idata)
   19152      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19153      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19154      446690 :          pack_tmp = ISHFT(pack_tmp, -19)
   19155      446690 :          idata = idata + 1
   19156      446690 :          data_tmp = full_data(idata)
   19157      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19158      446690 :          data_tmp = IAND(data_tmp, mask_left(19))
   19159      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19160      446690 :          ipack = ipack + 1
   19161      446690 :          packed_data(ipack) = pack_tmp
   19162      446690 :          data_tmp = full_data(idata)
   19163      446690 :          pack_tmp = ISHFT(data_tmp, 56)
   19164      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19165      446690 :          idata = idata + 1
   19166      446690 :          data_tmp = full_data(idata)
   19167      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19168      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19169      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19170      446690 :          idata = idata + 1
   19171      446690 :          data_tmp = full_data(idata)
   19172      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19173      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19174      446690 :          pack_tmp = ISHFT(pack_tmp, -2)
   19175      446690 :          idata = idata + 1
   19176      446690 :          data_tmp = full_data(idata)
   19177      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19178      446690 :          data_tmp = IAND(data_tmp, mask_left(2))
   19179      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19180      446690 :          ipack = ipack + 1
   19181      446690 :          packed_data(ipack) = pack_tmp
   19182      446690 :          data_tmp = full_data(idata)
   19183      446690 :          pack_tmp = ISHFT(data_tmp, 39)
   19184      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19185      446690 :          idata = idata + 1
   19186      446690 :          data_tmp = full_data(idata)
   19187      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19188      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19189      446690 :          pack_tmp = ISHFT(pack_tmp, -12)
   19190      446690 :          idata = idata + 1
   19191      446690 :          data_tmp = full_data(idata)
   19192      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19193      446690 :          data_tmp = IAND(data_tmp, mask_left(12))
   19194      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19195      446690 :          ipack = ipack + 1
   19196      446690 :          packed_data(ipack) = pack_tmp
   19197      446690 :          data_tmp = full_data(idata)
   19198      446690 :          pack_tmp = ISHFT(data_tmp, 49)
   19199      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19200      446690 :          idata = idata + 1
   19201      446690 :          data_tmp = full_data(idata)
   19202      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19203      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19204      446690 :          pack_tmp = ISHFT(pack_tmp, -22)
   19205      446690 :          idata = idata + 1
   19206      446690 :          data_tmp = full_data(idata)
   19207      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19208      446690 :          data_tmp = IAND(data_tmp, mask_left(22))
   19209      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19210      446690 :          ipack = ipack + 1
   19211      446690 :          packed_data(ipack) = pack_tmp
   19212      446690 :          data_tmp = full_data(idata)
   19213      446690 :          pack_tmp = ISHFT(data_tmp, 59)
   19214      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19215      446690 :          idata = idata + 1
   19216      446690 :          data_tmp = full_data(idata)
   19217      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19218      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19219      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19220      446690 :          idata = idata + 1
   19221      446690 :          data_tmp = full_data(idata)
   19222      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19223      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19224      446690 :          pack_tmp = ISHFT(pack_tmp, -5)
   19225      446690 :          idata = idata + 1
   19226      446690 :          data_tmp = full_data(idata)
   19227      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19228      446690 :          data_tmp = IAND(data_tmp, mask_left(5))
   19229      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19230      446690 :          ipack = ipack + 1
   19231      446690 :          packed_data(ipack) = pack_tmp
   19232      446690 :          data_tmp = full_data(idata)
   19233      446690 :          pack_tmp = ISHFT(data_tmp, 42)
   19234      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19235      446690 :          idata = idata + 1
   19236      446690 :          data_tmp = full_data(idata)
   19237      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19238      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19239      446690 :          pack_tmp = ISHFT(pack_tmp, -15)
   19240      446690 :          idata = idata + 1
   19241      446690 :          data_tmp = full_data(idata)
   19242      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19243      446690 :          data_tmp = IAND(data_tmp, mask_left(15))
   19244      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19245      446690 :          ipack = ipack + 1
   19246      446690 :          packed_data(ipack) = pack_tmp
   19247      446690 :          data_tmp = full_data(idata)
   19248      446690 :          pack_tmp = ISHFT(data_tmp, 52)
   19249      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19250      446690 :          idata = idata + 1
   19251      446690 :          data_tmp = full_data(idata)
   19252      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19253      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19254      446690 :          pack_tmp = ISHFT(pack_tmp, -25)
   19255      446690 :          idata = idata + 1
   19256      446690 :          data_tmp = full_data(idata)
   19257      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19258      446690 :          data_tmp = IAND(data_tmp, mask_left(25))
   19259      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19260      446690 :          ipack = ipack + 1
   19261      446690 :          packed_data(ipack) = pack_tmp
   19262      446690 :          data_tmp = full_data(idata)
   19263      446690 :          pack_tmp = ISHFT(data_tmp, 62)
   19264      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19265      446690 :          idata = idata + 1
   19266      446690 :          data_tmp = full_data(idata)
   19267      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19268      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19269      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19270      446690 :          idata = idata + 1
   19271      446690 :          data_tmp = full_data(idata)
   19272      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19273      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19274      446690 :          pack_tmp = ISHFT(pack_tmp, -8)
   19275      446690 :          idata = idata + 1
   19276      446690 :          data_tmp = full_data(idata)
   19277      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19278      446690 :          data_tmp = IAND(data_tmp, mask_left(8))
   19279      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19280      446690 :          ipack = ipack + 1
   19281      446690 :          packed_data(ipack) = pack_tmp
   19282      446690 :          data_tmp = full_data(idata)
   19283      446690 :          pack_tmp = ISHFT(data_tmp, 45)
   19284      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19285      446690 :          idata = idata + 1
   19286      446690 :          data_tmp = full_data(idata)
   19287      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19288      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19289      446690 :          pack_tmp = ISHFT(pack_tmp, -18)
   19290      446690 :          idata = idata + 1
   19291      446690 :          data_tmp = full_data(idata)
   19292      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19293      446690 :          data_tmp = IAND(data_tmp, mask_left(18))
   19294      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19295      446690 :          ipack = ipack + 1
   19296      446690 :          packed_data(ipack) = pack_tmp
   19297      446690 :          data_tmp = full_data(idata)
   19298      446690 :          pack_tmp = ISHFT(data_tmp, 55)
   19299      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19300      446690 :          idata = idata + 1
   19301      446690 :          data_tmp = full_data(idata)
   19302      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19303      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19304      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19305      446690 :          idata = idata + 1
   19306      446690 :          data_tmp = full_data(idata)
   19307      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19308      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19309      446690 :          pack_tmp = ISHFT(pack_tmp, -1)
   19310      446690 :          idata = idata + 1
   19311      446690 :          data_tmp = full_data(idata)
   19312      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19313      446690 :          data_tmp = IAND(data_tmp, mask_left(1))
   19314      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19315      446690 :          ipack = ipack + 1
   19316      446690 :          packed_data(ipack) = pack_tmp
   19317      446690 :          data_tmp = full_data(idata)
   19318      446690 :          pack_tmp = ISHFT(data_tmp, 38)
   19319      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19320      446690 :          idata = idata + 1
   19321      446690 :          data_tmp = full_data(idata)
   19322      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19323      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19324      446690 :          pack_tmp = ISHFT(pack_tmp, -11)
   19325      446690 :          idata = idata + 1
   19326      446690 :          data_tmp = full_data(idata)
   19327      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19328      446690 :          data_tmp = IAND(data_tmp, mask_left(11))
   19329      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19330      446690 :          ipack = ipack + 1
   19331      446690 :          packed_data(ipack) = pack_tmp
   19332      446690 :          data_tmp = full_data(idata)
   19333      446690 :          pack_tmp = ISHFT(data_tmp, 48)
   19334      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19335      446690 :          idata = idata + 1
   19336      446690 :          data_tmp = full_data(idata)
   19337      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19338      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19339      446690 :          pack_tmp = ISHFT(pack_tmp, -21)
   19340      446690 :          idata = idata + 1
   19341      446690 :          data_tmp = full_data(idata)
   19342      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19343      446690 :          data_tmp = IAND(data_tmp, mask_left(21))
   19344      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19345      446690 :          ipack = ipack + 1
   19346      446690 :          packed_data(ipack) = pack_tmp
   19347      446690 :          data_tmp = full_data(idata)
   19348      446690 :          pack_tmp = ISHFT(data_tmp, 58)
   19349      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19350      446690 :          idata = idata + 1
   19351      446690 :          data_tmp = full_data(idata)
   19352      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19353      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19354      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19355      446690 :          idata = idata + 1
   19356      446690 :          data_tmp = full_data(idata)
   19357      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19358      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19359      446690 :          pack_tmp = ISHFT(pack_tmp, -4)
   19360      446690 :          idata = idata + 1
   19361      446690 :          data_tmp = full_data(idata)
   19362      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19363      446690 :          data_tmp = IAND(data_tmp, mask_left(4))
   19364      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19365      446690 :          ipack = ipack + 1
   19366      446690 :          packed_data(ipack) = pack_tmp
   19367      446690 :          data_tmp = full_data(idata)
   19368      446690 :          pack_tmp = ISHFT(data_tmp, 41)
   19369      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19370      446690 :          idata = idata + 1
   19371      446690 :          data_tmp = full_data(idata)
   19372      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19373      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19374      446690 :          pack_tmp = ISHFT(pack_tmp, -14)
   19375      446690 :          idata = idata + 1
   19376      446690 :          data_tmp = full_data(idata)
   19377      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19378      446690 :          data_tmp = IAND(data_tmp, mask_left(14))
   19379      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19380      446690 :          ipack = ipack + 1
   19381      446690 :          packed_data(ipack) = pack_tmp
   19382      446690 :          data_tmp = full_data(idata)
   19383      446690 :          pack_tmp = ISHFT(data_tmp, 51)
   19384      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19385      446690 :          idata = idata + 1
   19386      446690 :          data_tmp = full_data(idata)
   19387      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19388      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19389      446690 :          pack_tmp = ISHFT(pack_tmp, -24)
   19390      446690 :          idata = idata + 1
   19391      446690 :          data_tmp = full_data(idata)
   19392      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19393      446690 :          data_tmp = IAND(data_tmp, mask_left(24))
   19394      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19395      446690 :          ipack = ipack + 1
   19396      446690 :          packed_data(ipack) = pack_tmp
   19397      446690 :          data_tmp = full_data(idata)
   19398      446690 :          pack_tmp = ISHFT(data_tmp, 61)
   19399      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19400      446690 :          idata = idata + 1
   19401      446690 :          data_tmp = full_data(idata)
   19402      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19403      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19404      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19405      446690 :          idata = idata + 1
   19406      446690 :          data_tmp = full_data(idata)
   19407      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19408      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19409      446690 :          pack_tmp = ISHFT(pack_tmp, -7)
   19410      446690 :          idata = idata + 1
   19411      446690 :          data_tmp = full_data(idata)
   19412      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19413      446690 :          data_tmp = IAND(data_tmp, mask_left(7))
   19414      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19415      446690 :          ipack = ipack + 1
   19416      446690 :          packed_data(ipack) = pack_tmp
   19417      446690 :          data_tmp = full_data(idata)
   19418      446690 :          pack_tmp = ISHFT(data_tmp, 44)
   19419      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19420      446690 :          idata = idata + 1
   19421      446690 :          data_tmp = full_data(idata)
   19422      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19423      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19424      446690 :          pack_tmp = ISHFT(pack_tmp, -17)
   19425      446690 :          idata = idata + 1
   19426      446690 :          data_tmp = full_data(idata)
   19427      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19428      446690 :          data_tmp = IAND(data_tmp, mask_left(17))
   19429      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19430      446690 :          ipack = ipack + 1
   19431      446690 :          packed_data(ipack) = pack_tmp
   19432      446690 :          data_tmp = full_data(idata)
   19433      446690 :          pack_tmp = ISHFT(data_tmp, 54)
   19434      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19435      446690 :          idata = idata + 1
   19436      446690 :          data_tmp = full_data(idata)
   19437      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19438      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19439      446690 :          pack_tmp = ISHFT(pack_tmp, -27)
   19440      446690 :          idata = idata + 1
   19441      446690 :          data_tmp = full_data(idata)
   19442      446690 :          data_tmp = ISHFT(data_tmp, 37)
   19443      446690 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19444             :          pack_tmp = ISHFT(pack_tmp, 0)
   19445      446690 :          pack_tmp = ISHFT(pack_tmp, 0)
   19446      446690 :          ipack = ipack + 1
   19447      446773 :          packed_data(ipack) = pack_tmp
   19448             :       END DO
   19449       29599 :       IF (Ndata_rep < Ndata) THEN
   19450        3164 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19451             :       END IF
   19452       29599 :    END SUBROUTINE ints2bits_27
   19453             : 
   19454             : ! **************************************************************************************************
   19455             : !> \brief ...
   19456             : !> \param Ndata ...
   19457             : !> \param packed_data ...
   19458             : !> \param full_data ...
   19459             : ! **************************************************************************************************
   19460      133508 :    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      133508 :       ipack = 0
   19471      133508 :       idata = 0
   19472      133508 :       pack_tmp = 0
   19473      133508 :       Ndata_rep = (Ndata/64)*64
   19474      133508 :       DO kdata = 1, Ndata_rep, 64
   19475     1956047 :          idata = idata + 1
   19476     1956047 :          data_tmp = ISHFT(pack_tmp, 27)
   19477     1956047 :          ipack = ipack + 1
   19478     1956047 :          pack_tmp = packed_data(ipack)
   19479     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   19480     1956047 :          pack_tmp = ISHFT(pack_tmp, -27)
   19481     1956047 :          idata = idata + 1
   19482     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19483     1956047 :          full_data(idata) = data_tmp
   19484     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19485     1956047 :          idata = idata + 1
   19486     1956047 :          data_tmp = ISHFT(pack_tmp, 17)
   19487     1956047 :          ipack = ipack + 1
   19488     1956047 :          pack_tmp = packed_data(ipack)
   19489     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   19490     1956047 :          pack_tmp = ISHFT(pack_tmp, -17)
   19491     1956047 :          idata = idata + 1
   19492     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19493     1956047 :          full_data(idata) = data_tmp
   19494     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19495     1956047 :          idata = idata + 1
   19496     1956047 :          data_tmp = ISHFT(pack_tmp, 7)
   19497     1956047 :          ipack = ipack + 1
   19498     1956047 :          pack_tmp = packed_data(ipack)
   19499     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   19500     1956047 :          pack_tmp = ISHFT(pack_tmp, -7)
   19501     1956047 :          idata = idata + 1
   19502     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19503     1956047 :          full_data(idata) = data_tmp
   19504     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19505     1956047 :          idata = idata + 1
   19506     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19507     1956047 :          full_data(idata) = data_tmp
   19508     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19509     1956047 :          idata = idata + 1
   19510     1956047 :          data_tmp = ISHFT(pack_tmp, 24)
   19511     1956047 :          ipack = ipack + 1
   19512     1956047 :          pack_tmp = packed_data(ipack)
   19513     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   19514     1956047 :          pack_tmp = ISHFT(pack_tmp, -24)
   19515     1956047 :          idata = idata + 1
   19516     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19517     1956047 :          full_data(idata) = data_tmp
   19518     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19519     1956047 :          idata = idata + 1
   19520     1956047 :          data_tmp = ISHFT(pack_tmp, 14)
   19521     1956047 :          ipack = ipack + 1
   19522     1956047 :          pack_tmp = packed_data(ipack)
   19523     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   19524     1956047 :          pack_tmp = ISHFT(pack_tmp, -14)
   19525     1956047 :          idata = idata + 1
   19526     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19527     1956047 :          full_data(idata) = data_tmp
   19528     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19529     1956047 :          idata = idata + 1
   19530     1956047 :          data_tmp = ISHFT(pack_tmp, 4)
   19531     1956047 :          ipack = ipack + 1
   19532     1956047 :          pack_tmp = packed_data(ipack)
   19533     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   19534     1956047 :          pack_tmp = ISHFT(pack_tmp, -4)
   19535     1956047 :          idata = idata + 1
   19536     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19537     1956047 :          full_data(idata) = data_tmp
   19538     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19539     1956047 :          idata = idata + 1
   19540     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19541     1956047 :          full_data(idata) = data_tmp
   19542     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19543     1956047 :          idata = idata + 1
   19544     1956047 :          data_tmp = ISHFT(pack_tmp, 21)
   19545     1956047 :          ipack = ipack + 1
   19546     1956047 :          pack_tmp = packed_data(ipack)
   19547     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   19548     1956047 :          pack_tmp = ISHFT(pack_tmp, -21)
   19549     1956047 :          idata = idata + 1
   19550     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19551     1956047 :          full_data(idata) = data_tmp
   19552     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19553     1956047 :          idata = idata + 1
   19554     1956047 :          data_tmp = ISHFT(pack_tmp, 11)
   19555     1956047 :          ipack = ipack + 1
   19556     1956047 :          pack_tmp = packed_data(ipack)
   19557     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   19558     1956047 :          pack_tmp = ISHFT(pack_tmp, -11)
   19559     1956047 :          idata = idata + 1
   19560     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19561     1956047 :          full_data(idata) = data_tmp
   19562     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19563     1956047 :          idata = idata + 1
   19564     1956047 :          data_tmp = ISHFT(pack_tmp, 1)
   19565     1956047 :          ipack = ipack + 1
   19566     1956047 :          pack_tmp = packed_data(ipack)
   19567     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   19568     1956047 :          pack_tmp = ISHFT(pack_tmp, -1)
   19569     1956047 :          idata = idata + 1
   19570     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19571     1956047 :          full_data(idata) = data_tmp
   19572     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19573     1956047 :          idata = idata + 1
   19574     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19575     1956047 :          full_data(idata) = data_tmp
   19576     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19577     1956047 :          idata = idata + 1
   19578     1956047 :          data_tmp = ISHFT(pack_tmp, 18)
   19579     1956047 :          ipack = ipack + 1
   19580     1956047 :          pack_tmp = packed_data(ipack)
   19581     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   19582     1956047 :          pack_tmp = ISHFT(pack_tmp, -18)
   19583     1956047 :          idata = idata + 1
   19584     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19585     1956047 :          full_data(idata) = data_tmp
   19586     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19587     1956047 :          idata = idata + 1
   19588     1956047 :          data_tmp = ISHFT(pack_tmp, 8)
   19589     1956047 :          ipack = ipack + 1
   19590     1956047 :          pack_tmp = packed_data(ipack)
   19591     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   19592     1956047 :          pack_tmp = ISHFT(pack_tmp, -8)
   19593     1956047 :          idata = idata + 1
   19594     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19595     1956047 :          full_data(idata) = data_tmp
   19596     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19597     1956047 :          idata = idata + 1
   19598     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19599     1956047 :          full_data(idata) = data_tmp
   19600     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19601     1956047 :          idata = idata + 1
   19602     1956047 :          data_tmp = ISHFT(pack_tmp, 25)
   19603     1956047 :          ipack = ipack + 1
   19604     1956047 :          pack_tmp = packed_data(ipack)
   19605     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   19606     1956047 :          pack_tmp = ISHFT(pack_tmp, -25)
   19607     1956047 :          idata = idata + 1
   19608     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19609     1956047 :          full_data(idata) = data_tmp
   19610     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19611     1956047 :          idata = idata + 1
   19612     1956047 :          data_tmp = ISHFT(pack_tmp, 15)
   19613     1956047 :          ipack = ipack + 1
   19614     1956047 :          pack_tmp = packed_data(ipack)
   19615     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   19616     1956047 :          pack_tmp = ISHFT(pack_tmp, -15)
   19617     1956047 :          idata = idata + 1
   19618     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19619     1956047 :          full_data(idata) = data_tmp
   19620     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19621     1956047 :          idata = idata + 1
   19622     1956047 :          data_tmp = ISHFT(pack_tmp, 5)
   19623     1956047 :          ipack = ipack + 1
   19624     1956047 :          pack_tmp = packed_data(ipack)
   19625     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   19626     1956047 :          pack_tmp = ISHFT(pack_tmp, -5)
   19627     1956047 :          idata = idata + 1
   19628     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19629     1956047 :          full_data(idata) = data_tmp
   19630     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19631     1956047 :          idata = idata + 1
   19632     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19633     1956047 :          full_data(idata) = data_tmp
   19634     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19635     1956047 :          idata = idata + 1
   19636     1956047 :          data_tmp = ISHFT(pack_tmp, 22)
   19637     1956047 :          ipack = ipack + 1
   19638     1956047 :          pack_tmp = packed_data(ipack)
   19639     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   19640     1956047 :          pack_tmp = ISHFT(pack_tmp, -22)
   19641     1956047 :          idata = idata + 1
   19642     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19643     1956047 :          full_data(idata) = data_tmp
   19644     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19645     1956047 :          idata = idata + 1
   19646     1956047 :          data_tmp = ISHFT(pack_tmp, 12)
   19647     1956047 :          ipack = ipack + 1
   19648     1956047 :          pack_tmp = packed_data(ipack)
   19649     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   19650     1956047 :          pack_tmp = ISHFT(pack_tmp, -12)
   19651     1956047 :          idata = idata + 1
   19652     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19653     1956047 :          full_data(idata) = data_tmp
   19654     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19655     1956047 :          idata = idata + 1
   19656     1956047 :          data_tmp = ISHFT(pack_tmp, 2)
   19657     1956047 :          ipack = ipack + 1
   19658     1956047 :          pack_tmp = packed_data(ipack)
   19659     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   19660     1956047 :          pack_tmp = ISHFT(pack_tmp, -2)
   19661     1956047 :          idata = idata + 1
   19662     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19663     1956047 :          full_data(idata) = data_tmp
   19664     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19665     1956047 :          idata = idata + 1
   19666     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19667     1956047 :          full_data(idata) = data_tmp
   19668     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19669     1956047 :          idata = idata + 1
   19670     1956047 :          data_tmp = ISHFT(pack_tmp, 19)
   19671     1956047 :          ipack = ipack + 1
   19672     1956047 :          pack_tmp = packed_data(ipack)
   19673     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   19674     1956047 :          pack_tmp = ISHFT(pack_tmp, -19)
   19675     1956047 :          idata = idata + 1
   19676     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19677     1956047 :          full_data(idata) = data_tmp
   19678     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19679     1956047 :          idata = idata + 1
   19680     1956047 :          data_tmp = ISHFT(pack_tmp, 9)
   19681     1956047 :          ipack = ipack + 1
   19682     1956047 :          pack_tmp = packed_data(ipack)
   19683     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   19684     1956047 :          pack_tmp = ISHFT(pack_tmp, -9)
   19685     1956047 :          idata = idata + 1
   19686     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19687     1956047 :          full_data(idata) = data_tmp
   19688     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19689     1956047 :          idata = idata + 1
   19690     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19691     1956047 :          full_data(idata) = data_tmp
   19692     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19693     1956047 :          idata = idata + 1
   19694     1956047 :          data_tmp = ISHFT(pack_tmp, 26)
   19695     1956047 :          ipack = ipack + 1
   19696     1956047 :          pack_tmp = packed_data(ipack)
   19697     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   19698     1956047 :          pack_tmp = ISHFT(pack_tmp, -26)
   19699     1956047 :          idata = idata + 1
   19700     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19701     1956047 :          full_data(idata) = data_tmp
   19702     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19703     1956047 :          idata = idata + 1
   19704     1956047 :          data_tmp = ISHFT(pack_tmp, 16)
   19705     1956047 :          ipack = ipack + 1
   19706     1956047 :          pack_tmp = packed_data(ipack)
   19707     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   19708     1956047 :          pack_tmp = ISHFT(pack_tmp, -16)
   19709     1956047 :          idata = idata + 1
   19710     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19711     1956047 :          full_data(idata) = data_tmp
   19712     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19713     1956047 :          idata = idata + 1
   19714     1956047 :          data_tmp = ISHFT(pack_tmp, 6)
   19715     1956047 :          ipack = ipack + 1
   19716     1956047 :          pack_tmp = packed_data(ipack)
   19717     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   19718     1956047 :          pack_tmp = ISHFT(pack_tmp, -6)
   19719     1956047 :          idata = idata + 1
   19720     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19721     1956047 :          full_data(idata) = data_tmp
   19722     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19723     1956047 :          idata = idata + 1
   19724     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19725     1956047 :          full_data(idata) = data_tmp
   19726     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19727     1956047 :          idata = idata + 1
   19728     1956047 :          data_tmp = ISHFT(pack_tmp, 23)
   19729     1956047 :          ipack = ipack + 1
   19730     1956047 :          pack_tmp = packed_data(ipack)
   19731     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   19732     1956047 :          pack_tmp = ISHFT(pack_tmp, -23)
   19733     1956047 :          idata = idata + 1
   19734     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19735     1956047 :          full_data(idata) = data_tmp
   19736     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19737     1956047 :          idata = idata + 1
   19738     1956047 :          data_tmp = ISHFT(pack_tmp, 13)
   19739     1956047 :          ipack = ipack + 1
   19740     1956047 :          pack_tmp = packed_data(ipack)
   19741     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   19742     1956047 :          pack_tmp = ISHFT(pack_tmp, -13)
   19743     1956047 :          idata = idata + 1
   19744     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19745     1956047 :          full_data(idata) = data_tmp
   19746     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19747     1956047 :          idata = idata + 1
   19748     1956047 :          data_tmp = ISHFT(pack_tmp, 3)
   19749     1956047 :          ipack = ipack + 1
   19750     1956047 :          pack_tmp = packed_data(ipack)
   19751     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   19752     1956047 :          pack_tmp = ISHFT(pack_tmp, -3)
   19753     1956047 :          idata = idata + 1
   19754     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19755     1956047 :          full_data(idata) = data_tmp
   19756     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19757     1956047 :          idata = idata + 1
   19758     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19759     1956047 :          full_data(idata) = data_tmp
   19760     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19761     1956047 :          idata = idata + 1
   19762     1956047 :          data_tmp = ISHFT(pack_tmp, 20)
   19763     1956047 :          ipack = ipack + 1
   19764     1956047 :          pack_tmp = packed_data(ipack)
   19765     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   19766     1956047 :          pack_tmp = ISHFT(pack_tmp, -20)
   19767     1956047 :          idata = idata + 1
   19768     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19769     1956047 :          full_data(idata) = data_tmp
   19770     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19771     1956047 :          idata = idata + 1
   19772     1956047 :          data_tmp = ISHFT(pack_tmp, 10)
   19773     1956047 :          ipack = ipack + 1
   19774     1956047 :          pack_tmp = packed_data(ipack)
   19775     1956047 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   19776     1956047 :          pack_tmp = ISHFT(pack_tmp, -10)
   19777     1956047 :          idata = idata + 1
   19778     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19779     1956047 :          full_data(idata) = data_tmp
   19780     1956047 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19781     1956047 :          idata = idata + 1
   19782     1956047 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19783     1956047 :          full_data(idata) = data_tmp
   19784     1956641 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19785             :       END DO
   19786      133508 :       IF (Ndata_rep < Ndata) THEN
   19787       21186 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19788             :       END IF
   19789      133508 :    END SUBROUTINE bits2ints_27
   19790             : 
   19791             : ! **************************************************************************************************
   19792             : !> \brief ...
   19793             : !> \param Ndata ...
   19794             : !> \param packed_data ...
   19795             : !> \param full_data ...
   19796             : ! **************************************************************************************************
   19797       33859 :    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       33859 :       idata = 0
   19808       33859 :       ipack = 0
   19809       33859 :       Ndata_rep = (Ndata/64)*64
   19810       33859 :       DO kdata = 1, Ndata_rep, 64
   19811      489194 :          pack_tmp = 0
   19812      489194 :          idata = idata + 1
   19813      489194 :          data_tmp = full_data(idata)
   19814      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19815      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19816      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19817      489194 :          idata = idata + 1
   19818      489194 :          data_tmp = full_data(idata)
   19819      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19820      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19821      489194 :          pack_tmp = ISHFT(pack_tmp, -8)
   19822      489194 :          idata = idata + 1
   19823      489194 :          data_tmp = full_data(idata)
   19824      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19825      489194 :          data_tmp = IAND(data_tmp, mask_left(8))
   19826      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19827      489194 :          ipack = ipack + 1
   19828      489194 :          packed_data(ipack) = pack_tmp
   19829      489194 :          data_tmp = full_data(idata)
   19830      489194 :          pack_tmp = ISHFT(data_tmp, 44)
   19831      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19832      489194 :          idata = idata + 1
   19833      489194 :          data_tmp = full_data(idata)
   19834      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19835      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19836      489194 :          pack_tmp = ISHFT(pack_tmp, -16)
   19837      489194 :          idata = idata + 1
   19838      489194 :          data_tmp = full_data(idata)
   19839      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19840      489194 :          data_tmp = IAND(data_tmp, mask_left(16))
   19841      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19842      489194 :          ipack = ipack + 1
   19843      489194 :          packed_data(ipack) = pack_tmp
   19844      489194 :          data_tmp = full_data(idata)
   19845      489194 :          pack_tmp = ISHFT(data_tmp, 52)
   19846      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19847      489194 :          idata = idata + 1
   19848      489194 :          data_tmp = full_data(idata)
   19849      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19850      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19851      489194 :          pack_tmp = ISHFT(pack_tmp, -24)
   19852      489194 :          idata = idata + 1
   19853      489194 :          data_tmp = full_data(idata)
   19854      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19855      489194 :          data_tmp = IAND(data_tmp, mask_left(24))
   19856      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19857      489194 :          ipack = ipack + 1
   19858      489194 :          packed_data(ipack) = pack_tmp
   19859      489194 :          data_tmp = full_data(idata)
   19860      489194 :          pack_tmp = ISHFT(data_tmp, 60)
   19861      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19862      489194 :          idata = idata + 1
   19863      489194 :          data_tmp = full_data(idata)
   19864      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19865      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19866      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19867      489194 :          idata = idata + 1
   19868      489194 :          data_tmp = full_data(idata)
   19869      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19870      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19871      489194 :          pack_tmp = ISHFT(pack_tmp, -4)
   19872      489194 :          idata = idata + 1
   19873      489194 :          data_tmp = full_data(idata)
   19874      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19875      489194 :          data_tmp = IAND(data_tmp, mask_left(4))
   19876      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19877      489194 :          ipack = ipack + 1
   19878      489194 :          packed_data(ipack) = pack_tmp
   19879      489194 :          data_tmp = full_data(idata)
   19880      489194 :          pack_tmp = ISHFT(data_tmp, 40)
   19881      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19882      489194 :          idata = idata + 1
   19883      489194 :          data_tmp = full_data(idata)
   19884      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19885      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19886      489194 :          pack_tmp = ISHFT(pack_tmp, -12)
   19887      489194 :          idata = idata + 1
   19888      489194 :          data_tmp = full_data(idata)
   19889      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19890      489194 :          data_tmp = IAND(data_tmp, mask_left(12))
   19891      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19892      489194 :          ipack = ipack + 1
   19893      489194 :          packed_data(ipack) = pack_tmp
   19894      489194 :          data_tmp = full_data(idata)
   19895      489194 :          pack_tmp = ISHFT(data_tmp, 48)
   19896      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19897      489194 :          idata = idata + 1
   19898      489194 :          data_tmp = full_data(idata)
   19899      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19900      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19901      489194 :          pack_tmp = ISHFT(pack_tmp, -20)
   19902      489194 :          idata = idata + 1
   19903      489194 :          data_tmp = full_data(idata)
   19904      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19905      489194 :          data_tmp = IAND(data_tmp, mask_left(20))
   19906      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19907      489194 :          ipack = ipack + 1
   19908      489194 :          packed_data(ipack) = pack_tmp
   19909      489194 :          data_tmp = full_data(idata)
   19910      489194 :          pack_tmp = ISHFT(data_tmp, 56)
   19911      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19912      489194 :          idata = idata + 1
   19913      489194 :          data_tmp = full_data(idata)
   19914      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19915      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19916      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19917      489194 :          idata = idata + 1
   19918      489194 :          data_tmp = full_data(idata)
   19919      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19920      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19921      489194 :          pack_tmp = ISHFT(pack_tmp, 0)
   19922      489194 :          idata = idata + 1
   19923      489194 :          data_tmp = full_data(idata)
   19924             :          data_tmp = ISHFT(data_tmp, 36)
   19925      489194 :          data_tmp = IAND(data_tmp, mask_left(0))
   19926      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19927      489194 :          ipack = ipack + 1
   19928      489194 :          packed_data(ipack) = pack_tmp
   19929      489194 :          data_tmp = full_data(idata)
   19930      489194 :          pack_tmp = ISHFT(data_tmp, 36)
   19931      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19932      489194 :          idata = idata + 1
   19933      489194 :          data_tmp = full_data(idata)
   19934      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19935      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19936      489194 :          pack_tmp = ISHFT(pack_tmp, -8)
   19937      489194 :          idata = idata + 1
   19938      489194 :          data_tmp = full_data(idata)
   19939      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19940      489194 :          data_tmp = IAND(data_tmp, mask_left(8))
   19941      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19942      489194 :          ipack = ipack + 1
   19943      489194 :          packed_data(ipack) = pack_tmp
   19944      489194 :          data_tmp = full_data(idata)
   19945      489194 :          pack_tmp = ISHFT(data_tmp, 44)
   19946      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19947      489194 :          idata = idata + 1
   19948      489194 :          data_tmp = full_data(idata)
   19949      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19950      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19951      489194 :          pack_tmp = ISHFT(pack_tmp, -16)
   19952      489194 :          idata = idata + 1
   19953      489194 :          data_tmp = full_data(idata)
   19954      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19955      489194 :          data_tmp = IAND(data_tmp, mask_left(16))
   19956      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19957      489194 :          ipack = ipack + 1
   19958      489194 :          packed_data(ipack) = pack_tmp
   19959      489194 :          data_tmp = full_data(idata)
   19960      489194 :          pack_tmp = ISHFT(data_tmp, 52)
   19961      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19962      489194 :          idata = idata + 1
   19963      489194 :          data_tmp = full_data(idata)
   19964      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19965      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19966      489194 :          pack_tmp = ISHFT(pack_tmp, -24)
   19967      489194 :          idata = idata + 1
   19968      489194 :          data_tmp = full_data(idata)
   19969      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19970      489194 :          data_tmp = IAND(data_tmp, mask_left(24))
   19971      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19972      489194 :          ipack = ipack + 1
   19973      489194 :          packed_data(ipack) = pack_tmp
   19974      489194 :          data_tmp = full_data(idata)
   19975      489194 :          pack_tmp = ISHFT(data_tmp, 60)
   19976      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19977      489194 :          idata = idata + 1
   19978      489194 :          data_tmp = full_data(idata)
   19979      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19980      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19981      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19982      489194 :          idata = idata + 1
   19983      489194 :          data_tmp = full_data(idata)
   19984      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19985      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19986      489194 :          pack_tmp = ISHFT(pack_tmp, -4)
   19987      489194 :          idata = idata + 1
   19988      489194 :          data_tmp = full_data(idata)
   19989      489194 :          data_tmp = ISHFT(data_tmp, 36)
   19990      489194 :          data_tmp = IAND(data_tmp, mask_left(4))
   19991      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19992      489194 :          ipack = ipack + 1
   19993      489194 :          packed_data(ipack) = pack_tmp
   19994      489194 :          data_tmp = full_data(idata)
   19995      489194 :          pack_tmp = ISHFT(data_tmp, 40)
   19996      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   19997      489194 :          idata = idata + 1
   19998      489194 :          data_tmp = full_data(idata)
   19999      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20000      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20001      489194 :          pack_tmp = ISHFT(pack_tmp, -12)
   20002      489194 :          idata = idata + 1
   20003      489194 :          data_tmp = full_data(idata)
   20004      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20005      489194 :          data_tmp = IAND(data_tmp, mask_left(12))
   20006      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20007      489194 :          ipack = ipack + 1
   20008      489194 :          packed_data(ipack) = pack_tmp
   20009      489194 :          data_tmp = full_data(idata)
   20010      489194 :          pack_tmp = ISHFT(data_tmp, 48)
   20011      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20012      489194 :          idata = idata + 1
   20013      489194 :          data_tmp = full_data(idata)
   20014      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20015      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20016      489194 :          pack_tmp = ISHFT(pack_tmp, -20)
   20017      489194 :          idata = idata + 1
   20018      489194 :          data_tmp = full_data(idata)
   20019      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20020      489194 :          data_tmp = IAND(data_tmp, mask_left(20))
   20021      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20022      489194 :          ipack = ipack + 1
   20023      489194 :          packed_data(ipack) = pack_tmp
   20024      489194 :          data_tmp = full_data(idata)
   20025      489194 :          pack_tmp = ISHFT(data_tmp, 56)
   20026      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20027      489194 :          idata = idata + 1
   20028      489194 :          data_tmp = full_data(idata)
   20029      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20030      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20031      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20032      489194 :          idata = idata + 1
   20033      489194 :          data_tmp = full_data(idata)
   20034      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20035      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20036      489194 :          pack_tmp = ISHFT(pack_tmp, 0)
   20037      489194 :          idata = idata + 1
   20038      489194 :          data_tmp = full_data(idata)
   20039             :          data_tmp = ISHFT(data_tmp, 36)
   20040      489194 :          data_tmp = IAND(data_tmp, mask_left(0))
   20041      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20042      489194 :          ipack = ipack + 1
   20043      489194 :          packed_data(ipack) = pack_tmp
   20044      489194 :          data_tmp = full_data(idata)
   20045      489194 :          pack_tmp = ISHFT(data_tmp, 36)
   20046      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20047      489194 :          idata = idata + 1
   20048      489194 :          data_tmp = full_data(idata)
   20049      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20050      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20051      489194 :          pack_tmp = ISHFT(pack_tmp, -8)
   20052      489194 :          idata = idata + 1
   20053      489194 :          data_tmp = full_data(idata)
   20054      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20055      489194 :          data_tmp = IAND(data_tmp, mask_left(8))
   20056      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20057      489194 :          ipack = ipack + 1
   20058      489194 :          packed_data(ipack) = pack_tmp
   20059      489194 :          data_tmp = full_data(idata)
   20060      489194 :          pack_tmp = ISHFT(data_tmp, 44)
   20061      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20062      489194 :          idata = idata + 1
   20063      489194 :          data_tmp = full_data(idata)
   20064      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20065      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20066      489194 :          pack_tmp = ISHFT(pack_tmp, -16)
   20067      489194 :          idata = idata + 1
   20068      489194 :          data_tmp = full_data(idata)
   20069      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20070      489194 :          data_tmp = IAND(data_tmp, mask_left(16))
   20071      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20072      489194 :          ipack = ipack + 1
   20073      489194 :          packed_data(ipack) = pack_tmp
   20074      489194 :          data_tmp = full_data(idata)
   20075      489194 :          pack_tmp = ISHFT(data_tmp, 52)
   20076      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20077      489194 :          idata = idata + 1
   20078      489194 :          data_tmp = full_data(idata)
   20079      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20080      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20081      489194 :          pack_tmp = ISHFT(pack_tmp, -24)
   20082      489194 :          idata = idata + 1
   20083      489194 :          data_tmp = full_data(idata)
   20084      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20085      489194 :          data_tmp = IAND(data_tmp, mask_left(24))
   20086      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20087      489194 :          ipack = ipack + 1
   20088      489194 :          packed_data(ipack) = pack_tmp
   20089      489194 :          data_tmp = full_data(idata)
   20090      489194 :          pack_tmp = ISHFT(data_tmp, 60)
   20091      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20092      489194 :          idata = idata + 1
   20093      489194 :          data_tmp = full_data(idata)
   20094      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20095      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20096      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20097      489194 :          idata = idata + 1
   20098      489194 :          data_tmp = full_data(idata)
   20099      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20100      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20101      489194 :          pack_tmp = ISHFT(pack_tmp, -4)
   20102      489194 :          idata = idata + 1
   20103      489194 :          data_tmp = full_data(idata)
   20104      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20105      489194 :          data_tmp = IAND(data_tmp, mask_left(4))
   20106      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20107      489194 :          ipack = ipack + 1
   20108      489194 :          packed_data(ipack) = pack_tmp
   20109      489194 :          data_tmp = full_data(idata)
   20110      489194 :          pack_tmp = ISHFT(data_tmp, 40)
   20111      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20112      489194 :          idata = idata + 1
   20113      489194 :          data_tmp = full_data(idata)
   20114      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20115      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20116      489194 :          pack_tmp = ISHFT(pack_tmp, -12)
   20117      489194 :          idata = idata + 1
   20118      489194 :          data_tmp = full_data(idata)
   20119      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20120      489194 :          data_tmp = IAND(data_tmp, mask_left(12))
   20121      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20122      489194 :          ipack = ipack + 1
   20123      489194 :          packed_data(ipack) = pack_tmp
   20124      489194 :          data_tmp = full_data(idata)
   20125      489194 :          pack_tmp = ISHFT(data_tmp, 48)
   20126      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20127      489194 :          idata = idata + 1
   20128      489194 :          data_tmp = full_data(idata)
   20129      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20130      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20131      489194 :          pack_tmp = ISHFT(pack_tmp, -20)
   20132      489194 :          idata = idata + 1
   20133      489194 :          data_tmp = full_data(idata)
   20134      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20135      489194 :          data_tmp = IAND(data_tmp, mask_left(20))
   20136      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20137      489194 :          ipack = ipack + 1
   20138      489194 :          packed_data(ipack) = pack_tmp
   20139      489194 :          data_tmp = full_data(idata)
   20140      489194 :          pack_tmp = ISHFT(data_tmp, 56)
   20141      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20142      489194 :          idata = idata + 1
   20143      489194 :          data_tmp = full_data(idata)
   20144      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20145      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20146      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20147      489194 :          idata = idata + 1
   20148      489194 :          data_tmp = full_data(idata)
   20149      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20150      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20151      489194 :          pack_tmp = ISHFT(pack_tmp, 0)
   20152      489194 :          idata = idata + 1
   20153      489194 :          data_tmp = full_data(idata)
   20154             :          data_tmp = ISHFT(data_tmp, 36)
   20155      489194 :          data_tmp = IAND(data_tmp, mask_left(0))
   20156      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20157      489194 :          ipack = ipack + 1
   20158      489194 :          packed_data(ipack) = pack_tmp
   20159      489194 :          data_tmp = full_data(idata)
   20160      489194 :          pack_tmp = ISHFT(data_tmp, 36)
   20161      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20162      489194 :          idata = idata + 1
   20163      489194 :          data_tmp = full_data(idata)
   20164      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20165      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20166      489194 :          pack_tmp = ISHFT(pack_tmp, -8)
   20167      489194 :          idata = idata + 1
   20168      489194 :          data_tmp = full_data(idata)
   20169      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20170      489194 :          data_tmp = IAND(data_tmp, mask_left(8))
   20171      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20172      489194 :          ipack = ipack + 1
   20173      489194 :          packed_data(ipack) = pack_tmp
   20174      489194 :          data_tmp = full_data(idata)
   20175      489194 :          pack_tmp = ISHFT(data_tmp, 44)
   20176      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20177      489194 :          idata = idata + 1
   20178      489194 :          data_tmp = full_data(idata)
   20179      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20180      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20181      489194 :          pack_tmp = ISHFT(pack_tmp, -16)
   20182      489194 :          idata = idata + 1
   20183      489194 :          data_tmp = full_data(idata)
   20184      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20185      489194 :          data_tmp = IAND(data_tmp, mask_left(16))
   20186      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20187      489194 :          ipack = ipack + 1
   20188      489194 :          packed_data(ipack) = pack_tmp
   20189      489194 :          data_tmp = full_data(idata)
   20190      489194 :          pack_tmp = ISHFT(data_tmp, 52)
   20191      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20192      489194 :          idata = idata + 1
   20193      489194 :          data_tmp = full_data(idata)
   20194      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20195      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20196      489194 :          pack_tmp = ISHFT(pack_tmp, -24)
   20197      489194 :          idata = idata + 1
   20198      489194 :          data_tmp = full_data(idata)
   20199      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20200      489194 :          data_tmp = IAND(data_tmp, mask_left(24))
   20201      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20202      489194 :          ipack = ipack + 1
   20203      489194 :          packed_data(ipack) = pack_tmp
   20204      489194 :          data_tmp = full_data(idata)
   20205      489194 :          pack_tmp = ISHFT(data_tmp, 60)
   20206      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20207      489194 :          idata = idata + 1
   20208      489194 :          data_tmp = full_data(idata)
   20209      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20210      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20211      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20212      489194 :          idata = idata + 1
   20213      489194 :          data_tmp = full_data(idata)
   20214      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20215      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20216      489194 :          pack_tmp = ISHFT(pack_tmp, -4)
   20217      489194 :          idata = idata + 1
   20218      489194 :          data_tmp = full_data(idata)
   20219      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20220      489194 :          data_tmp = IAND(data_tmp, mask_left(4))
   20221      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20222      489194 :          ipack = ipack + 1
   20223      489194 :          packed_data(ipack) = pack_tmp
   20224      489194 :          data_tmp = full_data(idata)
   20225      489194 :          pack_tmp = ISHFT(data_tmp, 40)
   20226      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20227      489194 :          idata = idata + 1
   20228      489194 :          data_tmp = full_data(idata)
   20229      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20230      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20231      489194 :          pack_tmp = ISHFT(pack_tmp, -12)
   20232      489194 :          idata = idata + 1
   20233      489194 :          data_tmp = full_data(idata)
   20234      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20235      489194 :          data_tmp = IAND(data_tmp, mask_left(12))
   20236      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20237      489194 :          ipack = ipack + 1
   20238      489194 :          packed_data(ipack) = pack_tmp
   20239      489194 :          data_tmp = full_data(idata)
   20240      489194 :          pack_tmp = ISHFT(data_tmp, 48)
   20241      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20242      489194 :          idata = idata + 1
   20243      489194 :          data_tmp = full_data(idata)
   20244      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20245      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20246      489194 :          pack_tmp = ISHFT(pack_tmp, -20)
   20247      489194 :          idata = idata + 1
   20248      489194 :          data_tmp = full_data(idata)
   20249      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20250      489194 :          data_tmp = IAND(data_tmp, mask_left(20))
   20251      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20252      489194 :          ipack = ipack + 1
   20253      489194 :          packed_data(ipack) = pack_tmp
   20254      489194 :          data_tmp = full_data(idata)
   20255      489194 :          pack_tmp = ISHFT(data_tmp, 56)
   20256      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20257      489194 :          idata = idata + 1
   20258      489194 :          data_tmp = full_data(idata)
   20259      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20260      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20261      489194 :          pack_tmp = ISHFT(pack_tmp, -28)
   20262      489194 :          idata = idata + 1
   20263      489194 :          data_tmp = full_data(idata)
   20264      489194 :          data_tmp = ISHFT(data_tmp, 36)
   20265      489194 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20266             :          pack_tmp = ISHFT(pack_tmp, 0)
   20267      489194 :          pack_tmp = ISHFT(pack_tmp, 0)
   20268      489194 :          ipack = ipack + 1
   20269      489302 :          packed_data(ipack) = pack_tmp
   20270             :       END DO
   20271       33859 :       IF (Ndata_rep < Ndata) THEN
   20272        6156 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20273             :       END IF
   20274       33859 :    END SUBROUTINE ints2bits_28
   20275             : 
   20276             : ! **************************************************************************************************
   20277             : !> \brief ...
   20278             : !> \param Ndata ...
   20279             : !> \param packed_data ...
   20280             : !> \param full_data ...
   20281             : ! **************************************************************************************************
   20282      156675 :    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      156675 :       ipack = 0
   20293      156675 :       idata = 0
   20294      156675 :       pack_tmp = 0
   20295      156675 :       Ndata_rep = (Ndata/64)*64
   20296      156675 :       DO kdata = 1, Ndata_rep, 64
   20297     2199268 :          idata = idata + 1
   20298     2199268 :          data_tmp = ISHFT(pack_tmp, 28)
   20299     2199268 :          ipack = ipack + 1
   20300     2199268 :          pack_tmp = packed_data(ipack)
   20301     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20302     2199268 :          pack_tmp = ISHFT(pack_tmp, -28)
   20303     2199268 :          idata = idata + 1
   20304     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20305     2199268 :          full_data(idata) = data_tmp
   20306     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20307     2199268 :          idata = idata + 1
   20308     2199268 :          data_tmp = ISHFT(pack_tmp, 20)
   20309     2199268 :          ipack = ipack + 1
   20310     2199268 :          pack_tmp = packed_data(ipack)
   20311     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20312     2199268 :          pack_tmp = ISHFT(pack_tmp, -20)
   20313     2199268 :          idata = idata + 1
   20314     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20315     2199268 :          full_data(idata) = data_tmp
   20316     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20317     2199268 :          idata = idata + 1
   20318     2199268 :          data_tmp = ISHFT(pack_tmp, 12)
   20319     2199268 :          ipack = ipack + 1
   20320     2199268 :          pack_tmp = packed_data(ipack)
   20321     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20322     2199268 :          pack_tmp = ISHFT(pack_tmp, -12)
   20323     2199268 :          idata = idata + 1
   20324     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20325     2199268 :          full_data(idata) = data_tmp
   20326     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20327     2199268 :          idata = idata + 1
   20328     2199268 :          data_tmp = ISHFT(pack_tmp, 4)
   20329     2199268 :          ipack = ipack + 1
   20330     2199268 :          pack_tmp = packed_data(ipack)
   20331     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20332     2199268 :          pack_tmp = ISHFT(pack_tmp, -4)
   20333     2199268 :          idata = idata + 1
   20334     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20335     2199268 :          full_data(idata) = data_tmp
   20336     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20337     2199268 :          idata = idata + 1
   20338     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20339     2199268 :          full_data(idata) = data_tmp
   20340     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20341     2199268 :          idata = idata + 1
   20342     2199268 :          data_tmp = ISHFT(pack_tmp, 24)
   20343     2199268 :          ipack = ipack + 1
   20344     2199268 :          pack_tmp = packed_data(ipack)
   20345     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20346     2199268 :          pack_tmp = ISHFT(pack_tmp, -24)
   20347     2199268 :          idata = idata + 1
   20348     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20349     2199268 :          full_data(idata) = data_tmp
   20350     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20351     2199268 :          idata = idata + 1
   20352     2199268 :          data_tmp = ISHFT(pack_tmp, 16)
   20353     2199268 :          ipack = ipack + 1
   20354     2199268 :          pack_tmp = packed_data(ipack)
   20355     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20356     2199268 :          pack_tmp = ISHFT(pack_tmp, -16)
   20357     2199268 :          idata = idata + 1
   20358     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20359     2199268 :          full_data(idata) = data_tmp
   20360     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20361     2199268 :          idata = idata + 1
   20362     2199268 :          data_tmp = ISHFT(pack_tmp, 8)
   20363     2199268 :          ipack = ipack + 1
   20364     2199268 :          pack_tmp = packed_data(ipack)
   20365     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20366     2199268 :          pack_tmp = ISHFT(pack_tmp, -8)
   20367     2199268 :          idata = idata + 1
   20368     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20369     2199268 :          full_data(idata) = data_tmp
   20370     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20371     2199268 :          idata = idata + 1
   20372     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20373     2199268 :          full_data(idata) = data_tmp
   20374     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20375     2199268 :          idata = idata + 1
   20376     2199268 :          data_tmp = ISHFT(pack_tmp, 28)
   20377     2199268 :          ipack = ipack + 1
   20378     2199268 :          pack_tmp = packed_data(ipack)
   20379     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20380     2199268 :          pack_tmp = ISHFT(pack_tmp, -28)
   20381     2199268 :          idata = idata + 1
   20382     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20383     2199268 :          full_data(idata) = data_tmp
   20384     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20385     2199268 :          idata = idata + 1
   20386     2199268 :          data_tmp = ISHFT(pack_tmp, 20)
   20387     2199268 :          ipack = ipack + 1
   20388     2199268 :          pack_tmp = packed_data(ipack)
   20389     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20390     2199268 :          pack_tmp = ISHFT(pack_tmp, -20)
   20391     2199268 :          idata = idata + 1
   20392     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20393     2199268 :          full_data(idata) = data_tmp
   20394     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20395     2199268 :          idata = idata + 1
   20396     2199268 :          data_tmp = ISHFT(pack_tmp, 12)
   20397     2199268 :          ipack = ipack + 1
   20398     2199268 :          pack_tmp = packed_data(ipack)
   20399     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20400     2199268 :          pack_tmp = ISHFT(pack_tmp, -12)
   20401     2199268 :          idata = idata + 1
   20402     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20403     2199268 :          full_data(idata) = data_tmp
   20404     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20405     2199268 :          idata = idata + 1
   20406     2199268 :          data_tmp = ISHFT(pack_tmp, 4)
   20407     2199268 :          ipack = ipack + 1
   20408     2199268 :          pack_tmp = packed_data(ipack)
   20409     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20410     2199268 :          pack_tmp = ISHFT(pack_tmp, -4)
   20411     2199268 :          idata = idata + 1
   20412     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20413     2199268 :          full_data(idata) = data_tmp
   20414     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20415     2199268 :          idata = idata + 1
   20416     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20417     2199268 :          full_data(idata) = data_tmp
   20418     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20419     2199268 :          idata = idata + 1
   20420     2199268 :          data_tmp = ISHFT(pack_tmp, 24)
   20421     2199268 :          ipack = ipack + 1
   20422     2199268 :          pack_tmp = packed_data(ipack)
   20423     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20424     2199268 :          pack_tmp = ISHFT(pack_tmp, -24)
   20425     2199268 :          idata = idata + 1
   20426     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20427     2199268 :          full_data(idata) = data_tmp
   20428     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20429     2199268 :          idata = idata + 1
   20430     2199268 :          data_tmp = ISHFT(pack_tmp, 16)
   20431     2199268 :          ipack = ipack + 1
   20432     2199268 :          pack_tmp = packed_data(ipack)
   20433     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20434     2199268 :          pack_tmp = ISHFT(pack_tmp, -16)
   20435     2199268 :          idata = idata + 1
   20436     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20437     2199268 :          full_data(idata) = data_tmp
   20438     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20439     2199268 :          idata = idata + 1
   20440     2199268 :          data_tmp = ISHFT(pack_tmp, 8)
   20441     2199268 :          ipack = ipack + 1
   20442     2199268 :          pack_tmp = packed_data(ipack)
   20443     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20444     2199268 :          pack_tmp = ISHFT(pack_tmp, -8)
   20445     2199268 :          idata = idata + 1
   20446     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20447     2199268 :          full_data(idata) = data_tmp
   20448     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20449     2199268 :          idata = idata + 1
   20450     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20451     2199268 :          full_data(idata) = data_tmp
   20452     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20453     2199268 :          idata = idata + 1
   20454     2199268 :          data_tmp = ISHFT(pack_tmp, 28)
   20455     2199268 :          ipack = ipack + 1
   20456     2199268 :          pack_tmp = packed_data(ipack)
   20457     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20458     2199268 :          pack_tmp = ISHFT(pack_tmp, -28)
   20459     2199268 :          idata = idata + 1
   20460     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20461     2199268 :          full_data(idata) = data_tmp
   20462     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20463     2199268 :          idata = idata + 1
   20464     2199268 :          data_tmp = ISHFT(pack_tmp, 20)
   20465     2199268 :          ipack = ipack + 1
   20466     2199268 :          pack_tmp = packed_data(ipack)
   20467     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20468     2199268 :          pack_tmp = ISHFT(pack_tmp, -20)
   20469     2199268 :          idata = idata + 1
   20470     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20471     2199268 :          full_data(idata) = data_tmp
   20472     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20473     2199268 :          idata = idata + 1
   20474     2199268 :          data_tmp = ISHFT(pack_tmp, 12)
   20475     2199268 :          ipack = ipack + 1
   20476     2199268 :          pack_tmp = packed_data(ipack)
   20477     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20478     2199268 :          pack_tmp = ISHFT(pack_tmp, -12)
   20479     2199268 :          idata = idata + 1
   20480     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20481     2199268 :          full_data(idata) = data_tmp
   20482     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20483     2199268 :          idata = idata + 1
   20484     2199268 :          data_tmp = ISHFT(pack_tmp, 4)
   20485     2199268 :          ipack = ipack + 1
   20486     2199268 :          pack_tmp = packed_data(ipack)
   20487     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20488     2199268 :          pack_tmp = ISHFT(pack_tmp, -4)
   20489     2199268 :          idata = idata + 1
   20490     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20491     2199268 :          full_data(idata) = data_tmp
   20492     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20493     2199268 :          idata = idata + 1
   20494     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20495     2199268 :          full_data(idata) = data_tmp
   20496     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20497     2199268 :          idata = idata + 1
   20498     2199268 :          data_tmp = ISHFT(pack_tmp, 24)
   20499     2199268 :          ipack = ipack + 1
   20500     2199268 :          pack_tmp = packed_data(ipack)
   20501     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20502     2199268 :          pack_tmp = ISHFT(pack_tmp, -24)
   20503     2199268 :          idata = idata + 1
   20504     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20505     2199268 :          full_data(idata) = data_tmp
   20506     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20507     2199268 :          idata = idata + 1
   20508     2199268 :          data_tmp = ISHFT(pack_tmp, 16)
   20509     2199268 :          ipack = ipack + 1
   20510     2199268 :          pack_tmp = packed_data(ipack)
   20511     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20512     2199268 :          pack_tmp = ISHFT(pack_tmp, -16)
   20513     2199268 :          idata = idata + 1
   20514     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20515     2199268 :          full_data(idata) = data_tmp
   20516     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20517     2199268 :          idata = idata + 1
   20518     2199268 :          data_tmp = ISHFT(pack_tmp, 8)
   20519     2199268 :          ipack = ipack + 1
   20520     2199268 :          pack_tmp = packed_data(ipack)
   20521     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20522     2199268 :          pack_tmp = ISHFT(pack_tmp, -8)
   20523     2199268 :          idata = idata + 1
   20524     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20525     2199268 :          full_data(idata) = data_tmp
   20526     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20527     2199268 :          idata = idata + 1
   20528     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20529     2199268 :          full_data(idata) = data_tmp
   20530     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20531     2199268 :          idata = idata + 1
   20532     2199268 :          data_tmp = ISHFT(pack_tmp, 28)
   20533     2199268 :          ipack = ipack + 1
   20534     2199268 :          pack_tmp = packed_data(ipack)
   20535     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20536     2199268 :          pack_tmp = ISHFT(pack_tmp, -28)
   20537     2199268 :          idata = idata + 1
   20538     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20539     2199268 :          full_data(idata) = data_tmp
   20540     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20541     2199268 :          idata = idata + 1
   20542     2199268 :          data_tmp = ISHFT(pack_tmp, 20)
   20543     2199268 :          ipack = ipack + 1
   20544     2199268 :          pack_tmp = packed_data(ipack)
   20545     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20546     2199268 :          pack_tmp = ISHFT(pack_tmp, -20)
   20547     2199268 :          idata = idata + 1
   20548     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20549     2199268 :          full_data(idata) = data_tmp
   20550     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20551     2199268 :          idata = idata + 1
   20552     2199268 :          data_tmp = ISHFT(pack_tmp, 12)
   20553     2199268 :          ipack = ipack + 1
   20554     2199268 :          pack_tmp = packed_data(ipack)
   20555     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20556     2199268 :          pack_tmp = ISHFT(pack_tmp, -12)
   20557     2199268 :          idata = idata + 1
   20558     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20559     2199268 :          full_data(idata) = data_tmp
   20560     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20561     2199268 :          idata = idata + 1
   20562     2199268 :          data_tmp = ISHFT(pack_tmp, 4)
   20563     2199268 :          ipack = ipack + 1
   20564     2199268 :          pack_tmp = packed_data(ipack)
   20565     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20566     2199268 :          pack_tmp = ISHFT(pack_tmp, -4)
   20567     2199268 :          idata = idata + 1
   20568     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20569     2199268 :          full_data(idata) = data_tmp
   20570     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20571     2199268 :          idata = idata + 1
   20572     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20573     2199268 :          full_data(idata) = data_tmp
   20574     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20575     2199268 :          idata = idata + 1
   20576     2199268 :          data_tmp = ISHFT(pack_tmp, 24)
   20577     2199268 :          ipack = ipack + 1
   20578     2199268 :          pack_tmp = packed_data(ipack)
   20579     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20580     2199268 :          pack_tmp = ISHFT(pack_tmp, -24)
   20581     2199268 :          idata = idata + 1
   20582     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20583     2199268 :          full_data(idata) = data_tmp
   20584     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20585     2199268 :          idata = idata + 1
   20586     2199268 :          data_tmp = ISHFT(pack_tmp, 16)
   20587     2199268 :          ipack = ipack + 1
   20588     2199268 :          pack_tmp = packed_data(ipack)
   20589     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20590     2199268 :          pack_tmp = ISHFT(pack_tmp, -16)
   20591     2199268 :          idata = idata + 1
   20592     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20593     2199268 :          full_data(idata) = data_tmp
   20594     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20595     2199268 :          idata = idata + 1
   20596     2199268 :          data_tmp = ISHFT(pack_tmp, 8)
   20597     2199268 :          ipack = ipack + 1
   20598     2199268 :          pack_tmp = packed_data(ipack)
   20599     2199268 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20600     2199268 :          pack_tmp = ISHFT(pack_tmp, -8)
   20601     2199268 :          idata = idata + 1
   20602     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20603     2199268 :          full_data(idata) = data_tmp
   20604     2199268 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20605     2199268 :          idata = idata + 1
   20606     2199268 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20607     2199268 :          full_data(idata) = data_tmp
   20608     2200244 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20609             :       END DO
   20610      156675 :       IF (Ndata_rep < Ndata) THEN
   20611       35928 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20612             :       END IF
   20613      156675 :    END SUBROUTINE bits2ints_28
   20614             : 
   20615             : ! **************************************************************************************************
   20616             : !> \brief ...
   20617             : !> \param Ndata ...
   20618             : !> \param packed_data ...
   20619             : !> \param full_data ...
   20620             : ! **************************************************************************************************
   20621       36874 :    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       36874 :       idata = 0
   20632       36874 :       ipack = 0
   20633       36874 :       Ndata_rep = (Ndata/64)*64
   20634       36874 :       DO kdata = 1, Ndata_rep, 64
   20635      522148 :          pack_tmp = 0
   20636      522148 :          idata = idata + 1
   20637      522148 :          data_tmp = full_data(idata)
   20638      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20639      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20640      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20641      522148 :          idata = idata + 1
   20642      522148 :          data_tmp = full_data(idata)
   20643      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20644      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20645      522148 :          pack_tmp = ISHFT(pack_tmp, -6)
   20646      522148 :          idata = idata + 1
   20647      522148 :          data_tmp = full_data(idata)
   20648      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20649      522148 :          data_tmp = IAND(data_tmp, mask_left(6))
   20650      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20651      522148 :          ipack = ipack + 1
   20652      522148 :          packed_data(ipack) = pack_tmp
   20653      522148 :          data_tmp = full_data(idata)
   20654      522148 :          pack_tmp = ISHFT(data_tmp, 41)
   20655      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20656      522148 :          idata = idata + 1
   20657      522148 :          data_tmp = full_data(idata)
   20658      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20659      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20660      522148 :          pack_tmp = ISHFT(pack_tmp, -12)
   20661      522148 :          idata = idata + 1
   20662      522148 :          data_tmp = full_data(idata)
   20663      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20664      522148 :          data_tmp = IAND(data_tmp, mask_left(12))
   20665      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20666      522148 :          ipack = ipack + 1
   20667      522148 :          packed_data(ipack) = pack_tmp
   20668      522148 :          data_tmp = full_data(idata)
   20669      522148 :          pack_tmp = ISHFT(data_tmp, 47)
   20670      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20671      522148 :          idata = idata + 1
   20672      522148 :          data_tmp = full_data(idata)
   20673      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20674      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20675      522148 :          pack_tmp = ISHFT(pack_tmp, -18)
   20676      522148 :          idata = idata + 1
   20677      522148 :          data_tmp = full_data(idata)
   20678      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20679      522148 :          data_tmp = IAND(data_tmp, mask_left(18))
   20680      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20681      522148 :          ipack = ipack + 1
   20682      522148 :          packed_data(ipack) = pack_tmp
   20683      522148 :          data_tmp = full_data(idata)
   20684      522148 :          pack_tmp = ISHFT(data_tmp, 53)
   20685      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20686      522148 :          idata = idata + 1
   20687      522148 :          data_tmp = full_data(idata)
   20688      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20689      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20690      522148 :          pack_tmp = ISHFT(pack_tmp, -24)
   20691      522148 :          idata = idata + 1
   20692      522148 :          data_tmp = full_data(idata)
   20693      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20694      522148 :          data_tmp = IAND(data_tmp, mask_left(24))
   20695      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20696      522148 :          ipack = ipack + 1
   20697      522148 :          packed_data(ipack) = pack_tmp
   20698      522148 :          data_tmp = full_data(idata)
   20699      522148 :          pack_tmp = ISHFT(data_tmp, 59)
   20700      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20701      522148 :          idata = idata + 1
   20702      522148 :          data_tmp = full_data(idata)
   20703      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20704      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20705      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20706      522148 :          idata = idata + 1
   20707      522148 :          data_tmp = full_data(idata)
   20708      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20709      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20710      522148 :          pack_tmp = ISHFT(pack_tmp, -1)
   20711      522148 :          idata = idata + 1
   20712      522148 :          data_tmp = full_data(idata)
   20713      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20714      522148 :          data_tmp = IAND(data_tmp, mask_left(1))
   20715      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20716      522148 :          ipack = ipack + 1
   20717      522148 :          packed_data(ipack) = pack_tmp
   20718      522148 :          data_tmp = full_data(idata)
   20719      522148 :          pack_tmp = ISHFT(data_tmp, 36)
   20720      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20721      522148 :          idata = idata + 1
   20722      522148 :          data_tmp = full_data(idata)
   20723      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20724      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20725      522148 :          pack_tmp = ISHFT(pack_tmp, -7)
   20726      522148 :          idata = idata + 1
   20727      522148 :          data_tmp = full_data(idata)
   20728      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20729      522148 :          data_tmp = IAND(data_tmp, mask_left(7))
   20730      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20731      522148 :          ipack = ipack + 1
   20732      522148 :          packed_data(ipack) = pack_tmp
   20733      522148 :          data_tmp = full_data(idata)
   20734      522148 :          pack_tmp = ISHFT(data_tmp, 42)
   20735      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20736      522148 :          idata = idata + 1
   20737      522148 :          data_tmp = full_data(idata)
   20738      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20739      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20740      522148 :          pack_tmp = ISHFT(pack_tmp, -13)
   20741      522148 :          idata = idata + 1
   20742      522148 :          data_tmp = full_data(idata)
   20743      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20744      522148 :          data_tmp = IAND(data_tmp, mask_left(13))
   20745      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20746      522148 :          ipack = ipack + 1
   20747      522148 :          packed_data(ipack) = pack_tmp
   20748      522148 :          data_tmp = full_data(idata)
   20749      522148 :          pack_tmp = ISHFT(data_tmp, 48)
   20750      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20751      522148 :          idata = idata + 1
   20752      522148 :          data_tmp = full_data(idata)
   20753      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20754      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20755      522148 :          pack_tmp = ISHFT(pack_tmp, -19)
   20756      522148 :          idata = idata + 1
   20757      522148 :          data_tmp = full_data(idata)
   20758      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20759      522148 :          data_tmp = IAND(data_tmp, mask_left(19))
   20760      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20761      522148 :          ipack = ipack + 1
   20762      522148 :          packed_data(ipack) = pack_tmp
   20763      522148 :          data_tmp = full_data(idata)
   20764      522148 :          pack_tmp = ISHFT(data_tmp, 54)
   20765      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20766      522148 :          idata = idata + 1
   20767      522148 :          data_tmp = full_data(idata)
   20768      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20769      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20770      522148 :          pack_tmp = ISHFT(pack_tmp, -25)
   20771      522148 :          idata = idata + 1
   20772      522148 :          data_tmp = full_data(idata)
   20773      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20774      522148 :          data_tmp = IAND(data_tmp, mask_left(25))
   20775      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20776      522148 :          ipack = ipack + 1
   20777      522148 :          packed_data(ipack) = pack_tmp
   20778      522148 :          data_tmp = full_data(idata)
   20779      522148 :          pack_tmp = ISHFT(data_tmp, 60)
   20780      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20781      522148 :          idata = idata + 1
   20782      522148 :          data_tmp = full_data(idata)
   20783      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20784      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20785      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20786      522148 :          idata = idata + 1
   20787      522148 :          data_tmp = full_data(idata)
   20788      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20789      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20790      522148 :          pack_tmp = ISHFT(pack_tmp, -2)
   20791      522148 :          idata = idata + 1
   20792      522148 :          data_tmp = full_data(idata)
   20793      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20794      522148 :          data_tmp = IAND(data_tmp, mask_left(2))
   20795      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20796      522148 :          ipack = ipack + 1
   20797      522148 :          packed_data(ipack) = pack_tmp
   20798      522148 :          data_tmp = full_data(idata)
   20799      522148 :          pack_tmp = ISHFT(data_tmp, 37)
   20800      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20801      522148 :          idata = idata + 1
   20802      522148 :          data_tmp = full_data(idata)
   20803      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20804      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20805      522148 :          pack_tmp = ISHFT(pack_tmp, -8)
   20806      522148 :          idata = idata + 1
   20807      522148 :          data_tmp = full_data(idata)
   20808      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20809      522148 :          data_tmp = IAND(data_tmp, mask_left(8))
   20810      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20811      522148 :          ipack = ipack + 1
   20812      522148 :          packed_data(ipack) = pack_tmp
   20813      522148 :          data_tmp = full_data(idata)
   20814      522148 :          pack_tmp = ISHFT(data_tmp, 43)
   20815      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20816      522148 :          idata = idata + 1
   20817      522148 :          data_tmp = full_data(idata)
   20818      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20819      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20820      522148 :          pack_tmp = ISHFT(pack_tmp, -14)
   20821      522148 :          idata = idata + 1
   20822      522148 :          data_tmp = full_data(idata)
   20823      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20824      522148 :          data_tmp = IAND(data_tmp, mask_left(14))
   20825      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20826      522148 :          ipack = ipack + 1
   20827      522148 :          packed_data(ipack) = pack_tmp
   20828      522148 :          data_tmp = full_data(idata)
   20829      522148 :          pack_tmp = ISHFT(data_tmp, 49)
   20830      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20831      522148 :          idata = idata + 1
   20832      522148 :          data_tmp = full_data(idata)
   20833      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20834      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20835      522148 :          pack_tmp = ISHFT(pack_tmp, -20)
   20836      522148 :          idata = idata + 1
   20837      522148 :          data_tmp = full_data(idata)
   20838      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20839      522148 :          data_tmp = IAND(data_tmp, mask_left(20))
   20840      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20841      522148 :          ipack = ipack + 1
   20842      522148 :          packed_data(ipack) = pack_tmp
   20843      522148 :          data_tmp = full_data(idata)
   20844      522148 :          pack_tmp = ISHFT(data_tmp, 55)
   20845      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20846      522148 :          idata = idata + 1
   20847      522148 :          data_tmp = full_data(idata)
   20848      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20849      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20850      522148 :          pack_tmp = ISHFT(pack_tmp, -26)
   20851      522148 :          idata = idata + 1
   20852      522148 :          data_tmp = full_data(idata)
   20853      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20854      522148 :          data_tmp = IAND(data_tmp, mask_left(26))
   20855      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20856      522148 :          ipack = ipack + 1
   20857      522148 :          packed_data(ipack) = pack_tmp
   20858      522148 :          data_tmp = full_data(idata)
   20859      522148 :          pack_tmp = ISHFT(data_tmp, 61)
   20860      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20861      522148 :          idata = idata + 1
   20862      522148 :          data_tmp = full_data(idata)
   20863      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20864      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20865      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20866      522148 :          idata = idata + 1
   20867      522148 :          data_tmp = full_data(idata)
   20868      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20869      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20870      522148 :          pack_tmp = ISHFT(pack_tmp, -3)
   20871      522148 :          idata = idata + 1
   20872      522148 :          data_tmp = full_data(idata)
   20873      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20874      522148 :          data_tmp = IAND(data_tmp, mask_left(3))
   20875      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20876      522148 :          ipack = ipack + 1
   20877      522148 :          packed_data(ipack) = pack_tmp
   20878      522148 :          data_tmp = full_data(idata)
   20879      522148 :          pack_tmp = ISHFT(data_tmp, 38)
   20880      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20881      522148 :          idata = idata + 1
   20882      522148 :          data_tmp = full_data(idata)
   20883      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20884      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20885      522148 :          pack_tmp = ISHFT(pack_tmp, -9)
   20886      522148 :          idata = idata + 1
   20887      522148 :          data_tmp = full_data(idata)
   20888      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20889      522148 :          data_tmp = IAND(data_tmp, mask_left(9))
   20890      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20891      522148 :          ipack = ipack + 1
   20892      522148 :          packed_data(ipack) = pack_tmp
   20893      522148 :          data_tmp = full_data(idata)
   20894      522148 :          pack_tmp = ISHFT(data_tmp, 44)
   20895      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20896      522148 :          idata = idata + 1
   20897      522148 :          data_tmp = full_data(idata)
   20898      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20899      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20900      522148 :          pack_tmp = ISHFT(pack_tmp, -15)
   20901      522148 :          idata = idata + 1
   20902      522148 :          data_tmp = full_data(idata)
   20903      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20904      522148 :          data_tmp = IAND(data_tmp, mask_left(15))
   20905      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20906      522148 :          ipack = ipack + 1
   20907      522148 :          packed_data(ipack) = pack_tmp
   20908      522148 :          data_tmp = full_data(idata)
   20909      522148 :          pack_tmp = ISHFT(data_tmp, 50)
   20910      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20911      522148 :          idata = idata + 1
   20912      522148 :          data_tmp = full_data(idata)
   20913      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20914      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20915      522148 :          pack_tmp = ISHFT(pack_tmp, -21)
   20916      522148 :          idata = idata + 1
   20917      522148 :          data_tmp = full_data(idata)
   20918      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20919      522148 :          data_tmp = IAND(data_tmp, mask_left(21))
   20920      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20921      522148 :          ipack = ipack + 1
   20922      522148 :          packed_data(ipack) = pack_tmp
   20923      522148 :          data_tmp = full_data(idata)
   20924      522148 :          pack_tmp = ISHFT(data_tmp, 56)
   20925      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20926      522148 :          idata = idata + 1
   20927      522148 :          data_tmp = full_data(idata)
   20928      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20929      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20930      522148 :          pack_tmp = ISHFT(pack_tmp, -27)
   20931      522148 :          idata = idata + 1
   20932      522148 :          data_tmp = full_data(idata)
   20933      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20934      522148 :          data_tmp = IAND(data_tmp, mask_left(27))
   20935      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20936      522148 :          ipack = ipack + 1
   20937      522148 :          packed_data(ipack) = pack_tmp
   20938      522148 :          data_tmp = full_data(idata)
   20939      522148 :          pack_tmp = ISHFT(data_tmp, 62)
   20940      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20941      522148 :          idata = idata + 1
   20942      522148 :          data_tmp = full_data(idata)
   20943      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20944      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20945      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20946      522148 :          idata = idata + 1
   20947      522148 :          data_tmp = full_data(idata)
   20948      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20949      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20950      522148 :          pack_tmp = ISHFT(pack_tmp, -4)
   20951      522148 :          idata = idata + 1
   20952      522148 :          data_tmp = full_data(idata)
   20953      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20954      522148 :          data_tmp = IAND(data_tmp, mask_left(4))
   20955      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20956      522148 :          ipack = ipack + 1
   20957      522148 :          packed_data(ipack) = pack_tmp
   20958      522148 :          data_tmp = full_data(idata)
   20959      522148 :          pack_tmp = ISHFT(data_tmp, 39)
   20960      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20961      522148 :          idata = idata + 1
   20962      522148 :          data_tmp = full_data(idata)
   20963      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20964      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20965      522148 :          pack_tmp = ISHFT(pack_tmp, -10)
   20966      522148 :          idata = idata + 1
   20967      522148 :          data_tmp = full_data(idata)
   20968      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20969      522148 :          data_tmp = IAND(data_tmp, mask_left(10))
   20970      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20971      522148 :          ipack = ipack + 1
   20972      522148 :          packed_data(ipack) = pack_tmp
   20973      522148 :          data_tmp = full_data(idata)
   20974      522148 :          pack_tmp = ISHFT(data_tmp, 45)
   20975      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20976      522148 :          idata = idata + 1
   20977      522148 :          data_tmp = full_data(idata)
   20978      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20979      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20980      522148 :          pack_tmp = ISHFT(pack_tmp, -16)
   20981      522148 :          idata = idata + 1
   20982      522148 :          data_tmp = full_data(idata)
   20983      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20984      522148 :          data_tmp = IAND(data_tmp, mask_left(16))
   20985      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20986      522148 :          ipack = ipack + 1
   20987      522148 :          packed_data(ipack) = pack_tmp
   20988      522148 :          data_tmp = full_data(idata)
   20989      522148 :          pack_tmp = ISHFT(data_tmp, 51)
   20990      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   20991      522148 :          idata = idata + 1
   20992      522148 :          data_tmp = full_data(idata)
   20993      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20994      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20995      522148 :          pack_tmp = ISHFT(pack_tmp, -22)
   20996      522148 :          idata = idata + 1
   20997      522148 :          data_tmp = full_data(idata)
   20998      522148 :          data_tmp = ISHFT(data_tmp, 35)
   20999      522148 :          data_tmp = IAND(data_tmp, mask_left(22))
   21000      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21001      522148 :          ipack = ipack + 1
   21002      522148 :          packed_data(ipack) = pack_tmp
   21003      522148 :          data_tmp = full_data(idata)
   21004      522148 :          pack_tmp = ISHFT(data_tmp, 57)
   21005      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21006      522148 :          idata = idata + 1
   21007      522148 :          data_tmp = full_data(idata)
   21008      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21009      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21010      522148 :          pack_tmp = ISHFT(pack_tmp, -28)
   21011      522148 :          idata = idata + 1
   21012      522148 :          data_tmp = full_data(idata)
   21013      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21014      522148 :          data_tmp = IAND(data_tmp, mask_left(28))
   21015      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21016      522148 :          ipack = ipack + 1
   21017      522148 :          packed_data(ipack) = pack_tmp
   21018      522148 :          data_tmp = full_data(idata)
   21019      522148 :          pack_tmp = ISHFT(data_tmp, 63)
   21020      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21021      522148 :          idata = idata + 1
   21022      522148 :          data_tmp = full_data(idata)
   21023      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21024      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21025      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21026      522148 :          idata = idata + 1
   21027      522148 :          data_tmp = full_data(idata)
   21028      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21029      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21030      522148 :          pack_tmp = ISHFT(pack_tmp, -5)
   21031      522148 :          idata = idata + 1
   21032      522148 :          data_tmp = full_data(idata)
   21033      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21034      522148 :          data_tmp = IAND(data_tmp, mask_left(5))
   21035      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21036      522148 :          ipack = ipack + 1
   21037      522148 :          packed_data(ipack) = pack_tmp
   21038      522148 :          data_tmp = full_data(idata)
   21039      522148 :          pack_tmp = ISHFT(data_tmp, 40)
   21040      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21041      522148 :          idata = idata + 1
   21042      522148 :          data_tmp = full_data(idata)
   21043      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21044      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21045      522148 :          pack_tmp = ISHFT(pack_tmp, -11)
   21046      522148 :          idata = idata + 1
   21047      522148 :          data_tmp = full_data(idata)
   21048      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21049      522148 :          data_tmp = IAND(data_tmp, mask_left(11))
   21050      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21051      522148 :          ipack = ipack + 1
   21052      522148 :          packed_data(ipack) = pack_tmp
   21053      522148 :          data_tmp = full_data(idata)
   21054      522148 :          pack_tmp = ISHFT(data_tmp, 46)
   21055      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21056      522148 :          idata = idata + 1
   21057      522148 :          data_tmp = full_data(idata)
   21058      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21059      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21060      522148 :          pack_tmp = ISHFT(pack_tmp, -17)
   21061      522148 :          idata = idata + 1
   21062      522148 :          data_tmp = full_data(idata)
   21063      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21064      522148 :          data_tmp = IAND(data_tmp, mask_left(17))
   21065      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21066      522148 :          ipack = ipack + 1
   21067      522148 :          packed_data(ipack) = pack_tmp
   21068      522148 :          data_tmp = full_data(idata)
   21069      522148 :          pack_tmp = ISHFT(data_tmp, 52)
   21070      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21071      522148 :          idata = idata + 1
   21072      522148 :          data_tmp = full_data(idata)
   21073      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21074      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21075      522148 :          pack_tmp = ISHFT(pack_tmp, -23)
   21076      522148 :          idata = idata + 1
   21077      522148 :          data_tmp = full_data(idata)
   21078      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21079      522148 :          data_tmp = IAND(data_tmp, mask_left(23))
   21080      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21081      522148 :          ipack = ipack + 1
   21082      522148 :          packed_data(ipack) = pack_tmp
   21083      522148 :          data_tmp = full_data(idata)
   21084      522148 :          pack_tmp = ISHFT(data_tmp, 58)
   21085      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21086      522148 :          idata = idata + 1
   21087      522148 :          data_tmp = full_data(idata)
   21088      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21089      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21090      522148 :          pack_tmp = ISHFT(pack_tmp, -29)
   21091      522148 :          idata = idata + 1
   21092      522148 :          data_tmp = full_data(idata)
   21093      522148 :          data_tmp = ISHFT(data_tmp, 35)
   21094      522148 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21095             :          pack_tmp = ISHFT(pack_tmp, 0)
   21096      522148 :          pack_tmp = ISHFT(pack_tmp, 0)
   21097      522148 :          ipack = ipack + 1
   21098      522552 :          packed_data(ipack) = pack_tmp
   21099             :       END DO
   21100       36874 :       IF (Ndata_rep < Ndata) THEN
   21101        7896 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21102             :       END IF
   21103       36874 :    END SUBROUTINE ints2bits_29
   21104             : 
   21105             : ! **************************************************************************************************
   21106             : !> \brief ...
   21107             : !> \param Ndata ...
   21108             : !> \param packed_data ...
   21109             : !> \param full_data ...
   21110             : ! **************************************************************************************************
   21111      177182 :    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      177182 :       ipack = 0
   21122      177182 :       idata = 0
   21123      177182 :       pack_tmp = 0
   21124      177182 :       Ndata_rep = (Ndata/64)*64
   21125      177182 :       DO kdata = 1, Ndata_rep, 64
   21126     2423315 :          idata = idata + 1
   21127     2423315 :          data_tmp = ISHFT(pack_tmp, 29)
   21128     2423315 :          ipack = ipack + 1
   21129     2423315 :          pack_tmp = packed_data(ipack)
   21130     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   21131     2423315 :          pack_tmp = ISHFT(pack_tmp, -29)
   21132     2423315 :          idata = idata + 1
   21133     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21134     2423315 :          full_data(idata) = data_tmp
   21135     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21136     2423315 :          idata = idata + 1
   21137     2423315 :          data_tmp = ISHFT(pack_tmp, 23)
   21138     2423315 :          ipack = ipack + 1
   21139     2423315 :          pack_tmp = packed_data(ipack)
   21140     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   21141     2423315 :          pack_tmp = ISHFT(pack_tmp, -23)
   21142     2423315 :          idata = idata + 1
   21143     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21144     2423315 :          full_data(idata) = data_tmp
   21145     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21146     2423315 :          idata = idata + 1
   21147     2423315 :          data_tmp = ISHFT(pack_tmp, 17)
   21148     2423315 :          ipack = ipack + 1
   21149     2423315 :          pack_tmp = packed_data(ipack)
   21150     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   21151     2423315 :          pack_tmp = ISHFT(pack_tmp, -17)
   21152     2423315 :          idata = idata + 1
   21153     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21154     2423315 :          full_data(idata) = data_tmp
   21155     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21156     2423315 :          idata = idata + 1
   21157     2423315 :          data_tmp = ISHFT(pack_tmp, 11)
   21158     2423315 :          ipack = ipack + 1
   21159     2423315 :          pack_tmp = packed_data(ipack)
   21160     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   21161     2423315 :          pack_tmp = ISHFT(pack_tmp, -11)
   21162     2423315 :          idata = idata + 1
   21163     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21164     2423315 :          full_data(idata) = data_tmp
   21165     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21166     2423315 :          idata = idata + 1
   21167     2423315 :          data_tmp = ISHFT(pack_tmp, 5)
   21168     2423315 :          ipack = ipack + 1
   21169     2423315 :          pack_tmp = packed_data(ipack)
   21170     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   21171     2423315 :          pack_tmp = ISHFT(pack_tmp, -5)
   21172     2423315 :          idata = idata + 1
   21173     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21174     2423315 :          full_data(idata) = data_tmp
   21175     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21176     2423315 :          idata = idata + 1
   21177     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21178     2423315 :          full_data(idata) = data_tmp
   21179     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21180     2423315 :          idata = idata + 1
   21181     2423315 :          data_tmp = ISHFT(pack_tmp, 28)
   21182     2423315 :          ipack = ipack + 1
   21183     2423315 :          pack_tmp = packed_data(ipack)
   21184     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   21185     2423315 :          pack_tmp = ISHFT(pack_tmp, -28)
   21186     2423315 :          idata = idata + 1
   21187     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21188     2423315 :          full_data(idata) = data_tmp
   21189     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21190     2423315 :          idata = idata + 1
   21191     2423315 :          data_tmp = ISHFT(pack_tmp, 22)
   21192     2423315 :          ipack = ipack + 1
   21193     2423315 :          pack_tmp = packed_data(ipack)
   21194     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21195     2423315 :          pack_tmp = ISHFT(pack_tmp, -22)
   21196     2423315 :          idata = idata + 1
   21197     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21198     2423315 :          full_data(idata) = data_tmp
   21199     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21200     2423315 :          idata = idata + 1
   21201     2423315 :          data_tmp = ISHFT(pack_tmp, 16)
   21202     2423315 :          ipack = ipack + 1
   21203     2423315 :          pack_tmp = packed_data(ipack)
   21204     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   21205     2423315 :          pack_tmp = ISHFT(pack_tmp, -16)
   21206     2423315 :          idata = idata + 1
   21207     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21208     2423315 :          full_data(idata) = data_tmp
   21209     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21210     2423315 :          idata = idata + 1
   21211     2423315 :          data_tmp = ISHFT(pack_tmp, 10)
   21212     2423315 :          ipack = ipack + 1
   21213     2423315 :          pack_tmp = packed_data(ipack)
   21214     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   21215     2423315 :          pack_tmp = ISHFT(pack_tmp, -10)
   21216     2423315 :          idata = idata + 1
   21217     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21218     2423315 :          full_data(idata) = data_tmp
   21219     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21220     2423315 :          idata = idata + 1
   21221     2423315 :          data_tmp = ISHFT(pack_tmp, 4)
   21222     2423315 :          ipack = ipack + 1
   21223     2423315 :          pack_tmp = packed_data(ipack)
   21224     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   21225     2423315 :          pack_tmp = ISHFT(pack_tmp, -4)
   21226     2423315 :          idata = idata + 1
   21227     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21228     2423315 :          full_data(idata) = data_tmp
   21229     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21230     2423315 :          idata = idata + 1
   21231     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21232     2423315 :          full_data(idata) = data_tmp
   21233     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21234     2423315 :          idata = idata + 1
   21235     2423315 :          data_tmp = ISHFT(pack_tmp, 27)
   21236     2423315 :          ipack = ipack + 1
   21237     2423315 :          pack_tmp = packed_data(ipack)
   21238     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   21239     2423315 :          pack_tmp = ISHFT(pack_tmp, -27)
   21240     2423315 :          idata = idata + 1
   21241     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21242     2423315 :          full_data(idata) = data_tmp
   21243     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21244     2423315 :          idata = idata + 1
   21245     2423315 :          data_tmp = ISHFT(pack_tmp, 21)
   21246     2423315 :          ipack = ipack + 1
   21247     2423315 :          pack_tmp = packed_data(ipack)
   21248     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   21249     2423315 :          pack_tmp = ISHFT(pack_tmp, -21)
   21250     2423315 :          idata = idata + 1
   21251     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21252     2423315 :          full_data(idata) = data_tmp
   21253     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21254     2423315 :          idata = idata + 1
   21255     2423315 :          data_tmp = ISHFT(pack_tmp, 15)
   21256     2423315 :          ipack = ipack + 1
   21257     2423315 :          pack_tmp = packed_data(ipack)
   21258     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   21259     2423315 :          pack_tmp = ISHFT(pack_tmp, -15)
   21260     2423315 :          idata = idata + 1
   21261     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21262     2423315 :          full_data(idata) = data_tmp
   21263     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21264     2423315 :          idata = idata + 1
   21265     2423315 :          data_tmp = ISHFT(pack_tmp, 9)
   21266     2423315 :          ipack = ipack + 1
   21267     2423315 :          pack_tmp = packed_data(ipack)
   21268     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   21269     2423315 :          pack_tmp = ISHFT(pack_tmp, -9)
   21270     2423315 :          idata = idata + 1
   21271     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21272     2423315 :          full_data(idata) = data_tmp
   21273     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21274     2423315 :          idata = idata + 1
   21275     2423315 :          data_tmp = ISHFT(pack_tmp, 3)
   21276     2423315 :          ipack = ipack + 1
   21277     2423315 :          pack_tmp = packed_data(ipack)
   21278     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   21279     2423315 :          pack_tmp = ISHFT(pack_tmp, -3)
   21280     2423315 :          idata = idata + 1
   21281     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21282     2423315 :          full_data(idata) = data_tmp
   21283     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21284     2423315 :          idata = idata + 1
   21285     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21286     2423315 :          full_data(idata) = data_tmp
   21287     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21288     2423315 :          idata = idata + 1
   21289     2423315 :          data_tmp = ISHFT(pack_tmp, 26)
   21290     2423315 :          ipack = ipack + 1
   21291     2423315 :          pack_tmp = packed_data(ipack)
   21292     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21293     2423315 :          pack_tmp = ISHFT(pack_tmp, -26)
   21294     2423315 :          idata = idata + 1
   21295     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21296     2423315 :          full_data(idata) = data_tmp
   21297     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21298     2423315 :          idata = idata + 1
   21299     2423315 :          data_tmp = ISHFT(pack_tmp, 20)
   21300     2423315 :          ipack = ipack + 1
   21301     2423315 :          pack_tmp = packed_data(ipack)
   21302     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   21303     2423315 :          pack_tmp = ISHFT(pack_tmp, -20)
   21304     2423315 :          idata = idata + 1
   21305     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21306     2423315 :          full_data(idata) = data_tmp
   21307     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21308     2423315 :          idata = idata + 1
   21309     2423315 :          data_tmp = ISHFT(pack_tmp, 14)
   21310     2423315 :          ipack = ipack + 1
   21311     2423315 :          pack_tmp = packed_data(ipack)
   21312     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   21313     2423315 :          pack_tmp = ISHFT(pack_tmp, -14)
   21314     2423315 :          idata = idata + 1
   21315     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21316     2423315 :          full_data(idata) = data_tmp
   21317     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21318     2423315 :          idata = idata + 1
   21319     2423315 :          data_tmp = ISHFT(pack_tmp, 8)
   21320     2423315 :          ipack = ipack + 1
   21321     2423315 :          pack_tmp = packed_data(ipack)
   21322     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   21323     2423315 :          pack_tmp = ISHFT(pack_tmp, -8)
   21324     2423315 :          idata = idata + 1
   21325     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21326     2423315 :          full_data(idata) = data_tmp
   21327     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21328     2423315 :          idata = idata + 1
   21329     2423315 :          data_tmp = ISHFT(pack_tmp, 2)
   21330     2423315 :          ipack = ipack + 1
   21331     2423315 :          pack_tmp = packed_data(ipack)
   21332     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   21333     2423315 :          pack_tmp = ISHFT(pack_tmp, -2)
   21334     2423315 :          idata = idata + 1
   21335     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21336     2423315 :          full_data(idata) = data_tmp
   21337     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21338     2423315 :          idata = idata + 1
   21339     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21340     2423315 :          full_data(idata) = data_tmp
   21341     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21342     2423315 :          idata = idata + 1
   21343     2423315 :          data_tmp = ISHFT(pack_tmp, 25)
   21344     2423315 :          ipack = ipack + 1
   21345     2423315 :          pack_tmp = packed_data(ipack)
   21346     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   21347     2423315 :          pack_tmp = ISHFT(pack_tmp, -25)
   21348     2423315 :          idata = idata + 1
   21349     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21350     2423315 :          full_data(idata) = data_tmp
   21351     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21352     2423315 :          idata = idata + 1
   21353     2423315 :          data_tmp = ISHFT(pack_tmp, 19)
   21354     2423315 :          ipack = ipack + 1
   21355     2423315 :          pack_tmp = packed_data(ipack)
   21356     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   21357     2423315 :          pack_tmp = ISHFT(pack_tmp, -19)
   21358     2423315 :          idata = idata + 1
   21359     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21360     2423315 :          full_data(idata) = data_tmp
   21361     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21362     2423315 :          idata = idata + 1
   21363     2423315 :          data_tmp = ISHFT(pack_tmp, 13)
   21364     2423315 :          ipack = ipack + 1
   21365     2423315 :          pack_tmp = packed_data(ipack)
   21366     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   21367     2423315 :          pack_tmp = ISHFT(pack_tmp, -13)
   21368     2423315 :          idata = idata + 1
   21369     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21370     2423315 :          full_data(idata) = data_tmp
   21371     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21372     2423315 :          idata = idata + 1
   21373     2423315 :          data_tmp = ISHFT(pack_tmp, 7)
   21374     2423315 :          ipack = ipack + 1
   21375     2423315 :          pack_tmp = packed_data(ipack)
   21376     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   21377     2423315 :          pack_tmp = ISHFT(pack_tmp, -7)
   21378     2423315 :          idata = idata + 1
   21379     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21380     2423315 :          full_data(idata) = data_tmp
   21381     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21382     2423315 :          idata = idata + 1
   21383     2423315 :          data_tmp = ISHFT(pack_tmp, 1)
   21384     2423315 :          ipack = ipack + 1
   21385     2423315 :          pack_tmp = packed_data(ipack)
   21386     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   21387     2423315 :          pack_tmp = ISHFT(pack_tmp, -1)
   21388     2423315 :          idata = idata + 1
   21389     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21390     2423315 :          full_data(idata) = data_tmp
   21391     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21392     2423315 :          idata = idata + 1
   21393     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21394     2423315 :          full_data(idata) = data_tmp
   21395     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21396     2423315 :          idata = idata + 1
   21397     2423315 :          data_tmp = ISHFT(pack_tmp, 24)
   21398     2423315 :          ipack = ipack + 1
   21399     2423315 :          pack_tmp = packed_data(ipack)
   21400     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   21401     2423315 :          pack_tmp = ISHFT(pack_tmp, -24)
   21402     2423315 :          idata = idata + 1
   21403     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21404     2423315 :          full_data(idata) = data_tmp
   21405     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21406     2423315 :          idata = idata + 1
   21407     2423315 :          data_tmp = ISHFT(pack_tmp, 18)
   21408     2423315 :          ipack = ipack + 1
   21409     2423315 :          pack_tmp = packed_data(ipack)
   21410     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21411     2423315 :          pack_tmp = ISHFT(pack_tmp, -18)
   21412     2423315 :          idata = idata + 1
   21413     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21414     2423315 :          full_data(idata) = data_tmp
   21415     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21416     2423315 :          idata = idata + 1
   21417     2423315 :          data_tmp = ISHFT(pack_tmp, 12)
   21418     2423315 :          ipack = ipack + 1
   21419     2423315 :          pack_tmp = packed_data(ipack)
   21420     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   21421     2423315 :          pack_tmp = ISHFT(pack_tmp, -12)
   21422     2423315 :          idata = idata + 1
   21423     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21424     2423315 :          full_data(idata) = data_tmp
   21425     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21426     2423315 :          idata = idata + 1
   21427     2423315 :          data_tmp = ISHFT(pack_tmp, 6)
   21428     2423315 :          ipack = ipack + 1
   21429     2423315 :          pack_tmp = packed_data(ipack)
   21430     2423315 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   21431     2423315 :          pack_tmp = ISHFT(pack_tmp, -6)
   21432     2423315 :          idata = idata + 1
   21433     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21434     2423315 :          full_data(idata) = data_tmp
   21435     2423315 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21436     2423315 :          idata = idata + 1
   21437     2423315 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21438     2423315 :          full_data(idata) = data_tmp
   21439     2425735 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21440             :       END DO
   21441      177182 :       IF (Ndata_rep < Ndata) THEN
   21442       47642 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21443             :       END IF
   21444      177182 :    END SUBROUTINE bits2ints_29
   21445             : 
   21446             : ! **************************************************************************************************
   21447             : !> \brief ...
   21448             : !> \param Ndata ...
   21449             : !> \param packed_data ...
   21450             : !> \param full_data ...
   21451             : ! **************************************************************************************************
   21452       43675 :    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       43675 :       idata = 0
   21463       43675 :       ipack = 0
   21464       43675 :       Ndata_rep = (Ndata/64)*64
   21465       43675 :       DO kdata = 1, Ndata_rep, 64
   21466      592057 :          pack_tmp = 0
   21467      592057 :          idata = idata + 1
   21468      592057 :          data_tmp = full_data(idata)
   21469      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21470      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21471      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21472      592057 :          idata = idata + 1
   21473      592057 :          data_tmp = full_data(idata)
   21474      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21475      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21476      592057 :          pack_tmp = ISHFT(pack_tmp, -4)
   21477      592057 :          idata = idata + 1
   21478      592057 :          data_tmp = full_data(idata)
   21479      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21480      592057 :          data_tmp = IAND(data_tmp, mask_left(4))
   21481      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21482      592057 :          ipack = ipack + 1
   21483      592057 :          packed_data(ipack) = pack_tmp
   21484      592057 :          data_tmp = full_data(idata)
   21485      592057 :          pack_tmp = ISHFT(data_tmp, 38)
   21486      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21487      592057 :          idata = idata + 1
   21488      592057 :          data_tmp = full_data(idata)
   21489      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21490      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21491      592057 :          pack_tmp = ISHFT(pack_tmp, -8)
   21492      592057 :          idata = idata + 1
   21493      592057 :          data_tmp = full_data(idata)
   21494      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21495      592057 :          data_tmp = IAND(data_tmp, mask_left(8))
   21496      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21497      592057 :          ipack = ipack + 1
   21498      592057 :          packed_data(ipack) = pack_tmp
   21499      592057 :          data_tmp = full_data(idata)
   21500      592057 :          pack_tmp = ISHFT(data_tmp, 42)
   21501      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21502      592057 :          idata = idata + 1
   21503      592057 :          data_tmp = full_data(idata)
   21504      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21505      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21506      592057 :          pack_tmp = ISHFT(pack_tmp, -12)
   21507      592057 :          idata = idata + 1
   21508      592057 :          data_tmp = full_data(idata)
   21509      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21510      592057 :          data_tmp = IAND(data_tmp, mask_left(12))
   21511      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21512      592057 :          ipack = ipack + 1
   21513      592057 :          packed_data(ipack) = pack_tmp
   21514      592057 :          data_tmp = full_data(idata)
   21515      592057 :          pack_tmp = ISHFT(data_tmp, 46)
   21516      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21517      592057 :          idata = idata + 1
   21518      592057 :          data_tmp = full_data(idata)
   21519      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21520      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21521      592057 :          pack_tmp = ISHFT(pack_tmp, -16)
   21522      592057 :          idata = idata + 1
   21523      592057 :          data_tmp = full_data(idata)
   21524      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21525      592057 :          data_tmp = IAND(data_tmp, mask_left(16))
   21526      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21527      592057 :          ipack = ipack + 1
   21528      592057 :          packed_data(ipack) = pack_tmp
   21529      592057 :          data_tmp = full_data(idata)
   21530      592057 :          pack_tmp = ISHFT(data_tmp, 50)
   21531      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21532      592057 :          idata = idata + 1
   21533      592057 :          data_tmp = full_data(idata)
   21534      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21535      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21536      592057 :          pack_tmp = ISHFT(pack_tmp, -20)
   21537      592057 :          idata = idata + 1
   21538      592057 :          data_tmp = full_data(idata)
   21539      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21540      592057 :          data_tmp = IAND(data_tmp, mask_left(20))
   21541      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21542      592057 :          ipack = ipack + 1
   21543      592057 :          packed_data(ipack) = pack_tmp
   21544      592057 :          data_tmp = full_data(idata)
   21545      592057 :          pack_tmp = ISHFT(data_tmp, 54)
   21546      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21547      592057 :          idata = idata + 1
   21548      592057 :          data_tmp = full_data(idata)
   21549      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21550      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21551      592057 :          pack_tmp = ISHFT(pack_tmp, -24)
   21552      592057 :          idata = idata + 1
   21553      592057 :          data_tmp = full_data(idata)
   21554      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21555      592057 :          data_tmp = IAND(data_tmp, mask_left(24))
   21556      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21557      592057 :          ipack = ipack + 1
   21558      592057 :          packed_data(ipack) = pack_tmp
   21559      592057 :          data_tmp = full_data(idata)
   21560      592057 :          pack_tmp = ISHFT(data_tmp, 58)
   21561      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21562      592057 :          idata = idata + 1
   21563      592057 :          data_tmp = full_data(idata)
   21564      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21565      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21566      592057 :          pack_tmp = ISHFT(pack_tmp, -28)
   21567      592057 :          idata = idata + 1
   21568      592057 :          data_tmp = full_data(idata)
   21569      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21570      592057 :          data_tmp = IAND(data_tmp, mask_left(28))
   21571      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21572      592057 :          ipack = ipack + 1
   21573      592057 :          packed_data(ipack) = pack_tmp
   21574      592057 :          data_tmp = full_data(idata)
   21575      592057 :          pack_tmp = ISHFT(data_tmp, 62)
   21576      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21577      592057 :          idata = idata + 1
   21578      592057 :          data_tmp = full_data(idata)
   21579      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21580      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21581      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21582      592057 :          idata = idata + 1
   21583      592057 :          data_tmp = full_data(idata)
   21584      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21585      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21586      592057 :          pack_tmp = ISHFT(pack_tmp, -2)
   21587      592057 :          idata = idata + 1
   21588      592057 :          data_tmp = full_data(idata)
   21589      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21590      592057 :          data_tmp = IAND(data_tmp, mask_left(2))
   21591      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21592      592057 :          ipack = ipack + 1
   21593      592057 :          packed_data(ipack) = pack_tmp
   21594      592057 :          data_tmp = full_data(idata)
   21595      592057 :          pack_tmp = ISHFT(data_tmp, 36)
   21596      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21597      592057 :          idata = idata + 1
   21598      592057 :          data_tmp = full_data(idata)
   21599      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21600      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21601      592057 :          pack_tmp = ISHFT(pack_tmp, -6)
   21602      592057 :          idata = idata + 1
   21603      592057 :          data_tmp = full_data(idata)
   21604      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21605      592057 :          data_tmp = IAND(data_tmp, mask_left(6))
   21606      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21607      592057 :          ipack = ipack + 1
   21608      592057 :          packed_data(ipack) = pack_tmp
   21609      592057 :          data_tmp = full_data(idata)
   21610      592057 :          pack_tmp = ISHFT(data_tmp, 40)
   21611      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21612      592057 :          idata = idata + 1
   21613      592057 :          data_tmp = full_data(idata)
   21614      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21615      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21616      592057 :          pack_tmp = ISHFT(pack_tmp, -10)
   21617      592057 :          idata = idata + 1
   21618      592057 :          data_tmp = full_data(idata)
   21619      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21620      592057 :          data_tmp = IAND(data_tmp, mask_left(10))
   21621      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21622      592057 :          ipack = ipack + 1
   21623      592057 :          packed_data(ipack) = pack_tmp
   21624      592057 :          data_tmp = full_data(idata)
   21625      592057 :          pack_tmp = ISHFT(data_tmp, 44)
   21626      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21627      592057 :          idata = idata + 1
   21628      592057 :          data_tmp = full_data(idata)
   21629      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21630      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21631      592057 :          pack_tmp = ISHFT(pack_tmp, -14)
   21632      592057 :          idata = idata + 1
   21633      592057 :          data_tmp = full_data(idata)
   21634      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21635      592057 :          data_tmp = IAND(data_tmp, mask_left(14))
   21636      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21637      592057 :          ipack = ipack + 1
   21638      592057 :          packed_data(ipack) = pack_tmp
   21639      592057 :          data_tmp = full_data(idata)
   21640      592057 :          pack_tmp = ISHFT(data_tmp, 48)
   21641      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21642      592057 :          idata = idata + 1
   21643      592057 :          data_tmp = full_data(idata)
   21644      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21645      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21646      592057 :          pack_tmp = ISHFT(pack_tmp, -18)
   21647      592057 :          idata = idata + 1
   21648      592057 :          data_tmp = full_data(idata)
   21649      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21650      592057 :          data_tmp = IAND(data_tmp, mask_left(18))
   21651      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21652      592057 :          ipack = ipack + 1
   21653      592057 :          packed_data(ipack) = pack_tmp
   21654      592057 :          data_tmp = full_data(idata)
   21655      592057 :          pack_tmp = ISHFT(data_tmp, 52)
   21656      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21657      592057 :          idata = idata + 1
   21658      592057 :          data_tmp = full_data(idata)
   21659      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21660      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21661      592057 :          pack_tmp = ISHFT(pack_tmp, -22)
   21662      592057 :          idata = idata + 1
   21663      592057 :          data_tmp = full_data(idata)
   21664      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21665      592057 :          data_tmp = IAND(data_tmp, mask_left(22))
   21666      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21667      592057 :          ipack = ipack + 1
   21668      592057 :          packed_data(ipack) = pack_tmp
   21669      592057 :          data_tmp = full_data(idata)
   21670      592057 :          pack_tmp = ISHFT(data_tmp, 56)
   21671      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21672      592057 :          idata = idata + 1
   21673      592057 :          data_tmp = full_data(idata)
   21674      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21675      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21676      592057 :          pack_tmp = ISHFT(pack_tmp, -26)
   21677      592057 :          idata = idata + 1
   21678      592057 :          data_tmp = full_data(idata)
   21679      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21680      592057 :          data_tmp = IAND(data_tmp, mask_left(26))
   21681      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21682      592057 :          ipack = ipack + 1
   21683      592057 :          packed_data(ipack) = pack_tmp
   21684      592057 :          data_tmp = full_data(idata)
   21685      592057 :          pack_tmp = ISHFT(data_tmp, 60)
   21686      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21687      592057 :          idata = idata + 1
   21688      592057 :          data_tmp = full_data(idata)
   21689      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21690      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21691      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21692      592057 :          idata = idata + 1
   21693      592057 :          data_tmp = full_data(idata)
   21694      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21695      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21696      592057 :          pack_tmp = ISHFT(pack_tmp, 0)
   21697      592057 :          idata = idata + 1
   21698      592057 :          data_tmp = full_data(idata)
   21699             :          data_tmp = ISHFT(data_tmp, 34)
   21700      592057 :          data_tmp = IAND(data_tmp, mask_left(0))
   21701      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21702      592057 :          ipack = ipack + 1
   21703      592057 :          packed_data(ipack) = pack_tmp
   21704      592057 :          data_tmp = full_data(idata)
   21705      592057 :          pack_tmp = ISHFT(data_tmp, 34)
   21706      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21707      592057 :          idata = idata + 1
   21708      592057 :          data_tmp = full_data(idata)
   21709      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21710      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21711      592057 :          pack_tmp = ISHFT(pack_tmp, -4)
   21712      592057 :          idata = idata + 1
   21713      592057 :          data_tmp = full_data(idata)
   21714      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21715      592057 :          data_tmp = IAND(data_tmp, mask_left(4))
   21716      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21717      592057 :          ipack = ipack + 1
   21718      592057 :          packed_data(ipack) = pack_tmp
   21719      592057 :          data_tmp = full_data(idata)
   21720      592057 :          pack_tmp = ISHFT(data_tmp, 38)
   21721      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21722      592057 :          idata = idata + 1
   21723      592057 :          data_tmp = full_data(idata)
   21724      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21725      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21726      592057 :          pack_tmp = ISHFT(pack_tmp, -8)
   21727      592057 :          idata = idata + 1
   21728      592057 :          data_tmp = full_data(idata)
   21729      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21730      592057 :          data_tmp = IAND(data_tmp, mask_left(8))
   21731      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21732      592057 :          ipack = ipack + 1
   21733      592057 :          packed_data(ipack) = pack_tmp
   21734      592057 :          data_tmp = full_data(idata)
   21735      592057 :          pack_tmp = ISHFT(data_tmp, 42)
   21736      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21737      592057 :          idata = idata + 1
   21738      592057 :          data_tmp = full_data(idata)
   21739      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21740      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21741      592057 :          pack_tmp = ISHFT(pack_tmp, -12)
   21742      592057 :          idata = idata + 1
   21743      592057 :          data_tmp = full_data(idata)
   21744      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21745      592057 :          data_tmp = IAND(data_tmp, mask_left(12))
   21746      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21747      592057 :          ipack = ipack + 1
   21748      592057 :          packed_data(ipack) = pack_tmp
   21749      592057 :          data_tmp = full_data(idata)
   21750      592057 :          pack_tmp = ISHFT(data_tmp, 46)
   21751      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21752      592057 :          idata = idata + 1
   21753      592057 :          data_tmp = full_data(idata)
   21754      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21755      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21756      592057 :          pack_tmp = ISHFT(pack_tmp, -16)
   21757      592057 :          idata = idata + 1
   21758      592057 :          data_tmp = full_data(idata)
   21759      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21760      592057 :          data_tmp = IAND(data_tmp, mask_left(16))
   21761      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21762      592057 :          ipack = ipack + 1
   21763      592057 :          packed_data(ipack) = pack_tmp
   21764      592057 :          data_tmp = full_data(idata)
   21765      592057 :          pack_tmp = ISHFT(data_tmp, 50)
   21766      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21767      592057 :          idata = idata + 1
   21768      592057 :          data_tmp = full_data(idata)
   21769      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21770      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21771      592057 :          pack_tmp = ISHFT(pack_tmp, -20)
   21772      592057 :          idata = idata + 1
   21773      592057 :          data_tmp = full_data(idata)
   21774      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21775      592057 :          data_tmp = IAND(data_tmp, mask_left(20))
   21776      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21777      592057 :          ipack = ipack + 1
   21778      592057 :          packed_data(ipack) = pack_tmp
   21779      592057 :          data_tmp = full_data(idata)
   21780      592057 :          pack_tmp = ISHFT(data_tmp, 54)
   21781      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21782      592057 :          idata = idata + 1
   21783      592057 :          data_tmp = full_data(idata)
   21784      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21785      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21786      592057 :          pack_tmp = ISHFT(pack_tmp, -24)
   21787      592057 :          idata = idata + 1
   21788      592057 :          data_tmp = full_data(idata)
   21789      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21790      592057 :          data_tmp = IAND(data_tmp, mask_left(24))
   21791      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21792      592057 :          ipack = ipack + 1
   21793      592057 :          packed_data(ipack) = pack_tmp
   21794      592057 :          data_tmp = full_data(idata)
   21795      592057 :          pack_tmp = ISHFT(data_tmp, 58)
   21796      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21797      592057 :          idata = idata + 1
   21798      592057 :          data_tmp = full_data(idata)
   21799      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21800      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21801      592057 :          pack_tmp = ISHFT(pack_tmp, -28)
   21802      592057 :          idata = idata + 1
   21803      592057 :          data_tmp = full_data(idata)
   21804      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21805      592057 :          data_tmp = IAND(data_tmp, mask_left(28))
   21806      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21807      592057 :          ipack = ipack + 1
   21808      592057 :          packed_data(ipack) = pack_tmp
   21809      592057 :          data_tmp = full_data(idata)
   21810      592057 :          pack_tmp = ISHFT(data_tmp, 62)
   21811      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21812      592057 :          idata = idata + 1
   21813      592057 :          data_tmp = full_data(idata)
   21814      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21815      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21816      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21817      592057 :          idata = idata + 1
   21818      592057 :          data_tmp = full_data(idata)
   21819      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21820      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21821      592057 :          pack_tmp = ISHFT(pack_tmp, -2)
   21822      592057 :          idata = idata + 1
   21823      592057 :          data_tmp = full_data(idata)
   21824      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21825      592057 :          data_tmp = IAND(data_tmp, mask_left(2))
   21826      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21827      592057 :          ipack = ipack + 1
   21828      592057 :          packed_data(ipack) = pack_tmp
   21829      592057 :          data_tmp = full_data(idata)
   21830      592057 :          pack_tmp = ISHFT(data_tmp, 36)
   21831      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21832      592057 :          idata = idata + 1
   21833      592057 :          data_tmp = full_data(idata)
   21834      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21835      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21836      592057 :          pack_tmp = ISHFT(pack_tmp, -6)
   21837      592057 :          idata = idata + 1
   21838      592057 :          data_tmp = full_data(idata)
   21839      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21840      592057 :          data_tmp = IAND(data_tmp, mask_left(6))
   21841      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21842      592057 :          ipack = ipack + 1
   21843      592057 :          packed_data(ipack) = pack_tmp
   21844      592057 :          data_tmp = full_data(idata)
   21845      592057 :          pack_tmp = ISHFT(data_tmp, 40)
   21846      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21847      592057 :          idata = idata + 1
   21848      592057 :          data_tmp = full_data(idata)
   21849      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21850      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21851      592057 :          pack_tmp = ISHFT(pack_tmp, -10)
   21852      592057 :          idata = idata + 1
   21853      592057 :          data_tmp = full_data(idata)
   21854      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21855      592057 :          data_tmp = IAND(data_tmp, mask_left(10))
   21856      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21857      592057 :          ipack = ipack + 1
   21858      592057 :          packed_data(ipack) = pack_tmp
   21859      592057 :          data_tmp = full_data(idata)
   21860      592057 :          pack_tmp = ISHFT(data_tmp, 44)
   21861      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21862      592057 :          idata = idata + 1
   21863      592057 :          data_tmp = full_data(idata)
   21864      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21865      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21866      592057 :          pack_tmp = ISHFT(pack_tmp, -14)
   21867      592057 :          idata = idata + 1
   21868      592057 :          data_tmp = full_data(idata)
   21869      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21870      592057 :          data_tmp = IAND(data_tmp, mask_left(14))
   21871      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21872      592057 :          ipack = ipack + 1
   21873      592057 :          packed_data(ipack) = pack_tmp
   21874      592057 :          data_tmp = full_data(idata)
   21875      592057 :          pack_tmp = ISHFT(data_tmp, 48)
   21876      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21877      592057 :          idata = idata + 1
   21878      592057 :          data_tmp = full_data(idata)
   21879      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21880      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21881      592057 :          pack_tmp = ISHFT(pack_tmp, -18)
   21882      592057 :          idata = idata + 1
   21883      592057 :          data_tmp = full_data(idata)
   21884      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21885      592057 :          data_tmp = IAND(data_tmp, mask_left(18))
   21886      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21887      592057 :          ipack = ipack + 1
   21888      592057 :          packed_data(ipack) = pack_tmp
   21889      592057 :          data_tmp = full_data(idata)
   21890      592057 :          pack_tmp = ISHFT(data_tmp, 52)
   21891      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21892      592057 :          idata = idata + 1
   21893      592057 :          data_tmp = full_data(idata)
   21894      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21895      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21896      592057 :          pack_tmp = ISHFT(pack_tmp, -22)
   21897      592057 :          idata = idata + 1
   21898      592057 :          data_tmp = full_data(idata)
   21899      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21900      592057 :          data_tmp = IAND(data_tmp, mask_left(22))
   21901      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21902      592057 :          ipack = ipack + 1
   21903      592057 :          packed_data(ipack) = pack_tmp
   21904      592057 :          data_tmp = full_data(idata)
   21905      592057 :          pack_tmp = ISHFT(data_tmp, 56)
   21906      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21907      592057 :          idata = idata + 1
   21908      592057 :          data_tmp = full_data(idata)
   21909      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21910      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21911      592057 :          pack_tmp = ISHFT(pack_tmp, -26)
   21912      592057 :          idata = idata + 1
   21913      592057 :          data_tmp = full_data(idata)
   21914      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21915      592057 :          data_tmp = IAND(data_tmp, mask_left(26))
   21916      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21917      592057 :          ipack = ipack + 1
   21918      592057 :          packed_data(ipack) = pack_tmp
   21919      592057 :          data_tmp = full_data(idata)
   21920      592057 :          pack_tmp = ISHFT(data_tmp, 60)
   21921      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21922      592057 :          idata = idata + 1
   21923      592057 :          data_tmp = full_data(idata)
   21924      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21925      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21926      592057 :          pack_tmp = ISHFT(pack_tmp, -30)
   21927      592057 :          idata = idata + 1
   21928      592057 :          data_tmp = full_data(idata)
   21929      592057 :          data_tmp = ISHFT(data_tmp, 34)
   21930      592057 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21931             :          pack_tmp = ISHFT(pack_tmp, 0)
   21932      592057 :          pack_tmp = ISHFT(pack_tmp, 0)
   21933      592057 :          ipack = ipack + 1
   21934      592332 :          packed_data(ipack) = pack_tmp
   21935             :       END DO
   21936       43675 :       IF (Ndata_rep < Ndata) THEN
   21937       12558 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21938             :       END IF
   21939       43675 :    END SUBROUTINE ints2bits_30
   21940             : 
   21941             : ! **************************************************************************************************
   21942             : !> \brief ...
   21943             : !> \param Ndata ...
   21944             : !> \param packed_data ...
   21945             : !> \param full_data ...
   21946             : ! **************************************************************************************************
   21947      227012 :    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      227012 :       ipack = 0
   21958      227012 :       idata = 0
   21959      227012 :       pack_tmp = 0
   21960      227012 :       Ndata_rep = (Ndata/64)*64
   21961      227012 :       DO kdata = 1, Ndata_rep, 64
   21962     2935736 :          idata = idata + 1
   21963     2935736 :          data_tmp = ISHFT(pack_tmp, 30)
   21964     2935736 :          ipack = ipack + 1
   21965     2935736 :          pack_tmp = packed_data(ipack)
   21966     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   21967     2935736 :          pack_tmp = ISHFT(pack_tmp, -30)
   21968     2935736 :          idata = idata + 1
   21969     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21970     2935736 :          full_data(idata) = data_tmp
   21971     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21972     2935736 :          idata = idata + 1
   21973     2935736 :          data_tmp = ISHFT(pack_tmp, 26)
   21974     2935736 :          ipack = ipack + 1
   21975     2935736 :          pack_tmp = packed_data(ipack)
   21976     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21977     2935736 :          pack_tmp = ISHFT(pack_tmp, -26)
   21978     2935736 :          idata = idata + 1
   21979     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21980     2935736 :          full_data(idata) = data_tmp
   21981     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21982     2935736 :          idata = idata + 1
   21983     2935736 :          data_tmp = ISHFT(pack_tmp, 22)
   21984     2935736 :          ipack = ipack + 1
   21985     2935736 :          pack_tmp = packed_data(ipack)
   21986     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21987     2935736 :          pack_tmp = ISHFT(pack_tmp, -22)
   21988     2935736 :          idata = idata + 1
   21989     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21990     2935736 :          full_data(idata) = data_tmp
   21991     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21992     2935736 :          idata = idata + 1
   21993     2935736 :          data_tmp = ISHFT(pack_tmp, 18)
   21994     2935736 :          ipack = ipack + 1
   21995     2935736 :          pack_tmp = packed_data(ipack)
   21996     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21997     2935736 :          pack_tmp = ISHFT(pack_tmp, -18)
   21998     2935736 :          idata = idata + 1
   21999     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22000     2935736 :          full_data(idata) = data_tmp
   22001     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22002     2935736 :          idata = idata + 1
   22003     2935736 :          data_tmp = ISHFT(pack_tmp, 14)
   22004     2935736 :          ipack = ipack + 1
   22005     2935736 :          pack_tmp = packed_data(ipack)
   22006     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22007     2935736 :          pack_tmp = ISHFT(pack_tmp, -14)
   22008     2935736 :          idata = idata + 1
   22009     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22010     2935736 :          full_data(idata) = data_tmp
   22011     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22012     2935736 :          idata = idata + 1
   22013     2935736 :          data_tmp = ISHFT(pack_tmp, 10)
   22014     2935736 :          ipack = ipack + 1
   22015     2935736 :          pack_tmp = packed_data(ipack)
   22016     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22017     2935736 :          pack_tmp = ISHFT(pack_tmp, -10)
   22018     2935736 :          idata = idata + 1
   22019     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22020     2935736 :          full_data(idata) = data_tmp
   22021     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22022     2935736 :          idata = idata + 1
   22023     2935736 :          data_tmp = ISHFT(pack_tmp, 6)
   22024     2935736 :          ipack = ipack + 1
   22025     2935736 :          pack_tmp = packed_data(ipack)
   22026     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22027     2935736 :          pack_tmp = ISHFT(pack_tmp, -6)
   22028     2935736 :          idata = idata + 1
   22029     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22030     2935736 :          full_data(idata) = data_tmp
   22031     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22032     2935736 :          idata = idata + 1
   22033     2935736 :          data_tmp = ISHFT(pack_tmp, 2)
   22034     2935736 :          ipack = ipack + 1
   22035     2935736 :          pack_tmp = packed_data(ipack)
   22036     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22037     2935736 :          pack_tmp = ISHFT(pack_tmp, -2)
   22038     2935736 :          idata = idata + 1
   22039     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22040     2935736 :          full_data(idata) = data_tmp
   22041     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22042     2935736 :          idata = idata + 1
   22043     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22044     2935736 :          full_data(idata) = data_tmp
   22045     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22046     2935736 :          idata = idata + 1
   22047     2935736 :          data_tmp = ISHFT(pack_tmp, 28)
   22048     2935736 :          ipack = ipack + 1
   22049     2935736 :          pack_tmp = packed_data(ipack)
   22050     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22051     2935736 :          pack_tmp = ISHFT(pack_tmp, -28)
   22052     2935736 :          idata = idata + 1
   22053     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22054     2935736 :          full_data(idata) = data_tmp
   22055     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22056     2935736 :          idata = idata + 1
   22057     2935736 :          data_tmp = ISHFT(pack_tmp, 24)
   22058     2935736 :          ipack = ipack + 1
   22059     2935736 :          pack_tmp = packed_data(ipack)
   22060     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22061     2935736 :          pack_tmp = ISHFT(pack_tmp, -24)
   22062     2935736 :          idata = idata + 1
   22063     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22064     2935736 :          full_data(idata) = data_tmp
   22065     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22066     2935736 :          idata = idata + 1
   22067     2935736 :          data_tmp = ISHFT(pack_tmp, 20)
   22068     2935736 :          ipack = ipack + 1
   22069     2935736 :          pack_tmp = packed_data(ipack)
   22070     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22071     2935736 :          pack_tmp = ISHFT(pack_tmp, -20)
   22072     2935736 :          idata = idata + 1
   22073     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22074     2935736 :          full_data(idata) = data_tmp
   22075     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22076     2935736 :          idata = idata + 1
   22077     2935736 :          data_tmp = ISHFT(pack_tmp, 16)
   22078     2935736 :          ipack = ipack + 1
   22079     2935736 :          pack_tmp = packed_data(ipack)
   22080     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22081     2935736 :          pack_tmp = ISHFT(pack_tmp, -16)
   22082     2935736 :          idata = idata + 1
   22083     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22084     2935736 :          full_data(idata) = data_tmp
   22085     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22086     2935736 :          idata = idata + 1
   22087     2935736 :          data_tmp = ISHFT(pack_tmp, 12)
   22088     2935736 :          ipack = ipack + 1
   22089     2935736 :          pack_tmp = packed_data(ipack)
   22090     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22091     2935736 :          pack_tmp = ISHFT(pack_tmp, -12)
   22092     2935736 :          idata = idata + 1
   22093     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22094     2935736 :          full_data(idata) = data_tmp
   22095     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22096     2935736 :          idata = idata + 1
   22097     2935736 :          data_tmp = ISHFT(pack_tmp, 8)
   22098     2935736 :          ipack = ipack + 1
   22099     2935736 :          pack_tmp = packed_data(ipack)
   22100     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22101     2935736 :          pack_tmp = ISHFT(pack_tmp, -8)
   22102     2935736 :          idata = idata + 1
   22103     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22104     2935736 :          full_data(idata) = data_tmp
   22105     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22106     2935736 :          idata = idata + 1
   22107     2935736 :          data_tmp = ISHFT(pack_tmp, 4)
   22108     2935736 :          ipack = ipack + 1
   22109     2935736 :          pack_tmp = packed_data(ipack)
   22110     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22111     2935736 :          pack_tmp = ISHFT(pack_tmp, -4)
   22112     2935736 :          idata = idata + 1
   22113     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22114     2935736 :          full_data(idata) = data_tmp
   22115     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22116     2935736 :          idata = idata + 1
   22117     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22118     2935736 :          full_data(idata) = data_tmp
   22119     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22120     2935736 :          idata = idata + 1
   22121     2935736 :          data_tmp = ISHFT(pack_tmp, 30)
   22122     2935736 :          ipack = ipack + 1
   22123     2935736 :          pack_tmp = packed_data(ipack)
   22124     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22125     2935736 :          pack_tmp = ISHFT(pack_tmp, -30)
   22126     2935736 :          idata = idata + 1
   22127     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22128     2935736 :          full_data(idata) = data_tmp
   22129     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22130     2935736 :          idata = idata + 1
   22131     2935736 :          data_tmp = ISHFT(pack_tmp, 26)
   22132     2935736 :          ipack = ipack + 1
   22133     2935736 :          pack_tmp = packed_data(ipack)
   22134     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22135     2935736 :          pack_tmp = ISHFT(pack_tmp, -26)
   22136     2935736 :          idata = idata + 1
   22137     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22138     2935736 :          full_data(idata) = data_tmp
   22139     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22140     2935736 :          idata = idata + 1
   22141     2935736 :          data_tmp = ISHFT(pack_tmp, 22)
   22142     2935736 :          ipack = ipack + 1
   22143     2935736 :          pack_tmp = packed_data(ipack)
   22144     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   22145     2935736 :          pack_tmp = ISHFT(pack_tmp, -22)
   22146     2935736 :          idata = idata + 1
   22147     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22148     2935736 :          full_data(idata) = data_tmp
   22149     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22150     2935736 :          idata = idata + 1
   22151     2935736 :          data_tmp = ISHFT(pack_tmp, 18)
   22152     2935736 :          ipack = ipack + 1
   22153     2935736 :          pack_tmp = packed_data(ipack)
   22154     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   22155     2935736 :          pack_tmp = ISHFT(pack_tmp, -18)
   22156     2935736 :          idata = idata + 1
   22157     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22158     2935736 :          full_data(idata) = data_tmp
   22159     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22160     2935736 :          idata = idata + 1
   22161     2935736 :          data_tmp = ISHFT(pack_tmp, 14)
   22162     2935736 :          ipack = ipack + 1
   22163     2935736 :          pack_tmp = packed_data(ipack)
   22164     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22165     2935736 :          pack_tmp = ISHFT(pack_tmp, -14)
   22166     2935736 :          idata = idata + 1
   22167     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22168     2935736 :          full_data(idata) = data_tmp
   22169     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22170     2935736 :          idata = idata + 1
   22171     2935736 :          data_tmp = ISHFT(pack_tmp, 10)
   22172     2935736 :          ipack = ipack + 1
   22173     2935736 :          pack_tmp = packed_data(ipack)
   22174     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22175     2935736 :          pack_tmp = ISHFT(pack_tmp, -10)
   22176     2935736 :          idata = idata + 1
   22177     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22178     2935736 :          full_data(idata) = data_tmp
   22179     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22180     2935736 :          idata = idata + 1
   22181     2935736 :          data_tmp = ISHFT(pack_tmp, 6)
   22182     2935736 :          ipack = ipack + 1
   22183     2935736 :          pack_tmp = packed_data(ipack)
   22184     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22185     2935736 :          pack_tmp = ISHFT(pack_tmp, -6)
   22186     2935736 :          idata = idata + 1
   22187     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22188     2935736 :          full_data(idata) = data_tmp
   22189     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22190     2935736 :          idata = idata + 1
   22191     2935736 :          data_tmp = ISHFT(pack_tmp, 2)
   22192     2935736 :          ipack = ipack + 1
   22193     2935736 :          pack_tmp = packed_data(ipack)
   22194     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22195     2935736 :          pack_tmp = ISHFT(pack_tmp, -2)
   22196     2935736 :          idata = idata + 1
   22197     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22198     2935736 :          full_data(idata) = data_tmp
   22199     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22200     2935736 :          idata = idata + 1
   22201     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22202     2935736 :          full_data(idata) = data_tmp
   22203     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22204     2935736 :          idata = idata + 1
   22205     2935736 :          data_tmp = ISHFT(pack_tmp, 28)
   22206     2935736 :          ipack = ipack + 1
   22207     2935736 :          pack_tmp = packed_data(ipack)
   22208     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22209     2935736 :          pack_tmp = ISHFT(pack_tmp, -28)
   22210     2935736 :          idata = idata + 1
   22211     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22212     2935736 :          full_data(idata) = data_tmp
   22213     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22214     2935736 :          idata = idata + 1
   22215     2935736 :          data_tmp = ISHFT(pack_tmp, 24)
   22216     2935736 :          ipack = ipack + 1
   22217     2935736 :          pack_tmp = packed_data(ipack)
   22218     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22219     2935736 :          pack_tmp = ISHFT(pack_tmp, -24)
   22220     2935736 :          idata = idata + 1
   22221     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22222     2935736 :          full_data(idata) = data_tmp
   22223     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22224     2935736 :          idata = idata + 1
   22225     2935736 :          data_tmp = ISHFT(pack_tmp, 20)
   22226     2935736 :          ipack = ipack + 1
   22227     2935736 :          pack_tmp = packed_data(ipack)
   22228     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22229     2935736 :          pack_tmp = ISHFT(pack_tmp, -20)
   22230     2935736 :          idata = idata + 1
   22231     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22232     2935736 :          full_data(idata) = data_tmp
   22233     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22234     2935736 :          idata = idata + 1
   22235     2935736 :          data_tmp = ISHFT(pack_tmp, 16)
   22236     2935736 :          ipack = ipack + 1
   22237     2935736 :          pack_tmp = packed_data(ipack)
   22238     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22239     2935736 :          pack_tmp = ISHFT(pack_tmp, -16)
   22240     2935736 :          idata = idata + 1
   22241     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22242     2935736 :          full_data(idata) = data_tmp
   22243     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22244     2935736 :          idata = idata + 1
   22245     2935736 :          data_tmp = ISHFT(pack_tmp, 12)
   22246     2935736 :          ipack = ipack + 1
   22247     2935736 :          pack_tmp = packed_data(ipack)
   22248     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22249     2935736 :          pack_tmp = ISHFT(pack_tmp, -12)
   22250     2935736 :          idata = idata + 1
   22251     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22252     2935736 :          full_data(idata) = data_tmp
   22253     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22254     2935736 :          idata = idata + 1
   22255     2935736 :          data_tmp = ISHFT(pack_tmp, 8)
   22256     2935736 :          ipack = ipack + 1
   22257     2935736 :          pack_tmp = packed_data(ipack)
   22258     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22259     2935736 :          pack_tmp = ISHFT(pack_tmp, -8)
   22260     2935736 :          idata = idata + 1
   22261     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22262     2935736 :          full_data(idata) = data_tmp
   22263     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22264     2935736 :          idata = idata + 1
   22265     2935736 :          data_tmp = ISHFT(pack_tmp, 4)
   22266     2935736 :          ipack = ipack + 1
   22267     2935736 :          pack_tmp = packed_data(ipack)
   22268     2935736 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22269     2935736 :          pack_tmp = ISHFT(pack_tmp, -4)
   22270     2935736 :          idata = idata + 1
   22271     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22272     2935736 :          full_data(idata) = data_tmp
   22273     2935736 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22274     2935736 :          idata = idata + 1
   22275     2935736 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22276     2935736 :          full_data(idata) = data_tmp
   22277     2938110 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22278             :       END DO
   22279      227012 :       IF (Ndata_rep < Ndata) THEN
   22280       81936 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22281             :       END IF
   22282      227012 :    END SUBROUTINE bits2ints_30
   22283             : 
   22284             : ! **************************************************************************************************
   22285             : !> \brief ...
   22286             : !> \param Ndata ...
   22287             : !> \param packed_data ...
   22288             : !> \param full_data ...
   22289             : ! **************************************************************************************************
   22290       43662 :    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       43662 :       idata = 0
   22301       43662 :       ipack = 0
   22302       43662 :       Ndata_rep = (Ndata/64)*64
   22303       43662 :       DO kdata = 1, Ndata_rep, 64
   22304      591798 :          pack_tmp = 0
   22305      591798 :          idata = idata + 1
   22306      591798 :          data_tmp = full_data(idata)
   22307      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22308      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22309      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22310      591798 :          idata = idata + 1
   22311      591798 :          data_tmp = full_data(idata)
   22312      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22313      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22314      591798 :          pack_tmp = ISHFT(pack_tmp, -2)
   22315      591798 :          idata = idata + 1
   22316      591798 :          data_tmp = full_data(idata)
   22317      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22318      591798 :          data_tmp = IAND(data_tmp, mask_left(2))
   22319      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22320      591798 :          ipack = ipack + 1
   22321      591798 :          packed_data(ipack) = pack_tmp
   22322      591798 :          data_tmp = full_data(idata)
   22323      591798 :          pack_tmp = ISHFT(data_tmp, 35)
   22324      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22325      591798 :          idata = idata + 1
   22326      591798 :          data_tmp = full_data(idata)
   22327      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22328      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22329      591798 :          pack_tmp = ISHFT(pack_tmp, -4)
   22330      591798 :          idata = idata + 1
   22331      591798 :          data_tmp = full_data(idata)
   22332      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22333      591798 :          data_tmp = IAND(data_tmp, mask_left(4))
   22334      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22335      591798 :          ipack = ipack + 1
   22336      591798 :          packed_data(ipack) = pack_tmp
   22337      591798 :          data_tmp = full_data(idata)
   22338      591798 :          pack_tmp = ISHFT(data_tmp, 37)
   22339      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22340      591798 :          idata = idata + 1
   22341      591798 :          data_tmp = full_data(idata)
   22342      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22343      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22344      591798 :          pack_tmp = ISHFT(pack_tmp, -6)
   22345      591798 :          idata = idata + 1
   22346      591798 :          data_tmp = full_data(idata)
   22347      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22348      591798 :          data_tmp = IAND(data_tmp, mask_left(6))
   22349      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22350      591798 :          ipack = ipack + 1
   22351      591798 :          packed_data(ipack) = pack_tmp
   22352      591798 :          data_tmp = full_data(idata)
   22353      591798 :          pack_tmp = ISHFT(data_tmp, 39)
   22354      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22355      591798 :          idata = idata + 1
   22356      591798 :          data_tmp = full_data(idata)
   22357      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22358      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22359      591798 :          pack_tmp = ISHFT(pack_tmp, -8)
   22360      591798 :          idata = idata + 1
   22361      591798 :          data_tmp = full_data(idata)
   22362      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22363      591798 :          data_tmp = IAND(data_tmp, mask_left(8))
   22364      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22365      591798 :          ipack = ipack + 1
   22366      591798 :          packed_data(ipack) = pack_tmp
   22367      591798 :          data_tmp = full_data(idata)
   22368      591798 :          pack_tmp = ISHFT(data_tmp, 41)
   22369      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22370      591798 :          idata = idata + 1
   22371      591798 :          data_tmp = full_data(idata)
   22372      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22373      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22374      591798 :          pack_tmp = ISHFT(pack_tmp, -10)
   22375      591798 :          idata = idata + 1
   22376      591798 :          data_tmp = full_data(idata)
   22377      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22378      591798 :          data_tmp = IAND(data_tmp, mask_left(10))
   22379      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22380      591798 :          ipack = ipack + 1
   22381      591798 :          packed_data(ipack) = pack_tmp
   22382      591798 :          data_tmp = full_data(idata)
   22383      591798 :          pack_tmp = ISHFT(data_tmp, 43)
   22384      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22385      591798 :          idata = idata + 1
   22386      591798 :          data_tmp = full_data(idata)
   22387      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22388      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22389      591798 :          pack_tmp = ISHFT(pack_tmp, -12)
   22390      591798 :          idata = idata + 1
   22391      591798 :          data_tmp = full_data(idata)
   22392      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22393      591798 :          data_tmp = IAND(data_tmp, mask_left(12))
   22394      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22395      591798 :          ipack = ipack + 1
   22396      591798 :          packed_data(ipack) = pack_tmp
   22397      591798 :          data_tmp = full_data(idata)
   22398      591798 :          pack_tmp = ISHFT(data_tmp, 45)
   22399      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22400      591798 :          idata = idata + 1
   22401      591798 :          data_tmp = full_data(idata)
   22402      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22403      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22404      591798 :          pack_tmp = ISHFT(pack_tmp, -14)
   22405      591798 :          idata = idata + 1
   22406      591798 :          data_tmp = full_data(idata)
   22407      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22408      591798 :          data_tmp = IAND(data_tmp, mask_left(14))
   22409      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22410      591798 :          ipack = ipack + 1
   22411      591798 :          packed_data(ipack) = pack_tmp
   22412      591798 :          data_tmp = full_data(idata)
   22413      591798 :          pack_tmp = ISHFT(data_tmp, 47)
   22414      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22415      591798 :          idata = idata + 1
   22416      591798 :          data_tmp = full_data(idata)
   22417      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22418      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22419      591798 :          pack_tmp = ISHFT(pack_tmp, -16)
   22420      591798 :          idata = idata + 1
   22421      591798 :          data_tmp = full_data(idata)
   22422      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22423      591798 :          data_tmp = IAND(data_tmp, mask_left(16))
   22424      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22425      591798 :          ipack = ipack + 1
   22426      591798 :          packed_data(ipack) = pack_tmp
   22427      591798 :          data_tmp = full_data(idata)
   22428      591798 :          pack_tmp = ISHFT(data_tmp, 49)
   22429      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22430      591798 :          idata = idata + 1
   22431      591798 :          data_tmp = full_data(idata)
   22432      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22433      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22434      591798 :          pack_tmp = ISHFT(pack_tmp, -18)
   22435      591798 :          idata = idata + 1
   22436      591798 :          data_tmp = full_data(idata)
   22437      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22438      591798 :          data_tmp = IAND(data_tmp, mask_left(18))
   22439      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22440      591798 :          ipack = ipack + 1
   22441      591798 :          packed_data(ipack) = pack_tmp
   22442      591798 :          data_tmp = full_data(idata)
   22443      591798 :          pack_tmp = ISHFT(data_tmp, 51)
   22444      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22445      591798 :          idata = idata + 1
   22446      591798 :          data_tmp = full_data(idata)
   22447      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22448      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22449      591798 :          pack_tmp = ISHFT(pack_tmp, -20)
   22450      591798 :          idata = idata + 1
   22451      591798 :          data_tmp = full_data(idata)
   22452      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22453      591798 :          data_tmp = IAND(data_tmp, mask_left(20))
   22454      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22455      591798 :          ipack = ipack + 1
   22456      591798 :          packed_data(ipack) = pack_tmp
   22457      591798 :          data_tmp = full_data(idata)
   22458      591798 :          pack_tmp = ISHFT(data_tmp, 53)
   22459      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22460      591798 :          idata = idata + 1
   22461      591798 :          data_tmp = full_data(idata)
   22462      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22463      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22464      591798 :          pack_tmp = ISHFT(pack_tmp, -22)
   22465      591798 :          idata = idata + 1
   22466      591798 :          data_tmp = full_data(idata)
   22467      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22468      591798 :          data_tmp = IAND(data_tmp, mask_left(22))
   22469      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22470      591798 :          ipack = ipack + 1
   22471      591798 :          packed_data(ipack) = pack_tmp
   22472      591798 :          data_tmp = full_data(idata)
   22473      591798 :          pack_tmp = ISHFT(data_tmp, 55)
   22474      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22475      591798 :          idata = idata + 1
   22476      591798 :          data_tmp = full_data(idata)
   22477      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22478      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22479      591798 :          pack_tmp = ISHFT(pack_tmp, -24)
   22480      591798 :          idata = idata + 1
   22481      591798 :          data_tmp = full_data(idata)
   22482      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22483      591798 :          data_tmp = IAND(data_tmp, mask_left(24))
   22484      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22485      591798 :          ipack = ipack + 1
   22486      591798 :          packed_data(ipack) = pack_tmp
   22487      591798 :          data_tmp = full_data(idata)
   22488      591798 :          pack_tmp = ISHFT(data_tmp, 57)
   22489      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22490      591798 :          idata = idata + 1
   22491      591798 :          data_tmp = full_data(idata)
   22492      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22493      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22494      591798 :          pack_tmp = ISHFT(pack_tmp, -26)
   22495      591798 :          idata = idata + 1
   22496      591798 :          data_tmp = full_data(idata)
   22497      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22498      591798 :          data_tmp = IAND(data_tmp, mask_left(26))
   22499      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22500      591798 :          ipack = ipack + 1
   22501      591798 :          packed_data(ipack) = pack_tmp
   22502      591798 :          data_tmp = full_data(idata)
   22503      591798 :          pack_tmp = ISHFT(data_tmp, 59)
   22504      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22505      591798 :          idata = idata + 1
   22506      591798 :          data_tmp = full_data(idata)
   22507      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22508      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22509      591798 :          pack_tmp = ISHFT(pack_tmp, -28)
   22510      591798 :          idata = idata + 1
   22511      591798 :          data_tmp = full_data(idata)
   22512      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22513      591798 :          data_tmp = IAND(data_tmp, mask_left(28))
   22514      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22515      591798 :          ipack = ipack + 1
   22516      591798 :          packed_data(ipack) = pack_tmp
   22517      591798 :          data_tmp = full_data(idata)
   22518      591798 :          pack_tmp = ISHFT(data_tmp, 61)
   22519      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22520      591798 :          idata = idata + 1
   22521      591798 :          data_tmp = full_data(idata)
   22522      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22523      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22524      591798 :          pack_tmp = ISHFT(pack_tmp, -30)
   22525      591798 :          idata = idata + 1
   22526      591798 :          data_tmp = full_data(idata)
   22527      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22528      591798 :          data_tmp = IAND(data_tmp, mask_left(30))
   22529      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22530      591798 :          ipack = ipack + 1
   22531      591798 :          packed_data(ipack) = pack_tmp
   22532      591798 :          data_tmp = full_data(idata)
   22533      591798 :          pack_tmp = ISHFT(data_tmp, 63)
   22534      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22535      591798 :          idata = idata + 1
   22536      591798 :          data_tmp = full_data(idata)
   22537      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22538      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22539      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22540      591798 :          idata = idata + 1
   22541      591798 :          data_tmp = full_data(idata)
   22542      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22543      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22544      591798 :          pack_tmp = ISHFT(pack_tmp, -1)
   22545      591798 :          idata = idata + 1
   22546      591798 :          data_tmp = full_data(idata)
   22547      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22548      591798 :          data_tmp = IAND(data_tmp, mask_left(1))
   22549      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22550      591798 :          ipack = ipack + 1
   22551      591798 :          packed_data(ipack) = pack_tmp
   22552      591798 :          data_tmp = full_data(idata)
   22553      591798 :          pack_tmp = ISHFT(data_tmp, 34)
   22554      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22555      591798 :          idata = idata + 1
   22556      591798 :          data_tmp = full_data(idata)
   22557      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22558      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22559      591798 :          pack_tmp = ISHFT(pack_tmp, -3)
   22560      591798 :          idata = idata + 1
   22561      591798 :          data_tmp = full_data(idata)
   22562      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22563      591798 :          data_tmp = IAND(data_tmp, mask_left(3))
   22564      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22565      591798 :          ipack = ipack + 1
   22566      591798 :          packed_data(ipack) = pack_tmp
   22567      591798 :          data_tmp = full_data(idata)
   22568      591798 :          pack_tmp = ISHFT(data_tmp, 36)
   22569      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22570      591798 :          idata = idata + 1
   22571      591798 :          data_tmp = full_data(idata)
   22572      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22573      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22574      591798 :          pack_tmp = ISHFT(pack_tmp, -5)
   22575      591798 :          idata = idata + 1
   22576      591798 :          data_tmp = full_data(idata)
   22577      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22578      591798 :          data_tmp = IAND(data_tmp, mask_left(5))
   22579      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22580      591798 :          ipack = ipack + 1
   22581      591798 :          packed_data(ipack) = pack_tmp
   22582      591798 :          data_tmp = full_data(idata)
   22583      591798 :          pack_tmp = ISHFT(data_tmp, 38)
   22584      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22585      591798 :          idata = idata + 1
   22586      591798 :          data_tmp = full_data(idata)
   22587      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22588      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22589      591798 :          pack_tmp = ISHFT(pack_tmp, -7)
   22590      591798 :          idata = idata + 1
   22591      591798 :          data_tmp = full_data(idata)
   22592      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22593      591798 :          data_tmp = IAND(data_tmp, mask_left(7))
   22594      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22595      591798 :          ipack = ipack + 1
   22596      591798 :          packed_data(ipack) = pack_tmp
   22597      591798 :          data_tmp = full_data(idata)
   22598      591798 :          pack_tmp = ISHFT(data_tmp, 40)
   22599      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22600      591798 :          idata = idata + 1
   22601      591798 :          data_tmp = full_data(idata)
   22602      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22603      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22604      591798 :          pack_tmp = ISHFT(pack_tmp, -9)
   22605      591798 :          idata = idata + 1
   22606      591798 :          data_tmp = full_data(idata)
   22607      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22608      591798 :          data_tmp = IAND(data_tmp, mask_left(9))
   22609      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22610      591798 :          ipack = ipack + 1
   22611      591798 :          packed_data(ipack) = pack_tmp
   22612      591798 :          data_tmp = full_data(idata)
   22613      591798 :          pack_tmp = ISHFT(data_tmp, 42)
   22614      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22615      591798 :          idata = idata + 1
   22616      591798 :          data_tmp = full_data(idata)
   22617      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22618      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22619      591798 :          pack_tmp = ISHFT(pack_tmp, -11)
   22620      591798 :          idata = idata + 1
   22621      591798 :          data_tmp = full_data(idata)
   22622      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22623      591798 :          data_tmp = IAND(data_tmp, mask_left(11))
   22624      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22625      591798 :          ipack = ipack + 1
   22626      591798 :          packed_data(ipack) = pack_tmp
   22627      591798 :          data_tmp = full_data(idata)
   22628      591798 :          pack_tmp = ISHFT(data_tmp, 44)
   22629      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22630      591798 :          idata = idata + 1
   22631      591798 :          data_tmp = full_data(idata)
   22632      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22633      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22634      591798 :          pack_tmp = ISHFT(pack_tmp, -13)
   22635      591798 :          idata = idata + 1
   22636      591798 :          data_tmp = full_data(idata)
   22637      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22638      591798 :          data_tmp = IAND(data_tmp, mask_left(13))
   22639      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22640      591798 :          ipack = ipack + 1
   22641      591798 :          packed_data(ipack) = pack_tmp
   22642      591798 :          data_tmp = full_data(idata)
   22643      591798 :          pack_tmp = ISHFT(data_tmp, 46)
   22644      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22645      591798 :          idata = idata + 1
   22646      591798 :          data_tmp = full_data(idata)
   22647      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22648      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22649      591798 :          pack_tmp = ISHFT(pack_tmp, -15)
   22650      591798 :          idata = idata + 1
   22651      591798 :          data_tmp = full_data(idata)
   22652      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22653      591798 :          data_tmp = IAND(data_tmp, mask_left(15))
   22654      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22655      591798 :          ipack = ipack + 1
   22656      591798 :          packed_data(ipack) = pack_tmp
   22657      591798 :          data_tmp = full_data(idata)
   22658      591798 :          pack_tmp = ISHFT(data_tmp, 48)
   22659      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22660      591798 :          idata = idata + 1
   22661      591798 :          data_tmp = full_data(idata)
   22662      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22663      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22664      591798 :          pack_tmp = ISHFT(pack_tmp, -17)
   22665      591798 :          idata = idata + 1
   22666      591798 :          data_tmp = full_data(idata)
   22667      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22668      591798 :          data_tmp = IAND(data_tmp, mask_left(17))
   22669      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22670      591798 :          ipack = ipack + 1
   22671      591798 :          packed_data(ipack) = pack_tmp
   22672      591798 :          data_tmp = full_data(idata)
   22673      591798 :          pack_tmp = ISHFT(data_tmp, 50)
   22674      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22675      591798 :          idata = idata + 1
   22676      591798 :          data_tmp = full_data(idata)
   22677      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22678      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22679      591798 :          pack_tmp = ISHFT(pack_tmp, -19)
   22680      591798 :          idata = idata + 1
   22681      591798 :          data_tmp = full_data(idata)
   22682      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22683      591798 :          data_tmp = IAND(data_tmp, mask_left(19))
   22684      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22685      591798 :          ipack = ipack + 1
   22686      591798 :          packed_data(ipack) = pack_tmp
   22687      591798 :          data_tmp = full_data(idata)
   22688      591798 :          pack_tmp = ISHFT(data_tmp, 52)
   22689      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22690      591798 :          idata = idata + 1
   22691      591798 :          data_tmp = full_data(idata)
   22692      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22693      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22694      591798 :          pack_tmp = ISHFT(pack_tmp, -21)
   22695      591798 :          idata = idata + 1
   22696      591798 :          data_tmp = full_data(idata)
   22697      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22698      591798 :          data_tmp = IAND(data_tmp, mask_left(21))
   22699      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22700      591798 :          ipack = ipack + 1
   22701      591798 :          packed_data(ipack) = pack_tmp
   22702      591798 :          data_tmp = full_data(idata)
   22703      591798 :          pack_tmp = ISHFT(data_tmp, 54)
   22704      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22705      591798 :          idata = idata + 1
   22706      591798 :          data_tmp = full_data(idata)
   22707      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22708      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22709      591798 :          pack_tmp = ISHFT(pack_tmp, -23)
   22710      591798 :          idata = idata + 1
   22711      591798 :          data_tmp = full_data(idata)
   22712      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22713      591798 :          data_tmp = IAND(data_tmp, mask_left(23))
   22714      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22715      591798 :          ipack = ipack + 1
   22716      591798 :          packed_data(ipack) = pack_tmp
   22717      591798 :          data_tmp = full_data(idata)
   22718      591798 :          pack_tmp = ISHFT(data_tmp, 56)
   22719      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22720      591798 :          idata = idata + 1
   22721      591798 :          data_tmp = full_data(idata)
   22722      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22723      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22724      591798 :          pack_tmp = ISHFT(pack_tmp, -25)
   22725      591798 :          idata = idata + 1
   22726      591798 :          data_tmp = full_data(idata)
   22727      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22728      591798 :          data_tmp = IAND(data_tmp, mask_left(25))
   22729      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22730      591798 :          ipack = ipack + 1
   22731      591798 :          packed_data(ipack) = pack_tmp
   22732      591798 :          data_tmp = full_data(idata)
   22733      591798 :          pack_tmp = ISHFT(data_tmp, 58)
   22734      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22735      591798 :          idata = idata + 1
   22736      591798 :          data_tmp = full_data(idata)
   22737      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22738      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22739      591798 :          pack_tmp = ISHFT(pack_tmp, -27)
   22740      591798 :          idata = idata + 1
   22741      591798 :          data_tmp = full_data(idata)
   22742      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22743      591798 :          data_tmp = IAND(data_tmp, mask_left(27))
   22744      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22745      591798 :          ipack = ipack + 1
   22746      591798 :          packed_data(ipack) = pack_tmp
   22747      591798 :          data_tmp = full_data(idata)
   22748      591798 :          pack_tmp = ISHFT(data_tmp, 60)
   22749      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22750      591798 :          idata = idata + 1
   22751      591798 :          data_tmp = full_data(idata)
   22752      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22753      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22754      591798 :          pack_tmp = ISHFT(pack_tmp, -29)
   22755      591798 :          idata = idata + 1
   22756      591798 :          data_tmp = full_data(idata)
   22757      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22758      591798 :          data_tmp = IAND(data_tmp, mask_left(29))
   22759      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22760      591798 :          ipack = ipack + 1
   22761      591798 :          packed_data(ipack) = pack_tmp
   22762      591798 :          data_tmp = full_data(idata)
   22763      591798 :          pack_tmp = ISHFT(data_tmp, 62)
   22764      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22765      591798 :          idata = idata + 1
   22766      591798 :          data_tmp = full_data(idata)
   22767      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22768      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22769      591798 :          pack_tmp = ISHFT(pack_tmp, -31)
   22770      591798 :          idata = idata + 1
   22771      591798 :          data_tmp = full_data(idata)
   22772      591798 :          data_tmp = ISHFT(data_tmp, 33)
   22773      591798 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22774             :          pack_tmp = ISHFT(pack_tmp, 0)
   22775      591798 :          pack_tmp = ISHFT(pack_tmp, 0)
   22776      591798 :          ipack = ipack + 1
   22777      591958 :          packed_data(ipack) = pack_tmp
   22778             :       END DO
   22779       43662 :       IF (Ndata_rep < Ndata) THEN
   22780       12564 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22781             :       END IF
   22782       43662 :    END SUBROUTINE ints2bits_31
   22783             : 
   22784             : ! **************************************************************************************************
   22785             : !> \brief ...
   22786             : !> \param Ndata ...
   22787             : !> \param packed_data ...
   22788             : !> \param full_data ...
   22789             : ! **************************************************************************************************
   22790      273627 :    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      273627 :       ipack = 0
   22801      273627 :       idata = 0
   22802      273627 :       pack_tmp = 0
   22803      273627 :       Ndata_rep = (Ndata/64)*64
   22804      273627 :       DO kdata = 1, Ndata_rep, 64
   22805     3419385 :          idata = idata + 1
   22806     3419385 :          data_tmp = ISHFT(pack_tmp, 31)
   22807     3419385 :          ipack = ipack + 1
   22808     3419385 :          pack_tmp = packed_data(ipack)
   22809     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   22810     3419385 :          pack_tmp = ISHFT(pack_tmp, -31)
   22811     3419385 :          idata = idata + 1
   22812     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22813     3419385 :          full_data(idata) = data_tmp
   22814     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22815     3419385 :          idata = idata + 1
   22816     3419385 :          data_tmp = ISHFT(pack_tmp, 29)
   22817     3419385 :          ipack = ipack + 1
   22818     3419385 :          pack_tmp = packed_data(ipack)
   22819     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   22820     3419385 :          pack_tmp = ISHFT(pack_tmp, -29)
   22821     3419385 :          idata = idata + 1
   22822     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22823     3419385 :          full_data(idata) = data_tmp
   22824     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22825     3419385 :          idata = idata + 1
   22826     3419385 :          data_tmp = ISHFT(pack_tmp, 27)
   22827     3419385 :          ipack = ipack + 1
   22828     3419385 :          pack_tmp = packed_data(ipack)
   22829     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   22830     3419385 :          pack_tmp = ISHFT(pack_tmp, -27)
   22831     3419385 :          idata = idata + 1
   22832     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22833     3419385 :          full_data(idata) = data_tmp
   22834     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22835     3419385 :          idata = idata + 1
   22836     3419385 :          data_tmp = ISHFT(pack_tmp, 25)
   22837     3419385 :          ipack = ipack + 1
   22838     3419385 :          pack_tmp = packed_data(ipack)
   22839     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   22840     3419385 :          pack_tmp = ISHFT(pack_tmp, -25)
   22841     3419385 :          idata = idata + 1
   22842     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22843     3419385 :          full_data(idata) = data_tmp
   22844     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22845     3419385 :          idata = idata + 1
   22846     3419385 :          data_tmp = ISHFT(pack_tmp, 23)
   22847     3419385 :          ipack = ipack + 1
   22848     3419385 :          pack_tmp = packed_data(ipack)
   22849     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   22850     3419385 :          pack_tmp = ISHFT(pack_tmp, -23)
   22851     3419385 :          idata = idata + 1
   22852     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22853     3419385 :          full_data(idata) = data_tmp
   22854     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22855     3419385 :          idata = idata + 1
   22856     3419385 :          data_tmp = ISHFT(pack_tmp, 21)
   22857     3419385 :          ipack = ipack + 1
   22858     3419385 :          pack_tmp = packed_data(ipack)
   22859     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   22860     3419385 :          pack_tmp = ISHFT(pack_tmp, -21)
   22861     3419385 :          idata = idata + 1
   22862     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22863     3419385 :          full_data(idata) = data_tmp
   22864     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22865     3419385 :          idata = idata + 1
   22866     3419385 :          data_tmp = ISHFT(pack_tmp, 19)
   22867     3419385 :          ipack = ipack + 1
   22868     3419385 :          pack_tmp = packed_data(ipack)
   22869     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   22870     3419385 :          pack_tmp = ISHFT(pack_tmp, -19)
   22871     3419385 :          idata = idata + 1
   22872     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22873     3419385 :          full_data(idata) = data_tmp
   22874     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22875     3419385 :          idata = idata + 1
   22876     3419385 :          data_tmp = ISHFT(pack_tmp, 17)
   22877     3419385 :          ipack = ipack + 1
   22878     3419385 :          pack_tmp = packed_data(ipack)
   22879     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   22880     3419385 :          pack_tmp = ISHFT(pack_tmp, -17)
   22881     3419385 :          idata = idata + 1
   22882     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22883     3419385 :          full_data(idata) = data_tmp
   22884     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22885     3419385 :          idata = idata + 1
   22886     3419385 :          data_tmp = ISHFT(pack_tmp, 15)
   22887     3419385 :          ipack = ipack + 1
   22888     3419385 :          pack_tmp = packed_data(ipack)
   22889     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   22890     3419385 :          pack_tmp = ISHFT(pack_tmp, -15)
   22891     3419385 :          idata = idata + 1
   22892     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22893     3419385 :          full_data(idata) = data_tmp
   22894     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22895     3419385 :          idata = idata + 1
   22896     3419385 :          data_tmp = ISHFT(pack_tmp, 13)
   22897     3419385 :          ipack = ipack + 1
   22898     3419385 :          pack_tmp = packed_data(ipack)
   22899     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   22900     3419385 :          pack_tmp = ISHFT(pack_tmp, -13)
   22901     3419385 :          idata = idata + 1
   22902     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22903     3419385 :          full_data(idata) = data_tmp
   22904     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22905     3419385 :          idata = idata + 1
   22906     3419385 :          data_tmp = ISHFT(pack_tmp, 11)
   22907     3419385 :          ipack = ipack + 1
   22908     3419385 :          pack_tmp = packed_data(ipack)
   22909     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   22910     3419385 :          pack_tmp = ISHFT(pack_tmp, -11)
   22911     3419385 :          idata = idata + 1
   22912     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22913     3419385 :          full_data(idata) = data_tmp
   22914     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22915     3419385 :          idata = idata + 1
   22916     3419385 :          data_tmp = ISHFT(pack_tmp, 9)
   22917     3419385 :          ipack = ipack + 1
   22918     3419385 :          pack_tmp = packed_data(ipack)
   22919     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   22920     3419385 :          pack_tmp = ISHFT(pack_tmp, -9)
   22921     3419385 :          idata = idata + 1
   22922     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22923     3419385 :          full_data(idata) = data_tmp
   22924     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22925     3419385 :          idata = idata + 1
   22926     3419385 :          data_tmp = ISHFT(pack_tmp, 7)
   22927     3419385 :          ipack = ipack + 1
   22928     3419385 :          pack_tmp = packed_data(ipack)
   22929     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   22930     3419385 :          pack_tmp = ISHFT(pack_tmp, -7)
   22931     3419385 :          idata = idata + 1
   22932     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22933     3419385 :          full_data(idata) = data_tmp
   22934     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22935     3419385 :          idata = idata + 1
   22936     3419385 :          data_tmp = ISHFT(pack_tmp, 5)
   22937     3419385 :          ipack = ipack + 1
   22938     3419385 :          pack_tmp = packed_data(ipack)
   22939     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   22940     3419385 :          pack_tmp = ISHFT(pack_tmp, -5)
   22941     3419385 :          idata = idata + 1
   22942     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22943     3419385 :          full_data(idata) = data_tmp
   22944     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22945     3419385 :          idata = idata + 1
   22946     3419385 :          data_tmp = ISHFT(pack_tmp, 3)
   22947     3419385 :          ipack = ipack + 1
   22948     3419385 :          pack_tmp = packed_data(ipack)
   22949     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   22950     3419385 :          pack_tmp = ISHFT(pack_tmp, -3)
   22951     3419385 :          idata = idata + 1
   22952     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22953     3419385 :          full_data(idata) = data_tmp
   22954     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22955     3419385 :          idata = idata + 1
   22956     3419385 :          data_tmp = ISHFT(pack_tmp, 1)
   22957     3419385 :          ipack = ipack + 1
   22958     3419385 :          pack_tmp = packed_data(ipack)
   22959     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   22960     3419385 :          pack_tmp = ISHFT(pack_tmp, -1)
   22961     3419385 :          idata = idata + 1
   22962     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22963     3419385 :          full_data(idata) = data_tmp
   22964     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22965     3419385 :          idata = idata + 1
   22966     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22967     3419385 :          full_data(idata) = data_tmp
   22968     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22969     3419385 :          idata = idata + 1
   22970     3419385 :          data_tmp = ISHFT(pack_tmp, 30)
   22971     3419385 :          ipack = ipack + 1
   22972     3419385 :          pack_tmp = packed_data(ipack)
   22973     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22974     3419385 :          pack_tmp = ISHFT(pack_tmp, -30)
   22975     3419385 :          idata = idata + 1
   22976     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22977     3419385 :          full_data(idata) = data_tmp
   22978     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22979     3419385 :          idata = idata + 1
   22980     3419385 :          data_tmp = ISHFT(pack_tmp, 28)
   22981     3419385 :          ipack = ipack + 1
   22982     3419385 :          pack_tmp = packed_data(ipack)
   22983     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22984     3419385 :          pack_tmp = ISHFT(pack_tmp, -28)
   22985     3419385 :          idata = idata + 1
   22986     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22987     3419385 :          full_data(idata) = data_tmp
   22988     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22989     3419385 :          idata = idata + 1
   22990     3419385 :          data_tmp = ISHFT(pack_tmp, 26)
   22991     3419385 :          ipack = ipack + 1
   22992     3419385 :          pack_tmp = packed_data(ipack)
   22993     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22994     3419385 :          pack_tmp = ISHFT(pack_tmp, -26)
   22995     3419385 :          idata = idata + 1
   22996     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22997     3419385 :          full_data(idata) = data_tmp
   22998     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22999     3419385 :          idata = idata + 1
   23000     3419385 :          data_tmp = ISHFT(pack_tmp, 24)
   23001     3419385 :          ipack = ipack + 1
   23002     3419385 :          pack_tmp = packed_data(ipack)
   23003     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   23004     3419385 :          pack_tmp = ISHFT(pack_tmp, -24)
   23005     3419385 :          idata = idata + 1
   23006     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23007     3419385 :          full_data(idata) = data_tmp
   23008     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23009     3419385 :          idata = idata + 1
   23010     3419385 :          data_tmp = ISHFT(pack_tmp, 22)
   23011     3419385 :          ipack = ipack + 1
   23012     3419385 :          pack_tmp = packed_data(ipack)
   23013     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   23014     3419385 :          pack_tmp = ISHFT(pack_tmp, -22)
   23015     3419385 :          idata = idata + 1
   23016     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23017     3419385 :          full_data(idata) = data_tmp
   23018     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23019     3419385 :          idata = idata + 1
   23020     3419385 :          data_tmp = ISHFT(pack_tmp, 20)
   23021     3419385 :          ipack = ipack + 1
   23022     3419385 :          pack_tmp = packed_data(ipack)
   23023     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   23024     3419385 :          pack_tmp = ISHFT(pack_tmp, -20)
   23025     3419385 :          idata = idata + 1
   23026     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23027     3419385 :          full_data(idata) = data_tmp
   23028     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23029     3419385 :          idata = idata + 1
   23030     3419385 :          data_tmp = ISHFT(pack_tmp, 18)
   23031     3419385 :          ipack = ipack + 1
   23032     3419385 :          pack_tmp = packed_data(ipack)
   23033     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   23034     3419385 :          pack_tmp = ISHFT(pack_tmp, -18)
   23035     3419385 :          idata = idata + 1
   23036     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23037     3419385 :          full_data(idata) = data_tmp
   23038     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23039     3419385 :          idata = idata + 1
   23040     3419385 :          data_tmp = ISHFT(pack_tmp, 16)
   23041     3419385 :          ipack = ipack + 1
   23042     3419385 :          pack_tmp = packed_data(ipack)
   23043     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   23044     3419385 :          pack_tmp = ISHFT(pack_tmp, -16)
   23045     3419385 :          idata = idata + 1
   23046     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23047     3419385 :          full_data(idata) = data_tmp
   23048     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23049     3419385 :          idata = idata + 1
   23050     3419385 :          data_tmp = ISHFT(pack_tmp, 14)
   23051     3419385 :          ipack = ipack + 1
   23052     3419385 :          pack_tmp = packed_data(ipack)
   23053     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   23054     3419385 :          pack_tmp = ISHFT(pack_tmp, -14)
   23055     3419385 :          idata = idata + 1
   23056     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23057     3419385 :          full_data(idata) = data_tmp
   23058     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23059     3419385 :          idata = idata + 1
   23060     3419385 :          data_tmp = ISHFT(pack_tmp, 12)
   23061     3419385 :          ipack = ipack + 1
   23062     3419385 :          pack_tmp = packed_data(ipack)
   23063     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   23064     3419385 :          pack_tmp = ISHFT(pack_tmp, -12)
   23065     3419385 :          idata = idata + 1
   23066     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23067     3419385 :          full_data(idata) = data_tmp
   23068     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23069     3419385 :          idata = idata + 1
   23070     3419385 :          data_tmp = ISHFT(pack_tmp, 10)
   23071     3419385 :          ipack = ipack + 1
   23072     3419385 :          pack_tmp = packed_data(ipack)
   23073     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   23074     3419385 :          pack_tmp = ISHFT(pack_tmp, -10)
   23075     3419385 :          idata = idata + 1
   23076     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23077     3419385 :          full_data(idata) = data_tmp
   23078     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23079     3419385 :          idata = idata + 1
   23080     3419385 :          data_tmp = ISHFT(pack_tmp, 8)
   23081     3419385 :          ipack = ipack + 1
   23082     3419385 :          pack_tmp = packed_data(ipack)
   23083     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   23084     3419385 :          pack_tmp = ISHFT(pack_tmp, -8)
   23085     3419385 :          idata = idata + 1
   23086     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23087     3419385 :          full_data(idata) = data_tmp
   23088     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23089     3419385 :          idata = idata + 1
   23090     3419385 :          data_tmp = ISHFT(pack_tmp, 6)
   23091     3419385 :          ipack = ipack + 1
   23092     3419385 :          pack_tmp = packed_data(ipack)
   23093     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   23094     3419385 :          pack_tmp = ISHFT(pack_tmp, -6)
   23095     3419385 :          idata = idata + 1
   23096     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23097     3419385 :          full_data(idata) = data_tmp
   23098     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23099     3419385 :          idata = idata + 1
   23100     3419385 :          data_tmp = ISHFT(pack_tmp, 4)
   23101     3419385 :          ipack = ipack + 1
   23102     3419385 :          pack_tmp = packed_data(ipack)
   23103     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   23104     3419385 :          pack_tmp = ISHFT(pack_tmp, -4)
   23105     3419385 :          idata = idata + 1
   23106     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23107     3419385 :          full_data(idata) = data_tmp
   23108     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23109     3419385 :          idata = idata + 1
   23110     3419385 :          data_tmp = ISHFT(pack_tmp, 2)
   23111     3419385 :          ipack = ipack + 1
   23112     3419385 :          pack_tmp = packed_data(ipack)
   23113     3419385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   23114     3419385 :          pack_tmp = ISHFT(pack_tmp, -2)
   23115     3419385 :          idata = idata + 1
   23116     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23117     3419385 :          full_data(idata) = data_tmp
   23118     3419385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23119     3419385 :          idata = idata + 1
   23120     3419385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23121     3419385 :          full_data(idata) = data_tmp
   23122     3421515 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23123             :       END DO
   23124      273627 :       IF (Ndata_rep < Ndata) THEN
   23125      112782 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23126             :       END IF
   23127      273627 :    END SUBROUTINE bits2ints_31
   23128             : 
   23129             : ! **************************************************************************************************
   23130             : !> \brief ...
   23131             : !> \param Ndata ...
   23132             : !> \param packed_data ...
   23133             : !> \param full_data ...
   23134             : ! **************************************************************************************************
   23135       52054 :    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       52054 :       idata = 0
   23146       52054 :       ipack = 0
   23147       52054 :       Ndata_rep = (Ndata/64)*64
   23148       52054 :       DO kdata = 1, Ndata_rep, 64
   23149      675680 :          pack_tmp = 0
   23150      675680 :          idata = idata + 1
   23151      675680 :          data_tmp = full_data(idata)
   23152      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23153      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23154      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23155      675680 :          idata = idata + 1
   23156      675680 :          data_tmp = full_data(idata)
   23157      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23158      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23159      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23160      675680 :          idata = idata + 1
   23161      675680 :          data_tmp = full_data(idata)
   23162             :          data_tmp = ISHFT(data_tmp, 32)
   23163      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23164      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23165      675680 :          ipack = ipack + 1
   23166      675680 :          packed_data(ipack) = pack_tmp
   23167      675680 :          data_tmp = full_data(idata)
   23168      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23169      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23170      675680 :          idata = idata + 1
   23171      675680 :          data_tmp = full_data(idata)
   23172      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23173      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23174      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23175      675680 :          idata = idata + 1
   23176      675680 :          data_tmp = full_data(idata)
   23177             :          data_tmp = ISHFT(data_tmp, 32)
   23178      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23179      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23180      675680 :          ipack = ipack + 1
   23181      675680 :          packed_data(ipack) = pack_tmp
   23182      675680 :          data_tmp = full_data(idata)
   23183      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23184      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23185      675680 :          idata = idata + 1
   23186      675680 :          data_tmp = full_data(idata)
   23187      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23188      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23189      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23190      675680 :          idata = idata + 1
   23191      675680 :          data_tmp = full_data(idata)
   23192             :          data_tmp = ISHFT(data_tmp, 32)
   23193      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23194      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23195      675680 :          ipack = ipack + 1
   23196      675680 :          packed_data(ipack) = pack_tmp
   23197      675680 :          data_tmp = full_data(idata)
   23198      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23199      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23200      675680 :          idata = idata + 1
   23201      675680 :          data_tmp = full_data(idata)
   23202      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23203      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23204      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23205      675680 :          idata = idata + 1
   23206      675680 :          data_tmp = full_data(idata)
   23207             :          data_tmp = ISHFT(data_tmp, 32)
   23208      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23209      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23210      675680 :          ipack = ipack + 1
   23211      675680 :          packed_data(ipack) = pack_tmp
   23212      675680 :          data_tmp = full_data(idata)
   23213      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23214      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23215      675680 :          idata = idata + 1
   23216      675680 :          data_tmp = full_data(idata)
   23217      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23218      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23219      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23220      675680 :          idata = idata + 1
   23221      675680 :          data_tmp = full_data(idata)
   23222             :          data_tmp = ISHFT(data_tmp, 32)
   23223      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23224      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23225      675680 :          ipack = ipack + 1
   23226      675680 :          packed_data(ipack) = pack_tmp
   23227      675680 :          data_tmp = full_data(idata)
   23228      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23229      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23230      675680 :          idata = idata + 1
   23231      675680 :          data_tmp = full_data(idata)
   23232      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23233      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23234      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23235      675680 :          idata = idata + 1
   23236      675680 :          data_tmp = full_data(idata)
   23237             :          data_tmp = ISHFT(data_tmp, 32)
   23238      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23239      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23240      675680 :          ipack = ipack + 1
   23241      675680 :          packed_data(ipack) = pack_tmp
   23242      675680 :          data_tmp = full_data(idata)
   23243      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23244      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23245      675680 :          idata = idata + 1
   23246      675680 :          data_tmp = full_data(idata)
   23247      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23248      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23249      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23250      675680 :          idata = idata + 1
   23251      675680 :          data_tmp = full_data(idata)
   23252             :          data_tmp = ISHFT(data_tmp, 32)
   23253      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23254      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23255      675680 :          ipack = ipack + 1
   23256      675680 :          packed_data(ipack) = pack_tmp
   23257      675680 :          data_tmp = full_data(idata)
   23258      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23259      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23260      675680 :          idata = idata + 1
   23261      675680 :          data_tmp = full_data(idata)
   23262      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23263      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23264      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23265      675680 :          idata = idata + 1
   23266      675680 :          data_tmp = full_data(idata)
   23267             :          data_tmp = ISHFT(data_tmp, 32)
   23268      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23269      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23270      675680 :          ipack = ipack + 1
   23271      675680 :          packed_data(ipack) = pack_tmp
   23272      675680 :          data_tmp = full_data(idata)
   23273      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23274      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23275      675680 :          idata = idata + 1
   23276      675680 :          data_tmp = full_data(idata)
   23277      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23278      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23279      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23280      675680 :          idata = idata + 1
   23281      675680 :          data_tmp = full_data(idata)
   23282             :          data_tmp = ISHFT(data_tmp, 32)
   23283      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23284      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23285      675680 :          ipack = ipack + 1
   23286      675680 :          packed_data(ipack) = pack_tmp
   23287      675680 :          data_tmp = full_data(idata)
   23288      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23289      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23290      675680 :          idata = idata + 1
   23291      675680 :          data_tmp = full_data(idata)
   23292      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23293      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23294      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23295      675680 :          idata = idata + 1
   23296      675680 :          data_tmp = full_data(idata)
   23297             :          data_tmp = ISHFT(data_tmp, 32)
   23298      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23299      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23300      675680 :          ipack = ipack + 1
   23301      675680 :          packed_data(ipack) = pack_tmp
   23302      675680 :          data_tmp = full_data(idata)
   23303      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23304      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23305      675680 :          idata = idata + 1
   23306      675680 :          data_tmp = full_data(idata)
   23307      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23308      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23309      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23310      675680 :          idata = idata + 1
   23311      675680 :          data_tmp = full_data(idata)
   23312             :          data_tmp = ISHFT(data_tmp, 32)
   23313      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23314      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23315      675680 :          ipack = ipack + 1
   23316      675680 :          packed_data(ipack) = pack_tmp
   23317      675680 :          data_tmp = full_data(idata)
   23318      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23319      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23320      675680 :          idata = idata + 1
   23321      675680 :          data_tmp = full_data(idata)
   23322      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23323      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23324      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23325      675680 :          idata = idata + 1
   23326      675680 :          data_tmp = full_data(idata)
   23327             :          data_tmp = ISHFT(data_tmp, 32)
   23328      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23329      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23330      675680 :          ipack = ipack + 1
   23331      675680 :          packed_data(ipack) = pack_tmp
   23332      675680 :          data_tmp = full_data(idata)
   23333      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23334      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23335      675680 :          idata = idata + 1
   23336      675680 :          data_tmp = full_data(idata)
   23337      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23338      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23339      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23340      675680 :          idata = idata + 1
   23341      675680 :          data_tmp = full_data(idata)
   23342             :          data_tmp = ISHFT(data_tmp, 32)
   23343      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23344      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23345      675680 :          ipack = ipack + 1
   23346      675680 :          packed_data(ipack) = pack_tmp
   23347      675680 :          data_tmp = full_data(idata)
   23348      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23349      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23350      675680 :          idata = idata + 1
   23351      675680 :          data_tmp = full_data(idata)
   23352      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23353      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23354      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23355      675680 :          idata = idata + 1
   23356      675680 :          data_tmp = full_data(idata)
   23357             :          data_tmp = ISHFT(data_tmp, 32)
   23358      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23359      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23360      675680 :          ipack = ipack + 1
   23361      675680 :          packed_data(ipack) = pack_tmp
   23362      675680 :          data_tmp = full_data(idata)
   23363      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23364      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23365      675680 :          idata = idata + 1
   23366      675680 :          data_tmp = full_data(idata)
   23367      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23368      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23369      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23370      675680 :          idata = idata + 1
   23371      675680 :          data_tmp = full_data(idata)
   23372             :          data_tmp = ISHFT(data_tmp, 32)
   23373      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23374      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23375      675680 :          ipack = ipack + 1
   23376      675680 :          packed_data(ipack) = pack_tmp
   23377      675680 :          data_tmp = full_data(idata)
   23378      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23379      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23380      675680 :          idata = idata + 1
   23381      675680 :          data_tmp = full_data(idata)
   23382      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23383      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23384      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23385      675680 :          idata = idata + 1
   23386      675680 :          data_tmp = full_data(idata)
   23387             :          data_tmp = ISHFT(data_tmp, 32)
   23388      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23389      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23390      675680 :          ipack = ipack + 1
   23391      675680 :          packed_data(ipack) = pack_tmp
   23392      675680 :          data_tmp = full_data(idata)
   23393      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23394      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23395      675680 :          idata = idata + 1
   23396      675680 :          data_tmp = full_data(idata)
   23397      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23398      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23399      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23400      675680 :          idata = idata + 1
   23401      675680 :          data_tmp = full_data(idata)
   23402             :          data_tmp = ISHFT(data_tmp, 32)
   23403      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23404      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23405      675680 :          ipack = ipack + 1
   23406      675680 :          packed_data(ipack) = pack_tmp
   23407      675680 :          data_tmp = full_data(idata)
   23408      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23409      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23410      675680 :          idata = idata + 1
   23411      675680 :          data_tmp = full_data(idata)
   23412      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23413      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23414      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23415      675680 :          idata = idata + 1
   23416      675680 :          data_tmp = full_data(idata)
   23417             :          data_tmp = ISHFT(data_tmp, 32)
   23418      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23419      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23420      675680 :          ipack = ipack + 1
   23421      675680 :          packed_data(ipack) = pack_tmp
   23422      675680 :          data_tmp = full_data(idata)
   23423      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23424      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23425      675680 :          idata = idata + 1
   23426      675680 :          data_tmp = full_data(idata)
   23427      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23428      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23429      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23430      675680 :          idata = idata + 1
   23431      675680 :          data_tmp = full_data(idata)
   23432             :          data_tmp = ISHFT(data_tmp, 32)
   23433      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23434      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23435      675680 :          ipack = ipack + 1
   23436      675680 :          packed_data(ipack) = pack_tmp
   23437      675680 :          data_tmp = full_data(idata)
   23438      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23439      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23440      675680 :          idata = idata + 1
   23441      675680 :          data_tmp = full_data(idata)
   23442      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23443      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23444      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23445      675680 :          idata = idata + 1
   23446      675680 :          data_tmp = full_data(idata)
   23447             :          data_tmp = ISHFT(data_tmp, 32)
   23448      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23449      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23450      675680 :          ipack = ipack + 1
   23451      675680 :          packed_data(ipack) = pack_tmp
   23452      675680 :          data_tmp = full_data(idata)
   23453      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23454      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23455      675680 :          idata = idata + 1
   23456      675680 :          data_tmp = full_data(idata)
   23457      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23458      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23459      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23460      675680 :          idata = idata + 1
   23461      675680 :          data_tmp = full_data(idata)
   23462             :          data_tmp = ISHFT(data_tmp, 32)
   23463      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23464      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23465      675680 :          ipack = ipack + 1
   23466      675680 :          packed_data(ipack) = pack_tmp
   23467      675680 :          data_tmp = full_data(idata)
   23468      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23469      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23470      675680 :          idata = idata + 1
   23471      675680 :          data_tmp = full_data(idata)
   23472      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23473      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23474      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23475      675680 :          idata = idata + 1
   23476      675680 :          data_tmp = full_data(idata)
   23477             :          data_tmp = ISHFT(data_tmp, 32)
   23478      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23479      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23480      675680 :          ipack = ipack + 1
   23481      675680 :          packed_data(ipack) = pack_tmp
   23482      675680 :          data_tmp = full_data(idata)
   23483      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23484      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23485      675680 :          idata = idata + 1
   23486      675680 :          data_tmp = full_data(idata)
   23487      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23488      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23489      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23490      675680 :          idata = idata + 1
   23491      675680 :          data_tmp = full_data(idata)
   23492             :          data_tmp = ISHFT(data_tmp, 32)
   23493      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23494      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23495      675680 :          ipack = ipack + 1
   23496      675680 :          packed_data(ipack) = pack_tmp
   23497      675680 :          data_tmp = full_data(idata)
   23498      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23499      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23500      675680 :          idata = idata + 1
   23501      675680 :          data_tmp = full_data(idata)
   23502      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23503      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23504      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23505      675680 :          idata = idata + 1
   23506      675680 :          data_tmp = full_data(idata)
   23507             :          data_tmp = ISHFT(data_tmp, 32)
   23508      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23509      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23510      675680 :          ipack = ipack + 1
   23511      675680 :          packed_data(ipack) = pack_tmp
   23512      675680 :          data_tmp = full_data(idata)
   23513      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23514      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23515      675680 :          idata = idata + 1
   23516      675680 :          data_tmp = full_data(idata)
   23517      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23518      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23519      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23520      675680 :          idata = idata + 1
   23521      675680 :          data_tmp = full_data(idata)
   23522             :          data_tmp = ISHFT(data_tmp, 32)
   23523      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23524      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23525      675680 :          ipack = ipack + 1
   23526      675680 :          packed_data(ipack) = pack_tmp
   23527      675680 :          data_tmp = full_data(idata)
   23528      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23529      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23530      675680 :          idata = idata + 1
   23531      675680 :          data_tmp = full_data(idata)
   23532      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23533      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23534      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23535      675680 :          idata = idata + 1
   23536      675680 :          data_tmp = full_data(idata)
   23537             :          data_tmp = ISHFT(data_tmp, 32)
   23538      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23539      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23540      675680 :          ipack = ipack + 1
   23541      675680 :          packed_data(ipack) = pack_tmp
   23542      675680 :          data_tmp = full_data(idata)
   23543      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23544      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23545      675680 :          idata = idata + 1
   23546      675680 :          data_tmp = full_data(idata)
   23547      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23548      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23549      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23550      675680 :          idata = idata + 1
   23551      675680 :          data_tmp = full_data(idata)
   23552             :          data_tmp = ISHFT(data_tmp, 32)
   23553      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23554      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23555      675680 :          ipack = ipack + 1
   23556      675680 :          packed_data(ipack) = pack_tmp
   23557      675680 :          data_tmp = full_data(idata)
   23558      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23559      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23560      675680 :          idata = idata + 1
   23561      675680 :          data_tmp = full_data(idata)
   23562      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23563      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23564      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23565      675680 :          idata = idata + 1
   23566      675680 :          data_tmp = full_data(idata)
   23567             :          data_tmp = ISHFT(data_tmp, 32)
   23568      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23569      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23570      675680 :          ipack = ipack + 1
   23571      675680 :          packed_data(ipack) = pack_tmp
   23572      675680 :          data_tmp = full_data(idata)
   23573      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23574      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23575      675680 :          idata = idata + 1
   23576      675680 :          data_tmp = full_data(idata)
   23577      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23578      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23579      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23580      675680 :          idata = idata + 1
   23581      675680 :          data_tmp = full_data(idata)
   23582             :          data_tmp = ISHFT(data_tmp, 32)
   23583      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23584      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23585      675680 :          ipack = ipack + 1
   23586      675680 :          packed_data(ipack) = pack_tmp
   23587      675680 :          data_tmp = full_data(idata)
   23588      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23589      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23590      675680 :          idata = idata + 1
   23591      675680 :          data_tmp = full_data(idata)
   23592      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23593      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23594      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23595      675680 :          idata = idata + 1
   23596      675680 :          data_tmp = full_data(idata)
   23597             :          data_tmp = ISHFT(data_tmp, 32)
   23598      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23599      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23600      675680 :          ipack = ipack + 1
   23601      675680 :          packed_data(ipack) = pack_tmp
   23602      675680 :          data_tmp = full_data(idata)
   23603      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23604      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23605      675680 :          idata = idata + 1
   23606      675680 :          data_tmp = full_data(idata)
   23607      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23608      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23609      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23610      675680 :          idata = idata + 1
   23611      675680 :          data_tmp = full_data(idata)
   23612             :          data_tmp = ISHFT(data_tmp, 32)
   23613      675680 :          data_tmp = IAND(data_tmp, mask_left(0))
   23614      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23615      675680 :          ipack = ipack + 1
   23616      675680 :          packed_data(ipack) = pack_tmp
   23617      675680 :          data_tmp = full_data(idata)
   23618      675680 :          pack_tmp = ISHFT(data_tmp, 32)
   23619      675680 :          pack_tmp = ISHFT(pack_tmp, -32)
   23620      675680 :          idata = idata + 1
   23621      675680 :          data_tmp = full_data(idata)
   23622      675680 :          data_tmp = ISHFT(data_tmp, 32)
   23623      675680 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23624             :          pack_tmp = ISHFT(pack_tmp, 0)
   23625      675680 :          pack_tmp = ISHFT(pack_tmp, 0)
   23626      675680 :          ipack = ipack + 1
   23627      685504 :          packed_data(ipack) = pack_tmp
   23628             :       END DO
   23629       52054 :       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       52054 :    END SUBROUTINE ints2bits_32
   23633             : 
   23634             : ! **************************************************************************************************
   23635             : !> \brief ...
   23636             : !> \param Ndata ...
   23637             : !> \param packed_data ...
   23638             : !> \param full_data ...
   23639             : ! **************************************************************************************************
   23640      351331 :    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      351331 :       ipack = 0
   23651      351331 :       idata = 0
   23652      351331 :       pack_tmp = 0
   23653      351331 :       Ndata_rep = (Ndata/64)*64
   23654      351331 :       DO kdata = 1, Ndata_rep, 64
   23655     4204912 :          idata = idata + 1
   23656     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23657     4204912 :          ipack = ipack + 1
   23658     4204912 :          pack_tmp = packed_data(ipack)
   23659     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23660     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23661     4204912 :          idata = idata + 1
   23662     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23663     4204912 :          full_data(idata) = data_tmp
   23664     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23665     4204912 :          idata = idata + 1
   23666     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23667     4204912 :          ipack = ipack + 1
   23668     4204912 :          pack_tmp = packed_data(ipack)
   23669     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23670     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23671     4204912 :          idata = idata + 1
   23672     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23673     4204912 :          full_data(idata) = data_tmp
   23674     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23675     4204912 :          idata = idata + 1
   23676     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23677     4204912 :          ipack = ipack + 1
   23678     4204912 :          pack_tmp = packed_data(ipack)
   23679     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23680     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23681     4204912 :          idata = idata + 1
   23682     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23683     4204912 :          full_data(idata) = data_tmp
   23684     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23685     4204912 :          idata = idata + 1
   23686     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23687     4204912 :          ipack = ipack + 1
   23688     4204912 :          pack_tmp = packed_data(ipack)
   23689     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23690     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23691     4204912 :          idata = idata + 1
   23692     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23693     4204912 :          full_data(idata) = data_tmp
   23694     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23695     4204912 :          idata = idata + 1
   23696     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23697     4204912 :          ipack = ipack + 1
   23698     4204912 :          pack_tmp = packed_data(ipack)
   23699     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23700     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23701     4204912 :          idata = idata + 1
   23702     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23703     4204912 :          full_data(idata) = data_tmp
   23704     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23705     4204912 :          idata = idata + 1
   23706     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23707     4204912 :          ipack = ipack + 1
   23708     4204912 :          pack_tmp = packed_data(ipack)
   23709     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23710     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23711     4204912 :          idata = idata + 1
   23712     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23713     4204912 :          full_data(idata) = data_tmp
   23714     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23715     4204912 :          idata = idata + 1
   23716     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23717     4204912 :          ipack = ipack + 1
   23718     4204912 :          pack_tmp = packed_data(ipack)
   23719     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23720     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23721     4204912 :          idata = idata + 1
   23722     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23723     4204912 :          full_data(idata) = data_tmp
   23724     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23725     4204912 :          idata = idata + 1
   23726     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23727     4204912 :          ipack = ipack + 1
   23728     4204912 :          pack_tmp = packed_data(ipack)
   23729     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23730     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23731     4204912 :          idata = idata + 1
   23732     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23733     4204912 :          full_data(idata) = data_tmp
   23734     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23735     4204912 :          idata = idata + 1
   23736     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23737     4204912 :          ipack = ipack + 1
   23738     4204912 :          pack_tmp = packed_data(ipack)
   23739     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23740     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23741     4204912 :          idata = idata + 1
   23742     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23743     4204912 :          full_data(idata) = data_tmp
   23744     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23745     4204912 :          idata = idata + 1
   23746     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23747     4204912 :          ipack = ipack + 1
   23748     4204912 :          pack_tmp = packed_data(ipack)
   23749     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23750     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23751     4204912 :          idata = idata + 1
   23752     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23753     4204912 :          full_data(idata) = data_tmp
   23754     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23755     4204912 :          idata = idata + 1
   23756     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23757     4204912 :          ipack = ipack + 1
   23758     4204912 :          pack_tmp = packed_data(ipack)
   23759     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23760     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23761     4204912 :          idata = idata + 1
   23762     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23763     4204912 :          full_data(idata) = data_tmp
   23764     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23765     4204912 :          idata = idata + 1
   23766     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23767     4204912 :          ipack = ipack + 1
   23768     4204912 :          pack_tmp = packed_data(ipack)
   23769     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23770     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23771     4204912 :          idata = idata + 1
   23772     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23773     4204912 :          full_data(idata) = data_tmp
   23774     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23775     4204912 :          idata = idata + 1
   23776     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23777     4204912 :          ipack = ipack + 1
   23778     4204912 :          pack_tmp = packed_data(ipack)
   23779     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23780     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23781     4204912 :          idata = idata + 1
   23782     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23783     4204912 :          full_data(idata) = data_tmp
   23784     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23785     4204912 :          idata = idata + 1
   23786     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23787     4204912 :          ipack = ipack + 1
   23788     4204912 :          pack_tmp = packed_data(ipack)
   23789     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23790     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23791     4204912 :          idata = idata + 1
   23792     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23793     4204912 :          full_data(idata) = data_tmp
   23794     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23795     4204912 :          idata = idata + 1
   23796     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23797     4204912 :          ipack = ipack + 1
   23798     4204912 :          pack_tmp = packed_data(ipack)
   23799     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23800     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23801     4204912 :          idata = idata + 1
   23802     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23803     4204912 :          full_data(idata) = data_tmp
   23804     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23805     4204912 :          idata = idata + 1
   23806     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23807     4204912 :          ipack = ipack + 1
   23808     4204912 :          pack_tmp = packed_data(ipack)
   23809     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23810     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23811     4204912 :          idata = idata + 1
   23812     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23813     4204912 :          full_data(idata) = data_tmp
   23814     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23815     4204912 :          idata = idata + 1
   23816     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23817     4204912 :          ipack = ipack + 1
   23818     4204912 :          pack_tmp = packed_data(ipack)
   23819     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23820     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23821     4204912 :          idata = idata + 1
   23822     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23823     4204912 :          full_data(idata) = data_tmp
   23824     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23825     4204912 :          idata = idata + 1
   23826     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23827     4204912 :          ipack = ipack + 1
   23828     4204912 :          pack_tmp = packed_data(ipack)
   23829     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23830     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23831     4204912 :          idata = idata + 1
   23832     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23833     4204912 :          full_data(idata) = data_tmp
   23834     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23835     4204912 :          idata = idata + 1
   23836     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23837     4204912 :          ipack = ipack + 1
   23838     4204912 :          pack_tmp = packed_data(ipack)
   23839     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23840     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23841     4204912 :          idata = idata + 1
   23842     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23843     4204912 :          full_data(idata) = data_tmp
   23844     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23845     4204912 :          idata = idata + 1
   23846     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23847     4204912 :          ipack = ipack + 1
   23848     4204912 :          pack_tmp = packed_data(ipack)
   23849     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23850     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23851     4204912 :          idata = idata + 1
   23852     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23853     4204912 :          full_data(idata) = data_tmp
   23854     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23855     4204912 :          idata = idata + 1
   23856     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23857     4204912 :          ipack = ipack + 1
   23858     4204912 :          pack_tmp = packed_data(ipack)
   23859     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23860     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23861     4204912 :          idata = idata + 1
   23862     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23863     4204912 :          full_data(idata) = data_tmp
   23864     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23865     4204912 :          idata = idata + 1
   23866     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23867     4204912 :          ipack = ipack + 1
   23868     4204912 :          pack_tmp = packed_data(ipack)
   23869     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23870     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23871     4204912 :          idata = idata + 1
   23872     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23873     4204912 :          full_data(idata) = data_tmp
   23874     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23875     4204912 :          idata = idata + 1
   23876     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23877     4204912 :          ipack = ipack + 1
   23878     4204912 :          pack_tmp = packed_data(ipack)
   23879     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23880     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23881     4204912 :          idata = idata + 1
   23882     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23883     4204912 :          full_data(idata) = data_tmp
   23884     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23885     4204912 :          idata = idata + 1
   23886     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23887     4204912 :          ipack = ipack + 1
   23888     4204912 :          pack_tmp = packed_data(ipack)
   23889     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23890     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23891     4204912 :          idata = idata + 1
   23892     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23893     4204912 :          full_data(idata) = data_tmp
   23894     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23895     4204912 :          idata = idata + 1
   23896     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23897     4204912 :          ipack = ipack + 1
   23898     4204912 :          pack_tmp = packed_data(ipack)
   23899     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23900     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23901     4204912 :          idata = idata + 1
   23902     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23903     4204912 :          full_data(idata) = data_tmp
   23904     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23905     4204912 :          idata = idata + 1
   23906     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23907     4204912 :          ipack = ipack + 1
   23908     4204912 :          pack_tmp = packed_data(ipack)
   23909     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23910     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23911     4204912 :          idata = idata + 1
   23912     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23913     4204912 :          full_data(idata) = data_tmp
   23914     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23915     4204912 :          idata = idata + 1
   23916     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23917     4204912 :          ipack = ipack + 1
   23918     4204912 :          pack_tmp = packed_data(ipack)
   23919     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23920     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23921     4204912 :          idata = idata + 1
   23922     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23923     4204912 :          full_data(idata) = data_tmp
   23924     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23925     4204912 :          idata = idata + 1
   23926     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23927     4204912 :          ipack = ipack + 1
   23928     4204912 :          pack_tmp = packed_data(ipack)
   23929     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23930     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23931     4204912 :          idata = idata + 1
   23932     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23933     4204912 :          full_data(idata) = data_tmp
   23934     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23935     4204912 :          idata = idata + 1
   23936     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23937     4204912 :          ipack = ipack + 1
   23938     4204912 :          pack_tmp = packed_data(ipack)
   23939     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23940     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23941     4204912 :          idata = idata + 1
   23942     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23943     4204912 :          full_data(idata) = data_tmp
   23944     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23945     4204912 :          idata = idata + 1
   23946     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23947     4204912 :          ipack = ipack + 1
   23948     4204912 :          pack_tmp = packed_data(ipack)
   23949     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23950     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23951     4204912 :          idata = idata + 1
   23952     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23953     4204912 :          full_data(idata) = data_tmp
   23954     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23955     4204912 :          idata = idata + 1
   23956     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23957     4204912 :          ipack = ipack + 1
   23958     4204912 :          pack_tmp = packed_data(ipack)
   23959     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23960     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23961     4204912 :          idata = idata + 1
   23962     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23963     4204912 :          full_data(idata) = data_tmp
   23964     4204912 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23965     4204912 :          idata = idata + 1
   23966     4204912 :          data_tmp = ISHFT(pack_tmp, 32)
   23967     4204912 :          ipack = ipack + 1
   23968     4204912 :          pack_tmp = packed_data(ipack)
   23969     4204912 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23970     4204912 :          pack_tmp = ISHFT(pack_tmp, -32)
   23971     4204912 :          idata = idata + 1
   23972     4204912 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23973     4204912 :          full_data(idata) = data_tmp
   23974     4293436 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23975             :       END DO
   23976      351331 :       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      351331 :    END SUBROUTINE bits2ints_32
   23980             : 
   23981             : ! **************************************************************************************************
   23982             : !> \brief ...
   23983             : !> \param Ndata ...
   23984             : !> \param packed_data ...
   23985             : !> \param full_data ...
   23986             : ! **************************************************************************************************
   23987       53528 :    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       53528 :       idata = 0
   23998       53528 :       ipack = 0
   23999       53528 :       Ndata_rep = (Ndata/64)*64
   24000       53528 :       DO kdata = 1, Ndata_rep, 64
   24001      678305 :          pack_tmp = 0
   24002      678305 :          idata = idata + 1
   24003      678305 :          data_tmp = full_data(idata)
   24004      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24005      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24006      678305 :          pack_tmp = ISHFT(pack_tmp, -31)
   24007      678305 :          idata = idata + 1
   24008      678305 :          data_tmp = full_data(idata)
   24009      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24010      678305 :          data_tmp = IAND(data_tmp, mask_left(31))
   24011      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24012      678305 :          ipack = ipack + 1
   24013      678305 :          packed_data(ipack) = pack_tmp
   24014      678305 :          data_tmp = full_data(idata)
   24015      678305 :          pack_tmp = ISHFT(data_tmp, 62)
   24016      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24017      678305 :          idata = idata + 1
   24018      678305 :          data_tmp = full_data(idata)
   24019      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24020      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24021      678305 :          pack_tmp = ISHFT(pack_tmp, -29)
   24022      678305 :          idata = idata + 1
   24023      678305 :          data_tmp = full_data(idata)
   24024      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24025      678305 :          data_tmp = IAND(data_tmp, mask_left(29))
   24026      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24027      678305 :          ipack = ipack + 1
   24028      678305 :          packed_data(ipack) = pack_tmp
   24029      678305 :          data_tmp = full_data(idata)
   24030      678305 :          pack_tmp = ISHFT(data_tmp, 60)
   24031      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24032      678305 :          idata = idata + 1
   24033      678305 :          data_tmp = full_data(idata)
   24034      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24035      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24036      678305 :          pack_tmp = ISHFT(pack_tmp, -27)
   24037      678305 :          idata = idata + 1
   24038      678305 :          data_tmp = full_data(idata)
   24039      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24040      678305 :          data_tmp = IAND(data_tmp, mask_left(27))
   24041      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24042      678305 :          ipack = ipack + 1
   24043      678305 :          packed_data(ipack) = pack_tmp
   24044      678305 :          data_tmp = full_data(idata)
   24045      678305 :          pack_tmp = ISHFT(data_tmp, 58)
   24046      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24047      678305 :          idata = idata + 1
   24048      678305 :          data_tmp = full_data(idata)
   24049      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24050      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24051      678305 :          pack_tmp = ISHFT(pack_tmp, -25)
   24052      678305 :          idata = idata + 1
   24053      678305 :          data_tmp = full_data(idata)
   24054      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24055      678305 :          data_tmp = IAND(data_tmp, mask_left(25))
   24056      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24057      678305 :          ipack = ipack + 1
   24058      678305 :          packed_data(ipack) = pack_tmp
   24059      678305 :          data_tmp = full_data(idata)
   24060      678305 :          pack_tmp = ISHFT(data_tmp, 56)
   24061      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24062      678305 :          idata = idata + 1
   24063      678305 :          data_tmp = full_data(idata)
   24064      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24065      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24066      678305 :          pack_tmp = ISHFT(pack_tmp, -23)
   24067      678305 :          idata = idata + 1
   24068      678305 :          data_tmp = full_data(idata)
   24069      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24070      678305 :          data_tmp = IAND(data_tmp, mask_left(23))
   24071      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24072      678305 :          ipack = ipack + 1
   24073      678305 :          packed_data(ipack) = pack_tmp
   24074      678305 :          data_tmp = full_data(idata)
   24075      678305 :          pack_tmp = ISHFT(data_tmp, 54)
   24076      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24077      678305 :          idata = idata + 1
   24078      678305 :          data_tmp = full_data(idata)
   24079      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24080      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24081      678305 :          pack_tmp = ISHFT(pack_tmp, -21)
   24082      678305 :          idata = idata + 1
   24083      678305 :          data_tmp = full_data(idata)
   24084      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24085      678305 :          data_tmp = IAND(data_tmp, mask_left(21))
   24086      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24087      678305 :          ipack = ipack + 1
   24088      678305 :          packed_data(ipack) = pack_tmp
   24089      678305 :          data_tmp = full_data(idata)
   24090      678305 :          pack_tmp = ISHFT(data_tmp, 52)
   24091      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24092      678305 :          idata = idata + 1
   24093      678305 :          data_tmp = full_data(idata)
   24094      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24095      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24096      678305 :          pack_tmp = ISHFT(pack_tmp, -19)
   24097      678305 :          idata = idata + 1
   24098      678305 :          data_tmp = full_data(idata)
   24099      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24100      678305 :          data_tmp = IAND(data_tmp, mask_left(19))
   24101      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24102      678305 :          ipack = ipack + 1
   24103      678305 :          packed_data(ipack) = pack_tmp
   24104      678305 :          data_tmp = full_data(idata)
   24105      678305 :          pack_tmp = ISHFT(data_tmp, 50)
   24106      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24107      678305 :          idata = idata + 1
   24108      678305 :          data_tmp = full_data(idata)
   24109      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24110      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24111      678305 :          pack_tmp = ISHFT(pack_tmp, -17)
   24112      678305 :          idata = idata + 1
   24113      678305 :          data_tmp = full_data(idata)
   24114      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24115      678305 :          data_tmp = IAND(data_tmp, mask_left(17))
   24116      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24117      678305 :          ipack = ipack + 1
   24118      678305 :          packed_data(ipack) = pack_tmp
   24119      678305 :          data_tmp = full_data(idata)
   24120      678305 :          pack_tmp = ISHFT(data_tmp, 48)
   24121      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24122      678305 :          idata = idata + 1
   24123      678305 :          data_tmp = full_data(idata)
   24124      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24125      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24126      678305 :          pack_tmp = ISHFT(pack_tmp, -15)
   24127      678305 :          idata = idata + 1
   24128      678305 :          data_tmp = full_data(idata)
   24129      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24130      678305 :          data_tmp = IAND(data_tmp, mask_left(15))
   24131      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24132      678305 :          ipack = ipack + 1
   24133      678305 :          packed_data(ipack) = pack_tmp
   24134      678305 :          data_tmp = full_data(idata)
   24135      678305 :          pack_tmp = ISHFT(data_tmp, 46)
   24136      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24137      678305 :          idata = idata + 1
   24138      678305 :          data_tmp = full_data(idata)
   24139      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24140      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24141      678305 :          pack_tmp = ISHFT(pack_tmp, -13)
   24142      678305 :          idata = idata + 1
   24143      678305 :          data_tmp = full_data(idata)
   24144      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24145      678305 :          data_tmp = IAND(data_tmp, mask_left(13))
   24146      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24147      678305 :          ipack = ipack + 1
   24148      678305 :          packed_data(ipack) = pack_tmp
   24149      678305 :          data_tmp = full_data(idata)
   24150      678305 :          pack_tmp = ISHFT(data_tmp, 44)
   24151      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24152      678305 :          idata = idata + 1
   24153      678305 :          data_tmp = full_data(idata)
   24154      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24155      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24156      678305 :          pack_tmp = ISHFT(pack_tmp, -11)
   24157      678305 :          idata = idata + 1
   24158      678305 :          data_tmp = full_data(idata)
   24159      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24160      678305 :          data_tmp = IAND(data_tmp, mask_left(11))
   24161      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24162      678305 :          ipack = ipack + 1
   24163      678305 :          packed_data(ipack) = pack_tmp
   24164      678305 :          data_tmp = full_data(idata)
   24165      678305 :          pack_tmp = ISHFT(data_tmp, 42)
   24166      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24167      678305 :          idata = idata + 1
   24168      678305 :          data_tmp = full_data(idata)
   24169      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24170      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24171      678305 :          pack_tmp = ISHFT(pack_tmp, -9)
   24172      678305 :          idata = idata + 1
   24173      678305 :          data_tmp = full_data(idata)
   24174      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24175      678305 :          data_tmp = IAND(data_tmp, mask_left(9))
   24176      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24177      678305 :          ipack = ipack + 1
   24178      678305 :          packed_data(ipack) = pack_tmp
   24179      678305 :          data_tmp = full_data(idata)
   24180      678305 :          pack_tmp = ISHFT(data_tmp, 40)
   24181      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24182      678305 :          idata = idata + 1
   24183      678305 :          data_tmp = full_data(idata)
   24184      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24185      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24186      678305 :          pack_tmp = ISHFT(pack_tmp, -7)
   24187      678305 :          idata = idata + 1
   24188      678305 :          data_tmp = full_data(idata)
   24189      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24190      678305 :          data_tmp = IAND(data_tmp, mask_left(7))
   24191      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24192      678305 :          ipack = ipack + 1
   24193      678305 :          packed_data(ipack) = pack_tmp
   24194      678305 :          data_tmp = full_data(idata)
   24195      678305 :          pack_tmp = ISHFT(data_tmp, 38)
   24196      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24197      678305 :          idata = idata + 1
   24198      678305 :          data_tmp = full_data(idata)
   24199      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24200      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24201      678305 :          pack_tmp = ISHFT(pack_tmp, -5)
   24202      678305 :          idata = idata + 1
   24203      678305 :          data_tmp = full_data(idata)
   24204      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24205      678305 :          data_tmp = IAND(data_tmp, mask_left(5))
   24206      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24207      678305 :          ipack = ipack + 1
   24208      678305 :          packed_data(ipack) = pack_tmp
   24209      678305 :          data_tmp = full_data(idata)
   24210      678305 :          pack_tmp = ISHFT(data_tmp, 36)
   24211      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24212      678305 :          idata = idata + 1
   24213      678305 :          data_tmp = full_data(idata)
   24214      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24215      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24216      678305 :          pack_tmp = ISHFT(pack_tmp, -3)
   24217      678305 :          idata = idata + 1
   24218      678305 :          data_tmp = full_data(idata)
   24219      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24220      678305 :          data_tmp = IAND(data_tmp, mask_left(3))
   24221      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24222      678305 :          ipack = ipack + 1
   24223      678305 :          packed_data(ipack) = pack_tmp
   24224      678305 :          data_tmp = full_data(idata)
   24225      678305 :          pack_tmp = ISHFT(data_tmp, 34)
   24226      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24227      678305 :          idata = idata + 1
   24228      678305 :          data_tmp = full_data(idata)
   24229      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24230      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24231      678305 :          pack_tmp = ISHFT(pack_tmp, -1)
   24232      678305 :          idata = idata + 1
   24233      678305 :          data_tmp = full_data(idata)
   24234      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24235      678305 :          data_tmp = IAND(data_tmp, mask_left(1))
   24236      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24237      678305 :          ipack = ipack + 1
   24238      678305 :          packed_data(ipack) = pack_tmp
   24239      678305 :          data_tmp = full_data(idata)
   24240      678305 :          pack_tmp = ISHFT(data_tmp, 32)
   24241      678305 :          pack_tmp = ISHFT(pack_tmp, -32)
   24242      678305 :          idata = idata + 1
   24243      678305 :          data_tmp = full_data(idata)
   24244      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24245      678305 :          data_tmp = IAND(data_tmp, mask_left(32))
   24246      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24247      678305 :          ipack = ipack + 1
   24248      678305 :          packed_data(ipack) = pack_tmp
   24249      678305 :          data_tmp = full_data(idata)
   24250      678305 :          pack_tmp = ISHFT(data_tmp, 63)
   24251      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24252      678305 :          idata = idata + 1
   24253      678305 :          data_tmp = full_data(idata)
   24254      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24255      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24256      678305 :          pack_tmp = ISHFT(pack_tmp, -30)
   24257      678305 :          idata = idata + 1
   24258      678305 :          data_tmp = full_data(idata)
   24259      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24260      678305 :          data_tmp = IAND(data_tmp, mask_left(30))
   24261      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24262      678305 :          ipack = ipack + 1
   24263      678305 :          packed_data(ipack) = pack_tmp
   24264      678305 :          data_tmp = full_data(idata)
   24265      678305 :          pack_tmp = ISHFT(data_tmp, 61)
   24266      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24267      678305 :          idata = idata + 1
   24268      678305 :          data_tmp = full_data(idata)
   24269      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24270      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24271      678305 :          pack_tmp = ISHFT(pack_tmp, -28)
   24272      678305 :          idata = idata + 1
   24273      678305 :          data_tmp = full_data(idata)
   24274      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24275      678305 :          data_tmp = IAND(data_tmp, mask_left(28))
   24276      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24277      678305 :          ipack = ipack + 1
   24278      678305 :          packed_data(ipack) = pack_tmp
   24279      678305 :          data_tmp = full_data(idata)
   24280      678305 :          pack_tmp = ISHFT(data_tmp, 59)
   24281      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24282      678305 :          idata = idata + 1
   24283      678305 :          data_tmp = full_data(idata)
   24284      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24285      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24286      678305 :          pack_tmp = ISHFT(pack_tmp, -26)
   24287      678305 :          idata = idata + 1
   24288      678305 :          data_tmp = full_data(idata)
   24289      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24290      678305 :          data_tmp = IAND(data_tmp, mask_left(26))
   24291      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24292      678305 :          ipack = ipack + 1
   24293      678305 :          packed_data(ipack) = pack_tmp
   24294      678305 :          data_tmp = full_data(idata)
   24295      678305 :          pack_tmp = ISHFT(data_tmp, 57)
   24296      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24297      678305 :          idata = idata + 1
   24298      678305 :          data_tmp = full_data(idata)
   24299      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24300      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24301      678305 :          pack_tmp = ISHFT(pack_tmp, -24)
   24302      678305 :          idata = idata + 1
   24303      678305 :          data_tmp = full_data(idata)
   24304      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24305      678305 :          data_tmp = IAND(data_tmp, mask_left(24))
   24306      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24307      678305 :          ipack = ipack + 1
   24308      678305 :          packed_data(ipack) = pack_tmp
   24309      678305 :          data_tmp = full_data(idata)
   24310      678305 :          pack_tmp = ISHFT(data_tmp, 55)
   24311      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24312      678305 :          idata = idata + 1
   24313      678305 :          data_tmp = full_data(idata)
   24314      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24315      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24316      678305 :          pack_tmp = ISHFT(pack_tmp, -22)
   24317      678305 :          idata = idata + 1
   24318      678305 :          data_tmp = full_data(idata)
   24319      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24320      678305 :          data_tmp = IAND(data_tmp, mask_left(22))
   24321      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24322      678305 :          ipack = ipack + 1
   24323      678305 :          packed_data(ipack) = pack_tmp
   24324      678305 :          data_tmp = full_data(idata)
   24325      678305 :          pack_tmp = ISHFT(data_tmp, 53)
   24326      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24327      678305 :          idata = idata + 1
   24328      678305 :          data_tmp = full_data(idata)
   24329      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24330      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24331      678305 :          pack_tmp = ISHFT(pack_tmp, -20)
   24332      678305 :          idata = idata + 1
   24333      678305 :          data_tmp = full_data(idata)
   24334      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24335      678305 :          data_tmp = IAND(data_tmp, mask_left(20))
   24336      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24337      678305 :          ipack = ipack + 1
   24338      678305 :          packed_data(ipack) = pack_tmp
   24339      678305 :          data_tmp = full_data(idata)
   24340      678305 :          pack_tmp = ISHFT(data_tmp, 51)
   24341      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24342      678305 :          idata = idata + 1
   24343      678305 :          data_tmp = full_data(idata)
   24344      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24345      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24346      678305 :          pack_tmp = ISHFT(pack_tmp, -18)
   24347      678305 :          idata = idata + 1
   24348      678305 :          data_tmp = full_data(idata)
   24349      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24350      678305 :          data_tmp = IAND(data_tmp, mask_left(18))
   24351      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24352      678305 :          ipack = ipack + 1
   24353      678305 :          packed_data(ipack) = pack_tmp
   24354      678305 :          data_tmp = full_data(idata)
   24355      678305 :          pack_tmp = ISHFT(data_tmp, 49)
   24356      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24357      678305 :          idata = idata + 1
   24358      678305 :          data_tmp = full_data(idata)
   24359      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24360      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24361      678305 :          pack_tmp = ISHFT(pack_tmp, -16)
   24362      678305 :          idata = idata + 1
   24363      678305 :          data_tmp = full_data(idata)
   24364      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24365      678305 :          data_tmp = IAND(data_tmp, mask_left(16))
   24366      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24367      678305 :          ipack = ipack + 1
   24368      678305 :          packed_data(ipack) = pack_tmp
   24369      678305 :          data_tmp = full_data(idata)
   24370      678305 :          pack_tmp = ISHFT(data_tmp, 47)
   24371      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24372      678305 :          idata = idata + 1
   24373      678305 :          data_tmp = full_data(idata)
   24374      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24375      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24376      678305 :          pack_tmp = ISHFT(pack_tmp, -14)
   24377      678305 :          idata = idata + 1
   24378      678305 :          data_tmp = full_data(idata)
   24379      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24380      678305 :          data_tmp = IAND(data_tmp, mask_left(14))
   24381      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24382      678305 :          ipack = ipack + 1
   24383      678305 :          packed_data(ipack) = pack_tmp
   24384      678305 :          data_tmp = full_data(idata)
   24385      678305 :          pack_tmp = ISHFT(data_tmp, 45)
   24386      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24387      678305 :          idata = idata + 1
   24388      678305 :          data_tmp = full_data(idata)
   24389      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24390      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24391      678305 :          pack_tmp = ISHFT(pack_tmp, -12)
   24392      678305 :          idata = idata + 1
   24393      678305 :          data_tmp = full_data(idata)
   24394      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24395      678305 :          data_tmp = IAND(data_tmp, mask_left(12))
   24396      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24397      678305 :          ipack = ipack + 1
   24398      678305 :          packed_data(ipack) = pack_tmp
   24399      678305 :          data_tmp = full_data(idata)
   24400      678305 :          pack_tmp = ISHFT(data_tmp, 43)
   24401      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24402      678305 :          idata = idata + 1
   24403      678305 :          data_tmp = full_data(idata)
   24404      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24405      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24406      678305 :          pack_tmp = ISHFT(pack_tmp, -10)
   24407      678305 :          idata = idata + 1
   24408      678305 :          data_tmp = full_data(idata)
   24409      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24410      678305 :          data_tmp = IAND(data_tmp, mask_left(10))
   24411      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24412      678305 :          ipack = ipack + 1
   24413      678305 :          packed_data(ipack) = pack_tmp
   24414      678305 :          data_tmp = full_data(idata)
   24415      678305 :          pack_tmp = ISHFT(data_tmp, 41)
   24416      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24417      678305 :          idata = idata + 1
   24418      678305 :          data_tmp = full_data(idata)
   24419      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24420      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24421      678305 :          pack_tmp = ISHFT(pack_tmp, -8)
   24422      678305 :          idata = idata + 1
   24423      678305 :          data_tmp = full_data(idata)
   24424      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24425      678305 :          data_tmp = IAND(data_tmp, mask_left(8))
   24426      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24427      678305 :          ipack = ipack + 1
   24428      678305 :          packed_data(ipack) = pack_tmp
   24429      678305 :          data_tmp = full_data(idata)
   24430      678305 :          pack_tmp = ISHFT(data_tmp, 39)
   24431      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24432      678305 :          idata = idata + 1
   24433      678305 :          data_tmp = full_data(idata)
   24434      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24435      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24436      678305 :          pack_tmp = ISHFT(pack_tmp, -6)
   24437      678305 :          idata = idata + 1
   24438      678305 :          data_tmp = full_data(idata)
   24439      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24440      678305 :          data_tmp = IAND(data_tmp, mask_left(6))
   24441      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24442      678305 :          ipack = ipack + 1
   24443      678305 :          packed_data(ipack) = pack_tmp
   24444      678305 :          data_tmp = full_data(idata)
   24445      678305 :          pack_tmp = ISHFT(data_tmp, 37)
   24446      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24447      678305 :          idata = idata + 1
   24448      678305 :          data_tmp = full_data(idata)
   24449      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24450      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24451      678305 :          pack_tmp = ISHFT(pack_tmp, -4)
   24452      678305 :          idata = idata + 1
   24453      678305 :          data_tmp = full_data(idata)
   24454      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24455      678305 :          data_tmp = IAND(data_tmp, mask_left(4))
   24456      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24457      678305 :          ipack = ipack + 1
   24458      678305 :          packed_data(ipack) = pack_tmp
   24459      678305 :          data_tmp = full_data(idata)
   24460      678305 :          pack_tmp = ISHFT(data_tmp, 35)
   24461      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24462      678305 :          idata = idata + 1
   24463      678305 :          data_tmp = full_data(idata)
   24464      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24465      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24466      678305 :          pack_tmp = ISHFT(pack_tmp, -2)
   24467      678305 :          idata = idata + 1
   24468      678305 :          data_tmp = full_data(idata)
   24469      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24470      678305 :          data_tmp = IAND(data_tmp, mask_left(2))
   24471      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24472      678305 :          ipack = ipack + 1
   24473      678305 :          packed_data(ipack) = pack_tmp
   24474      678305 :          data_tmp = full_data(idata)
   24475      678305 :          pack_tmp = ISHFT(data_tmp, 33)
   24476      678305 :          pack_tmp = ISHFT(pack_tmp, -33)
   24477      678305 :          idata = idata + 1
   24478      678305 :          data_tmp = full_data(idata)
   24479      678305 :          data_tmp = ISHFT(data_tmp, 31)
   24480      678305 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24481             :          pack_tmp = ISHFT(pack_tmp, 0)
   24482      678305 :          pack_tmp = ISHFT(pack_tmp, 0)
   24483      678305 :          ipack = ipack + 1
   24484      681260 :          packed_data(ipack) = pack_tmp
   24485             :       END DO
   24486       53528 :       IF (Ndata_rep < Ndata) THEN
   24487       20958 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24488             :       END IF
   24489       53528 :    END SUBROUTINE ints2bits_33
   24490             : 
   24491             : ! **************************************************************************************************
   24492             : !> \brief ...
   24493             : !> \param Ndata ...
   24494             : !> \param packed_data ...
   24495             : !> \param full_data ...
   24496             : ! **************************************************************************************************
   24497      266283 :    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      266283 :       ipack = 0
   24508      266283 :       idata = 0
   24509      266283 :       pack_tmp = 0
   24510      266283 :       Ndata_rep = (Ndata/64)*64
   24511      266283 :       DO kdata = 1, Ndata_rep, 64
   24512     3228101 :          idata = idata + 1
   24513     3228101 :          data_tmp = ISHFT(pack_tmp, 33)
   24514     3228101 :          ipack = ipack + 1
   24515     3228101 :          pack_tmp = packed_data(ipack)
   24516     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   24517     3228101 :          pack_tmp = ISHFT(pack_tmp, -33)
   24518     3228101 :          idata = idata + 1
   24519     3228101 :          data_tmp = ISHFT(pack_tmp, 2)
   24520     3228101 :          ipack = ipack + 1
   24521     3228101 :          pack_tmp = packed_data(ipack)
   24522     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   24523     3228101 :          pack_tmp = ISHFT(pack_tmp, -2)
   24524     3228101 :          idata = idata + 1
   24525     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24526     3228101 :          full_data(idata) = data_tmp
   24527     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24528     3228101 :          idata = idata + 1
   24529     3228101 :          data_tmp = ISHFT(pack_tmp, 4)
   24530     3228101 :          ipack = ipack + 1
   24531     3228101 :          pack_tmp = packed_data(ipack)
   24532     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   24533     3228101 :          pack_tmp = ISHFT(pack_tmp, -4)
   24534     3228101 :          idata = idata + 1
   24535     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24536     3228101 :          full_data(idata) = data_tmp
   24537     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24538     3228101 :          idata = idata + 1
   24539     3228101 :          data_tmp = ISHFT(pack_tmp, 6)
   24540     3228101 :          ipack = ipack + 1
   24541     3228101 :          pack_tmp = packed_data(ipack)
   24542     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   24543     3228101 :          pack_tmp = ISHFT(pack_tmp, -6)
   24544     3228101 :          idata = idata + 1
   24545     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24546     3228101 :          full_data(idata) = data_tmp
   24547     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24548     3228101 :          idata = idata + 1
   24549     3228101 :          data_tmp = ISHFT(pack_tmp, 8)
   24550     3228101 :          ipack = ipack + 1
   24551     3228101 :          pack_tmp = packed_data(ipack)
   24552     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   24553     3228101 :          pack_tmp = ISHFT(pack_tmp, -8)
   24554     3228101 :          idata = idata + 1
   24555     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24556     3228101 :          full_data(idata) = data_tmp
   24557     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24558     3228101 :          idata = idata + 1
   24559     3228101 :          data_tmp = ISHFT(pack_tmp, 10)
   24560     3228101 :          ipack = ipack + 1
   24561     3228101 :          pack_tmp = packed_data(ipack)
   24562     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   24563     3228101 :          pack_tmp = ISHFT(pack_tmp, -10)
   24564     3228101 :          idata = idata + 1
   24565     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24566     3228101 :          full_data(idata) = data_tmp
   24567     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24568     3228101 :          idata = idata + 1
   24569     3228101 :          data_tmp = ISHFT(pack_tmp, 12)
   24570     3228101 :          ipack = ipack + 1
   24571     3228101 :          pack_tmp = packed_data(ipack)
   24572     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   24573     3228101 :          pack_tmp = ISHFT(pack_tmp, -12)
   24574     3228101 :          idata = idata + 1
   24575     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24576     3228101 :          full_data(idata) = data_tmp
   24577     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24578     3228101 :          idata = idata + 1
   24579     3228101 :          data_tmp = ISHFT(pack_tmp, 14)
   24580     3228101 :          ipack = ipack + 1
   24581     3228101 :          pack_tmp = packed_data(ipack)
   24582     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   24583     3228101 :          pack_tmp = ISHFT(pack_tmp, -14)
   24584     3228101 :          idata = idata + 1
   24585     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24586     3228101 :          full_data(idata) = data_tmp
   24587     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24588     3228101 :          idata = idata + 1
   24589     3228101 :          data_tmp = ISHFT(pack_tmp, 16)
   24590     3228101 :          ipack = ipack + 1
   24591     3228101 :          pack_tmp = packed_data(ipack)
   24592     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   24593     3228101 :          pack_tmp = ISHFT(pack_tmp, -16)
   24594     3228101 :          idata = idata + 1
   24595     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24596     3228101 :          full_data(idata) = data_tmp
   24597     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24598     3228101 :          idata = idata + 1
   24599     3228101 :          data_tmp = ISHFT(pack_tmp, 18)
   24600     3228101 :          ipack = ipack + 1
   24601     3228101 :          pack_tmp = packed_data(ipack)
   24602     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   24603     3228101 :          pack_tmp = ISHFT(pack_tmp, -18)
   24604     3228101 :          idata = idata + 1
   24605     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24606     3228101 :          full_data(idata) = data_tmp
   24607     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24608     3228101 :          idata = idata + 1
   24609     3228101 :          data_tmp = ISHFT(pack_tmp, 20)
   24610     3228101 :          ipack = ipack + 1
   24611     3228101 :          pack_tmp = packed_data(ipack)
   24612     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   24613     3228101 :          pack_tmp = ISHFT(pack_tmp, -20)
   24614     3228101 :          idata = idata + 1
   24615     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24616     3228101 :          full_data(idata) = data_tmp
   24617     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24618     3228101 :          idata = idata + 1
   24619     3228101 :          data_tmp = ISHFT(pack_tmp, 22)
   24620     3228101 :          ipack = ipack + 1
   24621     3228101 :          pack_tmp = packed_data(ipack)
   24622     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   24623     3228101 :          pack_tmp = ISHFT(pack_tmp, -22)
   24624     3228101 :          idata = idata + 1
   24625     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24626     3228101 :          full_data(idata) = data_tmp
   24627     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24628     3228101 :          idata = idata + 1
   24629     3228101 :          data_tmp = ISHFT(pack_tmp, 24)
   24630     3228101 :          ipack = ipack + 1
   24631     3228101 :          pack_tmp = packed_data(ipack)
   24632     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   24633     3228101 :          pack_tmp = ISHFT(pack_tmp, -24)
   24634     3228101 :          idata = idata + 1
   24635     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24636     3228101 :          full_data(idata) = data_tmp
   24637     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24638     3228101 :          idata = idata + 1
   24639     3228101 :          data_tmp = ISHFT(pack_tmp, 26)
   24640     3228101 :          ipack = ipack + 1
   24641     3228101 :          pack_tmp = packed_data(ipack)
   24642     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   24643     3228101 :          pack_tmp = ISHFT(pack_tmp, -26)
   24644     3228101 :          idata = idata + 1
   24645     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24646     3228101 :          full_data(idata) = data_tmp
   24647     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24648     3228101 :          idata = idata + 1
   24649     3228101 :          data_tmp = ISHFT(pack_tmp, 28)
   24650     3228101 :          ipack = ipack + 1
   24651     3228101 :          pack_tmp = packed_data(ipack)
   24652     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   24653     3228101 :          pack_tmp = ISHFT(pack_tmp, -28)
   24654     3228101 :          idata = idata + 1
   24655     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24656     3228101 :          full_data(idata) = data_tmp
   24657     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24658     3228101 :          idata = idata + 1
   24659     3228101 :          data_tmp = ISHFT(pack_tmp, 30)
   24660     3228101 :          ipack = ipack + 1
   24661     3228101 :          pack_tmp = packed_data(ipack)
   24662     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   24663     3228101 :          pack_tmp = ISHFT(pack_tmp, -30)
   24664     3228101 :          idata = idata + 1
   24665     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24666     3228101 :          full_data(idata) = data_tmp
   24667     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24668     3228101 :          idata = idata + 1
   24669     3228101 :          data_tmp = ISHFT(pack_tmp, 32)
   24670     3228101 :          ipack = ipack + 1
   24671     3228101 :          pack_tmp = packed_data(ipack)
   24672     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   24673     3228101 :          pack_tmp = ISHFT(pack_tmp, -32)
   24674     3228101 :          idata = idata + 1
   24675     3228101 :          data_tmp = ISHFT(pack_tmp, 1)
   24676     3228101 :          ipack = ipack + 1
   24677     3228101 :          pack_tmp = packed_data(ipack)
   24678     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   24679     3228101 :          pack_tmp = ISHFT(pack_tmp, -1)
   24680     3228101 :          idata = idata + 1
   24681     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24682     3228101 :          full_data(idata) = data_tmp
   24683     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24684     3228101 :          idata = idata + 1
   24685     3228101 :          data_tmp = ISHFT(pack_tmp, 3)
   24686     3228101 :          ipack = ipack + 1
   24687     3228101 :          pack_tmp = packed_data(ipack)
   24688     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   24689     3228101 :          pack_tmp = ISHFT(pack_tmp, -3)
   24690     3228101 :          idata = idata + 1
   24691     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24692     3228101 :          full_data(idata) = data_tmp
   24693     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24694     3228101 :          idata = idata + 1
   24695     3228101 :          data_tmp = ISHFT(pack_tmp, 5)
   24696     3228101 :          ipack = ipack + 1
   24697     3228101 :          pack_tmp = packed_data(ipack)
   24698     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   24699     3228101 :          pack_tmp = ISHFT(pack_tmp, -5)
   24700     3228101 :          idata = idata + 1
   24701     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24702     3228101 :          full_data(idata) = data_tmp
   24703     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24704     3228101 :          idata = idata + 1
   24705     3228101 :          data_tmp = ISHFT(pack_tmp, 7)
   24706     3228101 :          ipack = ipack + 1
   24707     3228101 :          pack_tmp = packed_data(ipack)
   24708     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   24709     3228101 :          pack_tmp = ISHFT(pack_tmp, -7)
   24710     3228101 :          idata = idata + 1
   24711     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24712     3228101 :          full_data(idata) = data_tmp
   24713     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24714     3228101 :          idata = idata + 1
   24715     3228101 :          data_tmp = ISHFT(pack_tmp, 9)
   24716     3228101 :          ipack = ipack + 1
   24717     3228101 :          pack_tmp = packed_data(ipack)
   24718     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   24719     3228101 :          pack_tmp = ISHFT(pack_tmp, -9)
   24720     3228101 :          idata = idata + 1
   24721     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24722     3228101 :          full_data(idata) = data_tmp
   24723     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24724     3228101 :          idata = idata + 1
   24725     3228101 :          data_tmp = ISHFT(pack_tmp, 11)
   24726     3228101 :          ipack = ipack + 1
   24727     3228101 :          pack_tmp = packed_data(ipack)
   24728     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   24729     3228101 :          pack_tmp = ISHFT(pack_tmp, -11)
   24730     3228101 :          idata = idata + 1
   24731     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24732     3228101 :          full_data(idata) = data_tmp
   24733     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24734     3228101 :          idata = idata + 1
   24735     3228101 :          data_tmp = ISHFT(pack_tmp, 13)
   24736     3228101 :          ipack = ipack + 1
   24737     3228101 :          pack_tmp = packed_data(ipack)
   24738     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   24739     3228101 :          pack_tmp = ISHFT(pack_tmp, -13)
   24740     3228101 :          idata = idata + 1
   24741     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24742     3228101 :          full_data(idata) = data_tmp
   24743     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24744     3228101 :          idata = idata + 1
   24745     3228101 :          data_tmp = ISHFT(pack_tmp, 15)
   24746     3228101 :          ipack = ipack + 1
   24747     3228101 :          pack_tmp = packed_data(ipack)
   24748     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   24749     3228101 :          pack_tmp = ISHFT(pack_tmp, -15)
   24750     3228101 :          idata = idata + 1
   24751     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24752     3228101 :          full_data(idata) = data_tmp
   24753     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24754     3228101 :          idata = idata + 1
   24755     3228101 :          data_tmp = ISHFT(pack_tmp, 17)
   24756     3228101 :          ipack = ipack + 1
   24757     3228101 :          pack_tmp = packed_data(ipack)
   24758     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   24759     3228101 :          pack_tmp = ISHFT(pack_tmp, -17)
   24760     3228101 :          idata = idata + 1
   24761     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24762     3228101 :          full_data(idata) = data_tmp
   24763     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24764     3228101 :          idata = idata + 1
   24765     3228101 :          data_tmp = ISHFT(pack_tmp, 19)
   24766     3228101 :          ipack = ipack + 1
   24767     3228101 :          pack_tmp = packed_data(ipack)
   24768     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   24769     3228101 :          pack_tmp = ISHFT(pack_tmp, -19)
   24770     3228101 :          idata = idata + 1
   24771     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24772     3228101 :          full_data(idata) = data_tmp
   24773     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24774     3228101 :          idata = idata + 1
   24775     3228101 :          data_tmp = ISHFT(pack_tmp, 21)
   24776     3228101 :          ipack = ipack + 1
   24777     3228101 :          pack_tmp = packed_data(ipack)
   24778     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   24779     3228101 :          pack_tmp = ISHFT(pack_tmp, -21)
   24780     3228101 :          idata = idata + 1
   24781     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24782     3228101 :          full_data(idata) = data_tmp
   24783     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24784     3228101 :          idata = idata + 1
   24785     3228101 :          data_tmp = ISHFT(pack_tmp, 23)
   24786     3228101 :          ipack = ipack + 1
   24787     3228101 :          pack_tmp = packed_data(ipack)
   24788     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   24789     3228101 :          pack_tmp = ISHFT(pack_tmp, -23)
   24790     3228101 :          idata = idata + 1
   24791     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24792     3228101 :          full_data(idata) = data_tmp
   24793     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24794     3228101 :          idata = idata + 1
   24795     3228101 :          data_tmp = ISHFT(pack_tmp, 25)
   24796     3228101 :          ipack = ipack + 1
   24797     3228101 :          pack_tmp = packed_data(ipack)
   24798     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   24799     3228101 :          pack_tmp = ISHFT(pack_tmp, -25)
   24800     3228101 :          idata = idata + 1
   24801     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24802     3228101 :          full_data(idata) = data_tmp
   24803     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24804     3228101 :          idata = idata + 1
   24805     3228101 :          data_tmp = ISHFT(pack_tmp, 27)
   24806     3228101 :          ipack = ipack + 1
   24807     3228101 :          pack_tmp = packed_data(ipack)
   24808     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   24809     3228101 :          pack_tmp = ISHFT(pack_tmp, -27)
   24810     3228101 :          idata = idata + 1
   24811     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24812     3228101 :          full_data(idata) = data_tmp
   24813     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24814     3228101 :          idata = idata + 1
   24815     3228101 :          data_tmp = ISHFT(pack_tmp, 29)
   24816     3228101 :          ipack = ipack + 1
   24817     3228101 :          pack_tmp = packed_data(ipack)
   24818     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   24819     3228101 :          pack_tmp = ISHFT(pack_tmp, -29)
   24820     3228101 :          idata = idata + 1
   24821     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24822     3228101 :          full_data(idata) = data_tmp
   24823     3228101 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24824     3228101 :          idata = idata + 1
   24825     3228101 :          data_tmp = ISHFT(pack_tmp, 31)
   24826     3228101 :          ipack = ipack + 1
   24827     3228101 :          pack_tmp = packed_data(ipack)
   24828     3228101 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   24829     3228101 :          pack_tmp = ISHFT(pack_tmp, -31)
   24830     3228101 :          idata = idata + 1
   24831     3228101 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24832     3228101 :          full_data(idata) = data_tmp
   24833     3245876 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24834             :       END DO
   24835      266283 :       IF (Ndata_rep < Ndata) THEN
   24836      121462 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24837             :       END IF
   24838      266283 :    END SUBROUTINE bits2ints_33
   24839             : 
   24840             : ! **************************************************************************************************
   24841             : !> \brief ...
   24842             : !> \param Ndata ...
   24843             : !> \param packed_data ...
   24844             : !> \param full_data ...
   24845             : ! **************************************************************************************************
   24846       46930 :    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       46930 :       idata = 0
   24857       46930 :       ipack = 0
   24858       46930 :       Ndata_rep = (Ndata/64)*64
   24859       46930 :       DO kdata = 1, Ndata_rep, 64
   24860      611937 :          pack_tmp = 0
   24861      611937 :          idata = idata + 1
   24862      611937 :          data_tmp = full_data(idata)
   24863      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24864      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24865      611937 :          pack_tmp = ISHFT(pack_tmp, -30)
   24866      611937 :          idata = idata + 1
   24867      611937 :          data_tmp = full_data(idata)
   24868      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24869      611937 :          data_tmp = IAND(data_tmp, mask_left(30))
   24870      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24871      611937 :          ipack = ipack + 1
   24872      611937 :          packed_data(ipack) = pack_tmp
   24873      611937 :          data_tmp = full_data(idata)
   24874      611937 :          pack_tmp = ISHFT(data_tmp, 60)
   24875      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24876      611937 :          idata = idata + 1
   24877      611937 :          data_tmp = full_data(idata)
   24878      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24879      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24880      611937 :          pack_tmp = ISHFT(pack_tmp, -26)
   24881      611937 :          idata = idata + 1
   24882      611937 :          data_tmp = full_data(idata)
   24883      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24884      611937 :          data_tmp = IAND(data_tmp, mask_left(26))
   24885      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24886      611937 :          ipack = ipack + 1
   24887      611937 :          packed_data(ipack) = pack_tmp
   24888      611937 :          data_tmp = full_data(idata)
   24889      611937 :          pack_tmp = ISHFT(data_tmp, 56)
   24890      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24891      611937 :          idata = idata + 1
   24892      611937 :          data_tmp = full_data(idata)
   24893      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24894      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24895      611937 :          pack_tmp = ISHFT(pack_tmp, -22)
   24896      611937 :          idata = idata + 1
   24897      611937 :          data_tmp = full_data(idata)
   24898      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24899      611937 :          data_tmp = IAND(data_tmp, mask_left(22))
   24900      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24901      611937 :          ipack = ipack + 1
   24902      611937 :          packed_data(ipack) = pack_tmp
   24903      611937 :          data_tmp = full_data(idata)
   24904      611937 :          pack_tmp = ISHFT(data_tmp, 52)
   24905      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24906      611937 :          idata = idata + 1
   24907      611937 :          data_tmp = full_data(idata)
   24908      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24909      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24910      611937 :          pack_tmp = ISHFT(pack_tmp, -18)
   24911      611937 :          idata = idata + 1
   24912      611937 :          data_tmp = full_data(idata)
   24913      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24914      611937 :          data_tmp = IAND(data_tmp, mask_left(18))
   24915      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24916      611937 :          ipack = ipack + 1
   24917      611937 :          packed_data(ipack) = pack_tmp
   24918      611937 :          data_tmp = full_data(idata)
   24919      611937 :          pack_tmp = ISHFT(data_tmp, 48)
   24920      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24921      611937 :          idata = idata + 1
   24922      611937 :          data_tmp = full_data(idata)
   24923      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24924      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24925      611937 :          pack_tmp = ISHFT(pack_tmp, -14)
   24926      611937 :          idata = idata + 1
   24927      611937 :          data_tmp = full_data(idata)
   24928      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24929      611937 :          data_tmp = IAND(data_tmp, mask_left(14))
   24930      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24931      611937 :          ipack = ipack + 1
   24932      611937 :          packed_data(ipack) = pack_tmp
   24933      611937 :          data_tmp = full_data(idata)
   24934      611937 :          pack_tmp = ISHFT(data_tmp, 44)
   24935      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24936      611937 :          idata = idata + 1
   24937      611937 :          data_tmp = full_data(idata)
   24938      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24939      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24940      611937 :          pack_tmp = ISHFT(pack_tmp, -10)
   24941      611937 :          idata = idata + 1
   24942      611937 :          data_tmp = full_data(idata)
   24943      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24944      611937 :          data_tmp = IAND(data_tmp, mask_left(10))
   24945      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24946      611937 :          ipack = ipack + 1
   24947      611937 :          packed_data(ipack) = pack_tmp
   24948      611937 :          data_tmp = full_data(idata)
   24949      611937 :          pack_tmp = ISHFT(data_tmp, 40)
   24950      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24951      611937 :          idata = idata + 1
   24952      611937 :          data_tmp = full_data(idata)
   24953      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24954      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24955      611937 :          pack_tmp = ISHFT(pack_tmp, -6)
   24956      611937 :          idata = idata + 1
   24957      611937 :          data_tmp = full_data(idata)
   24958      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24959      611937 :          data_tmp = IAND(data_tmp, mask_left(6))
   24960      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24961      611937 :          ipack = ipack + 1
   24962      611937 :          packed_data(ipack) = pack_tmp
   24963      611937 :          data_tmp = full_data(idata)
   24964      611937 :          pack_tmp = ISHFT(data_tmp, 36)
   24965      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24966      611937 :          idata = idata + 1
   24967      611937 :          data_tmp = full_data(idata)
   24968      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24969      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24970      611937 :          pack_tmp = ISHFT(pack_tmp, -2)
   24971      611937 :          idata = idata + 1
   24972      611937 :          data_tmp = full_data(idata)
   24973      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24974      611937 :          data_tmp = IAND(data_tmp, mask_left(2))
   24975      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24976      611937 :          ipack = ipack + 1
   24977      611937 :          packed_data(ipack) = pack_tmp
   24978      611937 :          data_tmp = full_data(idata)
   24979      611937 :          pack_tmp = ISHFT(data_tmp, 32)
   24980      611937 :          pack_tmp = ISHFT(pack_tmp, -32)
   24981      611937 :          idata = idata + 1
   24982      611937 :          data_tmp = full_data(idata)
   24983      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24984      611937 :          data_tmp = IAND(data_tmp, mask_left(32))
   24985      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24986      611937 :          ipack = ipack + 1
   24987      611937 :          packed_data(ipack) = pack_tmp
   24988      611937 :          data_tmp = full_data(idata)
   24989      611937 :          pack_tmp = ISHFT(data_tmp, 62)
   24990      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   24991      611937 :          idata = idata + 1
   24992      611937 :          data_tmp = full_data(idata)
   24993      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24994      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24995      611937 :          pack_tmp = ISHFT(pack_tmp, -28)
   24996      611937 :          idata = idata + 1
   24997      611937 :          data_tmp = full_data(idata)
   24998      611937 :          data_tmp = ISHFT(data_tmp, 30)
   24999      611937 :          data_tmp = IAND(data_tmp, mask_left(28))
   25000      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25001      611937 :          ipack = ipack + 1
   25002      611937 :          packed_data(ipack) = pack_tmp
   25003      611937 :          data_tmp = full_data(idata)
   25004      611937 :          pack_tmp = ISHFT(data_tmp, 58)
   25005      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25006      611937 :          idata = idata + 1
   25007      611937 :          data_tmp = full_data(idata)
   25008      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25009      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25010      611937 :          pack_tmp = ISHFT(pack_tmp, -24)
   25011      611937 :          idata = idata + 1
   25012      611937 :          data_tmp = full_data(idata)
   25013      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25014      611937 :          data_tmp = IAND(data_tmp, mask_left(24))
   25015      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25016      611937 :          ipack = ipack + 1
   25017      611937 :          packed_data(ipack) = pack_tmp
   25018      611937 :          data_tmp = full_data(idata)
   25019      611937 :          pack_tmp = ISHFT(data_tmp, 54)
   25020      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25021      611937 :          idata = idata + 1
   25022      611937 :          data_tmp = full_data(idata)
   25023      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25024      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25025      611937 :          pack_tmp = ISHFT(pack_tmp, -20)
   25026      611937 :          idata = idata + 1
   25027      611937 :          data_tmp = full_data(idata)
   25028      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25029      611937 :          data_tmp = IAND(data_tmp, mask_left(20))
   25030      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25031      611937 :          ipack = ipack + 1
   25032      611937 :          packed_data(ipack) = pack_tmp
   25033      611937 :          data_tmp = full_data(idata)
   25034      611937 :          pack_tmp = ISHFT(data_tmp, 50)
   25035      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25036      611937 :          idata = idata + 1
   25037      611937 :          data_tmp = full_data(idata)
   25038      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25039      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25040      611937 :          pack_tmp = ISHFT(pack_tmp, -16)
   25041      611937 :          idata = idata + 1
   25042      611937 :          data_tmp = full_data(idata)
   25043      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25044      611937 :          data_tmp = IAND(data_tmp, mask_left(16))
   25045      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25046      611937 :          ipack = ipack + 1
   25047      611937 :          packed_data(ipack) = pack_tmp
   25048      611937 :          data_tmp = full_data(idata)
   25049      611937 :          pack_tmp = ISHFT(data_tmp, 46)
   25050      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25051      611937 :          idata = idata + 1
   25052      611937 :          data_tmp = full_data(idata)
   25053      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25054      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25055      611937 :          pack_tmp = ISHFT(pack_tmp, -12)
   25056      611937 :          idata = idata + 1
   25057      611937 :          data_tmp = full_data(idata)
   25058      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25059      611937 :          data_tmp = IAND(data_tmp, mask_left(12))
   25060      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25061      611937 :          ipack = ipack + 1
   25062      611937 :          packed_data(ipack) = pack_tmp
   25063      611937 :          data_tmp = full_data(idata)
   25064      611937 :          pack_tmp = ISHFT(data_tmp, 42)
   25065      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25066      611937 :          idata = idata + 1
   25067      611937 :          data_tmp = full_data(idata)
   25068      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25069      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25070      611937 :          pack_tmp = ISHFT(pack_tmp, -8)
   25071      611937 :          idata = idata + 1
   25072      611937 :          data_tmp = full_data(idata)
   25073      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25074      611937 :          data_tmp = IAND(data_tmp, mask_left(8))
   25075      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25076      611937 :          ipack = ipack + 1
   25077      611937 :          packed_data(ipack) = pack_tmp
   25078      611937 :          data_tmp = full_data(idata)
   25079      611937 :          pack_tmp = ISHFT(data_tmp, 38)
   25080      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25081      611937 :          idata = idata + 1
   25082      611937 :          data_tmp = full_data(idata)
   25083      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25084      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25085      611937 :          pack_tmp = ISHFT(pack_tmp, -4)
   25086      611937 :          idata = idata + 1
   25087      611937 :          data_tmp = full_data(idata)
   25088      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25089      611937 :          data_tmp = IAND(data_tmp, mask_left(4))
   25090      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25091      611937 :          ipack = ipack + 1
   25092      611937 :          packed_data(ipack) = pack_tmp
   25093      611937 :          data_tmp = full_data(idata)
   25094      611937 :          pack_tmp = ISHFT(data_tmp, 34)
   25095      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25096      611937 :          idata = idata + 1
   25097      611937 :          data_tmp = full_data(idata)
   25098      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25099      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25100      611937 :          pack_tmp = ISHFT(pack_tmp, 0)
   25101      611937 :          idata = idata + 1
   25102      611937 :          data_tmp = full_data(idata)
   25103             :          data_tmp = ISHFT(data_tmp, 30)
   25104      611937 :          data_tmp = IAND(data_tmp, mask_left(0))
   25105      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25106      611937 :          ipack = ipack + 1
   25107      611937 :          packed_data(ipack) = pack_tmp
   25108      611937 :          data_tmp = full_data(idata)
   25109      611937 :          pack_tmp = ISHFT(data_tmp, 30)
   25110      611937 :          pack_tmp = ISHFT(pack_tmp, -30)
   25111      611937 :          idata = idata + 1
   25112      611937 :          data_tmp = full_data(idata)
   25113      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25114      611937 :          data_tmp = IAND(data_tmp, mask_left(30))
   25115      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25116      611937 :          ipack = ipack + 1
   25117      611937 :          packed_data(ipack) = pack_tmp
   25118      611937 :          data_tmp = full_data(idata)
   25119      611937 :          pack_tmp = ISHFT(data_tmp, 60)
   25120      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25121      611937 :          idata = idata + 1
   25122      611937 :          data_tmp = full_data(idata)
   25123      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25124      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25125      611937 :          pack_tmp = ISHFT(pack_tmp, -26)
   25126      611937 :          idata = idata + 1
   25127      611937 :          data_tmp = full_data(idata)
   25128      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25129      611937 :          data_tmp = IAND(data_tmp, mask_left(26))
   25130      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25131      611937 :          ipack = ipack + 1
   25132      611937 :          packed_data(ipack) = pack_tmp
   25133      611937 :          data_tmp = full_data(idata)
   25134      611937 :          pack_tmp = ISHFT(data_tmp, 56)
   25135      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25136      611937 :          idata = idata + 1
   25137      611937 :          data_tmp = full_data(idata)
   25138      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25139      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25140      611937 :          pack_tmp = ISHFT(pack_tmp, -22)
   25141      611937 :          idata = idata + 1
   25142      611937 :          data_tmp = full_data(idata)
   25143      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25144      611937 :          data_tmp = IAND(data_tmp, mask_left(22))
   25145      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25146      611937 :          ipack = ipack + 1
   25147      611937 :          packed_data(ipack) = pack_tmp
   25148      611937 :          data_tmp = full_data(idata)
   25149      611937 :          pack_tmp = ISHFT(data_tmp, 52)
   25150      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25151      611937 :          idata = idata + 1
   25152      611937 :          data_tmp = full_data(idata)
   25153      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25154      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25155      611937 :          pack_tmp = ISHFT(pack_tmp, -18)
   25156      611937 :          idata = idata + 1
   25157      611937 :          data_tmp = full_data(idata)
   25158      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25159      611937 :          data_tmp = IAND(data_tmp, mask_left(18))
   25160      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25161      611937 :          ipack = ipack + 1
   25162      611937 :          packed_data(ipack) = pack_tmp
   25163      611937 :          data_tmp = full_data(idata)
   25164      611937 :          pack_tmp = ISHFT(data_tmp, 48)
   25165      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25166      611937 :          idata = idata + 1
   25167      611937 :          data_tmp = full_data(idata)
   25168      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25169      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25170      611937 :          pack_tmp = ISHFT(pack_tmp, -14)
   25171      611937 :          idata = idata + 1
   25172      611937 :          data_tmp = full_data(idata)
   25173      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25174      611937 :          data_tmp = IAND(data_tmp, mask_left(14))
   25175      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25176      611937 :          ipack = ipack + 1
   25177      611937 :          packed_data(ipack) = pack_tmp
   25178      611937 :          data_tmp = full_data(idata)
   25179      611937 :          pack_tmp = ISHFT(data_tmp, 44)
   25180      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25181      611937 :          idata = idata + 1
   25182      611937 :          data_tmp = full_data(idata)
   25183      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25184      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25185      611937 :          pack_tmp = ISHFT(pack_tmp, -10)
   25186      611937 :          idata = idata + 1
   25187      611937 :          data_tmp = full_data(idata)
   25188      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25189      611937 :          data_tmp = IAND(data_tmp, mask_left(10))
   25190      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25191      611937 :          ipack = ipack + 1
   25192      611937 :          packed_data(ipack) = pack_tmp
   25193      611937 :          data_tmp = full_data(idata)
   25194      611937 :          pack_tmp = ISHFT(data_tmp, 40)
   25195      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25196      611937 :          idata = idata + 1
   25197      611937 :          data_tmp = full_data(idata)
   25198      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25199      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25200      611937 :          pack_tmp = ISHFT(pack_tmp, -6)
   25201      611937 :          idata = idata + 1
   25202      611937 :          data_tmp = full_data(idata)
   25203      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25204      611937 :          data_tmp = IAND(data_tmp, mask_left(6))
   25205      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25206      611937 :          ipack = ipack + 1
   25207      611937 :          packed_data(ipack) = pack_tmp
   25208      611937 :          data_tmp = full_data(idata)
   25209      611937 :          pack_tmp = ISHFT(data_tmp, 36)
   25210      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25211      611937 :          idata = idata + 1
   25212      611937 :          data_tmp = full_data(idata)
   25213      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25214      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25215      611937 :          pack_tmp = ISHFT(pack_tmp, -2)
   25216      611937 :          idata = idata + 1
   25217      611937 :          data_tmp = full_data(idata)
   25218      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25219      611937 :          data_tmp = IAND(data_tmp, mask_left(2))
   25220      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25221      611937 :          ipack = ipack + 1
   25222      611937 :          packed_data(ipack) = pack_tmp
   25223      611937 :          data_tmp = full_data(idata)
   25224      611937 :          pack_tmp = ISHFT(data_tmp, 32)
   25225      611937 :          pack_tmp = ISHFT(pack_tmp, -32)
   25226      611937 :          idata = idata + 1
   25227      611937 :          data_tmp = full_data(idata)
   25228      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25229      611937 :          data_tmp = IAND(data_tmp, mask_left(32))
   25230      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25231      611937 :          ipack = ipack + 1
   25232      611937 :          packed_data(ipack) = pack_tmp
   25233      611937 :          data_tmp = full_data(idata)
   25234      611937 :          pack_tmp = ISHFT(data_tmp, 62)
   25235      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25236      611937 :          idata = idata + 1
   25237      611937 :          data_tmp = full_data(idata)
   25238      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25239      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25240      611937 :          pack_tmp = ISHFT(pack_tmp, -28)
   25241      611937 :          idata = idata + 1
   25242      611937 :          data_tmp = full_data(idata)
   25243      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25244      611937 :          data_tmp = IAND(data_tmp, mask_left(28))
   25245      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25246      611937 :          ipack = ipack + 1
   25247      611937 :          packed_data(ipack) = pack_tmp
   25248      611937 :          data_tmp = full_data(idata)
   25249      611937 :          pack_tmp = ISHFT(data_tmp, 58)
   25250      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25251      611937 :          idata = idata + 1
   25252      611937 :          data_tmp = full_data(idata)
   25253      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25254      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25255      611937 :          pack_tmp = ISHFT(pack_tmp, -24)
   25256      611937 :          idata = idata + 1
   25257      611937 :          data_tmp = full_data(idata)
   25258      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25259      611937 :          data_tmp = IAND(data_tmp, mask_left(24))
   25260      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25261      611937 :          ipack = ipack + 1
   25262      611937 :          packed_data(ipack) = pack_tmp
   25263      611937 :          data_tmp = full_data(idata)
   25264      611937 :          pack_tmp = ISHFT(data_tmp, 54)
   25265      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25266      611937 :          idata = idata + 1
   25267      611937 :          data_tmp = full_data(idata)
   25268      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25269      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25270      611937 :          pack_tmp = ISHFT(pack_tmp, -20)
   25271      611937 :          idata = idata + 1
   25272      611937 :          data_tmp = full_data(idata)
   25273      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25274      611937 :          data_tmp = IAND(data_tmp, mask_left(20))
   25275      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25276      611937 :          ipack = ipack + 1
   25277      611937 :          packed_data(ipack) = pack_tmp
   25278      611937 :          data_tmp = full_data(idata)
   25279      611937 :          pack_tmp = ISHFT(data_tmp, 50)
   25280      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25281      611937 :          idata = idata + 1
   25282      611937 :          data_tmp = full_data(idata)
   25283      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25284      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25285      611937 :          pack_tmp = ISHFT(pack_tmp, -16)
   25286      611937 :          idata = idata + 1
   25287      611937 :          data_tmp = full_data(idata)
   25288      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25289      611937 :          data_tmp = IAND(data_tmp, mask_left(16))
   25290      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25291      611937 :          ipack = ipack + 1
   25292      611937 :          packed_data(ipack) = pack_tmp
   25293      611937 :          data_tmp = full_data(idata)
   25294      611937 :          pack_tmp = ISHFT(data_tmp, 46)
   25295      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25296      611937 :          idata = idata + 1
   25297      611937 :          data_tmp = full_data(idata)
   25298      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25299      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25300      611937 :          pack_tmp = ISHFT(pack_tmp, -12)
   25301      611937 :          idata = idata + 1
   25302      611937 :          data_tmp = full_data(idata)
   25303      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25304      611937 :          data_tmp = IAND(data_tmp, mask_left(12))
   25305      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25306      611937 :          ipack = ipack + 1
   25307      611937 :          packed_data(ipack) = pack_tmp
   25308      611937 :          data_tmp = full_data(idata)
   25309      611937 :          pack_tmp = ISHFT(data_tmp, 42)
   25310      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25311      611937 :          idata = idata + 1
   25312      611937 :          data_tmp = full_data(idata)
   25313      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25314      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25315      611937 :          pack_tmp = ISHFT(pack_tmp, -8)
   25316      611937 :          idata = idata + 1
   25317      611937 :          data_tmp = full_data(idata)
   25318      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25319      611937 :          data_tmp = IAND(data_tmp, mask_left(8))
   25320      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25321      611937 :          ipack = ipack + 1
   25322      611937 :          packed_data(ipack) = pack_tmp
   25323      611937 :          data_tmp = full_data(idata)
   25324      611937 :          pack_tmp = ISHFT(data_tmp, 38)
   25325      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25326      611937 :          idata = idata + 1
   25327      611937 :          data_tmp = full_data(idata)
   25328      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25329      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25330      611937 :          pack_tmp = ISHFT(pack_tmp, -4)
   25331      611937 :          idata = idata + 1
   25332      611937 :          data_tmp = full_data(idata)
   25333      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25334      611937 :          data_tmp = IAND(data_tmp, mask_left(4))
   25335      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25336      611937 :          ipack = ipack + 1
   25337      611937 :          packed_data(ipack) = pack_tmp
   25338      611937 :          data_tmp = full_data(idata)
   25339      611937 :          pack_tmp = ISHFT(data_tmp, 34)
   25340      611937 :          pack_tmp = ISHFT(pack_tmp, -34)
   25341      611937 :          idata = idata + 1
   25342      611937 :          data_tmp = full_data(idata)
   25343      611937 :          data_tmp = ISHFT(data_tmp, 30)
   25344      611937 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25345             :          pack_tmp = ISHFT(pack_tmp, 0)
   25346      611937 :          pack_tmp = ISHFT(pack_tmp, 0)
   25347      611937 :          ipack = ipack + 1
   25348      612204 :          packed_data(ipack) = pack_tmp
   25349             :       END DO
   25350       46930 :       IF (Ndata_rep < Ndata) THEN
   25351       16094 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25352             :       END IF
   25353       46930 :    END SUBROUTINE ints2bits_34
   25354             : 
   25355             : ! **************************************************************************************************
   25356             : !> \brief ...
   25357             : !> \param Ndata ...
   25358             : !> \param packed_data ...
   25359             : !> \param full_data ...
   25360             : ! **************************************************************************************************
   25361      218091 :    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      218091 :       ipack = 0
   25372      218091 :       idata = 0
   25373      218091 :       pack_tmp = 0
   25374      218091 :       Ndata_rep = (Ndata/64)*64
   25375      218091 :       DO kdata = 1, Ndata_rep, 64
   25376     2747155 :          idata = idata + 1
   25377     2747155 :          data_tmp = ISHFT(pack_tmp, 34)
   25378     2747155 :          ipack = ipack + 1
   25379     2747155 :          pack_tmp = packed_data(ipack)
   25380     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25381     2747155 :          pack_tmp = ISHFT(pack_tmp, -34)
   25382     2747155 :          idata = idata + 1
   25383     2747155 :          data_tmp = ISHFT(pack_tmp, 4)
   25384     2747155 :          ipack = ipack + 1
   25385     2747155 :          pack_tmp = packed_data(ipack)
   25386     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25387     2747155 :          pack_tmp = ISHFT(pack_tmp, -4)
   25388     2747155 :          idata = idata + 1
   25389     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25390     2747155 :          full_data(idata) = data_tmp
   25391     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25392     2747155 :          idata = idata + 1
   25393     2747155 :          data_tmp = ISHFT(pack_tmp, 8)
   25394     2747155 :          ipack = ipack + 1
   25395     2747155 :          pack_tmp = packed_data(ipack)
   25396     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25397     2747155 :          pack_tmp = ISHFT(pack_tmp, -8)
   25398     2747155 :          idata = idata + 1
   25399     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25400     2747155 :          full_data(idata) = data_tmp
   25401     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25402     2747155 :          idata = idata + 1
   25403     2747155 :          data_tmp = ISHFT(pack_tmp, 12)
   25404     2747155 :          ipack = ipack + 1
   25405     2747155 :          pack_tmp = packed_data(ipack)
   25406     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25407     2747155 :          pack_tmp = ISHFT(pack_tmp, -12)
   25408     2747155 :          idata = idata + 1
   25409     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25410     2747155 :          full_data(idata) = data_tmp
   25411     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25412     2747155 :          idata = idata + 1
   25413     2747155 :          data_tmp = ISHFT(pack_tmp, 16)
   25414     2747155 :          ipack = ipack + 1
   25415     2747155 :          pack_tmp = packed_data(ipack)
   25416     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25417     2747155 :          pack_tmp = ISHFT(pack_tmp, -16)
   25418     2747155 :          idata = idata + 1
   25419     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25420     2747155 :          full_data(idata) = data_tmp
   25421     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25422     2747155 :          idata = idata + 1
   25423     2747155 :          data_tmp = ISHFT(pack_tmp, 20)
   25424     2747155 :          ipack = ipack + 1
   25425     2747155 :          pack_tmp = packed_data(ipack)
   25426     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25427     2747155 :          pack_tmp = ISHFT(pack_tmp, -20)
   25428     2747155 :          idata = idata + 1
   25429     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25430     2747155 :          full_data(idata) = data_tmp
   25431     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25432     2747155 :          idata = idata + 1
   25433     2747155 :          data_tmp = ISHFT(pack_tmp, 24)
   25434     2747155 :          ipack = ipack + 1
   25435     2747155 :          pack_tmp = packed_data(ipack)
   25436     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25437     2747155 :          pack_tmp = ISHFT(pack_tmp, -24)
   25438     2747155 :          idata = idata + 1
   25439     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25440     2747155 :          full_data(idata) = data_tmp
   25441     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25442     2747155 :          idata = idata + 1
   25443     2747155 :          data_tmp = ISHFT(pack_tmp, 28)
   25444     2747155 :          ipack = ipack + 1
   25445     2747155 :          pack_tmp = packed_data(ipack)
   25446     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25447     2747155 :          pack_tmp = ISHFT(pack_tmp, -28)
   25448     2747155 :          idata = idata + 1
   25449     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25450     2747155 :          full_data(idata) = data_tmp
   25451     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25452     2747155 :          idata = idata + 1
   25453     2747155 :          data_tmp = ISHFT(pack_tmp, 32)
   25454     2747155 :          ipack = ipack + 1
   25455     2747155 :          pack_tmp = packed_data(ipack)
   25456     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25457     2747155 :          pack_tmp = ISHFT(pack_tmp, -32)
   25458     2747155 :          idata = idata + 1
   25459     2747155 :          data_tmp = ISHFT(pack_tmp, 2)
   25460     2747155 :          ipack = ipack + 1
   25461     2747155 :          pack_tmp = packed_data(ipack)
   25462     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25463     2747155 :          pack_tmp = ISHFT(pack_tmp, -2)
   25464     2747155 :          idata = idata + 1
   25465     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25466     2747155 :          full_data(idata) = data_tmp
   25467     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25468     2747155 :          idata = idata + 1
   25469     2747155 :          data_tmp = ISHFT(pack_tmp, 6)
   25470     2747155 :          ipack = ipack + 1
   25471     2747155 :          pack_tmp = packed_data(ipack)
   25472     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25473     2747155 :          pack_tmp = ISHFT(pack_tmp, -6)
   25474     2747155 :          idata = idata + 1
   25475     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25476     2747155 :          full_data(idata) = data_tmp
   25477     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25478     2747155 :          idata = idata + 1
   25479     2747155 :          data_tmp = ISHFT(pack_tmp, 10)
   25480     2747155 :          ipack = ipack + 1
   25481     2747155 :          pack_tmp = packed_data(ipack)
   25482     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25483     2747155 :          pack_tmp = ISHFT(pack_tmp, -10)
   25484     2747155 :          idata = idata + 1
   25485     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25486     2747155 :          full_data(idata) = data_tmp
   25487     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25488     2747155 :          idata = idata + 1
   25489     2747155 :          data_tmp = ISHFT(pack_tmp, 14)
   25490     2747155 :          ipack = ipack + 1
   25491     2747155 :          pack_tmp = packed_data(ipack)
   25492     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25493     2747155 :          pack_tmp = ISHFT(pack_tmp, -14)
   25494     2747155 :          idata = idata + 1
   25495     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25496     2747155 :          full_data(idata) = data_tmp
   25497     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25498     2747155 :          idata = idata + 1
   25499     2747155 :          data_tmp = ISHFT(pack_tmp, 18)
   25500     2747155 :          ipack = ipack + 1
   25501     2747155 :          pack_tmp = packed_data(ipack)
   25502     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25503     2747155 :          pack_tmp = ISHFT(pack_tmp, -18)
   25504     2747155 :          idata = idata + 1
   25505     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25506     2747155 :          full_data(idata) = data_tmp
   25507     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25508     2747155 :          idata = idata + 1
   25509     2747155 :          data_tmp = ISHFT(pack_tmp, 22)
   25510     2747155 :          ipack = ipack + 1
   25511     2747155 :          pack_tmp = packed_data(ipack)
   25512     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25513     2747155 :          pack_tmp = ISHFT(pack_tmp, -22)
   25514     2747155 :          idata = idata + 1
   25515     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25516     2747155 :          full_data(idata) = data_tmp
   25517     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25518     2747155 :          idata = idata + 1
   25519     2747155 :          data_tmp = ISHFT(pack_tmp, 26)
   25520     2747155 :          ipack = ipack + 1
   25521     2747155 :          pack_tmp = packed_data(ipack)
   25522     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25523     2747155 :          pack_tmp = ISHFT(pack_tmp, -26)
   25524     2747155 :          idata = idata + 1
   25525     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25526     2747155 :          full_data(idata) = data_tmp
   25527     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25528     2747155 :          idata = idata + 1
   25529     2747155 :          data_tmp = ISHFT(pack_tmp, 30)
   25530     2747155 :          ipack = ipack + 1
   25531     2747155 :          pack_tmp = packed_data(ipack)
   25532     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25533     2747155 :          pack_tmp = ISHFT(pack_tmp, -30)
   25534     2747155 :          idata = idata + 1
   25535     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25536     2747155 :          full_data(idata) = data_tmp
   25537     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25538     2747155 :          idata = idata + 1
   25539     2747155 :          data_tmp = ISHFT(pack_tmp, 34)
   25540     2747155 :          ipack = ipack + 1
   25541     2747155 :          pack_tmp = packed_data(ipack)
   25542     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25543     2747155 :          pack_tmp = ISHFT(pack_tmp, -34)
   25544     2747155 :          idata = idata + 1
   25545     2747155 :          data_tmp = ISHFT(pack_tmp, 4)
   25546     2747155 :          ipack = ipack + 1
   25547     2747155 :          pack_tmp = packed_data(ipack)
   25548     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25549     2747155 :          pack_tmp = ISHFT(pack_tmp, -4)
   25550     2747155 :          idata = idata + 1
   25551     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25552     2747155 :          full_data(idata) = data_tmp
   25553     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25554     2747155 :          idata = idata + 1
   25555     2747155 :          data_tmp = ISHFT(pack_tmp, 8)
   25556     2747155 :          ipack = ipack + 1
   25557     2747155 :          pack_tmp = packed_data(ipack)
   25558     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25559     2747155 :          pack_tmp = ISHFT(pack_tmp, -8)
   25560     2747155 :          idata = idata + 1
   25561     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25562     2747155 :          full_data(idata) = data_tmp
   25563     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25564     2747155 :          idata = idata + 1
   25565     2747155 :          data_tmp = ISHFT(pack_tmp, 12)
   25566     2747155 :          ipack = ipack + 1
   25567     2747155 :          pack_tmp = packed_data(ipack)
   25568     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25569     2747155 :          pack_tmp = ISHFT(pack_tmp, -12)
   25570     2747155 :          idata = idata + 1
   25571     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25572     2747155 :          full_data(idata) = data_tmp
   25573     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25574     2747155 :          idata = idata + 1
   25575     2747155 :          data_tmp = ISHFT(pack_tmp, 16)
   25576     2747155 :          ipack = ipack + 1
   25577     2747155 :          pack_tmp = packed_data(ipack)
   25578     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25579     2747155 :          pack_tmp = ISHFT(pack_tmp, -16)
   25580     2747155 :          idata = idata + 1
   25581     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25582     2747155 :          full_data(idata) = data_tmp
   25583     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25584     2747155 :          idata = idata + 1
   25585     2747155 :          data_tmp = ISHFT(pack_tmp, 20)
   25586     2747155 :          ipack = ipack + 1
   25587     2747155 :          pack_tmp = packed_data(ipack)
   25588     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25589     2747155 :          pack_tmp = ISHFT(pack_tmp, -20)
   25590     2747155 :          idata = idata + 1
   25591     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25592     2747155 :          full_data(idata) = data_tmp
   25593     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25594     2747155 :          idata = idata + 1
   25595     2747155 :          data_tmp = ISHFT(pack_tmp, 24)
   25596     2747155 :          ipack = ipack + 1
   25597     2747155 :          pack_tmp = packed_data(ipack)
   25598     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25599     2747155 :          pack_tmp = ISHFT(pack_tmp, -24)
   25600     2747155 :          idata = idata + 1
   25601     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25602     2747155 :          full_data(idata) = data_tmp
   25603     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25604     2747155 :          idata = idata + 1
   25605     2747155 :          data_tmp = ISHFT(pack_tmp, 28)
   25606     2747155 :          ipack = ipack + 1
   25607     2747155 :          pack_tmp = packed_data(ipack)
   25608     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25609     2747155 :          pack_tmp = ISHFT(pack_tmp, -28)
   25610     2747155 :          idata = idata + 1
   25611     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25612     2747155 :          full_data(idata) = data_tmp
   25613     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25614     2747155 :          idata = idata + 1
   25615     2747155 :          data_tmp = ISHFT(pack_tmp, 32)
   25616     2747155 :          ipack = ipack + 1
   25617     2747155 :          pack_tmp = packed_data(ipack)
   25618     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25619     2747155 :          pack_tmp = ISHFT(pack_tmp, -32)
   25620     2747155 :          idata = idata + 1
   25621     2747155 :          data_tmp = ISHFT(pack_tmp, 2)
   25622     2747155 :          ipack = ipack + 1
   25623     2747155 :          pack_tmp = packed_data(ipack)
   25624     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25625     2747155 :          pack_tmp = ISHFT(pack_tmp, -2)
   25626     2747155 :          idata = idata + 1
   25627     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25628     2747155 :          full_data(idata) = data_tmp
   25629     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25630     2747155 :          idata = idata + 1
   25631     2747155 :          data_tmp = ISHFT(pack_tmp, 6)
   25632     2747155 :          ipack = ipack + 1
   25633     2747155 :          pack_tmp = packed_data(ipack)
   25634     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25635     2747155 :          pack_tmp = ISHFT(pack_tmp, -6)
   25636     2747155 :          idata = idata + 1
   25637     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25638     2747155 :          full_data(idata) = data_tmp
   25639     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25640     2747155 :          idata = idata + 1
   25641     2747155 :          data_tmp = ISHFT(pack_tmp, 10)
   25642     2747155 :          ipack = ipack + 1
   25643     2747155 :          pack_tmp = packed_data(ipack)
   25644     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25645     2747155 :          pack_tmp = ISHFT(pack_tmp, -10)
   25646     2747155 :          idata = idata + 1
   25647     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25648     2747155 :          full_data(idata) = data_tmp
   25649     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25650     2747155 :          idata = idata + 1
   25651     2747155 :          data_tmp = ISHFT(pack_tmp, 14)
   25652     2747155 :          ipack = ipack + 1
   25653     2747155 :          pack_tmp = packed_data(ipack)
   25654     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25655     2747155 :          pack_tmp = ISHFT(pack_tmp, -14)
   25656     2747155 :          idata = idata + 1
   25657     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25658     2747155 :          full_data(idata) = data_tmp
   25659     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25660     2747155 :          idata = idata + 1
   25661     2747155 :          data_tmp = ISHFT(pack_tmp, 18)
   25662     2747155 :          ipack = ipack + 1
   25663     2747155 :          pack_tmp = packed_data(ipack)
   25664     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25665     2747155 :          pack_tmp = ISHFT(pack_tmp, -18)
   25666     2747155 :          idata = idata + 1
   25667     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25668     2747155 :          full_data(idata) = data_tmp
   25669     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25670     2747155 :          idata = idata + 1
   25671     2747155 :          data_tmp = ISHFT(pack_tmp, 22)
   25672     2747155 :          ipack = ipack + 1
   25673     2747155 :          pack_tmp = packed_data(ipack)
   25674     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25675     2747155 :          pack_tmp = ISHFT(pack_tmp, -22)
   25676     2747155 :          idata = idata + 1
   25677     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25678     2747155 :          full_data(idata) = data_tmp
   25679     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25680     2747155 :          idata = idata + 1
   25681     2747155 :          data_tmp = ISHFT(pack_tmp, 26)
   25682     2747155 :          ipack = ipack + 1
   25683     2747155 :          pack_tmp = packed_data(ipack)
   25684     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25685     2747155 :          pack_tmp = ISHFT(pack_tmp, -26)
   25686     2747155 :          idata = idata + 1
   25687     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25688     2747155 :          full_data(idata) = data_tmp
   25689     2747155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25690     2747155 :          idata = idata + 1
   25691     2747155 :          data_tmp = ISHFT(pack_tmp, 30)
   25692     2747155 :          ipack = ipack + 1
   25693     2747155 :          pack_tmp = packed_data(ipack)
   25694     2747155 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25695     2747155 :          pack_tmp = ISHFT(pack_tmp, -30)
   25696     2747155 :          idata = idata + 1
   25697     2747155 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25698     2747155 :          full_data(idata) = data_tmp
   25699     2748321 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25700             :       END DO
   25701      218091 :       IF (Ndata_rep < Ndata) THEN
   25702       85914 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25703             :       END IF
   25704      218091 :    END SUBROUTINE bits2ints_34
   25705             : 
   25706             : ! **************************************************************************************************
   25707             : !> \brief ...
   25708             : !> \param Ndata ...
   25709             : !> \param packed_data ...
   25710             : !> \param full_data ...
   25711             : ! **************************************************************************************************
   25712       47196 :    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       47196 :       idata = 0
   25723       47196 :       ipack = 0
   25724       47196 :       Ndata_rep = (Ndata/64)*64
   25725       47196 :       DO kdata = 1, Ndata_rep, 64
   25726      605764 :          pack_tmp = 0
   25727      605764 :          idata = idata + 1
   25728      605764 :          data_tmp = full_data(idata)
   25729      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25730      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25731      605764 :          pack_tmp = ISHFT(pack_tmp, -29)
   25732      605764 :          idata = idata + 1
   25733      605764 :          data_tmp = full_data(idata)
   25734      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25735      605764 :          data_tmp = IAND(data_tmp, mask_left(29))
   25736      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25737      605764 :          ipack = ipack + 1
   25738      605764 :          packed_data(ipack) = pack_tmp
   25739      605764 :          data_tmp = full_data(idata)
   25740      605764 :          pack_tmp = ISHFT(data_tmp, 58)
   25741      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25742      605764 :          idata = idata + 1
   25743      605764 :          data_tmp = full_data(idata)
   25744      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25745      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25746      605764 :          pack_tmp = ISHFT(pack_tmp, -23)
   25747      605764 :          idata = idata + 1
   25748      605764 :          data_tmp = full_data(idata)
   25749      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25750      605764 :          data_tmp = IAND(data_tmp, mask_left(23))
   25751      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25752      605764 :          ipack = ipack + 1
   25753      605764 :          packed_data(ipack) = pack_tmp
   25754      605764 :          data_tmp = full_data(idata)
   25755      605764 :          pack_tmp = ISHFT(data_tmp, 52)
   25756      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25757      605764 :          idata = idata + 1
   25758      605764 :          data_tmp = full_data(idata)
   25759      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25760      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25761      605764 :          pack_tmp = ISHFT(pack_tmp, -17)
   25762      605764 :          idata = idata + 1
   25763      605764 :          data_tmp = full_data(idata)
   25764      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25765      605764 :          data_tmp = IAND(data_tmp, mask_left(17))
   25766      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25767      605764 :          ipack = ipack + 1
   25768      605764 :          packed_data(ipack) = pack_tmp
   25769      605764 :          data_tmp = full_data(idata)
   25770      605764 :          pack_tmp = ISHFT(data_tmp, 46)
   25771      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25772      605764 :          idata = idata + 1
   25773      605764 :          data_tmp = full_data(idata)
   25774      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25775      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25776      605764 :          pack_tmp = ISHFT(pack_tmp, -11)
   25777      605764 :          idata = idata + 1
   25778      605764 :          data_tmp = full_data(idata)
   25779      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25780      605764 :          data_tmp = IAND(data_tmp, mask_left(11))
   25781      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25782      605764 :          ipack = ipack + 1
   25783      605764 :          packed_data(ipack) = pack_tmp
   25784      605764 :          data_tmp = full_data(idata)
   25785      605764 :          pack_tmp = ISHFT(data_tmp, 40)
   25786      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25787      605764 :          idata = idata + 1
   25788      605764 :          data_tmp = full_data(idata)
   25789      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25790      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25791      605764 :          pack_tmp = ISHFT(pack_tmp, -5)
   25792      605764 :          idata = idata + 1
   25793      605764 :          data_tmp = full_data(idata)
   25794      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25795      605764 :          data_tmp = IAND(data_tmp, mask_left(5))
   25796      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25797      605764 :          ipack = ipack + 1
   25798      605764 :          packed_data(ipack) = pack_tmp
   25799      605764 :          data_tmp = full_data(idata)
   25800      605764 :          pack_tmp = ISHFT(data_tmp, 34)
   25801      605764 :          pack_tmp = ISHFT(pack_tmp, -34)
   25802      605764 :          idata = idata + 1
   25803      605764 :          data_tmp = full_data(idata)
   25804      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25805      605764 :          data_tmp = IAND(data_tmp, mask_left(34))
   25806      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25807      605764 :          ipack = ipack + 1
   25808      605764 :          packed_data(ipack) = pack_tmp
   25809      605764 :          data_tmp = full_data(idata)
   25810      605764 :          pack_tmp = ISHFT(data_tmp, 63)
   25811      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25812      605764 :          idata = idata + 1
   25813      605764 :          data_tmp = full_data(idata)
   25814      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25815      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25816      605764 :          pack_tmp = ISHFT(pack_tmp, -28)
   25817      605764 :          idata = idata + 1
   25818      605764 :          data_tmp = full_data(idata)
   25819      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25820      605764 :          data_tmp = IAND(data_tmp, mask_left(28))
   25821      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25822      605764 :          ipack = ipack + 1
   25823      605764 :          packed_data(ipack) = pack_tmp
   25824      605764 :          data_tmp = full_data(idata)
   25825      605764 :          pack_tmp = ISHFT(data_tmp, 57)
   25826      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25827      605764 :          idata = idata + 1
   25828      605764 :          data_tmp = full_data(idata)
   25829      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25830      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25831      605764 :          pack_tmp = ISHFT(pack_tmp, -22)
   25832      605764 :          idata = idata + 1
   25833      605764 :          data_tmp = full_data(idata)
   25834      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25835      605764 :          data_tmp = IAND(data_tmp, mask_left(22))
   25836      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25837      605764 :          ipack = ipack + 1
   25838      605764 :          packed_data(ipack) = pack_tmp
   25839      605764 :          data_tmp = full_data(idata)
   25840      605764 :          pack_tmp = ISHFT(data_tmp, 51)
   25841      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25842      605764 :          idata = idata + 1
   25843      605764 :          data_tmp = full_data(idata)
   25844      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25845      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25846      605764 :          pack_tmp = ISHFT(pack_tmp, -16)
   25847      605764 :          idata = idata + 1
   25848      605764 :          data_tmp = full_data(idata)
   25849      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25850      605764 :          data_tmp = IAND(data_tmp, mask_left(16))
   25851      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25852      605764 :          ipack = ipack + 1
   25853      605764 :          packed_data(ipack) = pack_tmp
   25854      605764 :          data_tmp = full_data(idata)
   25855      605764 :          pack_tmp = ISHFT(data_tmp, 45)
   25856      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25857      605764 :          idata = idata + 1
   25858      605764 :          data_tmp = full_data(idata)
   25859      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25860      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25861      605764 :          pack_tmp = ISHFT(pack_tmp, -10)
   25862      605764 :          idata = idata + 1
   25863      605764 :          data_tmp = full_data(idata)
   25864      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25865      605764 :          data_tmp = IAND(data_tmp, mask_left(10))
   25866      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25867      605764 :          ipack = ipack + 1
   25868      605764 :          packed_data(ipack) = pack_tmp
   25869      605764 :          data_tmp = full_data(idata)
   25870      605764 :          pack_tmp = ISHFT(data_tmp, 39)
   25871      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25872      605764 :          idata = idata + 1
   25873      605764 :          data_tmp = full_data(idata)
   25874      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25875      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25876      605764 :          pack_tmp = ISHFT(pack_tmp, -4)
   25877      605764 :          idata = idata + 1
   25878      605764 :          data_tmp = full_data(idata)
   25879      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25880      605764 :          data_tmp = IAND(data_tmp, mask_left(4))
   25881      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25882      605764 :          ipack = ipack + 1
   25883      605764 :          packed_data(ipack) = pack_tmp
   25884      605764 :          data_tmp = full_data(idata)
   25885      605764 :          pack_tmp = ISHFT(data_tmp, 33)
   25886      605764 :          pack_tmp = ISHFT(pack_tmp, -33)
   25887      605764 :          idata = idata + 1
   25888      605764 :          data_tmp = full_data(idata)
   25889      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25890      605764 :          data_tmp = IAND(data_tmp, mask_left(33))
   25891      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25892      605764 :          ipack = ipack + 1
   25893      605764 :          packed_data(ipack) = pack_tmp
   25894      605764 :          data_tmp = full_data(idata)
   25895      605764 :          pack_tmp = ISHFT(data_tmp, 62)
   25896      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25897      605764 :          idata = idata + 1
   25898      605764 :          data_tmp = full_data(idata)
   25899      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25900      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25901      605764 :          pack_tmp = ISHFT(pack_tmp, -27)
   25902      605764 :          idata = idata + 1
   25903      605764 :          data_tmp = full_data(idata)
   25904      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25905      605764 :          data_tmp = IAND(data_tmp, mask_left(27))
   25906      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25907      605764 :          ipack = ipack + 1
   25908      605764 :          packed_data(ipack) = pack_tmp
   25909      605764 :          data_tmp = full_data(idata)
   25910      605764 :          pack_tmp = ISHFT(data_tmp, 56)
   25911      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25912      605764 :          idata = idata + 1
   25913      605764 :          data_tmp = full_data(idata)
   25914      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25915      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25916      605764 :          pack_tmp = ISHFT(pack_tmp, -21)
   25917      605764 :          idata = idata + 1
   25918      605764 :          data_tmp = full_data(idata)
   25919      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25920      605764 :          data_tmp = IAND(data_tmp, mask_left(21))
   25921      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25922      605764 :          ipack = ipack + 1
   25923      605764 :          packed_data(ipack) = pack_tmp
   25924      605764 :          data_tmp = full_data(idata)
   25925      605764 :          pack_tmp = ISHFT(data_tmp, 50)
   25926      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25927      605764 :          idata = idata + 1
   25928      605764 :          data_tmp = full_data(idata)
   25929      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25930      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25931      605764 :          pack_tmp = ISHFT(pack_tmp, -15)
   25932      605764 :          idata = idata + 1
   25933      605764 :          data_tmp = full_data(idata)
   25934      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25935      605764 :          data_tmp = IAND(data_tmp, mask_left(15))
   25936      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25937      605764 :          ipack = ipack + 1
   25938      605764 :          packed_data(ipack) = pack_tmp
   25939      605764 :          data_tmp = full_data(idata)
   25940      605764 :          pack_tmp = ISHFT(data_tmp, 44)
   25941      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25942      605764 :          idata = idata + 1
   25943      605764 :          data_tmp = full_data(idata)
   25944      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25945      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25946      605764 :          pack_tmp = ISHFT(pack_tmp, -9)
   25947      605764 :          idata = idata + 1
   25948      605764 :          data_tmp = full_data(idata)
   25949      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25950      605764 :          data_tmp = IAND(data_tmp, mask_left(9))
   25951      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25952      605764 :          ipack = ipack + 1
   25953      605764 :          packed_data(ipack) = pack_tmp
   25954      605764 :          data_tmp = full_data(idata)
   25955      605764 :          pack_tmp = ISHFT(data_tmp, 38)
   25956      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25957      605764 :          idata = idata + 1
   25958      605764 :          data_tmp = full_data(idata)
   25959      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25960      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25961      605764 :          pack_tmp = ISHFT(pack_tmp, -3)
   25962      605764 :          idata = idata + 1
   25963      605764 :          data_tmp = full_data(idata)
   25964      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25965      605764 :          data_tmp = IAND(data_tmp, mask_left(3))
   25966      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25967      605764 :          ipack = ipack + 1
   25968      605764 :          packed_data(ipack) = pack_tmp
   25969      605764 :          data_tmp = full_data(idata)
   25970      605764 :          pack_tmp = ISHFT(data_tmp, 32)
   25971      605764 :          pack_tmp = ISHFT(pack_tmp, -32)
   25972      605764 :          idata = idata + 1
   25973      605764 :          data_tmp = full_data(idata)
   25974      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25975      605764 :          data_tmp = IAND(data_tmp, mask_left(32))
   25976      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25977      605764 :          ipack = ipack + 1
   25978      605764 :          packed_data(ipack) = pack_tmp
   25979      605764 :          data_tmp = full_data(idata)
   25980      605764 :          pack_tmp = ISHFT(data_tmp, 61)
   25981      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25982      605764 :          idata = idata + 1
   25983      605764 :          data_tmp = full_data(idata)
   25984      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25985      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25986      605764 :          pack_tmp = ISHFT(pack_tmp, -26)
   25987      605764 :          idata = idata + 1
   25988      605764 :          data_tmp = full_data(idata)
   25989      605764 :          data_tmp = ISHFT(data_tmp, 29)
   25990      605764 :          data_tmp = IAND(data_tmp, mask_left(26))
   25991      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25992      605764 :          ipack = ipack + 1
   25993      605764 :          packed_data(ipack) = pack_tmp
   25994      605764 :          data_tmp = full_data(idata)
   25995      605764 :          pack_tmp = ISHFT(data_tmp, 55)
   25996      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   25997      605764 :          idata = idata + 1
   25998      605764 :          data_tmp = full_data(idata)
   25999      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26000      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26001      605764 :          pack_tmp = ISHFT(pack_tmp, -20)
   26002      605764 :          idata = idata + 1
   26003      605764 :          data_tmp = full_data(idata)
   26004      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26005      605764 :          data_tmp = IAND(data_tmp, mask_left(20))
   26006      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26007      605764 :          ipack = ipack + 1
   26008      605764 :          packed_data(ipack) = pack_tmp
   26009      605764 :          data_tmp = full_data(idata)
   26010      605764 :          pack_tmp = ISHFT(data_tmp, 49)
   26011      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26012      605764 :          idata = idata + 1
   26013      605764 :          data_tmp = full_data(idata)
   26014      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26015      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26016      605764 :          pack_tmp = ISHFT(pack_tmp, -14)
   26017      605764 :          idata = idata + 1
   26018      605764 :          data_tmp = full_data(idata)
   26019      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26020      605764 :          data_tmp = IAND(data_tmp, mask_left(14))
   26021      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26022      605764 :          ipack = ipack + 1
   26023      605764 :          packed_data(ipack) = pack_tmp
   26024      605764 :          data_tmp = full_data(idata)
   26025      605764 :          pack_tmp = ISHFT(data_tmp, 43)
   26026      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26027      605764 :          idata = idata + 1
   26028      605764 :          data_tmp = full_data(idata)
   26029      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26030      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26031      605764 :          pack_tmp = ISHFT(pack_tmp, -8)
   26032      605764 :          idata = idata + 1
   26033      605764 :          data_tmp = full_data(idata)
   26034      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26035      605764 :          data_tmp = IAND(data_tmp, mask_left(8))
   26036      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26037      605764 :          ipack = ipack + 1
   26038      605764 :          packed_data(ipack) = pack_tmp
   26039      605764 :          data_tmp = full_data(idata)
   26040      605764 :          pack_tmp = ISHFT(data_tmp, 37)
   26041      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26042      605764 :          idata = idata + 1
   26043      605764 :          data_tmp = full_data(idata)
   26044      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26045      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26046      605764 :          pack_tmp = ISHFT(pack_tmp, -2)
   26047      605764 :          idata = idata + 1
   26048      605764 :          data_tmp = full_data(idata)
   26049      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26050      605764 :          data_tmp = IAND(data_tmp, mask_left(2))
   26051      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26052      605764 :          ipack = ipack + 1
   26053      605764 :          packed_data(ipack) = pack_tmp
   26054      605764 :          data_tmp = full_data(idata)
   26055      605764 :          pack_tmp = ISHFT(data_tmp, 31)
   26056      605764 :          pack_tmp = ISHFT(pack_tmp, -31)
   26057      605764 :          idata = idata + 1
   26058      605764 :          data_tmp = full_data(idata)
   26059      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26060      605764 :          data_tmp = IAND(data_tmp, mask_left(31))
   26061      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26062      605764 :          ipack = ipack + 1
   26063      605764 :          packed_data(ipack) = pack_tmp
   26064      605764 :          data_tmp = full_data(idata)
   26065      605764 :          pack_tmp = ISHFT(data_tmp, 60)
   26066      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26067      605764 :          idata = idata + 1
   26068      605764 :          data_tmp = full_data(idata)
   26069      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26070      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26071      605764 :          pack_tmp = ISHFT(pack_tmp, -25)
   26072      605764 :          idata = idata + 1
   26073      605764 :          data_tmp = full_data(idata)
   26074      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26075      605764 :          data_tmp = IAND(data_tmp, mask_left(25))
   26076      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26077      605764 :          ipack = ipack + 1
   26078      605764 :          packed_data(ipack) = pack_tmp
   26079      605764 :          data_tmp = full_data(idata)
   26080      605764 :          pack_tmp = ISHFT(data_tmp, 54)
   26081      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26082      605764 :          idata = idata + 1
   26083      605764 :          data_tmp = full_data(idata)
   26084      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26085      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26086      605764 :          pack_tmp = ISHFT(pack_tmp, -19)
   26087      605764 :          idata = idata + 1
   26088      605764 :          data_tmp = full_data(idata)
   26089      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26090      605764 :          data_tmp = IAND(data_tmp, mask_left(19))
   26091      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26092      605764 :          ipack = ipack + 1
   26093      605764 :          packed_data(ipack) = pack_tmp
   26094      605764 :          data_tmp = full_data(idata)
   26095      605764 :          pack_tmp = ISHFT(data_tmp, 48)
   26096      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26097      605764 :          idata = idata + 1
   26098      605764 :          data_tmp = full_data(idata)
   26099      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26100      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26101      605764 :          pack_tmp = ISHFT(pack_tmp, -13)
   26102      605764 :          idata = idata + 1
   26103      605764 :          data_tmp = full_data(idata)
   26104      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26105      605764 :          data_tmp = IAND(data_tmp, mask_left(13))
   26106      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26107      605764 :          ipack = ipack + 1
   26108      605764 :          packed_data(ipack) = pack_tmp
   26109      605764 :          data_tmp = full_data(idata)
   26110      605764 :          pack_tmp = ISHFT(data_tmp, 42)
   26111      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26112      605764 :          idata = idata + 1
   26113      605764 :          data_tmp = full_data(idata)
   26114      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26115      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26116      605764 :          pack_tmp = ISHFT(pack_tmp, -7)
   26117      605764 :          idata = idata + 1
   26118      605764 :          data_tmp = full_data(idata)
   26119      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26120      605764 :          data_tmp = IAND(data_tmp, mask_left(7))
   26121      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26122      605764 :          ipack = ipack + 1
   26123      605764 :          packed_data(ipack) = pack_tmp
   26124      605764 :          data_tmp = full_data(idata)
   26125      605764 :          pack_tmp = ISHFT(data_tmp, 36)
   26126      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26127      605764 :          idata = idata + 1
   26128      605764 :          data_tmp = full_data(idata)
   26129      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26130      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26131      605764 :          pack_tmp = ISHFT(pack_tmp, -1)
   26132      605764 :          idata = idata + 1
   26133      605764 :          data_tmp = full_data(idata)
   26134      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26135      605764 :          data_tmp = IAND(data_tmp, mask_left(1))
   26136      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26137      605764 :          ipack = ipack + 1
   26138      605764 :          packed_data(ipack) = pack_tmp
   26139      605764 :          data_tmp = full_data(idata)
   26140      605764 :          pack_tmp = ISHFT(data_tmp, 30)
   26141      605764 :          pack_tmp = ISHFT(pack_tmp, -30)
   26142      605764 :          idata = idata + 1
   26143      605764 :          data_tmp = full_data(idata)
   26144      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26145      605764 :          data_tmp = IAND(data_tmp, mask_left(30))
   26146      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26147      605764 :          ipack = ipack + 1
   26148      605764 :          packed_data(ipack) = pack_tmp
   26149      605764 :          data_tmp = full_data(idata)
   26150      605764 :          pack_tmp = ISHFT(data_tmp, 59)
   26151      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26152      605764 :          idata = idata + 1
   26153      605764 :          data_tmp = full_data(idata)
   26154      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26155      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26156      605764 :          pack_tmp = ISHFT(pack_tmp, -24)
   26157      605764 :          idata = idata + 1
   26158      605764 :          data_tmp = full_data(idata)
   26159      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26160      605764 :          data_tmp = IAND(data_tmp, mask_left(24))
   26161      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26162      605764 :          ipack = ipack + 1
   26163      605764 :          packed_data(ipack) = pack_tmp
   26164      605764 :          data_tmp = full_data(idata)
   26165      605764 :          pack_tmp = ISHFT(data_tmp, 53)
   26166      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26167      605764 :          idata = idata + 1
   26168      605764 :          data_tmp = full_data(idata)
   26169      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26170      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26171      605764 :          pack_tmp = ISHFT(pack_tmp, -18)
   26172      605764 :          idata = idata + 1
   26173      605764 :          data_tmp = full_data(idata)
   26174      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26175      605764 :          data_tmp = IAND(data_tmp, mask_left(18))
   26176      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26177      605764 :          ipack = ipack + 1
   26178      605764 :          packed_data(ipack) = pack_tmp
   26179      605764 :          data_tmp = full_data(idata)
   26180      605764 :          pack_tmp = ISHFT(data_tmp, 47)
   26181      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26182      605764 :          idata = idata + 1
   26183      605764 :          data_tmp = full_data(idata)
   26184      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26185      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26186      605764 :          pack_tmp = ISHFT(pack_tmp, -12)
   26187      605764 :          idata = idata + 1
   26188      605764 :          data_tmp = full_data(idata)
   26189      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26190      605764 :          data_tmp = IAND(data_tmp, mask_left(12))
   26191      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26192      605764 :          ipack = ipack + 1
   26193      605764 :          packed_data(ipack) = pack_tmp
   26194      605764 :          data_tmp = full_data(idata)
   26195      605764 :          pack_tmp = ISHFT(data_tmp, 41)
   26196      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26197      605764 :          idata = idata + 1
   26198      605764 :          data_tmp = full_data(idata)
   26199      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26200      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26201      605764 :          pack_tmp = ISHFT(pack_tmp, -6)
   26202      605764 :          idata = idata + 1
   26203      605764 :          data_tmp = full_data(idata)
   26204      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26205      605764 :          data_tmp = IAND(data_tmp, mask_left(6))
   26206      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26207      605764 :          ipack = ipack + 1
   26208      605764 :          packed_data(ipack) = pack_tmp
   26209      605764 :          data_tmp = full_data(idata)
   26210      605764 :          pack_tmp = ISHFT(data_tmp, 35)
   26211      605764 :          pack_tmp = ISHFT(pack_tmp, -35)
   26212      605764 :          idata = idata + 1
   26213      605764 :          data_tmp = full_data(idata)
   26214      605764 :          data_tmp = ISHFT(data_tmp, 29)
   26215      605764 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26216             :          pack_tmp = ISHFT(pack_tmp, 0)
   26217      605764 :          pack_tmp = ISHFT(pack_tmp, 0)
   26218      605764 :          ipack = ipack + 1
   26219      606256 :          packed_data(ipack) = pack_tmp
   26220             :       END DO
   26221       47196 :       IF (Ndata_rep < Ndata) THEN
   26222       17368 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26223             :       END IF
   26224       47196 :    END SUBROUTINE ints2bits_35
   26225             : 
   26226             : ! **************************************************************************************************
   26227             : !> \brief ...
   26228             : !> \param Ndata ...
   26229             : !> \param packed_data ...
   26230             : !> \param full_data ...
   26231             : ! **************************************************************************************************
   26232      226489 :    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      226489 :       ipack = 0
   26243      226489 :       idata = 0
   26244      226489 :       pack_tmp = 0
   26245      226489 :       Ndata_rep = (Ndata/64)*64
   26246      226489 :       DO kdata = 1, Ndata_rep, 64
   26247     2800360 :          idata = idata + 1
   26248     2800360 :          data_tmp = ISHFT(pack_tmp, 35)
   26249     2800360 :          ipack = ipack + 1
   26250     2800360 :          pack_tmp = packed_data(ipack)
   26251     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   26252     2800360 :          pack_tmp = ISHFT(pack_tmp, -35)
   26253     2800360 :          idata = idata + 1
   26254     2800360 :          data_tmp = ISHFT(pack_tmp, 6)
   26255     2800360 :          ipack = ipack + 1
   26256     2800360 :          pack_tmp = packed_data(ipack)
   26257     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   26258     2800360 :          pack_tmp = ISHFT(pack_tmp, -6)
   26259     2800360 :          idata = idata + 1
   26260     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26261     2800360 :          full_data(idata) = data_tmp
   26262     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26263     2800360 :          idata = idata + 1
   26264     2800360 :          data_tmp = ISHFT(pack_tmp, 12)
   26265     2800360 :          ipack = ipack + 1
   26266     2800360 :          pack_tmp = packed_data(ipack)
   26267     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   26268     2800360 :          pack_tmp = ISHFT(pack_tmp, -12)
   26269     2800360 :          idata = idata + 1
   26270     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26271     2800360 :          full_data(idata) = data_tmp
   26272     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26273     2800360 :          idata = idata + 1
   26274     2800360 :          data_tmp = ISHFT(pack_tmp, 18)
   26275     2800360 :          ipack = ipack + 1
   26276     2800360 :          pack_tmp = packed_data(ipack)
   26277     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   26278     2800360 :          pack_tmp = ISHFT(pack_tmp, -18)
   26279     2800360 :          idata = idata + 1
   26280     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26281     2800360 :          full_data(idata) = data_tmp
   26282     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26283     2800360 :          idata = idata + 1
   26284     2800360 :          data_tmp = ISHFT(pack_tmp, 24)
   26285     2800360 :          ipack = ipack + 1
   26286     2800360 :          pack_tmp = packed_data(ipack)
   26287     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   26288     2800360 :          pack_tmp = ISHFT(pack_tmp, -24)
   26289     2800360 :          idata = idata + 1
   26290     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26291     2800360 :          full_data(idata) = data_tmp
   26292     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26293     2800360 :          idata = idata + 1
   26294     2800360 :          data_tmp = ISHFT(pack_tmp, 30)
   26295     2800360 :          ipack = ipack + 1
   26296     2800360 :          pack_tmp = packed_data(ipack)
   26297     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   26298     2800360 :          pack_tmp = ISHFT(pack_tmp, -30)
   26299     2800360 :          idata = idata + 1
   26300     2800360 :          data_tmp = ISHFT(pack_tmp, 1)
   26301     2800360 :          ipack = ipack + 1
   26302     2800360 :          pack_tmp = packed_data(ipack)
   26303     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   26304     2800360 :          pack_tmp = ISHFT(pack_tmp, -1)
   26305     2800360 :          idata = idata + 1
   26306     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26307     2800360 :          full_data(idata) = data_tmp
   26308     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26309     2800360 :          idata = idata + 1
   26310     2800360 :          data_tmp = ISHFT(pack_tmp, 7)
   26311     2800360 :          ipack = ipack + 1
   26312     2800360 :          pack_tmp = packed_data(ipack)
   26313     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   26314     2800360 :          pack_tmp = ISHFT(pack_tmp, -7)
   26315     2800360 :          idata = idata + 1
   26316     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26317     2800360 :          full_data(idata) = data_tmp
   26318     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26319     2800360 :          idata = idata + 1
   26320     2800360 :          data_tmp = ISHFT(pack_tmp, 13)
   26321     2800360 :          ipack = ipack + 1
   26322     2800360 :          pack_tmp = packed_data(ipack)
   26323     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   26324     2800360 :          pack_tmp = ISHFT(pack_tmp, -13)
   26325     2800360 :          idata = idata + 1
   26326     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26327     2800360 :          full_data(idata) = data_tmp
   26328     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26329     2800360 :          idata = idata + 1
   26330     2800360 :          data_tmp = ISHFT(pack_tmp, 19)
   26331     2800360 :          ipack = ipack + 1
   26332     2800360 :          pack_tmp = packed_data(ipack)
   26333     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   26334     2800360 :          pack_tmp = ISHFT(pack_tmp, -19)
   26335     2800360 :          idata = idata + 1
   26336     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26337     2800360 :          full_data(idata) = data_tmp
   26338     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26339     2800360 :          idata = idata + 1
   26340     2800360 :          data_tmp = ISHFT(pack_tmp, 25)
   26341     2800360 :          ipack = ipack + 1
   26342     2800360 :          pack_tmp = packed_data(ipack)
   26343     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   26344     2800360 :          pack_tmp = ISHFT(pack_tmp, -25)
   26345     2800360 :          idata = idata + 1
   26346     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26347     2800360 :          full_data(idata) = data_tmp
   26348     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26349     2800360 :          idata = idata + 1
   26350     2800360 :          data_tmp = ISHFT(pack_tmp, 31)
   26351     2800360 :          ipack = ipack + 1
   26352     2800360 :          pack_tmp = packed_data(ipack)
   26353     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   26354     2800360 :          pack_tmp = ISHFT(pack_tmp, -31)
   26355     2800360 :          idata = idata + 1
   26356     2800360 :          data_tmp = ISHFT(pack_tmp, 2)
   26357     2800360 :          ipack = ipack + 1
   26358     2800360 :          pack_tmp = packed_data(ipack)
   26359     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   26360     2800360 :          pack_tmp = ISHFT(pack_tmp, -2)
   26361     2800360 :          idata = idata + 1
   26362     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26363     2800360 :          full_data(idata) = data_tmp
   26364     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26365     2800360 :          idata = idata + 1
   26366     2800360 :          data_tmp = ISHFT(pack_tmp, 8)
   26367     2800360 :          ipack = ipack + 1
   26368     2800360 :          pack_tmp = packed_data(ipack)
   26369     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   26370     2800360 :          pack_tmp = ISHFT(pack_tmp, -8)
   26371     2800360 :          idata = idata + 1
   26372     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26373     2800360 :          full_data(idata) = data_tmp
   26374     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26375     2800360 :          idata = idata + 1
   26376     2800360 :          data_tmp = ISHFT(pack_tmp, 14)
   26377     2800360 :          ipack = ipack + 1
   26378     2800360 :          pack_tmp = packed_data(ipack)
   26379     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   26380     2800360 :          pack_tmp = ISHFT(pack_tmp, -14)
   26381     2800360 :          idata = idata + 1
   26382     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26383     2800360 :          full_data(idata) = data_tmp
   26384     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26385     2800360 :          idata = idata + 1
   26386     2800360 :          data_tmp = ISHFT(pack_tmp, 20)
   26387     2800360 :          ipack = ipack + 1
   26388     2800360 :          pack_tmp = packed_data(ipack)
   26389     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   26390     2800360 :          pack_tmp = ISHFT(pack_tmp, -20)
   26391     2800360 :          idata = idata + 1
   26392     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26393     2800360 :          full_data(idata) = data_tmp
   26394     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26395     2800360 :          idata = idata + 1
   26396     2800360 :          data_tmp = ISHFT(pack_tmp, 26)
   26397     2800360 :          ipack = ipack + 1
   26398     2800360 :          pack_tmp = packed_data(ipack)
   26399     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   26400     2800360 :          pack_tmp = ISHFT(pack_tmp, -26)
   26401     2800360 :          idata = idata + 1
   26402     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26403     2800360 :          full_data(idata) = data_tmp
   26404     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26405     2800360 :          idata = idata + 1
   26406     2800360 :          data_tmp = ISHFT(pack_tmp, 32)
   26407     2800360 :          ipack = ipack + 1
   26408     2800360 :          pack_tmp = packed_data(ipack)
   26409     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   26410     2800360 :          pack_tmp = ISHFT(pack_tmp, -32)
   26411     2800360 :          idata = idata + 1
   26412     2800360 :          data_tmp = ISHFT(pack_tmp, 3)
   26413     2800360 :          ipack = ipack + 1
   26414     2800360 :          pack_tmp = packed_data(ipack)
   26415     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   26416     2800360 :          pack_tmp = ISHFT(pack_tmp, -3)
   26417     2800360 :          idata = idata + 1
   26418     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26419     2800360 :          full_data(idata) = data_tmp
   26420     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26421     2800360 :          idata = idata + 1
   26422     2800360 :          data_tmp = ISHFT(pack_tmp, 9)
   26423     2800360 :          ipack = ipack + 1
   26424     2800360 :          pack_tmp = packed_data(ipack)
   26425     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   26426     2800360 :          pack_tmp = ISHFT(pack_tmp, -9)
   26427     2800360 :          idata = idata + 1
   26428     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26429     2800360 :          full_data(idata) = data_tmp
   26430     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26431     2800360 :          idata = idata + 1
   26432     2800360 :          data_tmp = ISHFT(pack_tmp, 15)
   26433     2800360 :          ipack = ipack + 1
   26434     2800360 :          pack_tmp = packed_data(ipack)
   26435     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   26436     2800360 :          pack_tmp = ISHFT(pack_tmp, -15)
   26437     2800360 :          idata = idata + 1
   26438     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26439     2800360 :          full_data(idata) = data_tmp
   26440     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26441     2800360 :          idata = idata + 1
   26442     2800360 :          data_tmp = ISHFT(pack_tmp, 21)
   26443     2800360 :          ipack = ipack + 1
   26444     2800360 :          pack_tmp = packed_data(ipack)
   26445     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   26446     2800360 :          pack_tmp = ISHFT(pack_tmp, -21)
   26447     2800360 :          idata = idata + 1
   26448     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26449     2800360 :          full_data(idata) = data_tmp
   26450     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26451     2800360 :          idata = idata + 1
   26452     2800360 :          data_tmp = ISHFT(pack_tmp, 27)
   26453     2800360 :          ipack = ipack + 1
   26454     2800360 :          pack_tmp = packed_data(ipack)
   26455     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   26456     2800360 :          pack_tmp = ISHFT(pack_tmp, -27)
   26457     2800360 :          idata = idata + 1
   26458     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26459     2800360 :          full_data(idata) = data_tmp
   26460     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26461     2800360 :          idata = idata + 1
   26462     2800360 :          data_tmp = ISHFT(pack_tmp, 33)
   26463     2800360 :          ipack = ipack + 1
   26464     2800360 :          pack_tmp = packed_data(ipack)
   26465     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   26466     2800360 :          pack_tmp = ISHFT(pack_tmp, -33)
   26467     2800360 :          idata = idata + 1
   26468     2800360 :          data_tmp = ISHFT(pack_tmp, 4)
   26469     2800360 :          ipack = ipack + 1
   26470     2800360 :          pack_tmp = packed_data(ipack)
   26471     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   26472     2800360 :          pack_tmp = ISHFT(pack_tmp, -4)
   26473     2800360 :          idata = idata + 1
   26474     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26475     2800360 :          full_data(idata) = data_tmp
   26476     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26477     2800360 :          idata = idata + 1
   26478     2800360 :          data_tmp = ISHFT(pack_tmp, 10)
   26479     2800360 :          ipack = ipack + 1
   26480     2800360 :          pack_tmp = packed_data(ipack)
   26481     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   26482     2800360 :          pack_tmp = ISHFT(pack_tmp, -10)
   26483     2800360 :          idata = idata + 1
   26484     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26485     2800360 :          full_data(idata) = data_tmp
   26486     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26487     2800360 :          idata = idata + 1
   26488     2800360 :          data_tmp = ISHFT(pack_tmp, 16)
   26489     2800360 :          ipack = ipack + 1
   26490     2800360 :          pack_tmp = packed_data(ipack)
   26491     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   26492     2800360 :          pack_tmp = ISHFT(pack_tmp, -16)
   26493     2800360 :          idata = idata + 1
   26494     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26495     2800360 :          full_data(idata) = data_tmp
   26496     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26497     2800360 :          idata = idata + 1
   26498     2800360 :          data_tmp = ISHFT(pack_tmp, 22)
   26499     2800360 :          ipack = ipack + 1
   26500     2800360 :          pack_tmp = packed_data(ipack)
   26501     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   26502     2800360 :          pack_tmp = ISHFT(pack_tmp, -22)
   26503     2800360 :          idata = idata + 1
   26504     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26505     2800360 :          full_data(idata) = data_tmp
   26506     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26507     2800360 :          idata = idata + 1
   26508     2800360 :          data_tmp = ISHFT(pack_tmp, 28)
   26509     2800360 :          ipack = ipack + 1
   26510     2800360 :          pack_tmp = packed_data(ipack)
   26511     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   26512     2800360 :          pack_tmp = ISHFT(pack_tmp, -28)
   26513     2800360 :          idata = idata + 1
   26514     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26515     2800360 :          full_data(idata) = data_tmp
   26516     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26517     2800360 :          idata = idata + 1
   26518     2800360 :          data_tmp = ISHFT(pack_tmp, 34)
   26519     2800360 :          ipack = ipack + 1
   26520     2800360 :          pack_tmp = packed_data(ipack)
   26521     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   26522     2800360 :          pack_tmp = ISHFT(pack_tmp, -34)
   26523     2800360 :          idata = idata + 1
   26524     2800360 :          data_tmp = ISHFT(pack_tmp, 5)
   26525     2800360 :          ipack = ipack + 1
   26526     2800360 :          pack_tmp = packed_data(ipack)
   26527     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   26528     2800360 :          pack_tmp = ISHFT(pack_tmp, -5)
   26529     2800360 :          idata = idata + 1
   26530     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26531     2800360 :          full_data(idata) = data_tmp
   26532     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26533     2800360 :          idata = idata + 1
   26534     2800360 :          data_tmp = ISHFT(pack_tmp, 11)
   26535     2800360 :          ipack = ipack + 1
   26536     2800360 :          pack_tmp = packed_data(ipack)
   26537     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   26538     2800360 :          pack_tmp = ISHFT(pack_tmp, -11)
   26539     2800360 :          idata = idata + 1
   26540     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26541     2800360 :          full_data(idata) = data_tmp
   26542     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26543     2800360 :          idata = idata + 1
   26544     2800360 :          data_tmp = ISHFT(pack_tmp, 17)
   26545     2800360 :          ipack = ipack + 1
   26546     2800360 :          pack_tmp = packed_data(ipack)
   26547     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   26548     2800360 :          pack_tmp = ISHFT(pack_tmp, -17)
   26549     2800360 :          idata = idata + 1
   26550     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26551     2800360 :          full_data(idata) = data_tmp
   26552     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26553     2800360 :          idata = idata + 1
   26554     2800360 :          data_tmp = ISHFT(pack_tmp, 23)
   26555     2800360 :          ipack = ipack + 1
   26556     2800360 :          pack_tmp = packed_data(ipack)
   26557     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   26558     2800360 :          pack_tmp = ISHFT(pack_tmp, -23)
   26559     2800360 :          idata = idata + 1
   26560     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26561     2800360 :          full_data(idata) = data_tmp
   26562     2800360 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26563     2800360 :          idata = idata + 1
   26564     2800360 :          data_tmp = ISHFT(pack_tmp, 29)
   26565     2800360 :          ipack = ipack + 1
   26566     2800360 :          pack_tmp = packed_data(ipack)
   26567     2800360 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   26568     2800360 :          pack_tmp = ISHFT(pack_tmp, -29)
   26569     2800360 :          idata = idata + 1
   26570     2800360 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26571     2800360 :          full_data(idata) = data_tmp
   26572     2802637 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26573             :       END DO
   26574      226489 :       IF (Ndata_rep < Ndata) THEN
   26575       95824 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26576             :       END IF
   26577      226489 :    END SUBROUTINE bits2ints_35
   26578             : 
   26579             : ! **************************************************************************************************
   26580             : !> \brief ...
   26581             : !> \param Ndata ...
   26582             : !> \param packed_data ...
   26583             : !> \param full_data ...
   26584             : ! **************************************************************************************************
   26585       47706 :    SUBROUTINE ints2bits_36(Ndata, packed_data, full_data)
   26586             :       INTEGER, INTENT(IN)                                :: Ndata
   26587             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   26588             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   26589             : 
   26590             :       INTEGER, PARAMETER                                 :: Nbits = 36
   26591             : 
   26592             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   26593             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   26594             : 
   26595       47706 :       idata = 0
   26596       47706 :       ipack = 0
   26597       47706 :       Ndata_rep = (Ndata/64)*64
   26598       47706 :       DO kdata = 1, Ndata_rep, 64
   26599      610806 :          pack_tmp = 0
   26600      610806 :          idata = idata + 1
   26601      610806 :          data_tmp = full_data(idata)
   26602      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26603      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26604      610806 :          pack_tmp = ISHFT(pack_tmp, -28)
   26605      610806 :          idata = idata + 1
   26606      610806 :          data_tmp = full_data(idata)
   26607      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26608      610806 :          data_tmp = IAND(data_tmp, mask_left(28))
   26609      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26610      610806 :          ipack = ipack + 1
   26611      610806 :          packed_data(ipack) = pack_tmp
   26612      610806 :          data_tmp = full_data(idata)
   26613      610806 :          pack_tmp = ISHFT(data_tmp, 56)
   26614      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26615      610806 :          idata = idata + 1
   26616      610806 :          data_tmp = full_data(idata)
   26617      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26618      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26619      610806 :          pack_tmp = ISHFT(pack_tmp, -20)
   26620      610806 :          idata = idata + 1
   26621      610806 :          data_tmp = full_data(idata)
   26622      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26623      610806 :          data_tmp = IAND(data_tmp, mask_left(20))
   26624      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26625      610806 :          ipack = ipack + 1
   26626      610806 :          packed_data(ipack) = pack_tmp
   26627      610806 :          data_tmp = full_data(idata)
   26628      610806 :          pack_tmp = ISHFT(data_tmp, 48)
   26629      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26630      610806 :          idata = idata + 1
   26631      610806 :          data_tmp = full_data(idata)
   26632      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26633      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26634      610806 :          pack_tmp = ISHFT(pack_tmp, -12)
   26635      610806 :          idata = idata + 1
   26636      610806 :          data_tmp = full_data(idata)
   26637      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26638      610806 :          data_tmp = IAND(data_tmp, mask_left(12))
   26639      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26640      610806 :          ipack = ipack + 1
   26641      610806 :          packed_data(ipack) = pack_tmp
   26642      610806 :          data_tmp = full_data(idata)
   26643      610806 :          pack_tmp = ISHFT(data_tmp, 40)
   26644      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26645      610806 :          idata = idata + 1
   26646      610806 :          data_tmp = full_data(idata)
   26647      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26648      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26649      610806 :          pack_tmp = ISHFT(pack_tmp, -4)
   26650      610806 :          idata = idata + 1
   26651      610806 :          data_tmp = full_data(idata)
   26652      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26653      610806 :          data_tmp = IAND(data_tmp, mask_left(4))
   26654      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26655      610806 :          ipack = ipack + 1
   26656      610806 :          packed_data(ipack) = pack_tmp
   26657      610806 :          data_tmp = full_data(idata)
   26658      610806 :          pack_tmp = ISHFT(data_tmp, 32)
   26659      610806 :          pack_tmp = ISHFT(pack_tmp, -32)
   26660      610806 :          idata = idata + 1
   26661      610806 :          data_tmp = full_data(idata)
   26662      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26663      610806 :          data_tmp = IAND(data_tmp, mask_left(32))
   26664      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26665      610806 :          ipack = ipack + 1
   26666      610806 :          packed_data(ipack) = pack_tmp
   26667      610806 :          data_tmp = full_data(idata)
   26668      610806 :          pack_tmp = ISHFT(data_tmp, 60)
   26669      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26670      610806 :          idata = idata + 1
   26671      610806 :          data_tmp = full_data(idata)
   26672      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26673      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26674      610806 :          pack_tmp = ISHFT(pack_tmp, -24)
   26675      610806 :          idata = idata + 1
   26676      610806 :          data_tmp = full_data(idata)
   26677      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26678      610806 :          data_tmp = IAND(data_tmp, mask_left(24))
   26679      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26680      610806 :          ipack = ipack + 1
   26681      610806 :          packed_data(ipack) = pack_tmp
   26682      610806 :          data_tmp = full_data(idata)
   26683      610806 :          pack_tmp = ISHFT(data_tmp, 52)
   26684      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26685      610806 :          idata = idata + 1
   26686      610806 :          data_tmp = full_data(idata)
   26687      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26688      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26689      610806 :          pack_tmp = ISHFT(pack_tmp, -16)
   26690      610806 :          idata = idata + 1
   26691      610806 :          data_tmp = full_data(idata)
   26692      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26693      610806 :          data_tmp = IAND(data_tmp, mask_left(16))
   26694      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26695      610806 :          ipack = ipack + 1
   26696      610806 :          packed_data(ipack) = pack_tmp
   26697      610806 :          data_tmp = full_data(idata)
   26698      610806 :          pack_tmp = ISHFT(data_tmp, 44)
   26699      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26700      610806 :          idata = idata + 1
   26701      610806 :          data_tmp = full_data(idata)
   26702      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26703      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26704      610806 :          pack_tmp = ISHFT(pack_tmp, -8)
   26705      610806 :          idata = idata + 1
   26706      610806 :          data_tmp = full_data(idata)
   26707      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26708      610806 :          data_tmp = IAND(data_tmp, mask_left(8))
   26709      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26710      610806 :          ipack = ipack + 1
   26711      610806 :          packed_data(ipack) = pack_tmp
   26712      610806 :          data_tmp = full_data(idata)
   26713      610806 :          pack_tmp = ISHFT(data_tmp, 36)
   26714      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26715      610806 :          idata = idata + 1
   26716      610806 :          data_tmp = full_data(idata)
   26717      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26718      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26719      610806 :          pack_tmp = ISHFT(pack_tmp, 0)
   26720      610806 :          idata = idata + 1
   26721      610806 :          data_tmp = full_data(idata)
   26722             :          data_tmp = ISHFT(data_tmp, 28)
   26723      610806 :          data_tmp = IAND(data_tmp, mask_left(0))
   26724      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26725      610806 :          ipack = ipack + 1
   26726      610806 :          packed_data(ipack) = pack_tmp
   26727      610806 :          data_tmp = full_data(idata)
   26728      610806 :          pack_tmp = ISHFT(data_tmp, 28)
   26729      610806 :          pack_tmp = ISHFT(pack_tmp, -28)
   26730      610806 :          idata = idata + 1
   26731      610806 :          data_tmp = full_data(idata)
   26732      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26733      610806 :          data_tmp = IAND(data_tmp, mask_left(28))
   26734      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26735      610806 :          ipack = ipack + 1
   26736      610806 :          packed_data(ipack) = pack_tmp
   26737      610806 :          data_tmp = full_data(idata)
   26738      610806 :          pack_tmp = ISHFT(data_tmp, 56)
   26739      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26740      610806 :          idata = idata + 1
   26741      610806 :          data_tmp = full_data(idata)
   26742      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26743      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26744      610806 :          pack_tmp = ISHFT(pack_tmp, -20)
   26745      610806 :          idata = idata + 1
   26746      610806 :          data_tmp = full_data(idata)
   26747      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26748      610806 :          data_tmp = IAND(data_tmp, mask_left(20))
   26749      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26750      610806 :          ipack = ipack + 1
   26751      610806 :          packed_data(ipack) = pack_tmp
   26752      610806 :          data_tmp = full_data(idata)
   26753      610806 :          pack_tmp = ISHFT(data_tmp, 48)
   26754      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26755      610806 :          idata = idata + 1
   26756      610806 :          data_tmp = full_data(idata)
   26757      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26758      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26759      610806 :          pack_tmp = ISHFT(pack_tmp, -12)
   26760      610806 :          idata = idata + 1
   26761      610806 :          data_tmp = full_data(idata)
   26762      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26763      610806 :          data_tmp = IAND(data_tmp, mask_left(12))
   26764      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26765      610806 :          ipack = ipack + 1
   26766      610806 :          packed_data(ipack) = pack_tmp
   26767      610806 :          data_tmp = full_data(idata)
   26768      610806 :          pack_tmp = ISHFT(data_tmp, 40)
   26769      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26770      610806 :          idata = idata + 1
   26771      610806 :          data_tmp = full_data(idata)
   26772      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26773      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26774      610806 :          pack_tmp = ISHFT(pack_tmp, -4)
   26775      610806 :          idata = idata + 1
   26776      610806 :          data_tmp = full_data(idata)
   26777      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26778      610806 :          data_tmp = IAND(data_tmp, mask_left(4))
   26779      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26780      610806 :          ipack = ipack + 1
   26781      610806 :          packed_data(ipack) = pack_tmp
   26782      610806 :          data_tmp = full_data(idata)
   26783      610806 :          pack_tmp = ISHFT(data_tmp, 32)
   26784      610806 :          pack_tmp = ISHFT(pack_tmp, -32)
   26785      610806 :          idata = idata + 1
   26786      610806 :          data_tmp = full_data(idata)
   26787      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26788      610806 :          data_tmp = IAND(data_tmp, mask_left(32))
   26789      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26790      610806 :          ipack = ipack + 1
   26791      610806 :          packed_data(ipack) = pack_tmp
   26792      610806 :          data_tmp = full_data(idata)
   26793      610806 :          pack_tmp = ISHFT(data_tmp, 60)
   26794      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26795      610806 :          idata = idata + 1
   26796      610806 :          data_tmp = full_data(idata)
   26797      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26798      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26799      610806 :          pack_tmp = ISHFT(pack_tmp, -24)
   26800      610806 :          idata = idata + 1
   26801      610806 :          data_tmp = full_data(idata)
   26802      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26803      610806 :          data_tmp = IAND(data_tmp, mask_left(24))
   26804      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26805      610806 :          ipack = ipack + 1
   26806      610806 :          packed_data(ipack) = pack_tmp
   26807      610806 :          data_tmp = full_data(idata)
   26808      610806 :          pack_tmp = ISHFT(data_tmp, 52)
   26809      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26810      610806 :          idata = idata + 1
   26811      610806 :          data_tmp = full_data(idata)
   26812      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26813      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26814      610806 :          pack_tmp = ISHFT(pack_tmp, -16)
   26815      610806 :          idata = idata + 1
   26816      610806 :          data_tmp = full_data(idata)
   26817      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26818      610806 :          data_tmp = IAND(data_tmp, mask_left(16))
   26819      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26820      610806 :          ipack = ipack + 1
   26821      610806 :          packed_data(ipack) = pack_tmp
   26822      610806 :          data_tmp = full_data(idata)
   26823      610806 :          pack_tmp = ISHFT(data_tmp, 44)
   26824      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26825      610806 :          idata = idata + 1
   26826      610806 :          data_tmp = full_data(idata)
   26827      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26828      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26829      610806 :          pack_tmp = ISHFT(pack_tmp, -8)
   26830      610806 :          idata = idata + 1
   26831      610806 :          data_tmp = full_data(idata)
   26832      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26833      610806 :          data_tmp = IAND(data_tmp, mask_left(8))
   26834      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26835      610806 :          ipack = ipack + 1
   26836      610806 :          packed_data(ipack) = pack_tmp
   26837      610806 :          data_tmp = full_data(idata)
   26838      610806 :          pack_tmp = ISHFT(data_tmp, 36)
   26839      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26840      610806 :          idata = idata + 1
   26841      610806 :          data_tmp = full_data(idata)
   26842      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26843      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26844      610806 :          pack_tmp = ISHFT(pack_tmp, 0)
   26845      610806 :          idata = idata + 1
   26846      610806 :          data_tmp = full_data(idata)
   26847             :          data_tmp = ISHFT(data_tmp, 28)
   26848      610806 :          data_tmp = IAND(data_tmp, mask_left(0))
   26849      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26850      610806 :          ipack = ipack + 1
   26851      610806 :          packed_data(ipack) = pack_tmp
   26852      610806 :          data_tmp = full_data(idata)
   26853      610806 :          pack_tmp = ISHFT(data_tmp, 28)
   26854      610806 :          pack_tmp = ISHFT(pack_tmp, -28)
   26855      610806 :          idata = idata + 1
   26856      610806 :          data_tmp = full_data(idata)
   26857      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26858      610806 :          data_tmp = IAND(data_tmp, mask_left(28))
   26859      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26860      610806 :          ipack = ipack + 1
   26861      610806 :          packed_data(ipack) = pack_tmp
   26862      610806 :          data_tmp = full_data(idata)
   26863      610806 :          pack_tmp = ISHFT(data_tmp, 56)
   26864      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26865      610806 :          idata = idata + 1
   26866      610806 :          data_tmp = full_data(idata)
   26867      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26868      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26869      610806 :          pack_tmp = ISHFT(pack_tmp, -20)
   26870      610806 :          idata = idata + 1
   26871      610806 :          data_tmp = full_data(idata)
   26872      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26873      610806 :          data_tmp = IAND(data_tmp, mask_left(20))
   26874      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26875      610806 :          ipack = ipack + 1
   26876      610806 :          packed_data(ipack) = pack_tmp
   26877      610806 :          data_tmp = full_data(idata)
   26878      610806 :          pack_tmp = ISHFT(data_tmp, 48)
   26879      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26880      610806 :          idata = idata + 1
   26881      610806 :          data_tmp = full_data(idata)
   26882      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26883      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26884      610806 :          pack_tmp = ISHFT(pack_tmp, -12)
   26885      610806 :          idata = idata + 1
   26886      610806 :          data_tmp = full_data(idata)
   26887      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26888      610806 :          data_tmp = IAND(data_tmp, mask_left(12))
   26889      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26890      610806 :          ipack = ipack + 1
   26891      610806 :          packed_data(ipack) = pack_tmp
   26892      610806 :          data_tmp = full_data(idata)
   26893      610806 :          pack_tmp = ISHFT(data_tmp, 40)
   26894      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26895      610806 :          idata = idata + 1
   26896      610806 :          data_tmp = full_data(idata)
   26897      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26898      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26899      610806 :          pack_tmp = ISHFT(pack_tmp, -4)
   26900      610806 :          idata = idata + 1
   26901      610806 :          data_tmp = full_data(idata)
   26902      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26903      610806 :          data_tmp = IAND(data_tmp, mask_left(4))
   26904      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26905      610806 :          ipack = ipack + 1
   26906      610806 :          packed_data(ipack) = pack_tmp
   26907      610806 :          data_tmp = full_data(idata)
   26908      610806 :          pack_tmp = ISHFT(data_tmp, 32)
   26909      610806 :          pack_tmp = ISHFT(pack_tmp, -32)
   26910      610806 :          idata = idata + 1
   26911      610806 :          data_tmp = full_data(idata)
   26912      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26913      610806 :          data_tmp = IAND(data_tmp, mask_left(32))
   26914      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26915      610806 :          ipack = ipack + 1
   26916      610806 :          packed_data(ipack) = pack_tmp
   26917      610806 :          data_tmp = full_data(idata)
   26918      610806 :          pack_tmp = ISHFT(data_tmp, 60)
   26919      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26920      610806 :          idata = idata + 1
   26921      610806 :          data_tmp = full_data(idata)
   26922      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26923      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26924      610806 :          pack_tmp = ISHFT(pack_tmp, -24)
   26925      610806 :          idata = idata + 1
   26926      610806 :          data_tmp = full_data(idata)
   26927      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26928      610806 :          data_tmp = IAND(data_tmp, mask_left(24))
   26929      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26930      610806 :          ipack = ipack + 1
   26931      610806 :          packed_data(ipack) = pack_tmp
   26932      610806 :          data_tmp = full_data(idata)
   26933      610806 :          pack_tmp = ISHFT(data_tmp, 52)
   26934      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26935      610806 :          idata = idata + 1
   26936      610806 :          data_tmp = full_data(idata)
   26937      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26938      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26939      610806 :          pack_tmp = ISHFT(pack_tmp, -16)
   26940      610806 :          idata = idata + 1
   26941      610806 :          data_tmp = full_data(idata)
   26942      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26943      610806 :          data_tmp = IAND(data_tmp, mask_left(16))
   26944      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26945      610806 :          ipack = ipack + 1
   26946      610806 :          packed_data(ipack) = pack_tmp
   26947      610806 :          data_tmp = full_data(idata)
   26948      610806 :          pack_tmp = ISHFT(data_tmp, 44)
   26949      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26950      610806 :          idata = idata + 1
   26951      610806 :          data_tmp = full_data(idata)
   26952      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26953      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26954      610806 :          pack_tmp = ISHFT(pack_tmp, -8)
   26955      610806 :          idata = idata + 1
   26956      610806 :          data_tmp = full_data(idata)
   26957      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26958      610806 :          data_tmp = IAND(data_tmp, mask_left(8))
   26959      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26960      610806 :          ipack = ipack + 1
   26961      610806 :          packed_data(ipack) = pack_tmp
   26962      610806 :          data_tmp = full_data(idata)
   26963      610806 :          pack_tmp = ISHFT(data_tmp, 36)
   26964      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26965      610806 :          idata = idata + 1
   26966      610806 :          data_tmp = full_data(idata)
   26967      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26968      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26969      610806 :          pack_tmp = ISHFT(pack_tmp, 0)
   26970      610806 :          idata = idata + 1
   26971      610806 :          data_tmp = full_data(idata)
   26972             :          data_tmp = ISHFT(data_tmp, 28)
   26973      610806 :          data_tmp = IAND(data_tmp, mask_left(0))
   26974      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26975      610806 :          ipack = ipack + 1
   26976      610806 :          packed_data(ipack) = pack_tmp
   26977      610806 :          data_tmp = full_data(idata)
   26978      610806 :          pack_tmp = ISHFT(data_tmp, 28)
   26979      610806 :          pack_tmp = ISHFT(pack_tmp, -28)
   26980      610806 :          idata = idata + 1
   26981      610806 :          data_tmp = full_data(idata)
   26982      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26983      610806 :          data_tmp = IAND(data_tmp, mask_left(28))
   26984      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26985      610806 :          ipack = ipack + 1
   26986      610806 :          packed_data(ipack) = pack_tmp
   26987      610806 :          data_tmp = full_data(idata)
   26988      610806 :          pack_tmp = ISHFT(data_tmp, 56)
   26989      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   26990      610806 :          idata = idata + 1
   26991      610806 :          data_tmp = full_data(idata)
   26992      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26993      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26994      610806 :          pack_tmp = ISHFT(pack_tmp, -20)
   26995      610806 :          idata = idata + 1
   26996      610806 :          data_tmp = full_data(idata)
   26997      610806 :          data_tmp = ISHFT(data_tmp, 28)
   26998      610806 :          data_tmp = IAND(data_tmp, mask_left(20))
   26999      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27000      610806 :          ipack = ipack + 1
   27001      610806 :          packed_data(ipack) = pack_tmp
   27002      610806 :          data_tmp = full_data(idata)
   27003      610806 :          pack_tmp = ISHFT(data_tmp, 48)
   27004      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27005      610806 :          idata = idata + 1
   27006      610806 :          data_tmp = full_data(idata)
   27007      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27008      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27009      610806 :          pack_tmp = ISHFT(pack_tmp, -12)
   27010      610806 :          idata = idata + 1
   27011      610806 :          data_tmp = full_data(idata)
   27012      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27013      610806 :          data_tmp = IAND(data_tmp, mask_left(12))
   27014      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27015      610806 :          ipack = ipack + 1
   27016      610806 :          packed_data(ipack) = pack_tmp
   27017      610806 :          data_tmp = full_data(idata)
   27018      610806 :          pack_tmp = ISHFT(data_tmp, 40)
   27019      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27020      610806 :          idata = idata + 1
   27021      610806 :          data_tmp = full_data(idata)
   27022      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27023      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27024      610806 :          pack_tmp = ISHFT(pack_tmp, -4)
   27025      610806 :          idata = idata + 1
   27026      610806 :          data_tmp = full_data(idata)
   27027      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27028      610806 :          data_tmp = IAND(data_tmp, mask_left(4))
   27029      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27030      610806 :          ipack = ipack + 1
   27031      610806 :          packed_data(ipack) = pack_tmp
   27032      610806 :          data_tmp = full_data(idata)
   27033      610806 :          pack_tmp = ISHFT(data_tmp, 32)
   27034      610806 :          pack_tmp = ISHFT(pack_tmp, -32)
   27035      610806 :          idata = idata + 1
   27036      610806 :          data_tmp = full_data(idata)
   27037      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27038      610806 :          data_tmp = IAND(data_tmp, mask_left(32))
   27039      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27040      610806 :          ipack = ipack + 1
   27041      610806 :          packed_data(ipack) = pack_tmp
   27042      610806 :          data_tmp = full_data(idata)
   27043      610806 :          pack_tmp = ISHFT(data_tmp, 60)
   27044      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27045      610806 :          idata = idata + 1
   27046      610806 :          data_tmp = full_data(idata)
   27047      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27048      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27049      610806 :          pack_tmp = ISHFT(pack_tmp, -24)
   27050      610806 :          idata = idata + 1
   27051      610806 :          data_tmp = full_data(idata)
   27052      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27053      610806 :          data_tmp = IAND(data_tmp, mask_left(24))
   27054      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27055      610806 :          ipack = ipack + 1
   27056      610806 :          packed_data(ipack) = pack_tmp
   27057      610806 :          data_tmp = full_data(idata)
   27058      610806 :          pack_tmp = ISHFT(data_tmp, 52)
   27059      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27060      610806 :          idata = idata + 1
   27061      610806 :          data_tmp = full_data(idata)
   27062      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27063      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27064      610806 :          pack_tmp = ISHFT(pack_tmp, -16)
   27065      610806 :          idata = idata + 1
   27066      610806 :          data_tmp = full_data(idata)
   27067      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27068      610806 :          data_tmp = IAND(data_tmp, mask_left(16))
   27069      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27070      610806 :          ipack = ipack + 1
   27071      610806 :          packed_data(ipack) = pack_tmp
   27072      610806 :          data_tmp = full_data(idata)
   27073      610806 :          pack_tmp = ISHFT(data_tmp, 44)
   27074      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27075      610806 :          idata = idata + 1
   27076      610806 :          data_tmp = full_data(idata)
   27077      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27078      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27079      610806 :          pack_tmp = ISHFT(pack_tmp, -8)
   27080      610806 :          idata = idata + 1
   27081      610806 :          data_tmp = full_data(idata)
   27082      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27083      610806 :          data_tmp = IAND(data_tmp, mask_left(8))
   27084      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27085      610806 :          ipack = ipack + 1
   27086      610806 :          packed_data(ipack) = pack_tmp
   27087      610806 :          data_tmp = full_data(idata)
   27088      610806 :          pack_tmp = ISHFT(data_tmp, 36)
   27089      610806 :          pack_tmp = ISHFT(pack_tmp, -36)
   27090      610806 :          idata = idata + 1
   27091      610806 :          data_tmp = full_data(idata)
   27092      610806 :          data_tmp = ISHFT(data_tmp, 28)
   27093      610806 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27094             :          pack_tmp = ISHFT(pack_tmp, 0)
   27095      610806 :          pack_tmp = ISHFT(pack_tmp, 0)
   27096      610806 :          ipack = ipack + 1
   27097      611142 :          packed_data(ipack) = pack_tmp
   27098             :       END DO
   27099       47706 :       IF (Ndata_rep < Ndata) THEN
   27100       17940 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27101             :       END IF
   27102       47706 :    END SUBROUTINE ints2bits_36
   27103             : 
   27104             : ! **************************************************************************************************
   27105             : !> \brief ...
   27106             : !> \param Ndata ...
   27107             : !> \param packed_data ...
   27108             : !> \param full_data ...
   27109             : ! **************************************************************************************************
   27110      175724 :    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      175724 :       ipack = 0
   27121      175724 :       idata = 0
   27122      175724 :       pack_tmp = 0
   27123      175724 :       Ndata_rep = (Ndata/64)*64
   27124      175724 :       DO kdata = 1, Ndata_rep, 64
   27125     2302638 :          idata = idata + 1
   27126     2302638 :          data_tmp = ISHFT(pack_tmp, 36)
   27127     2302638 :          ipack = ipack + 1
   27128     2302638 :          pack_tmp = packed_data(ipack)
   27129     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27130     2302638 :          pack_tmp = ISHFT(pack_tmp, -36)
   27131     2302638 :          idata = idata + 1
   27132     2302638 :          data_tmp = ISHFT(pack_tmp, 8)
   27133     2302638 :          ipack = ipack + 1
   27134     2302638 :          pack_tmp = packed_data(ipack)
   27135     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27136     2302638 :          pack_tmp = ISHFT(pack_tmp, -8)
   27137     2302638 :          idata = idata + 1
   27138     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27139     2302638 :          full_data(idata) = data_tmp
   27140     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27141     2302638 :          idata = idata + 1
   27142     2302638 :          data_tmp = ISHFT(pack_tmp, 16)
   27143     2302638 :          ipack = ipack + 1
   27144     2302638 :          pack_tmp = packed_data(ipack)
   27145     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27146     2302638 :          pack_tmp = ISHFT(pack_tmp, -16)
   27147     2302638 :          idata = idata + 1
   27148     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27149     2302638 :          full_data(idata) = data_tmp
   27150     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27151     2302638 :          idata = idata + 1
   27152     2302638 :          data_tmp = ISHFT(pack_tmp, 24)
   27153     2302638 :          ipack = ipack + 1
   27154     2302638 :          pack_tmp = packed_data(ipack)
   27155     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27156     2302638 :          pack_tmp = ISHFT(pack_tmp, -24)
   27157     2302638 :          idata = idata + 1
   27158     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27159     2302638 :          full_data(idata) = data_tmp
   27160     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27161     2302638 :          idata = idata + 1
   27162     2302638 :          data_tmp = ISHFT(pack_tmp, 32)
   27163     2302638 :          ipack = ipack + 1
   27164     2302638 :          pack_tmp = packed_data(ipack)
   27165     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27166     2302638 :          pack_tmp = ISHFT(pack_tmp, -32)
   27167     2302638 :          idata = idata + 1
   27168     2302638 :          data_tmp = ISHFT(pack_tmp, 4)
   27169     2302638 :          ipack = ipack + 1
   27170     2302638 :          pack_tmp = packed_data(ipack)
   27171     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27172     2302638 :          pack_tmp = ISHFT(pack_tmp, -4)
   27173     2302638 :          idata = idata + 1
   27174     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27175     2302638 :          full_data(idata) = data_tmp
   27176     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27177     2302638 :          idata = idata + 1
   27178     2302638 :          data_tmp = ISHFT(pack_tmp, 12)
   27179     2302638 :          ipack = ipack + 1
   27180     2302638 :          pack_tmp = packed_data(ipack)
   27181     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27182     2302638 :          pack_tmp = ISHFT(pack_tmp, -12)
   27183     2302638 :          idata = idata + 1
   27184     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27185     2302638 :          full_data(idata) = data_tmp
   27186     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27187     2302638 :          idata = idata + 1
   27188     2302638 :          data_tmp = ISHFT(pack_tmp, 20)
   27189     2302638 :          ipack = ipack + 1
   27190     2302638 :          pack_tmp = packed_data(ipack)
   27191     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27192     2302638 :          pack_tmp = ISHFT(pack_tmp, -20)
   27193     2302638 :          idata = idata + 1
   27194     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27195     2302638 :          full_data(idata) = data_tmp
   27196     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27197     2302638 :          idata = idata + 1
   27198     2302638 :          data_tmp = ISHFT(pack_tmp, 28)
   27199     2302638 :          ipack = ipack + 1
   27200     2302638 :          pack_tmp = packed_data(ipack)
   27201     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27202     2302638 :          pack_tmp = ISHFT(pack_tmp, -28)
   27203     2302638 :          idata = idata + 1
   27204     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27205     2302638 :          full_data(idata) = data_tmp
   27206     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27207     2302638 :          idata = idata + 1
   27208     2302638 :          data_tmp = ISHFT(pack_tmp, 36)
   27209     2302638 :          ipack = ipack + 1
   27210     2302638 :          pack_tmp = packed_data(ipack)
   27211     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27212     2302638 :          pack_tmp = ISHFT(pack_tmp, -36)
   27213     2302638 :          idata = idata + 1
   27214     2302638 :          data_tmp = ISHFT(pack_tmp, 8)
   27215     2302638 :          ipack = ipack + 1
   27216     2302638 :          pack_tmp = packed_data(ipack)
   27217     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27218     2302638 :          pack_tmp = ISHFT(pack_tmp, -8)
   27219     2302638 :          idata = idata + 1
   27220     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27221     2302638 :          full_data(idata) = data_tmp
   27222     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27223     2302638 :          idata = idata + 1
   27224     2302638 :          data_tmp = ISHFT(pack_tmp, 16)
   27225     2302638 :          ipack = ipack + 1
   27226     2302638 :          pack_tmp = packed_data(ipack)
   27227     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27228     2302638 :          pack_tmp = ISHFT(pack_tmp, -16)
   27229     2302638 :          idata = idata + 1
   27230     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27231     2302638 :          full_data(idata) = data_tmp
   27232     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27233     2302638 :          idata = idata + 1
   27234     2302638 :          data_tmp = ISHFT(pack_tmp, 24)
   27235     2302638 :          ipack = ipack + 1
   27236     2302638 :          pack_tmp = packed_data(ipack)
   27237     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27238     2302638 :          pack_tmp = ISHFT(pack_tmp, -24)
   27239     2302638 :          idata = idata + 1
   27240     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27241     2302638 :          full_data(idata) = data_tmp
   27242     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27243     2302638 :          idata = idata + 1
   27244     2302638 :          data_tmp = ISHFT(pack_tmp, 32)
   27245     2302638 :          ipack = ipack + 1
   27246     2302638 :          pack_tmp = packed_data(ipack)
   27247     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27248     2302638 :          pack_tmp = ISHFT(pack_tmp, -32)
   27249     2302638 :          idata = idata + 1
   27250     2302638 :          data_tmp = ISHFT(pack_tmp, 4)
   27251     2302638 :          ipack = ipack + 1
   27252     2302638 :          pack_tmp = packed_data(ipack)
   27253     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27254     2302638 :          pack_tmp = ISHFT(pack_tmp, -4)
   27255     2302638 :          idata = idata + 1
   27256     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27257     2302638 :          full_data(idata) = data_tmp
   27258     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27259     2302638 :          idata = idata + 1
   27260     2302638 :          data_tmp = ISHFT(pack_tmp, 12)
   27261     2302638 :          ipack = ipack + 1
   27262     2302638 :          pack_tmp = packed_data(ipack)
   27263     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27264     2302638 :          pack_tmp = ISHFT(pack_tmp, -12)
   27265     2302638 :          idata = idata + 1
   27266     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27267     2302638 :          full_data(idata) = data_tmp
   27268     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27269     2302638 :          idata = idata + 1
   27270     2302638 :          data_tmp = ISHFT(pack_tmp, 20)
   27271     2302638 :          ipack = ipack + 1
   27272     2302638 :          pack_tmp = packed_data(ipack)
   27273     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27274     2302638 :          pack_tmp = ISHFT(pack_tmp, -20)
   27275     2302638 :          idata = idata + 1
   27276     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27277     2302638 :          full_data(idata) = data_tmp
   27278     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27279     2302638 :          idata = idata + 1
   27280     2302638 :          data_tmp = ISHFT(pack_tmp, 28)
   27281     2302638 :          ipack = ipack + 1
   27282     2302638 :          pack_tmp = packed_data(ipack)
   27283     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27284     2302638 :          pack_tmp = ISHFT(pack_tmp, -28)
   27285     2302638 :          idata = idata + 1
   27286     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27287     2302638 :          full_data(idata) = data_tmp
   27288     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27289     2302638 :          idata = idata + 1
   27290     2302638 :          data_tmp = ISHFT(pack_tmp, 36)
   27291     2302638 :          ipack = ipack + 1
   27292     2302638 :          pack_tmp = packed_data(ipack)
   27293     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27294     2302638 :          pack_tmp = ISHFT(pack_tmp, -36)
   27295     2302638 :          idata = idata + 1
   27296     2302638 :          data_tmp = ISHFT(pack_tmp, 8)
   27297     2302638 :          ipack = ipack + 1
   27298     2302638 :          pack_tmp = packed_data(ipack)
   27299     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27300     2302638 :          pack_tmp = ISHFT(pack_tmp, -8)
   27301     2302638 :          idata = idata + 1
   27302     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27303     2302638 :          full_data(idata) = data_tmp
   27304     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27305     2302638 :          idata = idata + 1
   27306     2302638 :          data_tmp = ISHFT(pack_tmp, 16)
   27307     2302638 :          ipack = ipack + 1
   27308     2302638 :          pack_tmp = packed_data(ipack)
   27309     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27310     2302638 :          pack_tmp = ISHFT(pack_tmp, -16)
   27311     2302638 :          idata = idata + 1
   27312     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27313     2302638 :          full_data(idata) = data_tmp
   27314     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27315     2302638 :          idata = idata + 1
   27316     2302638 :          data_tmp = ISHFT(pack_tmp, 24)
   27317     2302638 :          ipack = ipack + 1
   27318     2302638 :          pack_tmp = packed_data(ipack)
   27319     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27320     2302638 :          pack_tmp = ISHFT(pack_tmp, -24)
   27321     2302638 :          idata = idata + 1
   27322     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27323     2302638 :          full_data(idata) = data_tmp
   27324     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27325     2302638 :          idata = idata + 1
   27326     2302638 :          data_tmp = ISHFT(pack_tmp, 32)
   27327     2302638 :          ipack = ipack + 1
   27328     2302638 :          pack_tmp = packed_data(ipack)
   27329     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27330     2302638 :          pack_tmp = ISHFT(pack_tmp, -32)
   27331     2302638 :          idata = idata + 1
   27332     2302638 :          data_tmp = ISHFT(pack_tmp, 4)
   27333     2302638 :          ipack = ipack + 1
   27334     2302638 :          pack_tmp = packed_data(ipack)
   27335     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27336     2302638 :          pack_tmp = ISHFT(pack_tmp, -4)
   27337     2302638 :          idata = idata + 1
   27338     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27339     2302638 :          full_data(idata) = data_tmp
   27340     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27341     2302638 :          idata = idata + 1
   27342     2302638 :          data_tmp = ISHFT(pack_tmp, 12)
   27343     2302638 :          ipack = ipack + 1
   27344     2302638 :          pack_tmp = packed_data(ipack)
   27345     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27346     2302638 :          pack_tmp = ISHFT(pack_tmp, -12)
   27347     2302638 :          idata = idata + 1
   27348     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27349     2302638 :          full_data(idata) = data_tmp
   27350     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27351     2302638 :          idata = idata + 1
   27352     2302638 :          data_tmp = ISHFT(pack_tmp, 20)
   27353     2302638 :          ipack = ipack + 1
   27354     2302638 :          pack_tmp = packed_data(ipack)
   27355     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27356     2302638 :          pack_tmp = ISHFT(pack_tmp, -20)
   27357     2302638 :          idata = idata + 1
   27358     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27359     2302638 :          full_data(idata) = data_tmp
   27360     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27361     2302638 :          idata = idata + 1
   27362     2302638 :          data_tmp = ISHFT(pack_tmp, 28)
   27363     2302638 :          ipack = ipack + 1
   27364     2302638 :          pack_tmp = packed_data(ipack)
   27365     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27366     2302638 :          pack_tmp = ISHFT(pack_tmp, -28)
   27367     2302638 :          idata = idata + 1
   27368     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27369     2302638 :          full_data(idata) = data_tmp
   27370     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27371     2302638 :          idata = idata + 1
   27372     2302638 :          data_tmp = ISHFT(pack_tmp, 36)
   27373     2302638 :          ipack = ipack + 1
   27374     2302638 :          pack_tmp = packed_data(ipack)
   27375     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27376     2302638 :          pack_tmp = ISHFT(pack_tmp, -36)
   27377     2302638 :          idata = idata + 1
   27378     2302638 :          data_tmp = ISHFT(pack_tmp, 8)
   27379     2302638 :          ipack = ipack + 1
   27380     2302638 :          pack_tmp = packed_data(ipack)
   27381     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27382     2302638 :          pack_tmp = ISHFT(pack_tmp, -8)
   27383     2302638 :          idata = idata + 1
   27384     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27385     2302638 :          full_data(idata) = data_tmp
   27386     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27387     2302638 :          idata = idata + 1
   27388     2302638 :          data_tmp = ISHFT(pack_tmp, 16)
   27389     2302638 :          ipack = ipack + 1
   27390     2302638 :          pack_tmp = packed_data(ipack)
   27391     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27392     2302638 :          pack_tmp = ISHFT(pack_tmp, -16)
   27393     2302638 :          idata = idata + 1
   27394     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27395     2302638 :          full_data(idata) = data_tmp
   27396     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27397     2302638 :          idata = idata + 1
   27398     2302638 :          data_tmp = ISHFT(pack_tmp, 24)
   27399     2302638 :          ipack = ipack + 1
   27400     2302638 :          pack_tmp = packed_data(ipack)
   27401     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27402     2302638 :          pack_tmp = ISHFT(pack_tmp, -24)
   27403     2302638 :          idata = idata + 1
   27404     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27405     2302638 :          full_data(idata) = data_tmp
   27406     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27407     2302638 :          idata = idata + 1
   27408     2302638 :          data_tmp = ISHFT(pack_tmp, 32)
   27409     2302638 :          ipack = ipack + 1
   27410     2302638 :          pack_tmp = packed_data(ipack)
   27411     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27412     2302638 :          pack_tmp = ISHFT(pack_tmp, -32)
   27413     2302638 :          idata = idata + 1
   27414     2302638 :          data_tmp = ISHFT(pack_tmp, 4)
   27415     2302638 :          ipack = ipack + 1
   27416     2302638 :          pack_tmp = packed_data(ipack)
   27417     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27418     2302638 :          pack_tmp = ISHFT(pack_tmp, -4)
   27419     2302638 :          idata = idata + 1
   27420     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27421     2302638 :          full_data(idata) = data_tmp
   27422     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27423     2302638 :          idata = idata + 1
   27424     2302638 :          data_tmp = ISHFT(pack_tmp, 12)
   27425     2302638 :          ipack = ipack + 1
   27426     2302638 :          pack_tmp = packed_data(ipack)
   27427     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27428     2302638 :          pack_tmp = ISHFT(pack_tmp, -12)
   27429     2302638 :          idata = idata + 1
   27430     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27431     2302638 :          full_data(idata) = data_tmp
   27432     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27433     2302638 :          idata = idata + 1
   27434     2302638 :          data_tmp = ISHFT(pack_tmp, 20)
   27435     2302638 :          ipack = ipack + 1
   27436     2302638 :          pack_tmp = packed_data(ipack)
   27437     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27438     2302638 :          pack_tmp = ISHFT(pack_tmp, -20)
   27439     2302638 :          idata = idata + 1
   27440     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27441     2302638 :          full_data(idata) = data_tmp
   27442     2302638 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27443     2302638 :          idata = idata + 1
   27444     2302638 :          data_tmp = ISHFT(pack_tmp, 28)
   27445     2302638 :          ipack = ipack + 1
   27446     2302638 :          pack_tmp = packed_data(ipack)
   27447     2302638 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27448     2302638 :          pack_tmp = ISHFT(pack_tmp, -28)
   27449     2302638 :          idata = idata + 1
   27450     2302638 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27451     2302638 :          full_data(idata) = data_tmp
   27452     2304144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27453             :       END DO
   27454      175724 :       IF (Ndata_rep < Ndata) THEN
   27455       59876 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27456             :       END IF
   27457      175724 :    END SUBROUTINE bits2ints_36
   27458             : 
   27459             : ! **************************************************************************************************
   27460             : !> \brief ...
   27461             : !> \param Ndata ...
   27462             : !> \param packed_data ...
   27463             : !> \param full_data ...
   27464             : ! **************************************************************************************************
   27465       35361 :    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       35361 :       idata = 0
   27476       35361 :       ipack = 0
   27477       35361 :       Ndata_rep = (Ndata/64)*64
   27478       35361 :       DO kdata = 1, Ndata_rep, 64
   27479      489924 :          pack_tmp = 0
   27480      489924 :          idata = idata + 1
   27481      489924 :          data_tmp = full_data(idata)
   27482      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27483      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27484      489924 :          pack_tmp = ISHFT(pack_tmp, -27)
   27485      489924 :          idata = idata + 1
   27486      489924 :          data_tmp = full_data(idata)
   27487      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27488      489924 :          data_tmp = IAND(data_tmp, mask_left(27))
   27489      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27490      489924 :          ipack = ipack + 1
   27491      489924 :          packed_data(ipack) = pack_tmp
   27492      489924 :          data_tmp = full_data(idata)
   27493      489924 :          pack_tmp = ISHFT(data_tmp, 54)
   27494      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27495      489924 :          idata = idata + 1
   27496      489924 :          data_tmp = full_data(idata)
   27497      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27498      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27499      489924 :          pack_tmp = ISHFT(pack_tmp, -17)
   27500      489924 :          idata = idata + 1
   27501      489924 :          data_tmp = full_data(idata)
   27502      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27503      489924 :          data_tmp = IAND(data_tmp, mask_left(17))
   27504      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27505      489924 :          ipack = ipack + 1
   27506      489924 :          packed_data(ipack) = pack_tmp
   27507      489924 :          data_tmp = full_data(idata)
   27508      489924 :          pack_tmp = ISHFT(data_tmp, 44)
   27509      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27510      489924 :          idata = idata + 1
   27511      489924 :          data_tmp = full_data(idata)
   27512      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27513      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27514      489924 :          pack_tmp = ISHFT(pack_tmp, -7)
   27515      489924 :          idata = idata + 1
   27516      489924 :          data_tmp = full_data(idata)
   27517      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27518      489924 :          data_tmp = IAND(data_tmp, mask_left(7))
   27519      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27520      489924 :          ipack = ipack + 1
   27521      489924 :          packed_data(ipack) = pack_tmp
   27522      489924 :          data_tmp = full_data(idata)
   27523      489924 :          pack_tmp = ISHFT(data_tmp, 34)
   27524      489924 :          pack_tmp = ISHFT(pack_tmp, -34)
   27525      489924 :          idata = idata + 1
   27526      489924 :          data_tmp = full_data(idata)
   27527      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27528      489924 :          data_tmp = IAND(data_tmp, mask_left(34))
   27529      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27530      489924 :          ipack = ipack + 1
   27531      489924 :          packed_data(ipack) = pack_tmp
   27532      489924 :          data_tmp = full_data(idata)
   27533      489924 :          pack_tmp = ISHFT(data_tmp, 61)
   27534      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27535      489924 :          idata = idata + 1
   27536      489924 :          data_tmp = full_data(idata)
   27537      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27538      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27539      489924 :          pack_tmp = ISHFT(pack_tmp, -24)
   27540      489924 :          idata = idata + 1
   27541      489924 :          data_tmp = full_data(idata)
   27542      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27543      489924 :          data_tmp = IAND(data_tmp, mask_left(24))
   27544      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27545      489924 :          ipack = ipack + 1
   27546      489924 :          packed_data(ipack) = pack_tmp
   27547      489924 :          data_tmp = full_data(idata)
   27548      489924 :          pack_tmp = ISHFT(data_tmp, 51)
   27549      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27550      489924 :          idata = idata + 1
   27551      489924 :          data_tmp = full_data(idata)
   27552      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27553      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27554      489924 :          pack_tmp = ISHFT(pack_tmp, -14)
   27555      489924 :          idata = idata + 1
   27556      489924 :          data_tmp = full_data(idata)
   27557      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27558      489924 :          data_tmp = IAND(data_tmp, mask_left(14))
   27559      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27560      489924 :          ipack = ipack + 1
   27561      489924 :          packed_data(ipack) = pack_tmp
   27562      489924 :          data_tmp = full_data(idata)
   27563      489924 :          pack_tmp = ISHFT(data_tmp, 41)
   27564      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27565      489924 :          idata = idata + 1
   27566      489924 :          data_tmp = full_data(idata)
   27567      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27568      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27569      489924 :          pack_tmp = ISHFT(pack_tmp, -4)
   27570      489924 :          idata = idata + 1
   27571      489924 :          data_tmp = full_data(idata)
   27572      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27573      489924 :          data_tmp = IAND(data_tmp, mask_left(4))
   27574      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27575      489924 :          ipack = ipack + 1
   27576      489924 :          packed_data(ipack) = pack_tmp
   27577      489924 :          data_tmp = full_data(idata)
   27578      489924 :          pack_tmp = ISHFT(data_tmp, 31)
   27579      489924 :          pack_tmp = ISHFT(pack_tmp, -31)
   27580      489924 :          idata = idata + 1
   27581      489924 :          data_tmp = full_data(idata)
   27582      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27583      489924 :          data_tmp = IAND(data_tmp, mask_left(31))
   27584      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27585      489924 :          ipack = ipack + 1
   27586      489924 :          packed_data(ipack) = pack_tmp
   27587      489924 :          data_tmp = full_data(idata)
   27588      489924 :          pack_tmp = ISHFT(data_tmp, 58)
   27589      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27590      489924 :          idata = idata + 1
   27591      489924 :          data_tmp = full_data(idata)
   27592      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27593      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27594      489924 :          pack_tmp = ISHFT(pack_tmp, -21)
   27595      489924 :          idata = idata + 1
   27596      489924 :          data_tmp = full_data(idata)
   27597      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27598      489924 :          data_tmp = IAND(data_tmp, mask_left(21))
   27599      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27600      489924 :          ipack = ipack + 1
   27601      489924 :          packed_data(ipack) = pack_tmp
   27602      489924 :          data_tmp = full_data(idata)
   27603      489924 :          pack_tmp = ISHFT(data_tmp, 48)
   27604      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27605      489924 :          idata = idata + 1
   27606      489924 :          data_tmp = full_data(idata)
   27607      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27608      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27609      489924 :          pack_tmp = ISHFT(pack_tmp, -11)
   27610      489924 :          idata = idata + 1
   27611      489924 :          data_tmp = full_data(idata)
   27612      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27613      489924 :          data_tmp = IAND(data_tmp, mask_left(11))
   27614      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27615      489924 :          ipack = ipack + 1
   27616      489924 :          packed_data(ipack) = pack_tmp
   27617      489924 :          data_tmp = full_data(idata)
   27618      489924 :          pack_tmp = ISHFT(data_tmp, 38)
   27619      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27620      489924 :          idata = idata + 1
   27621      489924 :          data_tmp = full_data(idata)
   27622      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27623      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27624      489924 :          pack_tmp = ISHFT(pack_tmp, -1)
   27625      489924 :          idata = idata + 1
   27626      489924 :          data_tmp = full_data(idata)
   27627      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27628      489924 :          data_tmp = IAND(data_tmp, mask_left(1))
   27629      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27630      489924 :          ipack = ipack + 1
   27631      489924 :          packed_data(ipack) = pack_tmp
   27632      489924 :          data_tmp = full_data(idata)
   27633      489924 :          pack_tmp = ISHFT(data_tmp, 28)
   27634      489924 :          pack_tmp = ISHFT(pack_tmp, -28)
   27635      489924 :          idata = idata + 1
   27636      489924 :          data_tmp = full_data(idata)
   27637      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27638      489924 :          data_tmp = IAND(data_tmp, mask_left(28))
   27639      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27640      489924 :          ipack = ipack + 1
   27641      489924 :          packed_data(ipack) = pack_tmp
   27642      489924 :          data_tmp = full_data(idata)
   27643      489924 :          pack_tmp = ISHFT(data_tmp, 55)
   27644      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27645      489924 :          idata = idata + 1
   27646      489924 :          data_tmp = full_data(idata)
   27647      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27648      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27649      489924 :          pack_tmp = ISHFT(pack_tmp, -18)
   27650      489924 :          idata = idata + 1
   27651      489924 :          data_tmp = full_data(idata)
   27652      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27653      489924 :          data_tmp = IAND(data_tmp, mask_left(18))
   27654      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27655      489924 :          ipack = ipack + 1
   27656      489924 :          packed_data(ipack) = pack_tmp
   27657      489924 :          data_tmp = full_data(idata)
   27658      489924 :          pack_tmp = ISHFT(data_tmp, 45)
   27659      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27660      489924 :          idata = idata + 1
   27661      489924 :          data_tmp = full_data(idata)
   27662      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27663      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27664      489924 :          pack_tmp = ISHFT(pack_tmp, -8)
   27665      489924 :          idata = idata + 1
   27666      489924 :          data_tmp = full_data(idata)
   27667      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27668      489924 :          data_tmp = IAND(data_tmp, mask_left(8))
   27669      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27670      489924 :          ipack = ipack + 1
   27671      489924 :          packed_data(ipack) = pack_tmp
   27672      489924 :          data_tmp = full_data(idata)
   27673      489924 :          pack_tmp = ISHFT(data_tmp, 35)
   27674      489924 :          pack_tmp = ISHFT(pack_tmp, -35)
   27675      489924 :          idata = idata + 1
   27676      489924 :          data_tmp = full_data(idata)
   27677      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27678      489924 :          data_tmp = IAND(data_tmp, mask_left(35))
   27679      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27680      489924 :          ipack = ipack + 1
   27681      489924 :          packed_data(ipack) = pack_tmp
   27682      489924 :          data_tmp = full_data(idata)
   27683      489924 :          pack_tmp = ISHFT(data_tmp, 62)
   27684      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27685      489924 :          idata = idata + 1
   27686      489924 :          data_tmp = full_data(idata)
   27687      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27688      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27689      489924 :          pack_tmp = ISHFT(pack_tmp, -25)
   27690      489924 :          idata = idata + 1
   27691      489924 :          data_tmp = full_data(idata)
   27692      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27693      489924 :          data_tmp = IAND(data_tmp, mask_left(25))
   27694      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27695      489924 :          ipack = ipack + 1
   27696      489924 :          packed_data(ipack) = pack_tmp
   27697      489924 :          data_tmp = full_data(idata)
   27698      489924 :          pack_tmp = ISHFT(data_tmp, 52)
   27699      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27700      489924 :          idata = idata + 1
   27701      489924 :          data_tmp = full_data(idata)
   27702      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27703      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27704      489924 :          pack_tmp = ISHFT(pack_tmp, -15)
   27705      489924 :          idata = idata + 1
   27706      489924 :          data_tmp = full_data(idata)
   27707      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27708      489924 :          data_tmp = IAND(data_tmp, mask_left(15))
   27709      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27710      489924 :          ipack = ipack + 1
   27711      489924 :          packed_data(ipack) = pack_tmp
   27712      489924 :          data_tmp = full_data(idata)
   27713      489924 :          pack_tmp = ISHFT(data_tmp, 42)
   27714      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27715      489924 :          idata = idata + 1
   27716      489924 :          data_tmp = full_data(idata)
   27717      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27718      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27719      489924 :          pack_tmp = ISHFT(pack_tmp, -5)
   27720      489924 :          idata = idata + 1
   27721      489924 :          data_tmp = full_data(idata)
   27722      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27723      489924 :          data_tmp = IAND(data_tmp, mask_left(5))
   27724      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27725      489924 :          ipack = ipack + 1
   27726      489924 :          packed_data(ipack) = pack_tmp
   27727      489924 :          data_tmp = full_data(idata)
   27728      489924 :          pack_tmp = ISHFT(data_tmp, 32)
   27729      489924 :          pack_tmp = ISHFT(pack_tmp, -32)
   27730      489924 :          idata = idata + 1
   27731      489924 :          data_tmp = full_data(idata)
   27732      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27733      489924 :          data_tmp = IAND(data_tmp, mask_left(32))
   27734      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27735      489924 :          ipack = ipack + 1
   27736      489924 :          packed_data(ipack) = pack_tmp
   27737      489924 :          data_tmp = full_data(idata)
   27738      489924 :          pack_tmp = ISHFT(data_tmp, 59)
   27739      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27740      489924 :          idata = idata + 1
   27741      489924 :          data_tmp = full_data(idata)
   27742      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27743      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27744      489924 :          pack_tmp = ISHFT(pack_tmp, -22)
   27745      489924 :          idata = idata + 1
   27746      489924 :          data_tmp = full_data(idata)
   27747      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27748      489924 :          data_tmp = IAND(data_tmp, mask_left(22))
   27749      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27750      489924 :          ipack = ipack + 1
   27751      489924 :          packed_data(ipack) = pack_tmp
   27752      489924 :          data_tmp = full_data(idata)
   27753      489924 :          pack_tmp = ISHFT(data_tmp, 49)
   27754      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27755      489924 :          idata = idata + 1
   27756      489924 :          data_tmp = full_data(idata)
   27757      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27758      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27759      489924 :          pack_tmp = ISHFT(pack_tmp, -12)
   27760      489924 :          idata = idata + 1
   27761      489924 :          data_tmp = full_data(idata)
   27762      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27763      489924 :          data_tmp = IAND(data_tmp, mask_left(12))
   27764      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27765      489924 :          ipack = ipack + 1
   27766      489924 :          packed_data(ipack) = pack_tmp
   27767      489924 :          data_tmp = full_data(idata)
   27768      489924 :          pack_tmp = ISHFT(data_tmp, 39)
   27769      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27770      489924 :          idata = idata + 1
   27771      489924 :          data_tmp = full_data(idata)
   27772      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27773      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27774      489924 :          pack_tmp = ISHFT(pack_tmp, -2)
   27775      489924 :          idata = idata + 1
   27776      489924 :          data_tmp = full_data(idata)
   27777      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27778      489924 :          data_tmp = IAND(data_tmp, mask_left(2))
   27779      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27780      489924 :          ipack = ipack + 1
   27781      489924 :          packed_data(ipack) = pack_tmp
   27782      489924 :          data_tmp = full_data(idata)
   27783      489924 :          pack_tmp = ISHFT(data_tmp, 29)
   27784      489924 :          pack_tmp = ISHFT(pack_tmp, -29)
   27785      489924 :          idata = idata + 1
   27786      489924 :          data_tmp = full_data(idata)
   27787      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27788      489924 :          data_tmp = IAND(data_tmp, mask_left(29))
   27789      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27790      489924 :          ipack = ipack + 1
   27791      489924 :          packed_data(ipack) = pack_tmp
   27792      489924 :          data_tmp = full_data(idata)
   27793      489924 :          pack_tmp = ISHFT(data_tmp, 56)
   27794      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27795      489924 :          idata = idata + 1
   27796      489924 :          data_tmp = full_data(idata)
   27797      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27798      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27799      489924 :          pack_tmp = ISHFT(pack_tmp, -19)
   27800      489924 :          idata = idata + 1
   27801      489924 :          data_tmp = full_data(idata)
   27802      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27803      489924 :          data_tmp = IAND(data_tmp, mask_left(19))
   27804      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27805      489924 :          ipack = ipack + 1
   27806      489924 :          packed_data(ipack) = pack_tmp
   27807      489924 :          data_tmp = full_data(idata)
   27808      489924 :          pack_tmp = ISHFT(data_tmp, 46)
   27809      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27810      489924 :          idata = idata + 1
   27811      489924 :          data_tmp = full_data(idata)
   27812      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27813      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27814      489924 :          pack_tmp = ISHFT(pack_tmp, -9)
   27815      489924 :          idata = idata + 1
   27816      489924 :          data_tmp = full_data(idata)
   27817      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27818      489924 :          data_tmp = IAND(data_tmp, mask_left(9))
   27819      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27820      489924 :          ipack = ipack + 1
   27821      489924 :          packed_data(ipack) = pack_tmp
   27822      489924 :          data_tmp = full_data(idata)
   27823      489924 :          pack_tmp = ISHFT(data_tmp, 36)
   27824      489924 :          pack_tmp = ISHFT(pack_tmp, -36)
   27825      489924 :          idata = idata + 1
   27826      489924 :          data_tmp = full_data(idata)
   27827      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27828      489924 :          data_tmp = IAND(data_tmp, mask_left(36))
   27829      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27830      489924 :          ipack = ipack + 1
   27831      489924 :          packed_data(ipack) = pack_tmp
   27832      489924 :          data_tmp = full_data(idata)
   27833      489924 :          pack_tmp = ISHFT(data_tmp, 63)
   27834      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27835      489924 :          idata = idata + 1
   27836      489924 :          data_tmp = full_data(idata)
   27837      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27838      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27839      489924 :          pack_tmp = ISHFT(pack_tmp, -26)
   27840      489924 :          idata = idata + 1
   27841      489924 :          data_tmp = full_data(idata)
   27842      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27843      489924 :          data_tmp = IAND(data_tmp, mask_left(26))
   27844      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27845      489924 :          ipack = ipack + 1
   27846      489924 :          packed_data(ipack) = pack_tmp
   27847      489924 :          data_tmp = full_data(idata)
   27848      489924 :          pack_tmp = ISHFT(data_tmp, 53)
   27849      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27850      489924 :          idata = idata + 1
   27851      489924 :          data_tmp = full_data(idata)
   27852      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27853      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27854      489924 :          pack_tmp = ISHFT(pack_tmp, -16)
   27855      489924 :          idata = idata + 1
   27856      489924 :          data_tmp = full_data(idata)
   27857      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27858      489924 :          data_tmp = IAND(data_tmp, mask_left(16))
   27859      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27860      489924 :          ipack = ipack + 1
   27861      489924 :          packed_data(ipack) = pack_tmp
   27862      489924 :          data_tmp = full_data(idata)
   27863      489924 :          pack_tmp = ISHFT(data_tmp, 43)
   27864      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27865      489924 :          idata = idata + 1
   27866      489924 :          data_tmp = full_data(idata)
   27867      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27868      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27869      489924 :          pack_tmp = ISHFT(pack_tmp, -6)
   27870      489924 :          idata = idata + 1
   27871      489924 :          data_tmp = full_data(idata)
   27872      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27873      489924 :          data_tmp = IAND(data_tmp, mask_left(6))
   27874      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27875      489924 :          ipack = ipack + 1
   27876      489924 :          packed_data(ipack) = pack_tmp
   27877      489924 :          data_tmp = full_data(idata)
   27878      489924 :          pack_tmp = ISHFT(data_tmp, 33)
   27879      489924 :          pack_tmp = ISHFT(pack_tmp, -33)
   27880      489924 :          idata = idata + 1
   27881      489924 :          data_tmp = full_data(idata)
   27882      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27883      489924 :          data_tmp = IAND(data_tmp, mask_left(33))
   27884      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27885      489924 :          ipack = ipack + 1
   27886      489924 :          packed_data(ipack) = pack_tmp
   27887      489924 :          data_tmp = full_data(idata)
   27888      489924 :          pack_tmp = ISHFT(data_tmp, 60)
   27889      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27890      489924 :          idata = idata + 1
   27891      489924 :          data_tmp = full_data(idata)
   27892      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27893      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27894      489924 :          pack_tmp = ISHFT(pack_tmp, -23)
   27895      489924 :          idata = idata + 1
   27896      489924 :          data_tmp = full_data(idata)
   27897      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27898      489924 :          data_tmp = IAND(data_tmp, mask_left(23))
   27899      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27900      489924 :          ipack = ipack + 1
   27901      489924 :          packed_data(ipack) = pack_tmp
   27902      489924 :          data_tmp = full_data(idata)
   27903      489924 :          pack_tmp = ISHFT(data_tmp, 50)
   27904      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27905      489924 :          idata = idata + 1
   27906      489924 :          data_tmp = full_data(idata)
   27907      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27908      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27909      489924 :          pack_tmp = ISHFT(pack_tmp, -13)
   27910      489924 :          idata = idata + 1
   27911      489924 :          data_tmp = full_data(idata)
   27912      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27913      489924 :          data_tmp = IAND(data_tmp, mask_left(13))
   27914      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27915      489924 :          ipack = ipack + 1
   27916      489924 :          packed_data(ipack) = pack_tmp
   27917      489924 :          data_tmp = full_data(idata)
   27918      489924 :          pack_tmp = ISHFT(data_tmp, 40)
   27919      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27920      489924 :          idata = idata + 1
   27921      489924 :          data_tmp = full_data(idata)
   27922      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27923      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27924      489924 :          pack_tmp = ISHFT(pack_tmp, -3)
   27925      489924 :          idata = idata + 1
   27926      489924 :          data_tmp = full_data(idata)
   27927      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27928      489924 :          data_tmp = IAND(data_tmp, mask_left(3))
   27929      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27930      489924 :          ipack = ipack + 1
   27931      489924 :          packed_data(ipack) = pack_tmp
   27932      489924 :          data_tmp = full_data(idata)
   27933      489924 :          pack_tmp = ISHFT(data_tmp, 30)
   27934      489924 :          pack_tmp = ISHFT(pack_tmp, -30)
   27935      489924 :          idata = idata + 1
   27936      489924 :          data_tmp = full_data(idata)
   27937      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27938      489924 :          data_tmp = IAND(data_tmp, mask_left(30))
   27939      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27940      489924 :          ipack = ipack + 1
   27941      489924 :          packed_data(ipack) = pack_tmp
   27942      489924 :          data_tmp = full_data(idata)
   27943      489924 :          pack_tmp = ISHFT(data_tmp, 57)
   27944      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27945      489924 :          idata = idata + 1
   27946      489924 :          data_tmp = full_data(idata)
   27947      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27948      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27949      489924 :          pack_tmp = ISHFT(pack_tmp, -20)
   27950      489924 :          idata = idata + 1
   27951      489924 :          data_tmp = full_data(idata)
   27952      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27953      489924 :          data_tmp = IAND(data_tmp, mask_left(20))
   27954      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27955      489924 :          ipack = ipack + 1
   27956      489924 :          packed_data(ipack) = pack_tmp
   27957      489924 :          data_tmp = full_data(idata)
   27958      489924 :          pack_tmp = ISHFT(data_tmp, 47)
   27959      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27960      489924 :          idata = idata + 1
   27961      489924 :          data_tmp = full_data(idata)
   27962      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27963      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27964      489924 :          pack_tmp = ISHFT(pack_tmp, -10)
   27965      489924 :          idata = idata + 1
   27966      489924 :          data_tmp = full_data(idata)
   27967      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27968      489924 :          data_tmp = IAND(data_tmp, mask_left(10))
   27969      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27970      489924 :          ipack = ipack + 1
   27971      489924 :          packed_data(ipack) = pack_tmp
   27972      489924 :          data_tmp = full_data(idata)
   27973      489924 :          pack_tmp = ISHFT(data_tmp, 37)
   27974      489924 :          pack_tmp = ISHFT(pack_tmp, -37)
   27975      489924 :          idata = idata + 1
   27976      489924 :          data_tmp = full_data(idata)
   27977      489924 :          data_tmp = ISHFT(data_tmp, 27)
   27978      489924 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27979             :          pack_tmp = ISHFT(pack_tmp, 0)
   27980      489924 :          pack_tmp = ISHFT(pack_tmp, 0)
   27981      489924 :          ipack = ipack + 1
   27982      489947 :          packed_data(ipack) = pack_tmp
   27983             :       END DO
   27984       35361 :       IF (Ndata_rep < Ndata) THEN
   27985        8920 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27986             :       END IF
   27987       35361 :    END SUBROUTINE ints2bits_37
   27988             : 
   27989             : ! **************************************************************************************************
   27990             : !> \brief ...
   27991             : !> \param Ndata ...
   27992             : !> \param packed_data ...
   27993             : !> \param full_data ...
   27994             : ! **************************************************************************************************
   27995      148846 :    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      148846 :       ipack = 0
   28006      148846 :       idata = 0
   28007      148846 :       pack_tmp = 0
   28008      148846 :       Ndata_rep = (Ndata/64)*64
   28009      148846 :       DO kdata = 1, Ndata_rep, 64
   28010     2025422 :          idata = idata + 1
   28011     2025422 :          data_tmp = ISHFT(pack_tmp, 37)
   28012     2025422 :          ipack = ipack + 1
   28013     2025422 :          pack_tmp = packed_data(ipack)
   28014     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   28015     2025422 :          pack_tmp = ISHFT(pack_tmp, -37)
   28016     2025422 :          idata = idata + 1
   28017     2025422 :          data_tmp = ISHFT(pack_tmp, 10)
   28018     2025422 :          ipack = ipack + 1
   28019     2025422 :          pack_tmp = packed_data(ipack)
   28020     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28021     2025422 :          pack_tmp = ISHFT(pack_tmp, -10)
   28022     2025422 :          idata = idata + 1
   28023     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28024     2025422 :          full_data(idata) = data_tmp
   28025     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28026     2025422 :          idata = idata + 1
   28027     2025422 :          data_tmp = ISHFT(pack_tmp, 20)
   28028     2025422 :          ipack = ipack + 1
   28029     2025422 :          pack_tmp = packed_data(ipack)
   28030     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28031     2025422 :          pack_tmp = ISHFT(pack_tmp, -20)
   28032     2025422 :          idata = idata + 1
   28033     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28034     2025422 :          full_data(idata) = data_tmp
   28035     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28036     2025422 :          idata = idata + 1
   28037     2025422 :          data_tmp = ISHFT(pack_tmp, 30)
   28038     2025422 :          ipack = ipack + 1
   28039     2025422 :          pack_tmp = packed_data(ipack)
   28040     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   28041     2025422 :          pack_tmp = ISHFT(pack_tmp, -30)
   28042     2025422 :          idata = idata + 1
   28043     2025422 :          data_tmp = ISHFT(pack_tmp, 3)
   28044     2025422 :          ipack = ipack + 1
   28045     2025422 :          pack_tmp = packed_data(ipack)
   28046     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   28047     2025422 :          pack_tmp = ISHFT(pack_tmp, -3)
   28048     2025422 :          idata = idata + 1
   28049     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28050     2025422 :          full_data(idata) = data_tmp
   28051     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28052     2025422 :          idata = idata + 1
   28053     2025422 :          data_tmp = ISHFT(pack_tmp, 13)
   28054     2025422 :          ipack = ipack + 1
   28055     2025422 :          pack_tmp = packed_data(ipack)
   28056     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   28057     2025422 :          pack_tmp = ISHFT(pack_tmp, -13)
   28058     2025422 :          idata = idata + 1
   28059     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28060     2025422 :          full_data(idata) = data_tmp
   28061     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28062     2025422 :          idata = idata + 1
   28063     2025422 :          data_tmp = ISHFT(pack_tmp, 23)
   28064     2025422 :          ipack = ipack + 1
   28065     2025422 :          pack_tmp = packed_data(ipack)
   28066     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   28067     2025422 :          pack_tmp = ISHFT(pack_tmp, -23)
   28068     2025422 :          idata = idata + 1
   28069     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28070     2025422 :          full_data(idata) = data_tmp
   28071     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28072     2025422 :          idata = idata + 1
   28073     2025422 :          data_tmp = ISHFT(pack_tmp, 33)
   28074     2025422 :          ipack = ipack + 1
   28075     2025422 :          pack_tmp = packed_data(ipack)
   28076     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   28077     2025422 :          pack_tmp = ISHFT(pack_tmp, -33)
   28078     2025422 :          idata = idata + 1
   28079     2025422 :          data_tmp = ISHFT(pack_tmp, 6)
   28080     2025422 :          ipack = ipack + 1
   28081     2025422 :          pack_tmp = packed_data(ipack)
   28082     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28083     2025422 :          pack_tmp = ISHFT(pack_tmp, -6)
   28084     2025422 :          idata = idata + 1
   28085     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28086     2025422 :          full_data(idata) = data_tmp
   28087     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28088     2025422 :          idata = idata + 1
   28089     2025422 :          data_tmp = ISHFT(pack_tmp, 16)
   28090     2025422 :          ipack = ipack + 1
   28091     2025422 :          pack_tmp = packed_data(ipack)
   28092     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   28093     2025422 :          pack_tmp = ISHFT(pack_tmp, -16)
   28094     2025422 :          idata = idata + 1
   28095     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28096     2025422 :          full_data(idata) = data_tmp
   28097     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28098     2025422 :          idata = idata + 1
   28099     2025422 :          data_tmp = ISHFT(pack_tmp, 26)
   28100     2025422 :          ipack = ipack + 1
   28101     2025422 :          pack_tmp = packed_data(ipack)
   28102     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   28103     2025422 :          pack_tmp = ISHFT(pack_tmp, -26)
   28104     2025422 :          idata = idata + 1
   28105     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28106     2025422 :          full_data(idata) = data_tmp
   28107     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28108     2025422 :          idata = idata + 1
   28109     2025422 :          data_tmp = ISHFT(pack_tmp, 36)
   28110     2025422 :          ipack = ipack + 1
   28111     2025422 :          pack_tmp = packed_data(ipack)
   28112     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28113     2025422 :          pack_tmp = ISHFT(pack_tmp, -36)
   28114     2025422 :          idata = idata + 1
   28115     2025422 :          data_tmp = ISHFT(pack_tmp, 9)
   28116     2025422 :          ipack = ipack + 1
   28117     2025422 :          pack_tmp = packed_data(ipack)
   28118     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   28119     2025422 :          pack_tmp = ISHFT(pack_tmp, -9)
   28120     2025422 :          idata = idata + 1
   28121     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28122     2025422 :          full_data(idata) = data_tmp
   28123     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28124     2025422 :          idata = idata + 1
   28125     2025422 :          data_tmp = ISHFT(pack_tmp, 19)
   28126     2025422 :          ipack = ipack + 1
   28127     2025422 :          pack_tmp = packed_data(ipack)
   28128     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   28129     2025422 :          pack_tmp = ISHFT(pack_tmp, -19)
   28130     2025422 :          idata = idata + 1
   28131     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28132     2025422 :          full_data(idata) = data_tmp
   28133     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28134     2025422 :          idata = idata + 1
   28135     2025422 :          data_tmp = ISHFT(pack_tmp, 29)
   28136     2025422 :          ipack = ipack + 1
   28137     2025422 :          pack_tmp = packed_data(ipack)
   28138     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   28139     2025422 :          pack_tmp = ISHFT(pack_tmp, -29)
   28140     2025422 :          idata = idata + 1
   28141     2025422 :          data_tmp = ISHFT(pack_tmp, 2)
   28142     2025422 :          ipack = ipack + 1
   28143     2025422 :          pack_tmp = packed_data(ipack)
   28144     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   28145     2025422 :          pack_tmp = ISHFT(pack_tmp, -2)
   28146     2025422 :          idata = idata + 1
   28147     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28148     2025422 :          full_data(idata) = data_tmp
   28149     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28150     2025422 :          idata = idata + 1
   28151     2025422 :          data_tmp = ISHFT(pack_tmp, 12)
   28152     2025422 :          ipack = ipack + 1
   28153     2025422 :          pack_tmp = packed_data(ipack)
   28154     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28155     2025422 :          pack_tmp = ISHFT(pack_tmp, -12)
   28156     2025422 :          idata = idata + 1
   28157     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28158     2025422 :          full_data(idata) = data_tmp
   28159     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28160     2025422 :          idata = idata + 1
   28161     2025422 :          data_tmp = ISHFT(pack_tmp, 22)
   28162     2025422 :          ipack = ipack + 1
   28163     2025422 :          pack_tmp = packed_data(ipack)
   28164     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28165     2025422 :          pack_tmp = ISHFT(pack_tmp, -22)
   28166     2025422 :          idata = idata + 1
   28167     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28168     2025422 :          full_data(idata) = data_tmp
   28169     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28170     2025422 :          idata = idata + 1
   28171     2025422 :          data_tmp = ISHFT(pack_tmp, 32)
   28172     2025422 :          ipack = ipack + 1
   28173     2025422 :          pack_tmp = packed_data(ipack)
   28174     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28175     2025422 :          pack_tmp = ISHFT(pack_tmp, -32)
   28176     2025422 :          idata = idata + 1
   28177     2025422 :          data_tmp = ISHFT(pack_tmp, 5)
   28178     2025422 :          ipack = ipack + 1
   28179     2025422 :          pack_tmp = packed_data(ipack)
   28180     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   28181     2025422 :          pack_tmp = ISHFT(pack_tmp, -5)
   28182     2025422 :          idata = idata + 1
   28183     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28184     2025422 :          full_data(idata) = data_tmp
   28185     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28186     2025422 :          idata = idata + 1
   28187     2025422 :          data_tmp = ISHFT(pack_tmp, 15)
   28188     2025422 :          ipack = ipack + 1
   28189     2025422 :          pack_tmp = packed_data(ipack)
   28190     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   28191     2025422 :          pack_tmp = ISHFT(pack_tmp, -15)
   28192     2025422 :          idata = idata + 1
   28193     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28194     2025422 :          full_data(idata) = data_tmp
   28195     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28196     2025422 :          idata = idata + 1
   28197     2025422 :          data_tmp = ISHFT(pack_tmp, 25)
   28198     2025422 :          ipack = ipack + 1
   28199     2025422 :          pack_tmp = packed_data(ipack)
   28200     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   28201     2025422 :          pack_tmp = ISHFT(pack_tmp, -25)
   28202     2025422 :          idata = idata + 1
   28203     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28204     2025422 :          full_data(idata) = data_tmp
   28205     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28206     2025422 :          idata = idata + 1
   28207     2025422 :          data_tmp = ISHFT(pack_tmp, 35)
   28208     2025422 :          ipack = ipack + 1
   28209     2025422 :          pack_tmp = packed_data(ipack)
   28210     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   28211     2025422 :          pack_tmp = ISHFT(pack_tmp, -35)
   28212     2025422 :          idata = idata + 1
   28213     2025422 :          data_tmp = ISHFT(pack_tmp, 8)
   28214     2025422 :          ipack = ipack + 1
   28215     2025422 :          pack_tmp = packed_data(ipack)
   28216     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28217     2025422 :          pack_tmp = ISHFT(pack_tmp, -8)
   28218     2025422 :          idata = idata + 1
   28219     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28220     2025422 :          full_data(idata) = data_tmp
   28221     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28222     2025422 :          idata = idata + 1
   28223     2025422 :          data_tmp = ISHFT(pack_tmp, 18)
   28224     2025422 :          ipack = ipack + 1
   28225     2025422 :          pack_tmp = packed_data(ipack)
   28226     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   28227     2025422 :          pack_tmp = ISHFT(pack_tmp, -18)
   28228     2025422 :          idata = idata + 1
   28229     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28230     2025422 :          full_data(idata) = data_tmp
   28231     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28232     2025422 :          idata = idata + 1
   28233     2025422 :          data_tmp = ISHFT(pack_tmp, 28)
   28234     2025422 :          ipack = ipack + 1
   28235     2025422 :          pack_tmp = packed_data(ipack)
   28236     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   28237     2025422 :          pack_tmp = ISHFT(pack_tmp, -28)
   28238     2025422 :          idata = idata + 1
   28239     2025422 :          data_tmp = ISHFT(pack_tmp, 1)
   28240     2025422 :          ipack = ipack + 1
   28241     2025422 :          pack_tmp = packed_data(ipack)
   28242     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   28243     2025422 :          pack_tmp = ISHFT(pack_tmp, -1)
   28244     2025422 :          idata = idata + 1
   28245     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28246     2025422 :          full_data(idata) = data_tmp
   28247     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28248     2025422 :          idata = idata + 1
   28249     2025422 :          data_tmp = ISHFT(pack_tmp, 11)
   28250     2025422 :          ipack = ipack + 1
   28251     2025422 :          pack_tmp = packed_data(ipack)
   28252     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   28253     2025422 :          pack_tmp = ISHFT(pack_tmp, -11)
   28254     2025422 :          idata = idata + 1
   28255     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28256     2025422 :          full_data(idata) = data_tmp
   28257     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28258     2025422 :          idata = idata + 1
   28259     2025422 :          data_tmp = ISHFT(pack_tmp, 21)
   28260     2025422 :          ipack = ipack + 1
   28261     2025422 :          pack_tmp = packed_data(ipack)
   28262     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   28263     2025422 :          pack_tmp = ISHFT(pack_tmp, -21)
   28264     2025422 :          idata = idata + 1
   28265     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28266     2025422 :          full_data(idata) = data_tmp
   28267     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28268     2025422 :          idata = idata + 1
   28269     2025422 :          data_tmp = ISHFT(pack_tmp, 31)
   28270     2025422 :          ipack = ipack + 1
   28271     2025422 :          pack_tmp = packed_data(ipack)
   28272     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   28273     2025422 :          pack_tmp = ISHFT(pack_tmp, -31)
   28274     2025422 :          idata = idata + 1
   28275     2025422 :          data_tmp = ISHFT(pack_tmp, 4)
   28276     2025422 :          ipack = ipack + 1
   28277     2025422 :          pack_tmp = packed_data(ipack)
   28278     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   28279     2025422 :          pack_tmp = ISHFT(pack_tmp, -4)
   28280     2025422 :          idata = idata + 1
   28281     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28282     2025422 :          full_data(idata) = data_tmp
   28283     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28284     2025422 :          idata = idata + 1
   28285     2025422 :          data_tmp = ISHFT(pack_tmp, 14)
   28286     2025422 :          ipack = ipack + 1
   28287     2025422 :          pack_tmp = packed_data(ipack)
   28288     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   28289     2025422 :          pack_tmp = ISHFT(pack_tmp, -14)
   28290     2025422 :          idata = idata + 1
   28291     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28292     2025422 :          full_data(idata) = data_tmp
   28293     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28294     2025422 :          idata = idata + 1
   28295     2025422 :          data_tmp = ISHFT(pack_tmp, 24)
   28296     2025422 :          ipack = ipack + 1
   28297     2025422 :          pack_tmp = packed_data(ipack)
   28298     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28299     2025422 :          pack_tmp = ISHFT(pack_tmp, -24)
   28300     2025422 :          idata = idata + 1
   28301     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28302     2025422 :          full_data(idata) = data_tmp
   28303     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28304     2025422 :          idata = idata + 1
   28305     2025422 :          data_tmp = ISHFT(pack_tmp, 34)
   28306     2025422 :          ipack = ipack + 1
   28307     2025422 :          pack_tmp = packed_data(ipack)
   28308     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28309     2025422 :          pack_tmp = ISHFT(pack_tmp, -34)
   28310     2025422 :          idata = idata + 1
   28311     2025422 :          data_tmp = ISHFT(pack_tmp, 7)
   28312     2025422 :          ipack = ipack + 1
   28313     2025422 :          pack_tmp = packed_data(ipack)
   28314     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   28315     2025422 :          pack_tmp = ISHFT(pack_tmp, -7)
   28316     2025422 :          idata = idata + 1
   28317     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28318     2025422 :          full_data(idata) = data_tmp
   28319     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28320     2025422 :          idata = idata + 1
   28321     2025422 :          data_tmp = ISHFT(pack_tmp, 17)
   28322     2025422 :          ipack = ipack + 1
   28323     2025422 :          pack_tmp = packed_data(ipack)
   28324     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   28325     2025422 :          pack_tmp = ISHFT(pack_tmp, -17)
   28326     2025422 :          idata = idata + 1
   28327     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28328     2025422 :          full_data(idata) = data_tmp
   28329     2025422 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28330     2025422 :          idata = idata + 1
   28331     2025422 :          data_tmp = ISHFT(pack_tmp, 27)
   28332     2025422 :          ipack = ipack + 1
   28333     2025422 :          pack_tmp = packed_data(ipack)
   28334     2025422 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   28335     2025422 :          pack_tmp = ISHFT(pack_tmp, -27)
   28336     2025422 :          idata = idata + 1
   28337     2025422 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28338     2025422 :          full_data(idata) = data_tmp
   28339     2025461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28340             :       END DO
   28341      148846 :       IF (Ndata_rep < Ndata) THEN
   28342       41892 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28343             :       END IF
   28344      148846 :    END SUBROUTINE bits2ints_37
   28345             : 
   28346             : ! **************************************************************************************************
   28347             : !> \brief ...
   28348             : !> \param Ndata ...
   28349             : !> \param packed_data ...
   28350             : !> \param full_data ...
   28351             : ! **************************************************************************************************
   28352       32708 :    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       32708 :       idata = 0
   28363       32708 :       ipack = 0
   28364       32708 :       Ndata_rep = (Ndata/64)*64
   28365       32708 :       DO kdata = 1, Ndata_rep, 64
   28366      464336 :          pack_tmp = 0
   28367      464336 :          idata = idata + 1
   28368      464336 :          data_tmp = full_data(idata)
   28369      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28370      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28371      464336 :          pack_tmp = ISHFT(pack_tmp, -26)
   28372      464336 :          idata = idata + 1
   28373      464336 :          data_tmp = full_data(idata)
   28374      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28375      464336 :          data_tmp = IAND(data_tmp, mask_left(26))
   28376      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28377      464336 :          ipack = ipack + 1
   28378      464336 :          packed_data(ipack) = pack_tmp
   28379      464336 :          data_tmp = full_data(idata)
   28380      464336 :          pack_tmp = ISHFT(data_tmp, 52)
   28381      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28382      464336 :          idata = idata + 1
   28383      464336 :          data_tmp = full_data(idata)
   28384      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28385      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28386      464336 :          pack_tmp = ISHFT(pack_tmp, -14)
   28387      464336 :          idata = idata + 1
   28388      464336 :          data_tmp = full_data(idata)
   28389      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28390      464336 :          data_tmp = IAND(data_tmp, mask_left(14))
   28391      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28392      464336 :          ipack = ipack + 1
   28393      464336 :          packed_data(ipack) = pack_tmp
   28394      464336 :          data_tmp = full_data(idata)
   28395      464336 :          pack_tmp = ISHFT(data_tmp, 40)
   28396      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28397      464336 :          idata = idata + 1
   28398      464336 :          data_tmp = full_data(idata)
   28399      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28400      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28401      464336 :          pack_tmp = ISHFT(pack_tmp, -2)
   28402      464336 :          idata = idata + 1
   28403      464336 :          data_tmp = full_data(idata)
   28404      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28405      464336 :          data_tmp = IAND(data_tmp, mask_left(2))
   28406      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28407      464336 :          ipack = ipack + 1
   28408      464336 :          packed_data(ipack) = pack_tmp
   28409      464336 :          data_tmp = full_data(idata)
   28410      464336 :          pack_tmp = ISHFT(data_tmp, 28)
   28411      464336 :          pack_tmp = ISHFT(pack_tmp, -28)
   28412      464336 :          idata = idata + 1
   28413      464336 :          data_tmp = full_data(idata)
   28414      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28415      464336 :          data_tmp = IAND(data_tmp, mask_left(28))
   28416      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28417      464336 :          ipack = ipack + 1
   28418      464336 :          packed_data(ipack) = pack_tmp
   28419      464336 :          data_tmp = full_data(idata)
   28420      464336 :          pack_tmp = ISHFT(data_tmp, 54)
   28421      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28422      464336 :          idata = idata + 1
   28423      464336 :          data_tmp = full_data(idata)
   28424      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28425      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28426      464336 :          pack_tmp = ISHFT(pack_tmp, -16)
   28427      464336 :          idata = idata + 1
   28428      464336 :          data_tmp = full_data(idata)
   28429      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28430      464336 :          data_tmp = IAND(data_tmp, mask_left(16))
   28431      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28432      464336 :          ipack = ipack + 1
   28433      464336 :          packed_data(ipack) = pack_tmp
   28434      464336 :          data_tmp = full_data(idata)
   28435      464336 :          pack_tmp = ISHFT(data_tmp, 42)
   28436      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28437      464336 :          idata = idata + 1
   28438      464336 :          data_tmp = full_data(idata)
   28439      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28440      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28441      464336 :          pack_tmp = ISHFT(pack_tmp, -4)
   28442      464336 :          idata = idata + 1
   28443      464336 :          data_tmp = full_data(idata)
   28444      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28445      464336 :          data_tmp = IAND(data_tmp, mask_left(4))
   28446      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28447      464336 :          ipack = ipack + 1
   28448      464336 :          packed_data(ipack) = pack_tmp
   28449      464336 :          data_tmp = full_data(idata)
   28450      464336 :          pack_tmp = ISHFT(data_tmp, 30)
   28451      464336 :          pack_tmp = ISHFT(pack_tmp, -30)
   28452      464336 :          idata = idata + 1
   28453      464336 :          data_tmp = full_data(idata)
   28454      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28455      464336 :          data_tmp = IAND(data_tmp, mask_left(30))
   28456      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28457      464336 :          ipack = ipack + 1
   28458      464336 :          packed_data(ipack) = pack_tmp
   28459      464336 :          data_tmp = full_data(idata)
   28460      464336 :          pack_tmp = ISHFT(data_tmp, 56)
   28461      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28462      464336 :          idata = idata + 1
   28463      464336 :          data_tmp = full_data(idata)
   28464      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28465      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28466      464336 :          pack_tmp = ISHFT(pack_tmp, -18)
   28467      464336 :          idata = idata + 1
   28468      464336 :          data_tmp = full_data(idata)
   28469      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28470      464336 :          data_tmp = IAND(data_tmp, mask_left(18))
   28471      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28472      464336 :          ipack = ipack + 1
   28473      464336 :          packed_data(ipack) = pack_tmp
   28474      464336 :          data_tmp = full_data(idata)
   28475      464336 :          pack_tmp = ISHFT(data_tmp, 44)
   28476      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28477      464336 :          idata = idata + 1
   28478      464336 :          data_tmp = full_data(idata)
   28479      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28480      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28481      464336 :          pack_tmp = ISHFT(pack_tmp, -6)
   28482      464336 :          idata = idata + 1
   28483      464336 :          data_tmp = full_data(idata)
   28484      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28485      464336 :          data_tmp = IAND(data_tmp, mask_left(6))
   28486      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28487      464336 :          ipack = ipack + 1
   28488      464336 :          packed_data(ipack) = pack_tmp
   28489      464336 :          data_tmp = full_data(idata)
   28490      464336 :          pack_tmp = ISHFT(data_tmp, 32)
   28491      464336 :          pack_tmp = ISHFT(pack_tmp, -32)
   28492      464336 :          idata = idata + 1
   28493      464336 :          data_tmp = full_data(idata)
   28494      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28495      464336 :          data_tmp = IAND(data_tmp, mask_left(32))
   28496      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28497      464336 :          ipack = ipack + 1
   28498      464336 :          packed_data(ipack) = pack_tmp
   28499      464336 :          data_tmp = full_data(idata)
   28500      464336 :          pack_tmp = ISHFT(data_tmp, 58)
   28501      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28502      464336 :          idata = idata + 1
   28503      464336 :          data_tmp = full_data(idata)
   28504      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28505      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28506      464336 :          pack_tmp = ISHFT(pack_tmp, -20)
   28507      464336 :          idata = idata + 1
   28508      464336 :          data_tmp = full_data(idata)
   28509      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28510      464336 :          data_tmp = IAND(data_tmp, mask_left(20))
   28511      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28512      464336 :          ipack = ipack + 1
   28513      464336 :          packed_data(ipack) = pack_tmp
   28514      464336 :          data_tmp = full_data(idata)
   28515      464336 :          pack_tmp = ISHFT(data_tmp, 46)
   28516      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28517      464336 :          idata = idata + 1
   28518      464336 :          data_tmp = full_data(idata)
   28519      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28520      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28521      464336 :          pack_tmp = ISHFT(pack_tmp, -8)
   28522      464336 :          idata = idata + 1
   28523      464336 :          data_tmp = full_data(idata)
   28524      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28525      464336 :          data_tmp = IAND(data_tmp, mask_left(8))
   28526      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28527      464336 :          ipack = ipack + 1
   28528      464336 :          packed_data(ipack) = pack_tmp
   28529      464336 :          data_tmp = full_data(idata)
   28530      464336 :          pack_tmp = ISHFT(data_tmp, 34)
   28531      464336 :          pack_tmp = ISHFT(pack_tmp, -34)
   28532      464336 :          idata = idata + 1
   28533      464336 :          data_tmp = full_data(idata)
   28534      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28535      464336 :          data_tmp = IAND(data_tmp, mask_left(34))
   28536      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28537      464336 :          ipack = ipack + 1
   28538      464336 :          packed_data(ipack) = pack_tmp
   28539      464336 :          data_tmp = full_data(idata)
   28540      464336 :          pack_tmp = ISHFT(data_tmp, 60)
   28541      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28542      464336 :          idata = idata + 1
   28543      464336 :          data_tmp = full_data(idata)
   28544      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28545      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28546      464336 :          pack_tmp = ISHFT(pack_tmp, -22)
   28547      464336 :          idata = idata + 1
   28548      464336 :          data_tmp = full_data(idata)
   28549      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28550      464336 :          data_tmp = IAND(data_tmp, mask_left(22))
   28551      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28552      464336 :          ipack = ipack + 1
   28553      464336 :          packed_data(ipack) = pack_tmp
   28554      464336 :          data_tmp = full_data(idata)
   28555      464336 :          pack_tmp = ISHFT(data_tmp, 48)
   28556      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28557      464336 :          idata = idata + 1
   28558      464336 :          data_tmp = full_data(idata)
   28559      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28560      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28561      464336 :          pack_tmp = ISHFT(pack_tmp, -10)
   28562      464336 :          idata = idata + 1
   28563      464336 :          data_tmp = full_data(idata)
   28564      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28565      464336 :          data_tmp = IAND(data_tmp, mask_left(10))
   28566      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28567      464336 :          ipack = ipack + 1
   28568      464336 :          packed_data(ipack) = pack_tmp
   28569      464336 :          data_tmp = full_data(idata)
   28570      464336 :          pack_tmp = ISHFT(data_tmp, 36)
   28571      464336 :          pack_tmp = ISHFT(pack_tmp, -36)
   28572      464336 :          idata = idata + 1
   28573      464336 :          data_tmp = full_data(idata)
   28574      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28575      464336 :          data_tmp = IAND(data_tmp, mask_left(36))
   28576      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28577      464336 :          ipack = ipack + 1
   28578      464336 :          packed_data(ipack) = pack_tmp
   28579      464336 :          data_tmp = full_data(idata)
   28580      464336 :          pack_tmp = ISHFT(data_tmp, 62)
   28581      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28582      464336 :          idata = idata + 1
   28583      464336 :          data_tmp = full_data(idata)
   28584      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28585      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28586      464336 :          pack_tmp = ISHFT(pack_tmp, -24)
   28587      464336 :          idata = idata + 1
   28588      464336 :          data_tmp = full_data(idata)
   28589      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28590      464336 :          data_tmp = IAND(data_tmp, mask_left(24))
   28591      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28592      464336 :          ipack = ipack + 1
   28593      464336 :          packed_data(ipack) = pack_tmp
   28594      464336 :          data_tmp = full_data(idata)
   28595      464336 :          pack_tmp = ISHFT(data_tmp, 50)
   28596      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28597      464336 :          idata = idata + 1
   28598      464336 :          data_tmp = full_data(idata)
   28599      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28600      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28601      464336 :          pack_tmp = ISHFT(pack_tmp, -12)
   28602      464336 :          idata = idata + 1
   28603      464336 :          data_tmp = full_data(idata)
   28604      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28605      464336 :          data_tmp = IAND(data_tmp, mask_left(12))
   28606      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28607      464336 :          ipack = ipack + 1
   28608      464336 :          packed_data(ipack) = pack_tmp
   28609      464336 :          data_tmp = full_data(idata)
   28610      464336 :          pack_tmp = ISHFT(data_tmp, 38)
   28611      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28612      464336 :          idata = idata + 1
   28613      464336 :          data_tmp = full_data(idata)
   28614      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28615      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28616      464336 :          pack_tmp = ISHFT(pack_tmp, 0)
   28617      464336 :          idata = idata + 1
   28618      464336 :          data_tmp = full_data(idata)
   28619             :          data_tmp = ISHFT(data_tmp, 26)
   28620      464336 :          data_tmp = IAND(data_tmp, mask_left(0))
   28621      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28622      464336 :          ipack = ipack + 1
   28623      464336 :          packed_data(ipack) = pack_tmp
   28624      464336 :          data_tmp = full_data(idata)
   28625      464336 :          pack_tmp = ISHFT(data_tmp, 26)
   28626      464336 :          pack_tmp = ISHFT(pack_tmp, -26)
   28627      464336 :          idata = idata + 1
   28628      464336 :          data_tmp = full_data(idata)
   28629      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28630      464336 :          data_tmp = IAND(data_tmp, mask_left(26))
   28631      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28632      464336 :          ipack = ipack + 1
   28633      464336 :          packed_data(ipack) = pack_tmp
   28634      464336 :          data_tmp = full_data(idata)
   28635      464336 :          pack_tmp = ISHFT(data_tmp, 52)
   28636      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28637      464336 :          idata = idata + 1
   28638      464336 :          data_tmp = full_data(idata)
   28639      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28640      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28641      464336 :          pack_tmp = ISHFT(pack_tmp, -14)
   28642      464336 :          idata = idata + 1
   28643      464336 :          data_tmp = full_data(idata)
   28644      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28645      464336 :          data_tmp = IAND(data_tmp, mask_left(14))
   28646      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28647      464336 :          ipack = ipack + 1
   28648      464336 :          packed_data(ipack) = pack_tmp
   28649      464336 :          data_tmp = full_data(idata)
   28650      464336 :          pack_tmp = ISHFT(data_tmp, 40)
   28651      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28652      464336 :          idata = idata + 1
   28653      464336 :          data_tmp = full_data(idata)
   28654      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28655      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28656      464336 :          pack_tmp = ISHFT(pack_tmp, -2)
   28657      464336 :          idata = idata + 1
   28658      464336 :          data_tmp = full_data(idata)
   28659      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28660      464336 :          data_tmp = IAND(data_tmp, mask_left(2))
   28661      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28662      464336 :          ipack = ipack + 1
   28663      464336 :          packed_data(ipack) = pack_tmp
   28664      464336 :          data_tmp = full_data(idata)
   28665      464336 :          pack_tmp = ISHFT(data_tmp, 28)
   28666      464336 :          pack_tmp = ISHFT(pack_tmp, -28)
   28667      464336 :          idata = idata + 1
   28668      464336 :          data_tmp = full_data(idata)
   28669      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28670      464336 :          data_tmp = IAND(data_tmp, mask_left(28))
   28671      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28672      464336 :          ipack = ipack + 1
   28673      464336 :          packed_data(ipack) = pack_tmp
   28674      464336 :          data_tmp = full_data(idata)
   28675      464336 :          pack_tmp = ISHFT(data_tmp, 54)
   28676      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28677      464336 :          idata = idata + 1
   28678      464336 :          data_tmp = full_data(idata)
   28679      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28680      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28681      464336 :          pack_tmp = ISHFT(pack_tmp, -16)
   28682      464336 :          idata = idata + 1
   28683      464336 :          data_tmp = full_data(idata)
   28684      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28685      464336 :          data_tmp = IAND(data_tmp, mask_left(16))
   28686      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28687      464336 :          ipack = ipack + 1
   28688      464336 :          packed_data(ipack) = pack_tmp
   28689      464336 :          data_tmp = full_data(idata)
   28690      464336 :          pack_tmp = ISHFT(data_tmp, 42)
   28691      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28692      464336 :          idata = idata + 1
   28693      464336 :          data_tmp = full_data(idata)
   28694      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28695      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28696      464336 :          pack_tmp = ISHFT(pack_tmp, -4)
   28697      464336 :          idata = idata + 1
   28698      464336 :          data_tmp = full_data(idata)
   28699      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28700      464336 :          data_tmp = IAND(data_tmp, mask_left(4))
   28701      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28702      464336 :          ipack = ipack + 1
   28703      464336 :          packed_data(ipack) = pack_tmp
   28704      464336 :          data_tmp = full_data(idata)
   28705      464336 :          pack_tmp = ISHFT(data_tmp, 30)
   28706      464336 :          pack_tmp = ISHFT(pack_tmp, -30)
   28707      464336 :          idata = idata + 1
   28708      464336 :          data_tmp = full_data(idata)
   28709      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28710      464336 :          data_tmp = IAND(data_tmp, mask_left(30))
   28711      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28712      464336 :          ipack = ipack + 1
   28713      464336 :          packed_data(ipack) = pack_tmp
   28714      464336 :          data_tmp = full_data(idata)
   28715      464336 :          pack_tmp = ISHFT(data_tmp, 56)
   28716      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28717      464336 :          idata = idata + 1
   28718      464336 :          data_tmp = full_data(idata)
   28719      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28720      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28721      464336 :          pack_tmp = ISHFT(pack_tmp, -18)
   28722      464336 :          idata = idata + 1
   28723      464336 :          data_tmp = full_data(idata)
   28724      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28725      464336 :          data_tmp = IAND(data_tmp, mask_left(18))
   28726      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28727      464336 :          ipack = ipack + 1
   28728      464336 :          packed_data(ipack) = pack_tmp
   28729      464336 :          data_tmp = full_data(idata)
   28730      464336 :          pack_tmp = ISHFT(data_tmp, 44)
   28731      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28732      464336 :          idata = idata + 1
   28733      464336 :          data_tmp = full_data(idata)
   28734      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28735      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28736      464336 :          pack_tmp = ISHFT(pack_tmp, -6)
   28737      464336 :          idata = idata + 1
   28738      464336 :          data_tmp = full_data(idata)
   28739      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28740      464336 :          data_tmp = IAND(data_tmp, mask_left(6))
   28741      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28742      464336 :          ipack = ipack + 1
   28743      464336 :          packed_data(ipack) = pack_tmp
   28744      464336 :          data_tmp = full_data(idata)
   28745      464336 :          pack_tmp = ISHFT(data_tmp, 32)
   28746      464336 :          pack_tmp = ISHFT(pack_tmp, -32)
   28747      464336 :          idata = idata + 1
   28748      464336 :          data_tmp = full_data(idata)
   28749      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28750      464336 :          data_tmp = IAND(data_tmp, mask_left(32))
   28751      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28752      464336 :          ipack = ipack + 1
   28753      464336 :          packed_data(ipack) = pack_tmp
   28754      464336 :          data_tmp = full_data(idata)
   28755      464336 :          pack_tmp = ISHFT(data_tmp, 58)
   28756      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28757      464336 :          idata = idata + 1
   28758      464336 :          data_tmp = full_data(idata)
   28759      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28760      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28761      464336 :          pack_tmp = ISHFT(pack_tmp, -20)
   28762      464336 :          idata = idata + 1
   28763      464336 :          data_tmp = full_data(idata)
   28764      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28765      464336 :          data_tmp = IAND(data_tmp, mask_left(20))
   28766      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28767      464336 :          ipack = ipack + 1
   28768      464336 :          packed_data(ipack) = pack_tmp
   28769      464336 :          data_tmp = full_data(idata)
   28770      464336 :          pack_tmp = ISHFT(data_tmp, 46)
   28771      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28772      464336 :          idata = idata + 1
   28773      464336 :          data_tmp = full_data(idata)
   28774      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28775      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28776      464336 :          pack_tmp = ISHFT(pack_tmp, -8)
   28777      464336 :          idata = idata + 1
   28778      464336 :          data_tmp = full_data(idata)
   28779      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28780      464336 :          data_tmp = IAND(data_tmp, mask_left(8))
   28781      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28782      464336 :          ipack = ipack + 1
   28783      464336 :          packed_data(ipack) = pack_tmp
   28784      464336 :          data_tmp = full_data(idata)
   28785      464336 :          pack_tmp = ISHFT(data_tmp, 34)
   28786      464336 :          pack_tmp = ISHFT(pack_tmp, -34)
   28787      464336 :          idata = idata + 1
   28788      464336 :          data_tmp = full_data(idata)
   28789      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28790      464336 :          data_tmp = IAND(data_tmp, mask_left(34))
   28791      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28792      464336 :          ipack = ipack + 1
   28793      464336 :          packed_data(ipack) = pack_tmp
   28794      464336 :          data_tmp = full_data(idata)
   28795      464336 :          pack_tmp = ISHFT(data_tmp, 60)
   28796      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28797      464336 :          idata = idata + 1
   28798      464336 :          data_tmp = full_data(idata)
   28799      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28800      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28801      464336 :          pack_tmp = ISHFT(pack_tmp, -22)
   28802      464336 :          idata = idata + 1
   28803      464336 :          data_tmp = full_data(idata)
   28804      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28805      464336 :          data_tmp = IAND(data_tmp, mask_left(22))
   28806      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28807      464336 :          ipack = ipack + 1
   28808      464336 :          packed_data(ipack) = pack_tmp
   28809      464336 :          data_tmp = full_data(idata)
   28810      464336 :          pack_tmp = ISHFT(data_tmp, 48)
   28811      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28812      464336 :          idata = idata + 1
   28813      464336 :          data_tmp = full_data(idata)
   28814      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28815      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28816      464336 :          pack_tmp = ISHFT(pack_tmp, -10)
   28817      464336 :          idata = idata + 1
   28818      464336 :          data_tmp = full_data(idata)
   28819      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28820      464336 :          data_tmp = IAND(data_tmp, mask_left(10))
   28821      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28822      464336 :          ipack = ipack + 1
   28823      464336 :          packed_data(ipack) = pack_tmp
   28824      464336 :          data_tmp = full_data(idata)
   28825      464336 :          pack_tmp = ISHFT(data_tmp, 36)
   28826      464336 :          pack_tmp = ISHFT(pack_tmp, -36)
   28827      464336 :          idata = idata + 1
   28828      464336 :          data_tmp = full_data(idata)
   28829      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28830      464336 :          data_tmp = IAND(data_tmp, mask_left(36))
   28831      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28832      464336 :          ipack = ipack + 1
   28833      464336 :          packed_data(ipack) = pack_tmp
   28834      464336 :          data_tmp = full_data(idata)
   28835      464336 :          pack_tmp = ISHFT(data_tmp, 62)
   28836      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28837      464336 :          idata = idata + 1
   28838      464336 :          data_tmp = full_data(idata)
   28839      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28840      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28841      464336 :          pack_tmp = ISHFT(pack_tmp, -24)
   28842      464336 :          idata = idata + 1
   28843      464336 :          data_tmp = full_data(idata)
   28844      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28845      464336 :          data_tmp = IAND(data_tmp, mask_left(24))
   28846      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28847      464336 :          ipack = ipack + 1
   28848      464336 :          packed_data(ipack) = pack_tmp
   28849      464336 :          data_tmp = full_data(idata)
   28850      464336 :          pack_tmp = ISHFT(data_tmp, 50)
   28851      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28852      464336 :          idata = idata + 1
   28853      464336 :          data_tmp = full_data(idata)
   28854      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28855      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28856      464336 :          pack_tmp = ISHFT(pack_tmp, -12)
   28857      464336 :          idata = idata + 1
   28858      464336 :          data_tmp = full_data(idata)
   28859      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28860      464336 :          data_tmp = IAND(data_tmp, mask_left(12))
   28861      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28862      464336 :          ipack = ipack + 1
   28863      464336 :          packed_data(ipack) = pack_tmp
   28864      464336 :          data_tmp = full_data(idata)
   28865      464336 :          pack_tmp = ISHFT(data_tmp, 38)
   28866      464336 :          pack_tmp = ISHFT(pack_tmp, -38)
   28867      464336 :          idata = idata + 1
   28868      464336 :          data_tmp = full_data(idata)
   28869      464336 :          data_tmp = ISHFT(data_tmp, 26)
   28870      464336 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28871             :          pack_tmp = ISHFT(pack_tmp, 0)
   28872      464336 :          pack_tmp = ISHFT(pack_tmp, 0)
   28873      464336 :          ipack = ipack + 1
   28874      464672 :          packed_data(ipack) = pack_tmp
   28875             :       END DO
   28876       32708 :       IF (Ndata_rep < Ndata) THEN
   28877        6912 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28878             :       END IF
   28879       32708 :    END SUBROUTINE ints2bits_38
   28880             : 
   28881             : ! **************************************************************************************************
   28882             : !> \brief ...
   28883             : !> \param Ndata ...
   28884             : !> \param packed_data ...
   28885             : !> \param full_data ...
   28886             : ! **************************************************************************************************
   28887      162352 :    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      162352 :       ipack = 0
   28898      162352 :       idata = 0
   28899      162352 :       pack_tmp = 0
   28900      162352 :       Ndata_rep = (Ndata/64)*64
   28901      162352 :       DO kdata = 1, Ndata_rep, 64
   28902     2167011 :          idata = idata + 1
   28903     2167011 :          data_tmp = ISHFT(pack_tmp, 38)
   28904     2167011 :          ipack = ipack + 1
   28905     2167011 :          pack_tmp = packed_data(ipack)
   28906     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   28907     2167011 :          pack_tmp = ISHFT(pack_tmp, -38)
   28908     2167011 :          idata = idata + 1
   28909     2167011 :          data_tmp = ISHFT(pack_tmp, 12)
   28910     2167011 :          ipack = ipack + 1
   28911     2167011 :          pack_tmp = packed_data(ipack)
   28912     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28913     2167011 :          pack_tmp = ISHFT(pack_tmp, -12)
   28914     2167011 :          idata = idata + 1
   28915     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28916     2167011 :          full_data(idata) = data_tmp
   28917     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28918     2167011 :          idata = idata + 1
   28919     2167011 :          data_tmp = ISHFT(pack_tmp, 24)
   28920     2167011 :          ipack = ipack + 1
   28921     2167011 :          pack_tmp = packed_data(ipack)
   28922     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28923     2167011 :          pack_tmp = ISHFT(pack_tmp, -24)
   28924     2167011 :          idata = idata + 1
   28925     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28926     2167011 :          full_data(idata) = data_tmp
   28927     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28928     2167011 :          idata = idata + 1
   28929     2167011 :          data_tmp = ISHFT(pack_tmp, 36)
   28930     2167011 :          ipack = ipack + 1
   28931     2167011 :          pack_tmp = packed_data(ipack)
   28932     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28933     2167011 :          pack_tmp = ISHFT(pack_tmp, -36)
   28934     2167011 :          idata = idata + 1
   28935     2167011 :          data_tmp = ISHFT(pack_tmp, 10)
   28936     2167011 :          ipack = ipack + 1
   28937     2167011 :          pack_tmp = packed_data(ipack)
   28938     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28939     2167011 :          pack_tmp = ISHFT(pack_tmp, -10)
   28940     2167011 :          idata = idata + 1
   28941     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28942     2167011 :          full_data(idata) = data_tmp
   28943     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28944     2167011 :          idata = idata + 1
   28945     2167011 :          data_tmp = ISHFT(pack_tmp, 22)
   28946     2167011 :          ipack = ipack + 1
   28947     2167011 :          pack_tmp = packed_data(ipack)
   28948     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28949     2167011 :          pack_tmp = ISHFT(pack_tmp, -22)
   28950     2167011 :          idata = idata + 1
   28951     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28952     2167011 :          full_data(idata) = data_tmp
   28953     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28954     2167011 :          idata = idata + 1
   28955     2167011 :          data_tmp = ISHFT(pack_tmp, 34)
   28956     2167011 :          ipack = ipack + 1
   28957     2167011 :          pack_tmp = packed_data(ipack)
   28958     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28959     2167011 :          pack_tmp = ISHFT(pack_tmp, -34)
   28960     2167011 :          idata = idata + 1
   28961     2167011 :          data_tmp = ISHFT(pack_tmp, 8)
   28962     2167011 :          ipack = ipack + 1
   28963     2167011 :          pack_tmp = packed_data(ipack)
   28964     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28965     2167011 :          pack_tmp = ISHFT(pack_tmp, -8)
   28966     2167011 :          idata = idata + 1
   28967     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28968     2167011 :          full_data(idata) = data_tmp
   28969     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28970     2167011 :          idata = idata + 1
   28971     2167011 :          data_tmp = ISHFT(pack_tmp, 20)
   28972     2167011 :          ipack = ipack + 1
   28973     2167011 :          pack_tmp = packed_data(ipack)
   28974     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28975     2167011 :          pack_tmp = ISHFT(pack_tmp, -20)
   28976     2167011 :          idata = idata + 1
   28977     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28978     2167011 :          full_data(idata) = data_tmp
   28979     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28980     2167011 :          idata = idata + 1
   28981     2167011 :          data_tmp = ISHFT(pack_tmp, 32)
   28982     2167011 :          ipack = ipack + 1
   28983     2167011 :          pack_tmp = packed_data(ipack)
   28984     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28985     2167011 :          pack_tmp = ISHFT(pack_tmp, -32)
   28986     2167011 :          idata = idata + 1
   28987     2167011 :          data_tmp = ISHFT(pack_tmp, 6)
   28988     2167011 :          ipack = ipack + 1
   28989     2167011 :          pack_tmp = packed_data(ipack)
   28990     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28991     2167011 :          pack_tmp = ISHFT(pack_tmp, -6)
   28992     2167011 :          idata = idata + 1
   28993     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28994     2167011 :          full_data(idata) = data_tmp
   28995     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28996     2167011 :          idata = idata + 1
   28997     2167011 :          data_tmp = ISHFT(pack_tmp, 18)
   28998     2167011 :          ipack = ipack + 1
   28999     2167011 :          pack_tmp = packed_data(ipack)
   29000     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29001     2167011 :          pack_tmp = ISHFT(pack_tmp, -18)
   29002     2167011 :          idata = idata + 1
   29003     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29004     2167011 :          full_data(idata) = data_tmp
   29005     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29006     2167011 :          idata = idata + 1
   29007     2167011 :          data_tmp = ISHFT(pack_tmp, 30)
   29008     2167011 :          ipack = ipack + 1
   29009     2167011 :          pack_tmp = packed_data(ipack)
   29010     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29011     2167011 :          pack_tmp = ISHFT(pack_tmp, -30)
   29012     2167011 :          idata = idata + 1
   29013     2167011 :          data_tmp = ISHFT(pack_tmp, 4)
   29014     2167011 :          ipack = ipack + 1
   29015     2167011 :          pack_tmp = packed_data(ipack)
   29016     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29017     2167011 :          pack_tmp = ISHFT(pack_tmp, -4)
   29018     2167011 :          idata = idata + 1
   29019     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29020     2167011 :          full_data(idata) = data_tmp
   29021     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29022     2167011 :          idata = idata + 1
   29023     2167011 :          data_tmp = ISHFT(pack_tmp, 16)
   29024     2167011 :          ipack = ipack + 1
   29025     2167011 :          pack_tmp = packed_data(ipack)
   29026     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29027     2167011 :          pack_tmp = ISHFT(pack_tmp, -16)
   29028     2167011 :          idata = idata + 1
   29029     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29030     2167011 :          full_data(idata) = data_tmp
   29031     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29032     2167011 :          idata = idata + 1
   29033     2167011 :          data_tmp = ISHFT(pack_tmp, 28)
   29034     2167011 :          ipack = ipack + 1
   29035     2167011 :          pack_tmp = packed_data(ipack)
   29036     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29037     2167011 :          pack_tmp = ISHFT(pack_tmp, -28)
   29038     2167011 :          idata = idata + 1
   29039     2167011 :          data_tmp = ISHFT(pack_tmp, 2)
   29040     2167011 :          ipack = ipack + 1
   29041     2167011 :          pack_tmp = packed_data(ipack)
   29042     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29043     2167011 :          pack_tmp = ISHFT(pack_tmp, -2)
   29044     2167011 :          idata = idata + 1
   29045     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29046     2167011 :          full_data(idata) = data_tmp
   29047     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29048     2167011 :          idata = idata + 1
   29049     2167011 :          data_tmp = ISHFT(pack_tmp, 14)
   29050     2167011 :          ipack = ipack + 1
   29051     2167011 :          pack_tmp = packed_data(ipack)
   29052     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29053     2167011 :          pack_tmp = ISHFT(pack_tmp, -14)
   29054     2167011 :          idata = idata + 1
   29055     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29056     2167011 :          full_data(idata) = data_tmp
   29057     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29058     2167011 :          idata = idata + 1
   29059     2167011 :          data_tmp = ISHFT(pack_tmp, 26)
   29060     2167011 :          ipack = ipack + 1
   29061     2167011 :          pack_tmp = packed_data(ipack)
   29062     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29063     2167011 :          pack_tmp = ISHFT(pack_tmp, -26)
   29064     2167011 :          idata = idata + 1
   29065     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29066     2167011 :          full_data(idata) = data_tmp
   29067     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29068     2167011 :          idata = idata + 1
   29069     2167011 :          data_tmp = ISHFT(pack_tmp, 38)
   29070     2167011 :          ipack = ipack + 1
   29071     2167011 :          pack_tmp = packed_data(ipack)
   29072     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   29073     2167011 :          pack_tmp = ISHFT(pack_tmp, -38)
   29074     2167011 :          idata = idata + 1
   29075     2167011 :          data_tmp = ISHFT(pack_tmp, 12)
   29076     2167011 :          ipack = ipack + 1
   29077     2167011 :          pack_tmp = packed_data(ipack)
   29078     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29079     2167011 :          pack_tmp = ISHFT(pack_tmp, -12)
   29080     2167011 :          idata = idata + 1
   29081     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29082     2167011 :          full_data(idata) = data_tmp
   29083     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29084     2167011 :          idata = idata + 1
   29085     2167011 :          data_tmp = ISHFT(pack_tmp, 24)
   29086     2167011 :          ipack = ipack + 1
   29087     2167011 :          pack_tmp = packed_data(ipack)
   29088     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   29089     2167011 :          pack_tmp = ISHFT(pack_tmp, -24)
   29090     2167011 :          idata = idata + 1
   29091     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29092     2167011 :          full_data(idata) = data_tmp
   29093     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29094     2167011 :          idata = idata + 1
   29095     2167011 :          data_tmp = ISHFT(pack_tmp, 36)
   29096     2167011 :          ipack = ipack + 1
   29097     2167011 :          pack_tmp = packed_data(ipack)
   29098     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   29099     2167011 :          pack_tmp = ISHFT(pack_tmp, -36)
   29100     2167011 :          idata = idata + 1
   29101     2167011 :          data_tmp = ISHFT(pack_tmp, 10)
   29102     2167011 :          ipack = ipack + 1
   29103     2167011 :          pack_tmp = packed_data(ipack)
   29104     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   29105     2167011 :          pack_tmp = ISHFT(pack_tmp, -10)
   29106     2167011 :          idata = idata + 1
   29107     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29108     2167011 :          full_data(idata) = data_tmp
   29109     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29110     2167011 :          idata = idata + 1
   29111     2167011 :          data_tmp = ISHFT(pack_tmp, 22)
   29112     2167011 :          ipack = ipack + 1
   29113     2167011 :          pack_tmp = packed_data(ipack)
   29114     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   29115     2167011 :          pack_tmp = ISHFT(pack_tmp, -22)
   29116     2167011 :          idata = idata + 1
   29117     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29118     2167011 :          full_data(idata) = data_tmp
   29119     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29120     2167011 :          idata = idata + 1
   29121     2167011 :          data_tmp = ISHFT(pack_tmp, 34)
   29122     2167011 :          ipack = ipack + 1
   29123     2167011 :          pack_tmp = packed_data(ipack)
   29124     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29125     2167011 :          pack_tmp = ISHFT(pack_tmp, -34)
   29126     2167011 :          idata = idata + 1
   29127     2167011 :          data_tmp = ISHFT(pack_tmp, 8)
   29128     2167011 :          ipack = ipack + 1
   29129     2167011 :          pack_tmp = packed_data(ipack)
   29130     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   29131     2167011 :          pack_tmp = ISHFT(pack_tmp, -8)
   29132     2167011 :          idata = idata + 1
   29133     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29134     2167011 :          full_data(idata) = data_tmp
   29135     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29136     2167011 :          idata = idata + 1
   29137     2167011 :          data_tmp = ISHFT(pack_tmp, 20)
   29138     2167011 :          ipack = ipack + 1
   29139     2167011 :          pack_tmp = packed_data(ipack)
   29140     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29141     2167011 :          pack_tmp = ISHFT(pack_tmp, -20)
   29142     2167011 :          idata = idata + 1
   29143     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29144     2167011 :          full_data(idata) = data_tmp
   29145     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29146     2167011 :          idata = idata + 1
   29147     2167011 :          data_tmp = ISHFT(pack_tmp, 32)
   29148     2167011 :          ipack = ipack + 1
   29149     2167011 :          pack_tmp = packed_data(ipack)
   29150     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29151     2167011 :          pack_tmp = ISHFT(pack_tmp, -32)
   29152     2167011 :          idata = idata + 1
   29153     2167011 :          data_tmp = ISHFT(pack_tmp, 6)
   29154     2167011 :          ipack = ipack + 1
   29155     2167011 :          pack_tmp = packed_data(ipack)
   29156     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29157     2167011 :          pack_tmp = ISHFT(pack_tmp, -6)
   29158     2167011 :          idata = idata + 1
   29159     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29160     2167011 :          full_data(idata) = data_tmp
   29161     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29162     2167011 :          idata = idata + 1
   29163     2167011 :          data_tmp = ISHFT(pack_tmp, 18)
   29164     2167011 :          ipack = ipack + 1
   29165     2167011 :          pack_tmp = packed_data(ipack)
   29166     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29167     2167011 :          pack_tmp = ISHFT(pack_tmp, -18)
   29168     2167011 :          idata = idata + 1
   29169     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29170     2167011 :          full_data(idata) = data_tmp
   29171     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29172     2167011 :          idata = idata + 1
   29173     2167011 :          data_tmp = ISHFT(pack_tmp, 30)
   29174     2167011 :          ipack = ipack + 1
   29175     2167011 :          pack_tmp = packed_data(ipack)
   29176     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29177     2167011 :          pack_tmp = ISHFT(pack_tmp, -30)
   29178     2167011 :          idata = idata + 1
   29179     2167011 :          data_tmp = ISHFT(pack_tmp, 4)
   29180     2167011 :          ipack = ipack + 1
   29181     2167011 :          pack_tmp = packed_data(ipack)
   29182     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29183     2167011 :          pack_tmp = ISHFT(pack_tmp, -4)
   29184     2167011 :          idata = idata + 1
   29185     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29186     2167011 :          full_data(idata) = data_tmp
   29187     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29188     2167011 :          idata = idata + 1
   29189     2167011 :          data_tmp = ISHFT(pack_tmp, 16)
   29190     2167011 :          ipack = ipack + 1
   29191     2167011 :          pack_tmp = packed_data(ipack)
   29192     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29193     2167011 :          pack_tmp = ISHFT(pack_tmp, -16)
   29194     2167011 :          idata = idata + 1
   29195     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29196     2167011 :          full_data(idata) = data_tmp
   29197     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29198     2167011 :          idata = idata + 1
   29199     2167011 :          data_tmp = ISHFT(pack_tmp, 28)
   29200     2167011 :          ipack = ipack + 1
   29201     2167011 :          pack_tmp = packed_data(ipack)
   29202     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29203     2167011 :          pack_tmp = ISHFT(pack_tmp, -28)
   29204     2167011 :          idata = idata + 1
   29205     2167011 :          data_tmp = ISHFT(pack_tmp, 2)
   29206     2167011 :          ipack = ipack + 1
   29207     2167011 :          pack_tmp = packed_data(ipack)
   29208     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29209     2167011 :          pack_tmp = ISHFT(pack_tmp, -2)
   29210     2167011 :          idata = idata + 1
   29211     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29212     2167011 :          full_data(idata) = data_tmp
   29213     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29214     2167011 :          idata = idata + 1
   29215     2167011 :          data_tmp = ISHFT(pack_tmp, 14)
   29216     2167011 :          ipack = ipack + 1
   29217     2167011 :          pack_tmp = packed_data(ipack)
   29218     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29219     2167011 :          pack_tmp = ISHFT(pack_tmp, -14)
   29220     2167011 :          idata = idata + 1
   29221     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29222     2167011 :          full_data(idata) = data_tmp
   29223     2167011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29224     2167011 :          idata = idata + 1
   29225     2167011 :          data_tmp = ISHFT(pack_tmp, 26)
   29226     2167011 :          ipack = ipack + 1
   29227     2167011 :          pack_tmp = packed_data(ipack)
   29228     2167011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29229     2167011 :          pack_tmp = ISHFT(pack_tmp, -26)
   29230     2167011 :          idata = idata + 1
   29231     2167011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29232     2167011 :          full_data(idata) = data_tmp
   29233     2169935 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29234             :       END DO
   29235      162352 :       IF (Ndata_rep < Ndata) THEN
   29236       50362 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29237             :       END IF
   29238      162352 :    END SUBROUTINE bits2ints_38
   29239             : 
   29240             : ! **************************************************************************************************
   29241             : !> \brief ...
   29242             : !> \param Ndata ...
   29243             : !> \param packed_data ...
   29244             : !> \param full_data ...
   29245             : ! **************************************************************************************************
   29246       28448 :    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       28448 :       idata = 0
   29257       28448 :       ipack = 0
   29258       28448 :       Ndata_rep = (Ndata/64)*64
   29259       28448 :       DO kdata = 1, Ndata_rep, 64
   29260      419825 :          pack_tmp = 0
   29261      419825 :          idata = idata + 1
   29262      419825 :          data_tmp = full_data(idata)
   29263      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29264      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29265      419825 :          pack_tmp = ISHFT(pack_tmp, -25)
   29266      419825 :          idata = idata + 1
   29267      419825 :          data_tmp = full_data(idata)
   29268      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29269      419825 :          data_tmp = IAND(data_tmp, mask_left(25))
   29270      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29271      419825 :          ipack = ipack + 1
   29272      419825 :          packed_data(ipack) = pack_tmp
   29273      419825 :          data_tmp = full_data(idata)
   29274      419825 :          pack_tmp = ISHFT(data_tmp, 50)
   29275      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29276      419825 :          idata = idata + 1
   29277      419825 :          data_tmp = full_data(idata)
   29278      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29279      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29280      419825 :          pack_tmp = ISHFT(pack_tmp, -11)
   29281      419825 :          idata = idata + 1
   29282      419825 :          data_tmp = full_data(idata)
   29283      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29284      419825 :          data_tmp = IAND(data_tmp, mask_left(11))
   29285      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29286      419825 :          ipack = ipack + 1
   29287      419825 :          packed_data(ipack) = pack_tmp
   29288      419825 :          data_tmp = full_data(idata)
   29289      419825 :          pack_tmp = ISHFT(data_tmp, 36)
   29290      419825 :          pack_tmp = ISHFT(pack_tmp, -36)
   29291      419825 :          idata = idata + 1
   29292      419825 :          data_tmp = full_data(idata)
   29293      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29294      419825 :          data_tmp = IAND(data_tmp, mask_left(36))
   29295      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29296      419825 :          ipack = ipack + 1
   29297      419825 :          packed_data(ipack) = pack_tmp
   29298      419825 :          data_tmp = full_data(idata)
   29299      419825 :          pack_tmp = ISHFT(data_tmp, 61)
   29300      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29301      419825 :          idata = idata + 1
   29302      419825 :          data_tmp = full_data(idata)
   29303      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29304      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29305      419825 :          pack_tmp = ISHFT(pack_tmp, -22)
   29306      419825 :          idata = idata + 1
   29307      419825 :          data_tmp = full_data(idata)
   29308      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29309      419825 :          data_tmp = IAND(data_tmp, mask_left(22))
   29310      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29311      419825 :          ipack = ipack + 1
   29312      419825 :          packed_data(ipack) = pack_tmp
   29313      419825 :          data_tmp = full_data(idata)
   29314      419825 :          pack_tmp = ISHFT(data_tmp, 47)
   29315      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29316      419825 :          idata = idata + 1
   29317      419825 :          data_tmp = full_data(idata)
   29318      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29319      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29320      419825 :          pack_tmp = ISHFT(pack_tmp, -8)
   29321      419825 :          idata = idata + 1
   29322      419825 :          data_tmp = full_data(idata)
   29323      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29324      419825 :          data_tmp = IAND(data_tmp, mask_left(8))
   29325      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29326      419825 :          ipack = ipack + 1
   29327      419825 :          packed_data(ipack) = pack_tmp
   29328      419825 :          data_tmp = full_data(idata)
   29329      419825 :          pack_tmp = ISHFT(data_tmp, 33)
   29330      419825 :          pack_tmp = ISHFT(pack_tmp, -33)
   29331      419825 :          idata = idata + 1
   29332      419825 :          data_tmp = full_data(idata)
   29333      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29334      419825 :          data_tmp = IAND(data_tmp, mask_left(33))
   29335      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29336      419825 :          ipack = ipack + 1
   29337      419825 :          packed_data(ipack) = pack_tmp
   29338      419825 :          data_tmp = full_data(idata)
   29339      419825 :          pack_tmp = ISHFT(data_tmp, 58)
   29340      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29341      419825 :          idata = idata + 1
   29342      419825 :          data_tmp = full_data(idata)
   29343      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29344      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29345      419825 :          pack_tmp = ISHFT(pack_tmp, -19)
   29346      419825 :          idata = idata + 1
   29347      419825 :          data_tmp = full_data(idata)
   29348      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29349      419825 :          data_tmp = IAND(data_tmp, mask_left(19))
   29350      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29351      419825 :          ipack = ipack + 1
   29352      419825 :          packed_data(ipack) = pack_tmp
   29353      419825 :          data_tmp = full_data(idata)
   29354      419825 :          pack_tmp = ISHFT(data_tmp, 44)
   29355      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29356      419825 :          idata = idata + 1
   29357      419825 :          data_tmp = full_data(idata)
   29358      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29359      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29360      419825 :          pack_tmp = ISHFT(pack_tmp, -5)
   29361      419825 :          idata = idata + 1
   29362      419825 :          data_tmp = full_data(idata)
   29363      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29364      419825 :          data_tmp = IAND(data_tmp, mask_left(5))
   29365      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29366      419825 :          ipack = ipack + 1
   29367      419825 :          packed_data(ipack) = pack_tmp
   29368      419825 :          data_tmp = full_data(idata)
   29369      419825 :          pack_tmp = ISHFT(data_tmp, 30)
   29370      419825 :          pack_tmp = ISHFT(pack_tmp, -30)
   29371      419825 :          idata = idata + 1
   29372      419825 :          data_tmp = full_data(idata)
   29373      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29374      419825 :          data_tmp = IAND(data_tmp, mask_left(30))
   29375      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29376      419825 :          ipack = ipack + 1
   29377      419825 :          packed_data(ipack) = pack_tmp
   29378      419825 :          data_tmp = full_data(idata)
   29379      419825 :          pack_tmp = ISHFT(data_tmp, 55)
   29380      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29381      419825 :          idata = idata + 1
   29382      419825 :          data_tmp = full_data(idata)
   29383      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29384      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29385      419825 :          pack_tmp = ISHFT(pack_tmp, -16)
   29386      419825 :          idata = idata + 1
   29387      419825 :          data_tmp = full_data(idata)
   29388      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29389      419825 :          data_tmp = IAND(data_tmp, mask_left(16))
   29390      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29391      419825 :          ipack = ipack + 1
   29392      419825 :          packed_data(ipack) = pack_tmp
   29393      419825 :          data_tmp = full_data(idata)
   29394      419825 :          pack_tmp = ISHFT(data_tmp, 41)
   29395      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29396      419825 :          idata = idata + 1
   29397      419825 :          data_tmp = full_data(idata)
   29398      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29399      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29400      419825 :          pack_tmp = ISHFT(pack_tmp, -2)
   29401      419825 :          idata = idata + 1
   29402      419825 :          data_tmp = full_data(idata)
   29403      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29404      419825 :          data_tmp = IAND(data_tmp, mask_left(2))
   29405      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29406      419825 :          ipack = ipack + 1
   29407      419825 :          packed_data(ipack) = pack_tmp
   29408      419825 :          data_tmp = full_data(idata)
   29409      419825 :          pack_tmp = ISHFT(data_tmp, 27)
   29410      419825 :          pack_tmp = ISHFT(pack_tmp, -27)
   29411      419825 :          idata = idata + 1
   29412      419825 :          data_tmp = full_data(idata)
   29413      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29414      419825 :          data_tmp = IAND(data_tmp, mask_left(27))
   29415      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29416      419825 :          ipack = ipack + 1
   29417      419825 :          packed_data(ipack) = pack_tmp
   29418      419825 :          data_tmp = full_data(idata)
   29419      419825 :          pack_tmp = ISHFT(data_tmp, 52)
   29420      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29421      419825 :          idata = idata + 1
   29422      419825 :          data_tmp = full_data(idata)
   29423      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29424      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29425      419825 :          pack_tmp = ISHFT(pack_tmp, -13)
   29426      419825 :          idata = idata + 1
   29427      419825 :          data_tmp = full_data(idata)
   29428      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29429      419825 :          data_tmp = IAND(data_tmp, mask_left(13))
   29430      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29431      419825 :          ipack = ipack + 1
   29432      419825 :          packed_data(ipack) = pack_tmp
   29433      419825 :          data_tmp = full_data(idata)
   29434      419825 :          pack_tmp = ISHFT(data_tmp, 38)
   29435      419825 :          pack_tmp = ISHFT(pack_tmp, -38)
   29436      419825 :          idata = idata + 1
   29437      419825 :          data_tmp = full_data(idata)
   29438      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29439      419825 :          data_tmp = IAND(data_tmp, mask_left(38))
   29440      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29441      419825 :          ipack = ipack + 1
   29442      419825 :          packed_data(ipack) = pack_tmp
   29443      419825 :          data_tmp = full_data(idata)
   29444      419825 :          pack_tmp = ISHFT(data_tmp, 63)
   29445      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29446      419825 :          idata = idata + 1
   29447      419825 :          data_tmp = full_data(idata)
   29448      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29449      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29450      419825 :          pack_tmp = ISHFT(pack_tmp, -24)
   29451      419825 :          idata = idata + 1
   29452      419825 :          data_tmp = full_data(idata)
   29453      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29454      419825 :          data_tmp = IAND(data_tmp, mask_left(24))
   29455      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29456      419825 :          ipack = ipack + 1
   29457      419825 :          packed_data(ipack) = pack_tmp
   29458      419825 :          data_tmp = full_data(idata)
   29459      419825 :          pack_tmp = ISHFT(data_tmp, 49)
   29460      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29461      419825 :          idata = idata + 1
   29462      419825 :          data_tmp = full_data(idata)
   29463      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29464      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29465      419825 :          pack_tmp = ISHFT(pack_tmp, -10)
   29466      419825 :          idata = idata + 1
   29467      419825 :          data_tmp = full_data(idata)
   29468      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29469      419825 :          data_tmp = IAND(data_tmp, mask_left(10))
   29470      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29471      419825 :          ipack = ipack + 1
   29472      419825 :          packed_data(ipack) = pack_tmp
   29473      419825 :          data_tmp = full_data(idata)
   29474      419825 :          pack_tmp = ISHFT(data_tmp, 35)
   29475      419825 :          pack_tmp = ISHFT(pack_tmp, -35)
   29476      419825 :          idata = idata + 1
   29477      419825 :          data_tmp = full_data(idata)
   29478      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29479      419825 :          data_tmp = IAND(data_tmp, mask_left(35))
   29480      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29481      419825 :          ipack = ipack + 1
   29482      419825 :          packed_data(ipack) = pack_tmp
   29483      419825 :          data_tmp = full_data(idata)
   29484      419825 :          pack_tmp = ISHFT(data_tmp, 60)
   29485      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29486      419825 :          idata = idata + 1
   29487      419825 :          data_tmp = full_data(idata)
   29488      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29489      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29490      419825 :          pack_tmp = ISHFT(pack_tmp, -21)
   29491      419825 :          idata = idata + 1
   29492      419825 :          data_tmp = full_data(idata)
   29493      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29494      419825 :          data_tmp = IAND(data_tmp, mask_left(21))
   29495      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29496      419825 :          ipack = ipack + 1
   29497      419825 :          packed_data(ipack) = pack_tmp
   29498      419825 :          data_tmp = full_data(idata)
   29499      419825 :          pack_tmp = ISHFT(data_tmp, 46)
   29500      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29501      419825 :          idata = idata + 1
   29502      419825 :          data_tmp = full_data(idata)
   29503      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29504      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29505      419825 :          pack_tmp = ISHFT(pack_tmp, -7)
   29506      419825 :          idata = idata + 1
   29507      419825 :          data_tmp = full_data(idata)
   29508      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29509      419825 :          data_tmp = IAND(data_tmp, mask_left(7))
   29510      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29511      419825 :          ipack = ipack + 1
   29512      419825 :          packed_data(ipack) = pack_tmp
   29513      419825 :          data_tmp = full_data(idata)
   29514      419825 :          pack_tmp = ISHFT(data_tmp, 32)
   29515      419825 :          pack_tmp = ISHFT(pack_tmp, -32)
   29516      419825 :          idata = idata + 1
   29517      419825 :          data_tmp = full_data(idata)
   29518      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29519      419825 :          data_tmp = IAND(data_tmp, mask_left(32))
   29520      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29521      419825 :          ipack = ipack + 1
   29522      419825 :          packed_data(ipack) = pack_tmp
   29523      419825 :          data_tmp = full_data(idata)
   29524      419825 :          pack_tmp = ISHFT(data_tmp, 57)
   29525      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29526      419825 :          idata = idata + 1
   29527      419825 :          data_tmp = full_data(idata)
   29528      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29529      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29530      419825 :          pack_tmp = ISHFT(pack_tmp, -18)
   29531      419825 :          idata = idata + 1
   29532      419825 :          data_tmp = full_data(idata)
   29533      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29534      419825 :          data_tmp = IAND(data_tmp, mask_left(18))
   29535      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29536      419825 :          ipack = ipack + 1
   29537      419825 :          packed_data(ipack) = pack_tmp
   29538      419825 :          data_tmp = full_data(idata)
   29539      419825 :          pack_tmp = ISHFT(data_tmp, 43)
   29540      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29541      419825 :          idata = idata + 1
   29542      419825 :          data_tmp = full_data(idata)
   29543      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29544      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29545      419825 :          pack_tmp = ISHFT(pack_tmp, -4)
   29546      419825 :          idata = idata + 1
   29547      419825 :          data_tmp = full_data(idata)
   29548      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29549      419825 :          data_tmp = IAND(data_tmp, mask_left(4))
   29550      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29551      419825 :          ipack = ipack + 1
   29552      419825 :          packed_data(ipack) = pack_tmp
   29553      419825 :          data_tmp = full_data(idata)
   29554      419825 :          pack_tmp = ISHFT(data_tmp, 29)
   29555      419825 :          pack_tmp = ISHFT(pack_tmp, -29)
   29556      419825 :          idata = idata + 1
   29557      419825 :          data_tmp = full_data(idata)
   29558      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29559      419825 :          data_tmp = IAND(data_tmp, mask_left(29))
   29560      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29561      419825 :          ipack = ipack + 1
   29562      419825 :          packed_data(ipack) = pack_tmp
   29563      419825 :          data_tmp = full_data(idata)
   29564      419825 :          pack_tmp = ISHFT(data_tmp, 54)
   29565      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29566      419825 :          idata = idata + 1
   29567      419825 :          data_tmp = full_data(idata)
   29568      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29569      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29570      419825 :          pack_tmp = ISHFT(pack_tmp, -15)
   29571      419825 :          idata = idata + 1
   29572      419825 :          data_tmp = full_data(idata)
   29573      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29574      419825 :          data_tmp = IAND(data_tmp, mask_left(15))
   29575      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29576      419825 :          ipack = ipack + 1
   29577      419825 :          packed_data(ipack) = pack_tmp
   29578      419825 :          data_tmp = full_data(idata)
   29579      419825 :          pack_tmp = ISHFT(data_tmp, 40)
   29580      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29581      419825 :          idata = idata + 1
   29582      419825 :          data_tmp = full_data(idata)
   29583      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29584      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29585      419825 :          pack_tmp = ISHFT(pack_tmp, -1)
   29586      419825 :          idata = idata + 1
   29587      419825 :          data_tmp = full_data(idata)
   29588      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29589      419825 :          data_tmp = IAND(data_tmp, mask_left(1))
   29590      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29591      419825 :          ipack = ipack + 1
   29592      419825 :          packed_data(ipack) = pack_tmp
   29593      419825 :          data_tmp = full_data(idata)
   29594      419825 :          pack_tmp = ISHFT(data_tmp, 26)
   29595      419825 :          pack_tmp = ISHFT(pack_tmp, -26)
   29596      419825 :          idata = idata + 1
   29597      419825 :          data_tmp = full_data(idata)
   29598      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29599      419825 :          data_tmp = IAND(data_tmp, mask_left(26))
   29600      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29601      419825 :          ipack = ipack + 1
   29602      419825 :          packed_data(ipack) = pack_tmp
   29603      419825 :          data_tmp = full_data(idata)
   29604      419825 :          pack_tmp = ISHFT(data_tmp, 51)
   29605      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29606      419825 :          idata = idata + 1
   29607      419825 :          data_tmp = full_data(idata)
   29608      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29609      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29610      419825 :          pack_tmp = ISHFT(pack_tmp, -12)
   29611      419825 :          idata = idata + 1
   29612      419825 :          data_tmp = full_data(idata)
   29613      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29614      419825 :          data_tmp = IAND(data_tmp, mask_left(12))
   29615      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29616      419825 :          ipack = ipack + 1
   29617      419825 :          packed_data(ipack) = pack_tmp
   29618      419825 :          data_tmp = full_data(idata)
   29619      419825 :          pack_tmp = ISHFT(data_tmp, 37)
   29620      419825 :          pack_tmp = ISHFT(pack_tmp, -37)
   29621      419825 :          idata = idata + 1
   29622      419825 :          data_tmp = full_data(idata)
   29623      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29624      419825 :          data_tmp = IAND(data_tmp, mask_left(37))
   29625      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29626      419825 :          ipack = ipack + 1
   29627      419825 :          packed_data(ipack) = pack_tmp
   29628      419825 :          data_tmp = full_data(idata)
   29629      419825 :          pack_tmp = ISHFT(data_tmp, 62)
   29630      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29631      419825 :          idata = idata + 1
   29632      419825 :          data_tmp = full_data(idata)
   29633      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29634      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29635      419825 :          pack_tmp = ISHFT(pack_tmp, -23)
   29636      419825 :          idata = idata + 1
   29637      419825 :          data_tmp = full_data(idata)
   29638      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29639      419825 :          data_tmp = IAND(data_tmp, mask_left(23))
   29640      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29641      419825 :          ipack = ipack + 1
   29642      419825 :          packed_data(ipack) = pack_tmp
   29643      419825 :          data_tmp = full_data(idata)
   29644      419825 :          pack_tmp = ISHFT(data_tmp, 48)
   29645      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29646      419825 :          idata = idata + 1
   29647      419825 :          data_tmp = full_data(idata)
   29648      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29649      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29650      419825 :          pack_tmp = ISHFT(pack_tmp, -9)
   29651      419825 :          idata = idata + 1
   29652      419825 :          data_tmp = full_data(idata)
   29653      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29654      419825 :          data_tmp = IAND(data_tmp, mask_left(9))
   29655      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29656      419825 :          ipack = ipack + 1
   29657      419825 :          packed_data(ipack) = pack_tmp
   29658      419825 :          data_tmp = full_data(idata)
   29659      419825 :          pack_tmp = ISHFT(data_tmp, 34)
   29660      419825 :          pack_tmp = ISHFT(pack_tmp, -34)
   29661      419825 :          idata = idata + 1
   29662      419825 :          data_tmp = full_data(idata)
   29663      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29664      419825 :          data_tmp = IAND(data_tmp, mask_left(34))
   29665      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29666      419825 :          ipack = ipack + 1
   29667      419825 :          packed_data(ipack) = pack_tmp
   29668      419825 :          data_tmp = full_data(idata)
   29669      419825 :          pack_tmp = ISHFT(data_tmp, 59)
   29670      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29671      419825 :          idata = idata + 1
   29672      419825 :          data_tmp = full_data(idata)
   29673      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29674      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29675      419825 :          pack_tmp = ISHFT(pack_tmp, -20)
   29676      419825 :          idata = idata + 1
   29677      419825 :          data_tmp = full_data(idata)
   29678      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29679      419825 :          data_tmp = IAND(data_tmp, mask_left(20))
   29680      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29681      419825 :          ipack = ipack + 1
   29682      419825 :          packed_data(ipack) = pack_tmp
   29683      419825 :          data_tmp = full_data(idata)
   29684      419825 :          pack_tmp = ISHFT(data_tmp, 45)
   29685      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29686      419825 :          idata = idata + 1
   29687      419825 :          data_tmp = full_data(idata)
   29688      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29689      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29690      419825 :          pack_tmp = ISHFT(pack_tmp, -6)
   29691      419825 :          idata = idata + 1
   29692      419825 :          data_tmp = full_data(idata)
   29693      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29694      419825 :          data_tmp = IAND(data_tmp, mask_left(6))
   29695      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29696      419825 :          ipack = ipack + 1
   29697      419825 :          packed_data(ipack) = pack_tmp
   29698      419825 :          data_tmp = full_data(idata)
   29699      419825 :          pack_tmp = ISHFT(data_tmp, 31)
   29700      419825 :          pack_tmp = ISHFT(pack_tmp, -31)
   29701      419825 :          idata = idata + 1
   29702      419825 :          data_tmp = full_data(idata)
   29703      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29704      419825 :          data_tmp = IAND(data_tmp, mask_left(31))
   29705      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29706      419825 :          ipack = ipack + 1
   29707      419825 :          packed_data(ipack) = pack_tmp
   29708      419825 :          data_tmp = full_data(idata)
   29709      419825 :          pack_tmp = ISHFT(data_tmp, 56)
   29710      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29711      419825 :          idata = idata + 1
   29712      419825 :          data_tmp = full_data(idata)
   29713      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29714      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29715      419825 :          pack_tmp = ISHFT(pack_tmp, -17)
   29716      419825 :          idata = idata + 1
   29717      419825 :          data_tmp = full_data(idata)
   29718      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29719      419825 :          data_tmp = IAND(data_tmp, mask_left(17))
   29720      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29721      419825 :          ipack = ipack + 1
   29722      419825 :          packed_data(ipack) = pack_tmp
   29723      419825 :          data_tmp = full_data(idata)
   29724      419825 :          pack_tmp = ISHFT(data_tmp, 42)
   29725      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29726      419825 :          idata = idata + 1
   29727      419825 :          data_tmp = full_data(idata)
   29728      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29729      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29730      419825 :          pack_tmp = ISHFT(pack_tmp, -3)
   29731      419825 :          idata = idata + 1
   29732      419825 :          data_tmp = full_data(idata)
   29733      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29734      419825 :          data_tmp = IAND(data_tmp, mask_left(3))
   29735      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29736      419825 :          ipack = ipack + 1
   29737      419825 :          packed_data(ipack) = pack_tmp
   29738      419825 :          data_tmp = full_data(idata)
   29739      419825 :          pack_tmp = ISHFT(data_tmp, 28)
   29740      419825 :          pack_tmp = ISHFT(pack_tmp, -28)
   29741      419825 :          idata = idata + 1
   29742      419825 :          data_tmp = full_data(idata)
   29743      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29744      419825 :          data_tmp = IAND(data_tmp, mask_left(28))
   29745      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29746      419825 :          ipack = ipack + 1
   29747      419825 :          packed_data(ipack) = pack_tmp
   29748      419825 :          data_tmp = full_data(idata)
   29749      419825 :          pack_tmp = ISHFT(data_tmp, 53)
   29750      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29751      419825 :          idata = idata + 1
   29752      419825 :          data_tmp = full_data(idata)
   29753      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29754      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29755      419825 :          pack_tmp = ISHFT(pack_tmp, -14)
   29756      419825 :          idata = idata + 1
   29757      419825 :          data_tmp = full_data(idata)
   29758      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29759      419825 :          data_tmp = IAND(data_tmp, mask_left(14))
   29760      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29761      419825 :          ipack = ipack + 1
   29762      419825 :          packed_data(ipack) = pack_tmp
   29763      419825 :          data_tmp = full_data(idata)
   29764      419825 :          pack_tmp = ISHFT(data_tmp, 39)
   29765      419825 :          pack_tmp = ISHFT(pack_tmp, -39)
   29766      419825 :          idata = idata + 1
   29767      419825 :          data_tmp = full_data(idata)
   29768      419825 :          data_tmp = ISHFT(data_tmp, 25)
   29769      419825 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29770             :          pack_tmp = ISHFT(pack_tmp, 0)
   29771      419825 :          pack_tmp = ISHFT(pack_tmp, 0)
   29772      419825 :          ipack = ipack + 1
   29773      419825 :          packed_data(ipack) = pack_tmp
   29774             :       END DO
   29775       28448 :       IF (Ndata_rep < Ndata) THEN
   29776        4158 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29777             :       END IF
   29778       28448 :    END SUBROUTINE ints2bits_39
   29779             : 
   29780             : ! **************************************************************************************************
   29781             : !> \brief ...
   29782             : !> \param Ndata ...
   29783             : !> \param packed_data ...
   29784             : !> \param full_data ...
   29785             : ! **************************************************************************************************
   29786      125761 :    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      125761 :       ipack = 0
   29797      125761 :       idata = 0
   29798      125761 :       pack_tmp = 0
   29799      125761 :       Ndata_rep = (Ndata/64)*64
   29800      125761 :       DO kdata = 1, Ndata_rep, 64
   29801     1795290 :          idata = idata + 1
   29802     1795290 :          data_tmp = ISHFT(pack_tmp, 39)
   29803     1795290 :          ipack = ipack + 1
   29804     1795290 :          pack_tmp = packed_data(ipack)
   29805     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   29806     1795290 :          pack_tmp = ISHFT(pack_tmp, -39)
   29807     1795290 :          idata = idata + 1
   29808     1795290 :          data_tmp = ISHFT(pack_tmp, 14)
   29809     1795290 :          ipack = ipack + 1
   29810     1795290 :          pack_tmp = packed_data(ipack)
   29811     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29812     1795290 :          pack_tmp = ISHFT(pack_tmp, -14)
   29813     1795290 :          idata = idata + 1
   29814     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29815     1795290 :          full_data(idata) = data_tmp
   29816     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29817     1795290 :          idata = idata + 1
   29818     1795290 :          data_tmp = ISHFT(pack_tmp, 28)
   29819     1795290 :          ipack = ipack + 1
   29820     1795290 :          pack_tmp = packed_data(ipack)
   29821     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29822     1795290 :          pack_tmp = ISHFT(pack_tmp, -28)
   29823     1795290 :          idata = idata + 1
   29824     1795290 :          data_tmp = ISHFT(pack_tmp, 3)
   29825     1795290 :          ipack = ipack + 1
   29826     1795290 :          pack_tmp = packed_data(ipack)
   29827     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   29828     1795290 :          pack_tmp = ISHFT(pack_tmp, -3)
   29829     1795290 :          idata = idata + 1
   29830     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29831     1795290 :          full_data(idata) = data_tmp
   29832     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29833     1795290 :          idata = idata + 1
   29834     1795290 :          data_tmp = ISHFT(pack_tmp, 17)
   29835     1795290 :          ipack = ipack + 1
   29836     1795290 :          pack_tmp = packed_data(ipack)
   29837     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   29838     1795290 :          pack_tmp = ISHFT(pack_tmp, -17)
   29839     1795290 :          idata = idata + 1
   29840     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29841     1795290 :          full_data(idata) = data_tmp
   29842     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29843     1795290 :          idata = idata + 1
   29844     1795290 :          data_tmp = ISHFT(pack_tmp, 31)
   29845     1795290 :          ipack = ipack + 1
   29846     1795290 :          pack_tmp = packed_data(ipack)
   29847     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   29848     1795290 :          pack_tmp = ISHFT(pack_tmp, -31)
   29849     1795290 :          idata = idata + 1
   29850     1795290 :          data_tmp = ISHFT(pack_tmp, 6)
   29851     1795290 :          ipack = ipack + 1
   29852     1795290 :          pack_tmp = packed_data(ipack)
   29853     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29854     1795290 :          pack_tmp = ISHFT(pack_tmp, -6)
   29855     1795290 :          idata = idata + 1
   29856     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29857     1795290 :          full_data(idata) = data_tmp
   29858     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29859     1795290 :          idata = idata + 1
   29860     1795290 :          data_tmp = ISHFT(pack_tmp, 20)
   29861     1795290 :          ipack = ipack + 1
   29862     1795290 :          pack_tmp = packed_data(ipack)
   29863     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29864     1795290 :          pack_tmp = ISHFT(pack_tmp, -20)
   29865     1795290 :          idata = idata + 1
   29866     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29867     1795290 :          full_data(idata) = data_tmp
   29868     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29869     1795290 :          idata = idata + 1
   29870     1795290 :          data_tmp = ISHFT(pack_tmp, 34)
   29871     1795290 :          ipack = ipack + 1
   29872     1795290 :          pack_tmp = packed_data(ipack)
   29873     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29874     1795290 :          pack_tmp = ISHFT(pack_tmp, -34)
   29875     1795290 :          idata = idata + 1
   29876     1795290 :          data_tmp = ISHFT(pack_tmp, 9)
   29877     1795290 :          ipack = ipack + 1
   29878     1795290 :          pack_tmp = packed_data(ipack)
   29879     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   29880     1795290 :          pack_tmp = ISHFT(pack_tmp, -9)
   29881     1795290 :          idata = idata + 1
   29882     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29883     1795290 :          full_data(idata) = data_tmp
   29884     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29885     1795290 :          idata = idata + 1
   29886     1795290 :          data_tmp = ISHFT(pack_tmp, 23)
   29887     1795290 :          ipack = ipack + 1
   29888     1795290 :          pack_tmp = packed_data(ipack)
   29889     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   29890     1795290 :          pack_tmp = ISHFT(pack_tmp, -23)
   29891     1795290 :          idata = idata + 1
   29892     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29893     1795290 :          full_data(idata) = data_tmp
   29894     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29895     1795290 :          idata = idata + 1
   29896     1795290 :          data_tmp = ISHFT(pack_tmp, 37)
   29897     1795290 :          ipack = ipack + 1
   29898     1795290 :          pack_tmp = packed_data(ipack)
   29899     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   29900     1795290 :          pack_tmp = ISHFT(pack_tmp, -37)
   29901     1795290 :          idata = idata + 1
   29902     1795290 :          data_tmp = ISHFT(pack_tmp, 12)
   29903     1795290 :          ipack = ipack + 1
   29904     1795290 :          pack_tmp = packed_data(ipack)
   29905     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29906     1795290 :          pack_tmp = ISHFT(pack_tmp, -12)
   29907     1795290 :          idata = idata + 1
   29908     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29909     1795290 :          full_data(idata) = data_tmp
   29910     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29911     1795290 :          idata = idata + 1
   29912     1795290 :          data_tmp = ISHFT(pack_tmp, 26)
   29913     1795290 :          ipack = ipack + 1
   29914     1795290 :          pack_tmp = packed_data(ipack)
   29915     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29916     1795290 :          pack_tmp = ISHFT(pack_tmp, -26)
   29917     1795290 :          idata = idata + 1
   29918     1795290 :          data_tmp = ISHFT(pack_tmp, 1)
   29919     1795290 :          ipack = ipack + 1
   29920     1795290 :          pack_tmp = packed_data(ipack)
   29921     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   29922     1795290 :          pack_tmp = ISHFT(pack_tmp, -1)
   29923     1795290 :          idata = idata + 1
   29924     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29925     1795290 :          full_data(idata) = data_tmp
   29926     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29927     1795290 :          idata = idata + 1
   29928     1795290 :          data_tmp = ISHFT(pack_tmp, 15)
   29929     1795290 :          ipack = ipack + 1
   29930     1795290 :          pack_tmp = packed_data(ipack)
   29931     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   29932     1795290 :          pack_tmp = ISHFT(pack_tmp, -15)
   29933     1795290 :          idata = idata + 1
   29934     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29935     1795290 :          full_data(idata) = data_tmp
   29936     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29937     1795290 :          idata = idata + 1
   29938     1795290 :          data_tmp = ISHFT(pack_tmp, 29)
   29939     1795290 :          ipack = ipack + 1
   29940     1795290 :          pack_tmp = packed_data(ipack)
   29941     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   29942     1795290 :          pack_tmp = ISHFT(pack_tmp, -29)
   29943     1795290 :          idata = idata + 1
   29944     1795290 :          data_tmp = ISHFT(pack_tmp, 4)
   29945     1795290 :          ipack = ipack + 1
   29946     1795290 :          pack_tmp = packed_data(ipack)
   29947     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29948     1795290 :          pack_tmp = ISHFT(pack_tmp, -4)
   29949     1795290 :          idata = idata + 1
   29950     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29951     1795290 :          full_data(idata) = data_tmp
   29952     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29953     1795290 :          idata = idata + 1
   29954     1795290 :          data_tmp = ISHFT(pack_tmp, 18)
   29955     1795290 :          ipack = ipack + 1
   29956     1795290 :          pack_tmp = packed_data(ipack)
   29957     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29958     1795290 :          pack_tmp = ISHFT(pack_tmp, -18)
   29959     1795290 :          idata = idata + 1
   29960     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29961     1795290 :          full_data(idata) = data_tmp
   29962     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29963     1795290 :          idata = idata + 1
   29964     1795290 :          data_tmp = ISHFT(pack_tmp, 32)
   29965     1795290 :          ipack = ipack + 1
   29966     1795290 :          pack_tmp = packed_data(ipack)
   29967     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29968     1795290 :          pack_tmp = ISHFT(pack_tmp, -32)
   29969     1795290 :          idata = idata + 1
   29970     1795290 :          data_tmp = ISHFT(pack_tmp, 7)
   29971     1795290 :          ipack = ipack + 1
   29972     1795290 :          pack_tmp = packed_data(ipack)
   29973     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   29974     1795290 :          pack_tmp = ISHFT(pack_tmp, -7)
   29975     1795290 :          idata = idata + 1
   29976     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29977     1795290 :          full_data(idata) = data_tmp
   29978     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29979     1795290 :          idata = idata + 1
   29980     1795290 :          data_tmp = ISHFT(pack_tmp, 21)
   29981     1795290 :          ipack = ipack + 1
   29982     1795290 :          pack_tmp = packed_data(ipack)
   29983     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   29984     1795290 :          pack_tmp = ISHFT(pack_tmp, -21)
   29985     1795290 :          idata = idata + 1
   29986     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29987     1795290 :          full_data(idata) = data_tmp
   29988     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29989     1795290 :          idata = idata + 1
   29990     1795290 :          data_tmp = ISHFT(pack_tmp, 35)
   29991     1795290 :          ipack = ipack + 1
   29992     1795290 :          pack_tmp = packed_data(ipack)
   29993     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   29994     1795290 :          pack_tmp = ISHFT(pack_tmp, -35)
   29995     1795290 :          idata = idata + 1
   29996     1795290 :          data_tmp = ISHFT(pack_tmp, 10)
   29997     1795290 :          ipack = ipack + 1
   29998     1795290 :          pack_tmp = packed_data(ipack)
   29999     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   30000     1795290 :          pack_tmp = ISHFT(pack_tmp, -10)
   30001     1795290 :          idata = idata + 1
   30002     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30003     1795290 :          full_data(idata) = data_tmp
   30004     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30005     1795290 :          idata = idata + 1
   30006     1795290 :          data_tmp = ISHFT(pack_tmp, 24)
   30007     1795290 :          ipack = ipack + 1
   30008     1795290 :          pack_tmp = packed_data(ipack)
   30009     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30010     1795290 :          pack_tmp = ISHFT(pack_tmp, -24)
   30011     1795290 :          idata = idata + 1
   30012     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30013     1795290 :          full_data(idata) = data_tmp
   30014     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30015     1795290 :          idata = idata + 1
   30016     1795290 :          data_tmp = ISHFT(pack_tmp, 38)
   30017     1795290 :          ipack = ipack + 1
   30018     1795290 :          pack_tmp = packed_data(ipack)
   30019     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   30020     1795290 :          pack_tmp = ISHFT(pack_tmp, -38)
   30021     1795290 :          idata = idata + 1
   30022     1795290 :          data_tmp = ISHFT(pack_tmp, 13)
   30023     1795290 :          ipack = ipack + 1
   30024     1795290 :          pack_tmp = packed_data(ipack)
   30025     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   30026     1795290 :          pack_tmp = ISHFT(pack_tmp, -13)
   30027     1795290 :          idata = idata + 1
   30028     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30029     1795290 :          full_data(idata) = data_tmp
   30030     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30031     1795290 :          idata = idata + 1
   30032     1795290 :          data_tmp = ISHFT(pack_tmp, 27)
   30033     1795290 :          ipack = ipack + 1
   30034     1795290 :          pack_tmp = packed_data(ipack)
   30035     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   30036     1795290 :          pack_tmp = ISHFT(pack_tmp, -27)
   30037     1795290 :          idata = idata + 1
   30038     1795290 :          data_tmp = ISHFT(pack_tmp, 2)
   30039     1795290 :          ipack = ipack + 1
   30040     1795290 :          pack_tmp = packed_data(ipack)
   30041     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   30042     1795290 :          pack_tmp = ISHFT(pack_tmp, -2)
   30043     1795290 :          idata = idata + 1
   30044     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30045     1795290 :          full_data(idata) = data_tmp
   30046     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30047     1795290 :          idata = idata + 1
   30048     1795290 :          data_tmp = ISHFT(pack_tmp, 16)
   30049     1795290 :          ipack = ipack + 1
   30050     1795290 :          pack_tmp = packed_data(ipack)
   30051     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30052     1795290 :          pack_tmp = ISHFT(pack_tmp, -16)
   30053     1795290 :          idata = idata + 1
   30054     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30055     1795290 :          full_data(idata) = data_tmp
   30056     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30057     1795290 :          idata = idata + 1
   30058     1795290 :          data_tmp = ISHFT(pack_tmp, 30)
   30059     1795290 :          ipack = ipack + 1
   30060     1795290 :          pack_tmp = packed_data(ipack)
   30061     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   30062     1795290 :          pack_tmp = ISHFT(pack_tmp, -30)
   30063     1795290 :          idata = idata + 1
   30064     1795290 :          data_tmp = ISHFT(pack_tmp, 5)
   30065     1795290 :          ipack = ipack + 1
   30066     1795290 :          pack_tmp = packed_data(ipack)
   30067     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   30068     1795290 :          pack_tmp = ISHFT(pack_tmp, -5)
   30069     1795290 :          idata = idata + 1
   30070     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30071     1795290 :          full_data(idata) = data_tmp
   30072     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30073     1795290 :          idata = idata + 1
   30074     1795290 :          data_tmp = ISHFT(pack_tmp, 19)
   30075     1795290 :          ipack = ipack + 1
   30076     1795290 :          pack_tmp = packed_data(ipack)
   30077     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   30078     1795290 :          pack_tmp = ISHFT(pack_tmp, -19)
   30079     1795290 :          idata = idata + 1
   30080     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30081     1795290 :          full_data(idata) = data_tmp
   30082     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30083     1795290 :          idata = idata + 1
   30084     1795290 :          data_tmp = ISHFT(pack_tmp, 33)
   30085     1795290 :          ipack = ipack + 1
   30086     1795290 :          pack_tmp = packed_data(ipack)
   30087     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   30088     1795290 :          pack_tmp = ISHFT(pack_tmp, -33)
   30089     1795290 :          idata = idata + 1
   30090     1795290 :          data_tmp = ISHFT(pack_tmp, 8)
   30091     1795290 :          ipack = ipack + 1
   30092     1795290 :          pack_tmp = packed_data(ipack)
   30093     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30094     1795290 :          pack_tmp = ISHFT(pack_tmp, -8)
   30095     1795290 :          idata = idata + 1
   30096     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30097     1795290 :          full_data(idata) = data_tmp
   30098     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30099     1795290 :          idata = idata + 1
   30100     1795290 :          data_tmp = ISHFT(pack_tmp, 22)
   30101     1795290 :          ipack = ipack + 1
   30102     1795290 :          pack_tmp = packed_data(ipack)
   30103     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   30104     1795290 :          pack_tmp = ISHFT(pack_tmp, -22)
   30105     1795290 :          idata = idata + 1
   30106     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30107     1795290 :          full_data(idata) = data_tmp
   30108     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30109     1795290 :          idata = idata + 1
   30110     1795290 :          data_tmp = ISHFT(pack_tmp, 36)
   30111     1795290 :          ipack = ipack + 1
   30112     1795290 :          pack_tmp = packed_data(ipack)
   30113     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   30114     1795290 :          pack_tmp = ISHFT(pack_tmp, -36)
   30115     1795290 :          idata = idata + 1
   30116     1795290 :          data_tmp = ISHFT(pack_tmp, 11)
   30117     1795290 :          ipack = ipack + 1
   30118     1795290 :          pack_tmp = packed_data(ipack)
   30119     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   30120     1795290 :          pack_tmp = ISHFT(pack_tmp, -11)
   30121     1795290 :          idata = idata + 1
   30122     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30123     1795290 :          full_data(idata) = data_tmp
   30124     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30125     1795290 :          idata = idata + 1
   30126     1795290 :          data_tmp = ISHFT(pack_tmp, 25)
   30127     1795290 :          ipack = ipack + 1
   30128     1795290 :          pack_tmp = packed_data(ipack)
   30129     1795290 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   30130     1795290 :          pack_tmp = ISHFT(pack_tmp, -25)
   30131     1795290 :          idata = idata + 1
   30132     1795290 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30133     1795290 :          full_data(idata) = data_tmp
   30134     1795290 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30135             :       END DO
   30136      125761 :       IF (Ndata_rep < Ndata) THEN
   30137       25516 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30138             :       END IF
   30139      125761 :    END SUBROUTINE bits2ints_39
   30140             : 
   30141             : ! **************************************************************************************************
   30142             : !> \brief ...
   30143             : !> \param Ndata ...
   30144             : !> \param packed_data ...
   30145             : !> \param full_data ...
   30146             : ! **************************************************************************************************
   30147       27201 :    SUBROUTINE ints2bits_40(Ndata, packed_data, full_data)
   30148             :       INTEGER, INTENT(IN)                                :: Ndata
   30149             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   30150             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   30151             : 
   30152             :       INTEGER, PARAMETER                                 :: Nbits = 40
   30153             : 
   30154             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   30155             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   30156             : 
   30157       27201 :       idata = 0
   30158       27201 :       ipack = 0
   30159       27201 :       Ndata_rep = (Ndata/64)*64
   30160       27201 :       DO kdata = 1, Ndata_rep, 64
   30161      409894 :          pack_tmp = 0
   30162      409894 :          idata = idata + 1
   30163      409894 :          data_tmp = full_data(idata)
   30164      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30165      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30166      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30167      409894 :          idata = idata + 1
   30168      409894 :          data_tmp = full_data(idata)
   30169      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30170      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30171      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30172      409894 :          ipack = ipack + 1
   30173      409894 :          packed_data(ipack) = pack_tmp
   30174      409894 :          data_tmp = full_data(idata)
   30175      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30176      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30177      409894 :          idata = idata + 1
   30178      409894 :          data_tmp = full_data(idata)
   30179      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30180      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30181      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30182      409894 :          idata = idata + 1
   30183      409894 :          data_tmp = full_data(idata)
   30184      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30185      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30186      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30187      409894 :          ipack = ipack + 1
   30188      409894 :          packed_data(ipack) = pack_tmp
   30189      409894 :          data_tmp = full_data(idata)
   30190      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30191      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30192      409894 :          idata = idata + 1
   30193      409894 :          data_tmp = full_data(idata)
   30194      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30195      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30196      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30197      409894 :          ipack = ipack + 1
   30198      409894 :          packed_data(ipack) = pack_tmp
   30199      409894 :          data_tmp = full_data(idata)
   30200      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30201      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30202      409894 :          idata = idata + 1
   30203      409894 :          data_tmp = full_data(idata)
   30204      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30205      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30206      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30207      409894 :          idata = idata + 1
   30208      409894 :          data_tmp = full_data(idata)
   30209      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30210      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30211      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30212      409894 :          ipack = ipack + 1
   30213      409894 :          packed_data(ipack) = pack_tmp
   30214      409894 :          data_tmp = full_data(idata)
   30215      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30216      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30217      409894 :          idata = idata + 1
   30218      409894 :          data_tmp = full_data(idata)
   30219      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30220      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30221      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30222      409894 :          idata = idata + 1
   30223      409894 :          data_tmp = full_data(idata)
   30224             :          data_tmp = ISHFT(data_tmp, 24)
   30225      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30226      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30227      409894 :          ipack = ipack + 1
   30228      409894 :          packed_data(ipack) = pack_tmp
   30229      409894 :          data_tmp = full_data(idata)
   30230      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30231      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30232      409894 :          idata = idata + 1
   30233      409894 :          data_tmp = full_data(idata)
   30234      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30235      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30236      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30237      409894 :          ipack = ipack + 1
   30238      409894 :          packed_data(ipack) = pack_tmp
   30239      409894 :          data_tmp = full_data(idata)
   30240      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30241      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30242      409894 :          idata = idata + 1
   30243      409894 :          data_tmp = full_data(idata)
   30244      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30245      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30246      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30247      409894 :          idata = idata + 1
   30248      409894 :          data_tmp = full_data(idata)
   30249      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30250      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30251      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30252      409894 :          ipack = ipack + 1
   30253      409894 :          packed_data(ipack) = pack_tmp
   30254      409894 :          data_tmp = full_data(idata)
   30255      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30256      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30257      409894 :          idata = idata + 1
   30258      409894 :          data_tmp = full_data(idata)
   30259      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30260      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30261      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30262      409894 :          ipack = ipack + 1
   30263      409894 :          packed_data(ipack) = pack_tmp
   30264      409894 :          data_tmp = full_data(idata)
   30265      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30266      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30267      409894 :          idata = idata + 1
   30268      409894 :          data_tmp = full_data(idata)
   30269      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30270      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30271      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30272      409894 :          idata = idata + 1
   30273      409894 :          data_tmp = full_data(idata)
   30274      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30275      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30276      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30277      409894 :          ipack = ipack + 1
   30278      409894 :          packed_data(ipack) = pack_tmp
   30279      409894 :          data_tmp = full_data(idata)
   30280      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30281      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30282      409894 :          idata = idata + 1
   30283      409894 :          data_tmp = full_data(idata)
   30284      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30285      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30286      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30287      409894 :          idata = idata + 1
   30288      409894 :          data_tmp = full_data(idata)
   30289             :          data_tmp = ISHFT(data_tmp, 24)
   30290      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30291      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30292      409894 :          ipack = ipack + 1
   30293      409894 :          packed_data(ipack) = pack_tmp
   30294      409894 :          data_tmp = full_data(idata)
   30295      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30296      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30297      409894 :          idata = idata + 1
   30298      409894 :          data_tmp = full_data(idata)
   30299      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30300      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30301      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30302      409894 :          ipack = ipack + 1
   30303      409894 :          packed_data(ipack) = pack_tmp
   30304      409894 :          data_tmp = full_data(idata)
   30305      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30306      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30307      409894 :          idata = idata + 1
   30308      409894 :          data_tmp = full_data(idata)
   30309      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30310      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30311      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30312      409894 :          idata = idata + 1
   30313      409894 :          data_tmp = full_data(idata)
   30314      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30315      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30316      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30317      409894 :          ipack = ipack + 1
   30318      409894 :          packed_data(ipack) = pack_tmp
   30319      409894 :          data_tmp = full_data(idata)
   30320      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30321      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30322      409894 :          idata = idata + 1
   30323      409894 :          data_tmp = full_data(idata)
   30324      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30325      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30326      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30327      409894 :          ipack = ipack + 1
   30328      409894 :          packed_data(ipack) = pack_tmp
   30329      409894 :          data_tmp = full_data(idata)
   30330      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30331      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30332      409894 :          idata = idata + 1
   30333      409894 :          data_tmp = full_data(idata)
   30334      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30335      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30336      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30337      409894 :          idata = idata + 1
   30338      409894 :          data_tmp = full_data(idata)
   30339      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30340      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30341      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30342      409894 :          ipack = ipack + 1
   30343      409894 :          packed_data(ipack) = pack_tmp
   30344      409894 :          data_tmp = full_data(idata)
   30345      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30346      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30347      409894 :          idata = idata + 1
   30348      409894 :          data_tmp = full_data(idata)
   30349      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30350      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30351      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30352      409894 :          idata = idata + 1
   30353      409894 :          data_tmp = full_data(idata)
   30354             :          data_tmp = ISHFT(data_tmp, 24)
   30355      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30356      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30357      409894 :          ipack = ipack + 1
   30358      409894 :          packed_data(ipack) = pack_tmp
   30359      409894 :          data_tmp = full_data(idata)
   30360      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30361      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30362      409894 :          idata = idata + 1
   30363      409894 :          data_tmp = full_data(idata)
   30364      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30365      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30366      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30367      409894 :          ipack = ipack + 1
   30368      409894 :          packed_data(ipack) = pack_tmp
   30369      409894 :          data_tmp = full_data(idata)
   30370      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30371      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30372      409894 :          idata = idata + 1
   30373      409894 :          data_tmp = full_data(idata)
   30374      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30375      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30376      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30377      409894 :          idata = idata + 1
   30378      409894 :          data_tmp = full_data(idata)
   30379      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30380      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30381      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30382      409894 :          ipack = ipack + 1
   30383      409894 :          packed_data(ipack) = pack_tmp
   30384      409894 :          data_tmp = full_data(idata)
   30385      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30386      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30387      409894 :          idata = idata + 1
   30388      409894 :          data_tmp = full_data(idata)
   30389      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30390      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30391      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30392      409894 :          ipack = ipack + 1
   30393      409894 :          packed_data(ipack) = pack_tmp
   30394      409894 :          data_tmp = full_data(idata)
   30395      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30396      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30397      409894 :          idata = idata + 1
   30398      409894 :          data_tmp = full_data(idata)
   30399      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30400      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30401      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30402      409894 :          idata = idata + 1
   30403      409894 :          data_tmp = full_data(idata)
   30404      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30405      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30406      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30407      409894 :          ipack = ipack + 1
   30408      409894 :          packed_data(ipack) = pack_tmp
   30409      409894 :          data_tmp = full_data(idata)
   30410      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30411      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30412      409894 :          idata = idata + 1
   30413      409894 :          data_tmp = full_data(idata)
   30414      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30415      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30416      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30417      409894 :          idata = idata + 1
   30418      409894 :          data_tmp = full_data(idata)
   30419             :          data_tmp = ISHFT(data_tmp, 24)
   30420      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30421      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30422      409894 :          ipack = ipack + 1
   30423      409894 :          packed_data(ipack) = pack_tmp
   30424      409894 :          data_tmp = full_data(idata)
   30425      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30426      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30427      409894 :          idata = idata + 1
   30428      409894 :          data_tmp = full_data(idata)
   30429      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30430      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30431      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30432      409894 :          ipack = ipack + 1
   30433      409894 :          packed_data(ipack) = pack_tmp
   30434      409894 :          data_tmp = full_data(idata)
   30435      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30436      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30437      409894 :          idata = idata + 1
   30438      409894 :          data_tmp = full_data(idata)
   30439      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30440      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30441      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30442      409894 :          idata = idata + 1
   30443      409894 :          data_tmp = full_data(idata)
   30444      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30445      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30446      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30447      409894 :          ipack = ipack + 1
   30448      409894 :          packed_data(ipack) = pack_tmp
   30449      409894 :          data_tmp = full_data(idata)
   30450      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30451      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30452      409894 :          idata = idata + 1
   30453      409894 :          data_tmp = full_data(idata)
   30454      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30455      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30456      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30457      409894 :          ipack = ipack + 1
   30458      409894 :          packed_data(ipack) = pack_tmp
   30459      409894 :          data_tmp = full_data(idata)
   30460      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30461      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30462      409894 :          idata = idata + 1
   30463      409894 :          data_tmp = full_data(idata)
   30464      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30465      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30466      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30467      409894 :          idata = idata + 1
   30468      409894 :          data_tmp = full_data(idata)
   30469      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30470      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30471      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30472      409894 :          ipack = ipack + 1
   30473      409894 :          packed_data(ipack) = pack_tmp
   30474      409894 :          data_tmp = full_data(idata)
   30475      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30476      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30477      409894 :          idata = idata + 1
   30478      409894 :          data_tmp = full_data(idata)
   30479      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30480      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30481      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30482      409894 :          idata = idata + 1
   30483      409894 :          data_tmp = full_data(idata)
   30484             :          data_tmp = ISHFT(data_tmp, 24)
   30485      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30486      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30487      409894 :          ipack = ipack + 1
   30488      409894 :          packed_data(ipack) = pack_tmp
   30489      409894 :          data_tmp = full_data(idata)
   30490      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30491      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30492      409894 :          idata = idata + 1
   30493      409894 :          data_tmp = full_data(idata)
   30494      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30495      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30496      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30497      409894 :          ipack = ipack + 1
   30498      409894 :          packed_data(ipack) = pack_tmp
   30499      409894 :          data_tmp = full_data(idata)
   30500      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30501      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30502      409894 :          idata = idata + 1
   30503      409894 :          data_tmp = full_data(idata)
   30504      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30505      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30506      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30507      409894 :          idata = idata + 1
   30508      409894 :          data_tmp = full_data(idata)
   30509      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30510      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30511      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30512      409894 :          ipack = ipack + 1
   30513      409894 :          packed_data(ipack) = pack_tmp
   30514      409894 :          data_tmp = full_data(idata)
   30515      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30516      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30517      409894 :          idata = idata + 1
   30518      409894 :          data_tmp = full_data(idata)
   30519      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30520      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30521      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30522      409894 :          ipack = ipack + 1
   30523      409894 :          packed_data(ipack) = pack_tmp
   30524      409894 :          data_tmp = full_data(idata)
   30525      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30526      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30527      409894 :          idata = idata + 1
   30528      409894 :          data_tmp = full_data(idata)
   30529      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30530      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30531      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30532      409894 :          idata = idata + 1
   30533      409894 :          data_tmp = full_data(idata)
   30534      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30535      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30536      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30537      409894 :          ipack = ipack + 1
   30538      409894 :          packed_data(ipack) = pack_tmp
   30539      409894 :          data_tmp = full_data(idata)
   30540      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30541      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30542      409894 :          idata = idata + 1
   30543      409894 :          data_tmp = full_data(idata)
   30544      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30545      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30546      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30547      409894 :          idata = idata + 1
   30548      409894 :          data_tmp = full_data(idata)
   30549             :          data_tmp = ISHFT(data_tmp, 24)
   30550      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30551      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30552      409894 :          ipack = ipack + 1
   30553      409894 :          packed_data(ipack) = pack_tmp
   30554      409894 :          data_tmp = full_data(idata)
   30555      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30556      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30557      409894 :          idata = idata + 1
   30558      409894 :          data_tmp = full_data(idata)
   30559      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30560      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30561      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30562      409894 :          ipack = ipack + 1
   30563      409894 :          packed_data(ipack) = pack_tmp
   30564      409894 :          data_tmp = full_data(idata)
   30565      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30566      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30567      409894 :          idata = idata + 1
   30568      409894 :          data_tmp = full_data(idata)
   30569      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30570      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30571      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30572      409894 :          idata = idata + 1
   30573      409894 :          data_tmp = full_data(idata)
   30574      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30575      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30576      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30577      409894 :          ipack = ipack + 1
   30578      409894 :          packed_data(ipack) = pack_tmp
   30579      409894 :          data_tmp = full_data(idata)
   30580      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30581      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30582      409894 :          idata = idata + 1
   30583      409894 :          data_tmp = full_data(idata)
   30584      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30585      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30586      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30587      409894 :          ipack = ipack + 1
   30588      409894 :          packed_data(ipack) = pack_tmp
   30589      409894 :          data_tmp = full_data(idata)
   30590      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30591      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30592      409894 :          idata = idata + 1
   30593      409894 :          data_tmp = full_data(idata)
   30594      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30595      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30596      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30597      409894 :          idata = idata + 1
   30598      409894 :          data_tmp = full_data(idata)
   30599      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30600      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30601      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30602      409894 :          ipack = ipack + 1
   30603      409894 :          packed_data(ipack) = pack_tmp
   30604      409894 :          data_tmp = full_data(idata)
   30605      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30606      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30607      409894 :          idata = idata + 1
   30608      409894 :          data_tmp = full_data(idata)
   30609      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30610      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30611      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30612      409894 :          idata = idata + 1
   30613      409894 :          data_tmp = full_data(idata)
   30614             :          data_tmp = ISHFT(data_tmp, 24)
   30615      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30616      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30617      409894 :          ipack = ipack + 1
   30618      409894 :          packed_data(ipack) = pack_tmp
   30619      409894 :          data_tmp = full_data(idata)
   30620      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30621      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30622      409894 :          idata = idata + 1
   30623      409894 :          data_tmp = full_data(idata)
   30624      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30625      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30626      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30627      409894 :          ipack = ipack + 1
   30628      409894 :          packed_data(ipack) = pack_tmp
   30629      409894 :          data_tmp = full_data(idata)
   30630      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30631      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30632      409894 :          idata = idata + 1
   30633      409894 :          data_tmp = full_data(idata)
   30634      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30635      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30636      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30637      409894 :          idata = idata + 1
   30638      409894 :          data_tmp = full_data(idata)
   30639      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30640      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30641      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30642      409894 :          ipack = ipack + 1
   30643      409894 :          packed_data(ipack) = pack_tmp
   30644      409894 :          data_tmp = full_data(idata)
   30645      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30646      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30647      409894 :          idata = idata + 1
   30648      409894 :          data_tmp = full_data(idata)
   30649      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30650      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30651      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30652      409894 :          ipack = ipack + 1
   30653      409894 :          packed_data(ipack) = pack_tmp
   30654      409894 :          data_tmp = full_data(idata)
   30655      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30656      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30657      409894 :          idata = idata + 1
   30658      409894 :          data_tmp = full_data(idata)
   30659      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30660      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30661      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30662      409894 :          idata = idata + 1
   30663      409894 :          data_tmp = full_data(idata)
   30664      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30665      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30666      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30667      409894 :          ipack = ipack + 1
   30668      409894 :          packed_data(ipack) = pack_tmp
   30669      409894 :          data_tmp = full_data(idata)
   30670      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30671      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30672      409894 :          idata = idata + 1
   30673      409894 :          data_tmp = full_data(idata)
   30674      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30675      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30676             :          pack_tmp = ISHFT(pack_tmp, 0)
   30677      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30678      409894 :          ipack = ipack + 1
   30679      409920 :          packed_data(ipack) = pack_tmp
   30680             :       END DO
   30681       27201 :       IF (Ndata_rep < Ndata) THEN
   30682        2964 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30683             :       END IF
   30684       27201 :    END SUBROUTINE ints2bits_40
   30685             : 
   30686             : ! **************************************************************************************************
   30687             : !> \brief ...
   30688             : !> \param Ndata ...
   30689             : !> \param packed_data ...
   30690             : !> \param full_data ...
   30691             : ! **************************************************************************************************
   30692      126699 :    SUBROUTINE bits2ints_40(Ndata, packed_data, full_data)
   30693             :       INTEGER, INTENT(IN)                                :: Ndata
   30694             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   30695             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   30696             : 
   30697             :       INTEGER, PARAMETER                                 :: Nbits = 40
   30698             : 
   30699             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   30700             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   30701             : 
   30702      126699 :       ipack = 0
   30703      126699 :       idata = 0
   30704      126699 :       pack_tmp = 0
   30705      126699 :       Ndata_rep = (Ndata/64)*64
   30706      126699 :       DO kdata = 1, Ndata_rep, 64
   30707     1809337 :          idata = idata + 1
   30708     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30709     1809337 :          ipack = ipack + 1
   30710     1809337 :          pack_tmp = packed_data(ipack)
   30711     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30712     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30713     1809337 :          idata = idata + 1
   30714     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30715     1809337 :          ipack = ipack + 1
   30716     1809337 :          pack_tmp = packed_data(ipack)
   30717     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30718     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30719     1809337 :          idata = idata + 1
   30720     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30721     1809337 :          full_data(idata) = data_tmp
   30722     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30723     1809337 :          idata = idata + 1
   30724     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30725     1809337 :          ipack = ipack + 1
   30726     1809337 :          pack_tmp = packed_data(ipack)
   30727     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30728     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30729     1809337 :          idata = idata + 1
   30730     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30731     1809337 :          ipack = ipack + 1
   30732     1809337 :          pack_tmp = packed_data(ipack)
   30733     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30734     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30735     1809337 :          idata = idata + 1
   30736     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30737     1809337 :          full_data(idata) = data_tmp
   30738     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30739     1809337 :          idata = idata + 1
   30740     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30741     1809337 :          ipack = ipack + 1
   30742     1809337 :          pack_tmp = packed_data(ipack)
   30743     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30744     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30745     1809337 :          idata = idata + 1
   30746     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30747     1809337 :          full_data(idata) = data_tmp
   30748     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30749     1809337 :          idata = idata + 1
   30750     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30751     1809337 :          ipack = ipack + 1
   30752     1809337 :          pack_tmp = packed_data(ipack)
   30753     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30754     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30755     1809337 :          idata = idata + 1
   30756     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30757     1809337 :          ipack = ipack + 1
   30758     1809337 :          pack_tmp = packed_data(ipack)
   30759     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30760     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30761     1809337 :          idata = idata + 1
   30762     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30763     1809337 :          full_data(idata) = data_tmp
   30764     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30765     1809337 :          idata = idata + 1
   30766     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30767     1809337 :          ipack = ipack + 1
   30768     1809337 :          pack_tmp = packed_data(ipack)
   30769     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30770     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30771     1809337 :          idata = idata + 1
   30772     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30773     1809337 :          ipack = ipack + 1
   30774     1809337 :          pack_tmp = packed_data(ipack)
   30775     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30776     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30777     1809337 :          idata = idata + 1
   30778     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30779     1809337 :          full_data(idata) = data_tmp
   30780     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30781     1809337 :          idata = idata + 1
   30782     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30783     1809337 :          ipack = ipack + 1
   30784     1809337 :          pack_tmp = packed_data(ipack)
   30785     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30786     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30787     1809337 :          idata = idata + 1
   30788     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30789     1809337 :          full_data(idata) = data_tmp
   30790     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30791     1809337 :          idata = idata + 1
   30792     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30793     1809337 :          ipack = ipack + 1
   30794     1809337 :          pack_tmp = packed_data(ipack)
   30795     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30796     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30797     1809337 :          idata = idata + 1
   30798     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30799     1809337 :          ipack = ipack + 1
   30800     1809337 :          pack_tmp = packed_data(ipack)
   30801     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30802     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30803     1809337 :          idata = idata + 1
   30804     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30805     1809337 :          full_data(idata) = data_tmp
   30806     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30807     1809337 :          idata = idata + 1
   30808     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30809     1809337 :          ipack = ipack + 1
   30810     1809337 :          pack_tmp = packed_data(ipack)
   30811     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30812     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30813     1809337 :          idata = idata + 1
   30814     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30815     1809337 :          ipack = ipack + 1
   30816     1809337 :          pack_tmp = packed_data(ipack)
   30817     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30818     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30819     1809337 :          idata = idata + 1
   30820     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30821     1809337 :          full_data(idata) = data_tmp
   30822     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30823     1809337 :          idata = idata + 1
   30824     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30825     1809337 :          ipack = ipack + 1
   30826     1809337 :          pack_tmp = packed_data(ipack)
   30827     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30828     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30829     1809337 :          idata = idata + 1
   30830     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30831     1809337 :          full_data(idata) = data_tmp
   30832     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30833     1809337 :          idata = idata + 1
   30834     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30835     1809337 :          ipack = ipack + 1
   30836     1809337 :          pack_tmp = packed_data(ipack)
   30837     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30838     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30839     1809337 :          idata = idata + 1
   30840     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30841     1809337 :          ipack = ipack + 1
   30842     1809337 :          pack_tmp = packed_data(ipack)
   30843     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30844     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30845     1809337 :          idata = idata + 1
   30846     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30847     1809337 :          full_data(idata) = data_tmp
   30848     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30849     1809337 :          idata = idata + 1
   30850     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30851     1809337 :          ipack = ipack + 1
   30852     1809337 :          pack_tmp = packed_data(ipack)
   30853     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30854     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30855     1809337 :          idata = idata + 1
   30856     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30857     1809337 :          ipack = ipack + 1
   30858     1809337 :          pack_tmp = packed_data(ipack)
   30859     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30860     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30861     1809337 :          idata = idata + 1
   30862     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30863     1809337 :          full_data(idata) = data_tmp
   30864     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30865     1809337 :          idata = idata + 1
   30866     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30867     1809337 :          ipack = ipack + 1
   30868     1809337 :          pack_tmp = packed_data(ipack)
   30869     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30870     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30871     1809337 :          idata = idata + 1
   30872     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30873     1809337 :          full_data(idata) = data_tmp
   30874     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30875     1809337 :          idata = idata + 1
   30876     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30877     1809337 :          ipack = ipack + 1
   30878     1809337 :          pack_tmp = packed_data(ipack)
   30879     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30880     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30881     1809337 :          idata = idata + 1
   30882     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30883     1809337 :          ipack = ipack + 1
   30884     1809337 :          pack_tmp = packed_data(ipack)
   30885     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30886     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30887     1809337 :          idata = idata + 1
   30888     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30889     1809337 :          full_data(idata) = data_tmp
   30890     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30891     1809337 :          idata = idata + 1
   30892     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30893     1809337 :          ipack = ipack + 1
   30894     1809337 :          pack_tmp = packed_data(ipack)
   30895     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30896     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30897     1809337 :          idata = idata + 1
   30898     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30899     1809337 :          ipack = ipack + 1
   30900     1809337 :          pack_tmp = packed_data(ipack)
   30901     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30902     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30903     1809337 :          idata = idata + 1
   30904     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30905     1809337 :          full_data(idata) = data_tmp
   30906     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30907     1809337 :          idata = idata + 1
   30908     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30909     1809337 :          ipack = ipack + 1
   30910     1809337 :          pack_tmp = packed_data(ipack)
   30911     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30912     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30913     1809337 :          idata = idata + 1
   30914     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30915     1809337 :          full_data(idata) = data_tmp
   30916     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30917     1809337 :          idata = idata + 1
   30918     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30919     1809337 :          ipack = ipack + 1
   30920     1809337 :          pack_tmp = packed_data(ipack)
   30921     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30922     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30923     1809337 :          idata = idata + 1
   30924     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30925     1809337 :          ipack = ipack + 1
   30926     1809337 :          pack_tmp = packed_data(ipack)
   30927     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30928     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30929     1809337 :          idata = idata + 1
   30930     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30931     1809337 :          full_data(idata) = data_tmp
   30932     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30933     1809337 :          idata = idata + 1
   30934     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30935     1809337 :          ipack = ipack + 1
   30936     1809337 :          pack_tmp = packed_data(ipack)
   30937     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30938     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30939     1809337 :          idata = idata + 1
   30940     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30941     1809337 :          ipack = ipack + 1
   30942     1809337 :          pack_tmp = packed_data(ipack)
   30943     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30944     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30945     1809337 :          idata = idata + 1
   30946     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30947     1809337 :          full_data(idata) = data_tmp
   30948     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30949     1809337 :          idata = idata + 1
   30950     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30951     1809337 :          ipack = ipack + 1
   30952     1809337 :          pack_tmp = packed_data(ipack)
   30953     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30954     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30955     1809337 :          idata = idata + 1
   30956     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30957     1809337 :          full_data(idata) = data_tmp
   30958     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30959     1809337 :          idata = idata + 1
   30960     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30961     1809337 :          ipack = ipack + 1
   30962     1809337 :          pack_tmp = packed_data(ipack)
   30963     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30964     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30965     1809337 :          idata = idata + 1
   30966     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30967     1809337 :          ipack = ipack + 1
   30968     1809337 :          pack_tmp = packed_data(ipack)
   30969     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30970     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30971     1809337 :          idata = idata + 1
   30972     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30973     1809337 :          full_data(idata) = data_tmp
   30974     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30975     1809337 :          idata = idata + 1
   30976     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30977     1809337 :          ipack = ipack + 1
   30978     1809337 :          pack_tmp = packed_data(ipack)
   30979     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30980     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30981     1809337 :          idata = idata + 1
   30982     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30983     1809337 :          ipack = ipack + 1
   30984     1809337 :          pack_tmp = packed_data(ipack)
   30985     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30986     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30987     1809337 :          idata = idata + 1
   30988     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30989     1809337 :          full_data(idata) = data_tmp
   30990     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30991     1809337 :          idata = idata + 1
   30992     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30993     1809337 :          ipack = ipack + 1
   30994     1809337 :          pack_tmp = packed_data(ipack)
   30995     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30996     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30997     1809337 :          idata = idata + 1
   30998     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30999     1809337 :          full_data(idata) = data_tmp
   31000     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31001     1809337 :          idata = idata + 1
   31002     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   31003     1809337 :          ipack = ipack + 1
   31004     1809337 :          pack_tmp = packed_data(ipack)
   31005     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31006     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   31007     1809337 :          idata = idata + 1
   31008     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   31009     1809337 :          ipack = ipack + 1
   31010     1809337 :          pack_tmp = packed_data(ipack)
   31011     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31012     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   31013     1809337 :          idata = idata + 1
   31014     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31015     1809337 :          full_data(idata) = data_tmp
   31016     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31017     1809337 :          idata = idata + 1
   31018     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   31019     1809337 :          ipack = ipack + 1
   31020     1809337 :          pack_tmp = packed_data(ipack)
   31021     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31022     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   31023     1809337 :          idata = idata + 1
   31024     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   31025     1809337 :          ipack = ipack + 1
   31026     1809337 :          pack_tmp = packed_data(ipack)
   31027     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31028     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   31029     1809337 :          idata = idata + 1
   31030     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31031     1809337 :          full_data(idata) = data_tmp
   31032     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31033     1809337 :          idata = idata + 1
   31034     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   31035     1809337 :          ipack = ipack + 1
   31036     1809337 :          pack_tmp = packed_data(ipack)
   31037     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31038     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   31039     1809337 :          idata = idata + 1
   31040     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31041     1809337 :          full_data(idata) = data_tmp
   31042     1809516 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31043             :       END DO
   31044      126699 :       IF (Ndata_rep < Ndata) THEN
   31045       25614 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31046             :       END IF
   31047      126699 :    END SUBROUTINE bits2ints_40
   31048             : 
   31049             : ! **************************************************************************************************
   31050             : !> \brief ...
   31051             : !> \param Ndata ...
   31052             : !> \param packed_data ...
   31053             : !> \param full_data ...
   31054             : ! **************************************************************************************************
   31055       27001 :    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       27001 :       idata = 0
   31066       27001 :       ipack = 0
   31067       27001 :       Ndata_rep = (Ndata/64)*64
   31068       27001 :       DO kdata = 1, Ndata_rep, 64
   31069      407895 :          pack_tmp = 0
   31070      407895 :          idata = idata + 1
   31071      407895 :          data_tmp = full_data(idata)
   31072      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31073      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31074      407895 :          pack_tmp = ISHFT(pack_tmp, -23)
   31075      407895 :          idata = idata + 1
   31076      407895 :          data_tmp = full_data(idata)
   31077      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31078      407895 :          data_tmp = IAND(data_tmp, mask_left(23))
   31079      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31080      407895 :          ipack = ipack + 1
   31081      407895 :          packed_data(ipack) = pack_tmp
   31082      407895 :          data_tmp = full_data(idata)
   31083      407895 :          pack_tmp = ISHFT(data_tmp, 46)
   31084      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31085      407895 :          idata = idata + 1
   31086      407895 :          data_tmp = full_data(idata)
   31087      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31088      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31089      407895 :          pack_tmp = ISHFT(pack_tmp, -5)
   31090      407895 :          idata = idata + 1
   31091      407895 :          data_tmp = full_data(idata)
   31092      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31093      407895 :          data_tmp = IAND(data_tmp, mask_left(5))
   31094      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31095      407895 :          ipack = ipack + 1
   31096      407895 :          packed_data(ipack) = pack_tmp
   31097      407895 :          data_tmp = full_data(idata)
   31098      407895 :          pack_tmp = ISHFT(data_tmp, 28)
   31099      407895 :          pack_tmp = ISHFT(pack_tmp, -28)
   31100      407895 :          idata = idata + 1
   31101      407895 :          data_tmp = full_data(idata)
   31102      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31103      407895 :          data_tmp = IAND(data_tmp, mask_left(28))
   31104      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31105      407895 :          ipack = ipack + 1
   31106      407895 :          packed_data(ipack) = pack_tmp
   31107      407895 :          data_tmp = full_data(idata)
   31108      407895 :          pack_tmp = ISHFT(data_tmp, 51)
   31109      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31110      407895 :          idata = idata + 1
   31111      407895 :          data_tmp = full_data(idata)
   31112      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31113      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31114      407895 :          pack_tmp = ISHFT(pack_tmp, -10)
   31115      407895 :          idata = idata + 1
   31116      407895 :          data_tmp = full_data(idata)
   31117      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31118      407895 :          data_tmp = IAND(data_tmp, mask_left(10))
   31119      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31120      407895 :          ipack = ipack + 1
   31121      407895 :          packed_data(ipack) = pack_tmp
   31122      407895 :          data_tmp = full_data(idata)
   31123      407895 :          pack_tmp = ISHFT(data_tmp, 33)
   31124      407895 :          pack_tmp = ISHFT(pack_tmp, -33)
   31125      407895 :          idata = idata + 1
   31126      407895 :          data_tmp = full_data(idata)
   31127      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31128      407895 :          data_tmp = IAND(data_tmp, mask_left(33))
   31129      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31130      407895 :          ipack = ipack + 1
   31131      407895 :          packed_data(ipack) = pack_tmp
   31132      407895 :          data_tmp = full_data(idata)
   31133      407895 :          pack_tmp = ISHFT(data_tmp, 56)
   31134      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31135      407895 :          idata = idata + 1
   31136      407895 :          data_tmp = full_data(idata)
   31137      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31138      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31139      407895 :          pack_tmp = ISHFT(pack_tmp, -15)
   31140      407895 :          idata = idata + 1
   31141      407895 :          data_tmp = full_data(idata)
   31142      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31143      407895 :          data_tmp = IAND(data_tmp, mask_left(15))
   31144      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31145      407895 :          ipack = ipack + 1
   31146      407895 :          packed_data(ipack) = pack_tmp
   31147      407895 :          data_tmp = full_data(idata)
   31148      407895 :          pack_tmp = ISHFT(data_tmp, 38)
   31149      407895 :          pack_tmp = ISHFT(pack_tmp, -38)
   31150      407895 :          idata = idata + 1
   31151      407895 :          data_tmp = full_data(idata)
   31152      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31153      407895 :          data_tmp = IAND(data_tmp, mask_left(38))
   31154      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31155      407895 :          ipack = ipack + 1
   31156      407895 :          packed_data(ipack) = pack_tmp
   31157      407895 :          data_tmp = full_data(idata)
   31158      407895 :          pack_tmp = ISHFT(data_tmp, 61)
   31159      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31160      407895 :          idata = idata + 1
   31161      407895 :          data_tmp = full_data(idata)
   31162      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31163      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31164      407895 :          pack_tmp = ISHFT(pack_tmp, -20)
   31165      407895 :          idata = idata + 1
   31166      407895 :          data_tmp = full_data(idata)
   31167      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31168      407895 :          data_tmp = IAND(data_tmp, mask_left(20))
   31169      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31170      407895 :          ipack = ipack + 1
   31171      407895 :          packed_data(ipack) = pack_tmp
   31172      407895 :          data_tmp = full_data(idata)
   31173      407895 :          pack_tmp = ISHFT(data_tmp, 43)
   31174      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31175      407895 :          idata = idata + 1
   31176      407895 :          data_tmp = full_data(idata)
   31177      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31178      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31179      407895 :          pack_tmp = ISHFT(pack_tmp, -2)
   31180      407895 :          idata = idata + 1
   31181      407895 :          data_tmp = full_data(idata)
   31182      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31183      407895 :          data_tmp = IAND(data_tmp, mask_left(2))
   31184      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31185      407895 :          ipack = ipack + 1
   31186      407895 :          packed_data(ipack) = pack_tmp
   31187      407895 :          data_tmp = full_data(idata)
   31188      407895 :          pack_tmp = ISHFT(data_tmp, 25)
   31189      407895 :          pack_tmp = ISHFT(pack_tmp, -25)
   31190      407895 :          idata = idata + 1
   31191      407895 :          data_tmp = full_data(idata)
   31192      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31193      407895 :          data_tmp = IAND(data_tmp, mask_left(25))
   31194      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31195      407895 :          ipack = ipack + 1
   31196      407895 :          packed_data(ipack) = pack_tmp
   31197      407895 :          data_tmp = full_data(idata)
   31198      407895 :          pack_tmp = ISHFT(data_tmp, 48)
   31199      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31200      407895 :          idata = idata + 1
   31201      407895 :          data_tmp = full_data(idata)
   31202      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31203      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31204      407895 :          pack_tmp = ISHFT(pack_tmp, -7)
   31205      407895 :          idata = idata + 1
   31206      407895 :          data_tmp = full_data(idata)
   31207      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31208      407895 :          data_tmp = IAND(data_tmp, mask_left(7))
   31209      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31210      407895 :          ipack = ipack + 1
   31211      407895 :          packed_data(ipack) = pack_tmp
   31212      407895 :          data_tmp = full_data(idata)
   31213      407895 :          pack_tmp = ISHFT(data_tmp, 30)
   31214      407895 :          pack_tmp = ISHFT(pack_tmp, -30)
   31215      407895 :          idata = idata + 1
   31216      407895 :          data_tmp = full_data(idata)
   31217      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31218      407895 :          data_tmp = IAND(data_tmp, mask_left(30))
   31219      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31220      407895 :          ipack = ipack + 1
   31221      407895 :          packed_data(ipack) = pack_tmp
   31222      407895 :          data_tmp = full_data(idata)
   31223      407895 :          pack_tmp = ISHFT(data_tmp, 53)
   31224      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31225      407895 :          idata = idata + 1
   31226      407895 :          data_tmp = full_data(idata)
   31227      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31228      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31229      407895 :          pack_tmp = ISHFT(pack_tmp, -12)
   31230      407895 :          idata = idata + 1
   31231      407895 :          data_tmp = full_data(idata)
   31232      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31233      407895 :          data_tmp = IAND(data_tmp, mask_left(12))
   31234      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31235      407895 :          ipack = ipack + 1
   31236      407895 :          packed_data(ipack) = pack_tmp
   31237      407895 :          data_tmp = full_data(idata)
   31238      407895 :          pack_tmp = ISHFT(data_tmp, 35)
   31239      407895 :          pack_tmp = ISHFT(pack_tmp, -35)
   31240      407895 :          idata = idata + 1
   31241      407895 :          data_tmp = full_data(idata)
   31242      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31243      407895 :          data_tmp = IAND(data_tmp, mask_left(35))
   31244      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31245      407895 :          ipack = ipack + 1
   31246      407895 :          packed_data(ipack) = pack_tmp
   31247      407895 :          data_tmp = full_data(idata)
   31248      407895 :          pack_tmp = ISHFT(data_tmp, 58)
   31249      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31250      407895 :          idata = idata + 1
   31251      407895 :          data_tmp = full_data(idata)
   31252      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31253      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31254      407895 :          pack_tmp = ISHFT(pack_tmp, -17)
   31255      407895 :          idata = idata + 1
   31256      407895 :          data_tmp = full_data(idata)
   31257      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31258      407895 :          data_tmp = IAND(data_tmp, mask_left(17))
   31259      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31260      407895 :          ipack = ipack + 1
   31261      407895 :          packed_data(ipack) = pack_tmp
   31262      407895 :          data_tmp = full_data(idata)
   31263      407895 :          pack_tmp = ISHFT(data_tmp, 40)
   31264      407895 :          pack_tmp = ISHFT(pack_tmp, -40)
   31265      407895 :          idata = idata + 1
   31266      407895 :          data_tmp = full_data(idata)
   31267      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31268      407895 :          data_tmp = IAND(data_tmp, mask_left(40))
   31269      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31270      407895 :          ipack = ipack + 1
   31271      407895 :          packed_data(ipack) = pack_tmp
   31272      407895 :          data_tmp = full_data(idata)
   31273      407895 :          pack_tmp = ISHFT(data_tmp, 63)
   31274      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31275      407895 :          idata = idata + 1
   31276      407895 :          data_tmp = full_data(idata)
   31277      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31278      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31279      407895 :          pack_tmp = ISHFT(pack_tmp, -22)
   31280      407895 :          idata = idata + 1
   31281      407895 :          data_tmp = full_data(idata)
   31282      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31283      407895 :          data_tmp = IAND(data_tmp, mask_left(22))
   31284      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31285      407895 :          ipack = ipack + 1
   31286      407895 :          packed_data(ipack) = pack_tmp
   31287      407895 :          data_tmp = full_data(idata)
   31288      407895 :          pack_tmp = ISHFT(data_tmp, 45)
   31289      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31290      407895 :          idata = idata + 1
   31291      407895 :          data_tmp = full_data(idata)
   31292      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31293      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31294      407895 :          pack_tmp = ISHFT(pack_tmp, -4)
   31295      407895 :          idata = idata + 1
   31296      407895 :          data_tmp = full_data(idata)
   31297      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31298      407895 :          data_tmp = IAND(data_tmp, mask_left(4))
   31299      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31300      407895 :          ipack = ipack + 1
   31301      407895 :          packed_data(ipack) = pack_tmp
   31302      407895 :          data_tmp = full_data(idata)
   31303      407895 :          pack_tmp = ISHFT(data_tmp, 27)
   31304      407895 :          pack_tmp = ISHFT(pack_tmp, -27)
   31305      407895 :          idata = idata + 1
   31306      407895 :          data_tmp = full_data(idata)
   31307      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31308      407895 :          data_tmp = IAND(data_tmp, mask_left(27))
   31309      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31310      407895 :          ipack = ipack + 1
   31311      407895 :          packed_data(ipack) = pack_tmp
   31312      407895 :          data_tmp = full_data(idata)
   31313      407895 :          pack_tmp = ISHFT(data_tmp, 50)
   31314      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31315      407895 :          idata = idata + 1
   31316      407895 :          data_tmp = full_data(idata)
   31317      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31318      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31319      407895 :          pack_tmp = ISHFT(pack_tmp, -9)
   31320      407895 :          idata = idata + 1
   31321      407895 :          data_tmp = full_data(idata)
   31322      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31323      407895 :          data_tmp = IAND(data_tmp, mask_left(9))
   31324      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31325      407895 :          ipack = ipack + 1
   31326      407895 :          packed_data(ipack) = pack_tmp
   31327      407895 :          data_tmp = full_data(idata)
   31328      407895 :          pack_tmp = ISHFT(data_tmp, 32)
   31329      407895 :          pack_tmp = ISHFT(pack_tmp, -32)
   31330      407895 :          idata = idata + 1
   31331      407895 :          data_tmp = full_data(idata)
   31332      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31333      407895 :          data_tmp = IAND(data_tmp, mask_left(32))
   31334      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31335      407895 :          ipack = ipack + 1
   31336      407895 :          packed_data(ipack) = pack_tmp
   31337      407895 :          data_tmp = full_data(idata)
   31338      407895 :          pack_tmp = ISHFT(data_tmp, 55)
   31339      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31340      407895 :          idata = idata + 1
   31341      407895 :          data_tmp = full_data(idata)
   31342      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31343      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31344      407895 :          pack_tmp = ISHFT(pack_tmp, -14)
   31345      407895 :          idata = idata + 1
   31346      407895 :          data_tmp = full_data(idata)
   31347      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31348      407895 :          data_tmp = IAND(data_tmp, mask_left(14))
   31349      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31350      407895 :          ipack = ipack + 1
   31351      407895 :          packed_data(ipack) = pack_tmp
   31352      407895 :          data_tmp = full_data(idata)
   31353      407895 :          pack_tmp = ISHFT(data_tmp, 37)
   31354      407895 :          pack_tmp = ISHFT(pack_tmp, -37)
   31355      407895 :          idata = idata + 1
   31356      407895 :          data_tmp = full_data(idata)
   31357      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31358      407895 :          data_tmp = IAND(data_tmp, mask_left(37))
   31359      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31360      407895 :          ipack = ipack + 1
   31361      407895 :          packed_data(ipack) = pack_tmp
   31362      407895 :          data_tmp = full_data(idata)
   31363      407895 :          pack_tmp = ISHFT(data_tmp, 60)
   31364      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31365      407895 :          idata = idata + 1
   31366      407895 :          data_tmp = full_data(idata)
   31367      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31368      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31369      407895 :          pack_tmp = ISHFT(pack_tmp, -19)
   31370      407895 :          idata = idata + 1
   31371      407895 :          data_tmp = full_data(idata)
   31372      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31373      407895 :          data_tmp = IAND(data_tmp, mask_left(19))
   31374      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31375      407895 :          ipack = ipack + 1
   31376      407895 :          packed_data(ipack) = pack_tmp
   31377      407895 :          data_tmp = full_data(idata)
   31378      407895 :          pack_tmp = ISHFT(data_tmp, 42)
   31379      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31380      407895 :          idata = idata + 1
   31381      407895 :          data_tmp = full_data(idata)
   31382      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31383      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31384      407895 :          pack_tmp = ISHFT(pack_tmp, -1)
   31385      407895 :          idata = idata + 1
   31386      407895 :          data_tmp = full_data(idata)
   31387      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31388      407895 :          data_tmp = IAND(data_tmp, mask_left(1))
   31389      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31390      407895 :          ipack = ipack + 1
   31391      407895 :          packed_data(ipack) = pack_tmp
   31392      407895 :          data_tmp = full_data(idata)
   31393      407895 :          pack_tmp = ISHFT(data_tmp, 24)
   31394      407895 :          pack_tmp = ISHFT(pack_tmp, -24)
   31395      407895 :          idata = idata + 1
   31396      407895 :          data_tmp = full_data(idata)
   31397      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31398      407895 :          data_tmp = IAND(data_tmp, mask_left(24))
   31399      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31400      407895 :          ipack = ipack + 1
   31401      407895 :          packed_data(ipack) = pack_tmp
   31402      407895 :          data_tmp = full_data(idata)
   31403      407895 :          pack_tmp = ISHFT(data_tmp, 47)
   31404      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31405      407895 :          idata = idata + 1
   31406      407895 :          data_tmp = full_data(idata)
   31407      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31408      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31409      407895 :          pack_tmp = ISHFT(pack_tmp, -6)
   31410      407895 :          idata = idata + 1
   31411      407895 :          data_tmp = full_data(idata)
   31412      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31413      407895 :          data_tmp = IAND(data_tmp, mask_left(6))
   31414      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31415      407895 :          ipack = ipack + 1
   31416      407895 :          packed_data(ipack) = pack_tmp
   31417      407895 :          data_tmp = full_data(idata)
   31418      407895 :          pack_tmp = ISHFT(data_tmp, 29)
   31419      407895 :          pack_tmp = ISHFT(pack_tmp, -29)
   31420      407895 :          idata = idata + 1
   31421      407895 :          data_tmp = full_data(idata)
   31422      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31423      407895 :          data_tmp = IAND(data_tmp, mask_left(29))
   31424      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31425      407895 :          ipack = ipack + 1
   31426      407895 :          packed_data(ipack) = pack_tmp
   31427      407895 :          data_tmp = full_data(idata)
   31428      407895 :          pack_tmp = ISHFT(data_tmp, 52)
   31429      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31430      407895 :          idata = idata + 1
   31431      407895 :          data_tmp = full_data(idata)
   31432      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31433      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31434      407895 :          pack_tmp = ISHFT(pack_tmp, -11)
   31435      407895 :          idata = idata + 1
   31436      407895 :          data_tmp = full_data(idata)
   31437      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31438      407895 :          data_tmp = IAND(data_tmp, mask_left(11))
   31439      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31440      407895 :          ipack = ipack + 1
   31441      407895 :          packed_data(ipack) = pack_tmp
   31442      407895 :          data_tmp = full_data(idata)
   31443      407895 :          pack_tmp = ISHFT(data_tmp, 34)
   31444      407895 :          pack_tmp = ISHFT(pack_tmp, -34)
   31445      407895 :          idata = idata + 1
   31446      407895 :          data_tmp = full_data(idata)
   31447      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31448      407895 :          data_tmp = IAND(data_tmp, mask_left(34))
   31449      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31450      407895 :          ipack = ipack + 1
   31451      407895 :          packed_data(ipack) = pack_tmp
   31452      407895 :          data_tmp = full_data(idata)
   31453      407895 :          pack_tmp = ISHFT(data_tmp, 57)
   31454      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31455      407895 :          idata = idata + 1
   31456      407895 :          data_tmp = full_data(idata)
   31457      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31458      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31459      407895 :          pack_tmp = ISHFT(pack_tmp, -16)
   31460      407895 :          idata = idata + 1
   31461      407895 :          data_tmp = full_data(idata)
   31462      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31463      407895 :          data_tmp = IAND(data_tmp, mask_left(16))
   31464      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31465      407895 :          ipack = ipack + 1
   31466      407895 :          packed_data(ipack) = pack_tmp
   31467      407895 :          data_tmp = full_data(idata)
   31468      407895 :          pack_tmp = ISHFT(data_tmp, 39)
   31469      407895 :          pack_tmp = ISHFT(pack_tmp, -39)
   31470      407895 :          idata = idata + 1
   31471      407895 :          data_tmp = full_data(idata)
   31472      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31473      407895 :          data_tmp = IAND(data_tmp, mask_left(39))
   31474      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31475      407895 :          ipack = ipack + 1
   31476      407895 :          packed_data(ipack) = pack_tmp
   31477      407895 :          data_tmp = full_data(idata)
   31478      407895 :          pack_tmp = ISHFT(data_tmp, 62)
   31479      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31480      407895 :          idata = idata + 1
   31481      407895 :          data_tmp = full_data(idata)
   31482      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31483      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31484      407895 :          pack_tmp = ISHFT(pack_tmp, -21)
   31485      407895 :          idata = idata + 1
   31486      407895 :          data_tmp = full_data(idata)
   31487      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31488      407895 :          data_tmp = IAND(data_tmp, mask_left(21))
   31489      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31490      407895 :          ipack = ipack + 1
   31491      407895 :          packed_data(ipack) = pack_tmp
   31492      407895 :          data_tmp = full_data(idata)
   31493      407895 :          pack_tmp = ISHFT(data_tmp, 44)
   31494      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31495      407895 :          idata = idata + 1
   31496      407895 :          data_tmp = full_data(idata)
   31497      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31498      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31499      407895 :          pack_tmp = ISHFT(pack_tmp, -3)
   31500      407895 :          idata = idata + 1
   31501      407895 :          data_tmp = full_data(idata)
   31502      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31503      407895 :          data_tmp = IAND(data_tmp, mask_left(3))
   31504      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31505      407895 :          ipack = ipack + 1
   31506      407895 :          packed_data(ipack) = pack_tmp
   31507      407895 :          data_tmp = full_data(idata)
   31508      407895 :          pack_tmp = ISHFT(data_tmp, 26)
   31509      407895 :          pack_tmp = ISHFT(pack_tmp, -26)
   31510      407895 :          idata = idata + 1
   31511      407895 :          data_tmp = full_data(idata)
   31512      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31513      407895 :          data_tmp = IAND(data_tmp, mask_left(26))
   31514      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31515      407895 :          ipack = ipack + 1
   31516      407895 :          packed_data(ipack) = pack_tmp
   31517      407895 :          data_tmp = full_data(idata)
   31518      407895 :          pack_tmp = ISHFT(data_tmp, 49)
   31519      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31520      407895 :          idata = idata + 1
   31521      407895 :          data_tmp = full_data(idata)
   31522      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31523      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31524      407895 :          pack_tmp = ISHFT(pack_tmp, -8)
   31525      407895 :          idata = idata + 1
   31526      407895 :          data_tmp = full_data(idata)
   31527      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31528      407895 :          data_tmp = IAND(data_tmp, mask_left(8))
   31529      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31530      407895 :          ipack = ipack + 1
   31531      407895 :          packed_data(ipack) = pack_tmp
   31532      407895 :          data_tmp = full_data(idata)
   31533      407895 :          pack_tmp = ISHFT(data_tmp, 31)
   31534      407895 :          pack_tmp = ISHFT(pack_tmp, -31)
   31535      407895 :          idata = idata + 1
   31536      407895 :          data_tmp = full_data(idata)
   31537      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31538      407895 :          data_tmp = IAND(data_tmp, mask_left(31))
   31539      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31540      407895 :          ipack = ipack + 1
   31541      407895 :          packed_data(ipack) = pack_tmp
   31542      407895 :          data_tmp = full_data(idata)
   31543      407895 :          pack_tmp = ISHFT(data_tmp, 54)
   31544      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31545      407895 :          idata = idata + 1
   31546      407895 :          data_tmp = full_data(idata)
   31547      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31548      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31549      407895 :          pack_tmp = ISHFT(pack_tmp, -13)
   31550      407895 :          idata = idata + 1
   31551      407895 :          data_tmp = full_data(idata)
   31552      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31553      407895 :          data_tmp = IAND(data_tmp, mask_left(13))
   31554      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31555      407895 :          ipack = ipack + 1
   31556      407895 :          packed_data(ipack) = pack_tmp
   31557      407895 :          data_tmp = full_data(idata)
   31558      407895 :          pack_tmp = ISHFT(data_tmp, 36)
   31559      407895 :          pack_tmp = ISHFT(pack_tmp, -36)
   31560      407895 :          idata = idata + 1
   31561      407895 :          data_tmp = full_data(idata)
   31562      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31563      407895 :          data_tmp = IAND(data_tmp, mask_left(36))
   31564      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31565      407895 :          ipack = ipack + 1
   31566      407895 :          packed_data(ipack) = pack_tmp
   31567      407895 :          data_tmp = full_data(idata)
   31568      407895 :          pack_tmp = ISHFT(data_tmp, 59)
   31569      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31570      407895 :          idata = idata + 1
   31571      407895 :          data_tmp = full_data(idata)
   31572      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31573      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31574      407895 :          pack_tmp = ISHFT(pack_tmp, -18)
   31575      407895 :          idata = idata + 1
   31576      407895 :          data_tmp = full_data(idata)
   31577      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31578      407895 :          data_tmp = IAND(data_tmp, mask_left(18))
   31579      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31580      407895 :          ipack = ipack + 1
   31581      407895 :          packed_data(ipack) = pack_tmp
   31582      407895 :          data_tmp = full_data(idata)
   31583      407895 :          pack_tmp = ISHFT(data_tmp, 41)
   31584      407895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31585      407895 :          idata = idata + 1
   31586      407895 :          data_tmp = full_data(idata)
   31587      407895 :          data_tmp = ISHFT(data_tmp, 23)
   31588      407895 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31589             :          pack_tmp = ISHFT(pack_tmp, 0)
   31590      407895 :          pack_tmp = ISHFT(pack_tmp, 0)
   31591      407895 :          ipack = ipack + 1
   31592      407952 :          packed_data(ipack) = pack_tmp
   31593             :       END DO
   31594       27001 :       IF (Ndata_rep < Ndata) THEN
   31595        2802 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31596             :       END IF
   31597       27001 :    END SUBROUTINE ints2bits_41
   31598             : 
   31599             : ! **************************************************************************************************
   31600             : !> \brief ...
   31601             : !> \param Ndata ...
   31602             : !> \param packed_data ...
   31603             : !> \param full_data ...
   31604             : ! **************************************************************************************************
   31605      131175 :    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      131175 :       ipack = 0
   31616      131175 :       idata = 0
   31617      131175 :       pack_tmp = 0
   31618      131175 :       Ndata_rep = (Ndata/64)*64
   31619      131175 :       DO kdata = 1, Ndata_rep, 64
   31620     1850627 :          idata = idata + 1
   31621     1850627 :          data_tmp = ISHFT(pack_tmp, 41)
   31622     1850627 :          ipack = ipack + 1
   31623     1850627 :          pack_tmp = packed_data(ipack)
   31624     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   31625     1850627 :          pack_tmp = ISHFT(pack_tmp, -41)
   31626     1850627 :          idata = idata + 1
   31627     1850627 :          data_tmp = ISHFT(pack_tmp, 18)
   31628     1850627 :          ipack = ipack + 1
   31629     1850627 :          pack_tmp = packed_data(ipack)
   31630     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   31631     1850627 :          pack_tmp = ISHFT(pack_tmp, -18)
   31632     1850627 :          idata = idata + 1
   31633     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31634     1850627 :          full_data(idata) = data_tmp
   31635     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31636     1850627 :          idata = idata + 1
   31637     1850627 :          data_tmp = ISHFT(pack_tmp, 36)
   31638     1850627 :          ipack = ipack + 1
   31639     1850627 :          pack_tmp = packed_data(ipack)
   31640     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   31641     1850627 :          pack_tmp = ISHFT(pack_tmp, -36)
   31642     1850627 :          idata = idata + 1
   31643     1850627 :          data_tmp = ISHFT(pack_tmp, 13)
   31644     1850627 :          ipack = ipack + 1
   31645     1850627 :          pack_tmp = packed_data(ipack)
   31646     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   31647     1850627 :          pack_tmp = ISHFT(pack_tmp, -13)
   31648     1850627 :          idata = idata + 1
   31649     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31650     1850627 :          full_data(idata) = data_tmp
   31651     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31652     1850627 :          idata = idata + 1
   31653     1850627 :          data_tmp = ISHFT(pack_tmp, 31)
   31654     1850627 :          ipack = ipack + 1
   31655     1850627 :          pack_tmp = packed_data(ipack)
   31656     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   31657     1850627 :          pack_tmp = ISHFT(pack_tmp, -31)
   31658     1850627 :          idata = idata + 1
   31659     1850627 :          data_tmp = ISHFT(pack_tmp, 8)
   31660     1850627 :          ipack = ipack + 1
   31661     1850627 :          pack_tmp = packed_data(ipack)
   31662     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31663     1850627 :          pack_tmp = ISHFT(pack_tmp, -8)
   31664     1850627 :          idata = idata + 1
   31665     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31666     1850627 :          full_data(idata) = data_tmp
   31667     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31668     1850627 :          idata = idata + 1
   31669     1850627 :          data_tmp = ISHFT(pack_tmp, 26)
   31670     1850627 :          ipack = ipack + 1
   31671     1850627 :          pack_tmp = packed_data(ipack)
   31672     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   31673     1850627 :          pack_tmp = ISHFT(pack_tmp, -26)
   31674     1850627 :          idata = idata + 1
   31675     1850627 :          data_tmp = ISHFT(pack_tmp, 3)
   31676     1850627 :          ipack = ipack + 1
   31677     1850627 :          pack_tmp = packed_data(ipack)
   31678     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   31679     1850627 :          pack_tmp = ISHFT(pack_tmp, -3)
   31680     1850627 :          idata = idata + 1
   31681     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31682     1850627 :          full_data(idata) = data_tmp
   31683     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31684     1850627 :          idata = idata + 1
   31685     1850627 :          data_tmp = ISHFT(pack_tmp, 21)
   31686     1850627 :          ipack = ipack + 1
   31687     1850627 :          pack_tmp = packed_data(ipack)
   31688     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   31689     1850627 :          pack_tmp = ISHFT(pack_tmp, -21)
   31690     1850627 :          idata = idata + 1
   31691     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31692     1850627 :          full_data(idata) = data_tmp
   31693     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31694     1850627 :          idata = idata + 1
   31695     1850627 :          data_tmp = ISHFT(pack_tmp, 39)
   31696     1850627 :          ipack = ipack + 1
   31697     1850627 :          pack_tmp = packed_data(ipack)
   31698     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   31699     1850627 :          pack_tmp = ISHFT(pack_tmp, -39)
   31700     1850627 :          idata = idata + 1
   31701     1850627 :          data_tmp = ISHFT(pack_tmp, 16)
   31702     1850627 :          ipack = ipack + 1
   31703     1850627 :          pack_tmp = packed_data(ipack)
   31704     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31705     1850627 :          pack_tmp = ISHFT(pack_tmp, -16)
   31706     1850627 :          idata = idata + 1
   31707     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31708     1850627 :          full_data(idata) = data_tmp
   31709     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31710     1850627 :          idata = idata + 1
   31711     1850627 :          data_tmp = ISHFT(pack_tmp, 34)
   31712     1850627 :          ipack = ipack + 1
   31713     1850627 :          pack_tmp = packed_data(ipack)
   31714     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   31715     1850627 :          pack_tmp = ISHFT(pack_tmp, -34)
   31716     1850627 :          idata = idata + 1
   31717     1850627 :          data_tmp = ISHFT(pack_tmp, 11)
   31718     1850627 :          ipack = ipack + 1
   31719     1850627 :          pack_tmp = packed_data(ipack)
   31720     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   31721     1850627 :          pack_tmp = ISHFT(pack_tmp, -11)
   31722     1850627 :          idata = idata + 1
   31723     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31724     1850627 :          full_data(idata) = data_tmp
   31725     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31726     1850627 :          idata = idata + 1
   31727     1850627 :          data_tmp = ISHFT(pack_tmp, 29)
   31728     1850627 :          ipack = ipack + 1
   31729     1850627 :          pack_tmp = packed_data(ipack)
   31730     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   31731     1850627 :          pack_tmp = ISHFT(pack_tmp, -29)
   31732     1850627 :          idata = idata + 1
   31733     1850627 :          data_tmp = ISHFT(pack_tmp, 6)
   31734     1850627 :          ipack = ipack + 1
   31735     1850627 :          pack_tmp = packed_data(ipack)
   31736     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   31737     1850627 :          pack_tmp = ISHFT(pack_tmp, -6)
   31738     1850627 :          idata = idata + 1
   31739     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31740     1850627 :          full_data(idata) = data_tmp
   31741     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31742     1850627 :          idata = idata + 1
   31743     1850627 :          data_tmp = ISHFT(pack_tmp, 24)
   31744     1850627 :          ipack = ipack + 1
   31745     1850627 :          pack_tmp = packed_data(ipack)
   31746     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31747     1850627 :          pack_tmp = ISHFT(pack_tmp, -24)
   31748     1850627 :          idata = idata + 1
   31749     1850627 :          data_tmp = ISHFT(pack_tmp, 1)
   31750     1850627 :          ipack = ipack + 1
   31751     1850627 :          pack_tmp = packed_data(ipack)
   31752     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   31753     1850627 :          pack_tmp = ISHFT(pack_tmp, -1)
   31754     1850627 :          idata = idata + 1
   31755     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31756     1850627 :          full_data(idata) = data_tmp
   31757     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31758     1850627 :          idata = idata + 1
   31759     1850627 :          data_tmp = ISHFT(pack_tmp, 19)
   31760     1850627 :          ipack = ipack + 1
   31761     1850627 :          pack_tmp = packed_data(ipack)
   31762     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   31763     1850627 :          pack_tmp = ISHFT(pack_tmp, -19)
   31764     1850627 :          idata = idata + 1
   31765     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31766     1850627 :          full_data(idata) = data_tmp
   31767     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31768     1850627 :          idata = idata + 1
   31769     1850627 :          data_tmp = ISHFT(pack_tmp, 37)
   31770     1850627 :          ipack = ipack + 1
   31771     1850627 :          pack_tmp = packed_data(ipack)
   31772     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   31773     1850627 :          pack_tmp = ISHFT(pack_tmp, -37)
   31774     1850627 :          idata = idata + 1
   31775     1850627 :          data_tmp = ISHFT(pack_tmp, 14)
   31776     1850627 :          ipack = ipack + 1
   31777     1850627 :          pack_tmp = packed_data(ipack)
   31778     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   31779     1850627 :          pack_tmp = ISHFT(pack_tmp, -14)
   31780     1850627 :          idata = idata + 1
   31781     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31782     1850627 :          full_data(idata) = data_tmp
   31783     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31784     1850627 :          idata = idata + 1
   31785     1850627 :          data_tmp = ISHFT(pack_tmp, 32)
   31786     1850627 :          ipack = ipack + 1
   31787     1850627 :          pack_tmp = packed_data(ipack)
   31788     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31789     1850627 :          pack_tmp = ISHFT(pack_tmp, -32)
   31790     1850627 :          idata = idata + 1
   31791     1850627 :          data_tmp = ISHFT(pack_tmp, 9)
   31792     1850627 :          ipack = ipack + 1
   31793     1850627 :          pack_tmp = packed_data(ipack)
   31794     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   31795     1850627 :          pack_tmp = ISHFT(pack_tmp, -9)
   31796     1850627 :          idata = idata + 1
   31797     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31798     1850627 :          full_data(idata) = data_tmp
   31799     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31800     1850627 :          idata = idata + 1
   31801     1850627 :          data_tmp = ISHFT(pack_tmp, 27)
   31802     1850627 :          ipack = ipack + 1
   31803     1850627 :          pack_tmp = packed_data(ipack)
   31804     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   31805     1850627 :          pack_tmp = ISHFT(pack_tmp, -27)
   31806     1850627 :          idata = idata + 1
   31807     1850627 :          data_tmp = ISHFT(pack_tmp, 4)
   31808     1850627 :          ipack = ipack + 1
   31809     1850627 :          pack_tmp = packed_data(ipack)
   31810     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   31811     1850627 :          pack_tmp = ISHFT(pack_tmp, -4)
   31812     1850627 :          idata = idata + 1
   31813     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31814     1850627 :          full_data(idata) = data_tmp
   31815     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31816     1850627 :          idata = idata + 1
   31817     1850627 :          data_tmp = ISHFT(pack_tmp, 22)
   31818     1850627 :          ipack = ipack + 1
   31819     1850627 :          pack_tmp = packed_data(ipack)
   31820     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   31821     1850627 :          pack_tmp = ISHFT(pack_tmp, -22)
   31822     1850627 :          idata = idata + 1
   31823     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31824     1850627 :          full_data(idata) = data_tmp
   31825     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31826     1850627 :          idata = idata + 1
   31827     1850627 :          data_tmp = ISHFT(pack_tmp, 40)
   31828     1850627 :          ipack = ipack + 1
   31829     1850627 :          pack_tmp = packed_data(ipack)
   31830     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31831     1850627 :          pack_tmp = ISHFT(pack_tmp, -40)
   31832     1850627 :          idata = idata + 1
   31833     1850627 :          data_tmp = ISHFT(pack_tmp, 17)
   31834     1850627 :          ipack = ipack + 1
   31835     1850627 :          pack_tmp = packed_data(ipack)
   31836     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   31837     1850627 :          pack_tmp = ISHFT(pack_tmp, -17)
   31838     1850627 :          idata = idata + 1
   31839     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31840     1850627 :          full_data(idata) = data_tmp
   31841     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31842     1850627 :          idata = idata + 1
   31843     1850627 :          data_tmp = ISHFT(pack_tmp, 35)
   31844     1850627 :          ipack = ipack + 1
   31845     1850627 :          pack_tmp = packed_data(ipack)
   31846     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   31847     1850627 :          pack_tmp = ISHFT(pack_tmp, -35)
   31848     1850627 :          idata = idata + 1
   31849     1850627 :          data_tmp = ISHFT(pack_tmp, 12)
   31850     1850627 :          ipack = ipack + 1
   31851     1850627 :          pack_tmp = packed_data(ipack)
   31852     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   31853     1850627 :          pack_tmp = ISHFT(pack_tmp, -12)
   31854     1850627 :          idata = idata + 1
   31855     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31856     1850627 :          full_data(idata) = data_tmp
   31857     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31858     1850627 :          idata = idata + 1
   31859     1850627 :          data_tmp = ISHFT(pack_tmp, 30)
   31860     1850627 :          ipack = ipack + 1
   31861     1850627 :          pack_tmp = packed_data(ipack)
   31862     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   31863     1850627 :          pack_tmp = ISHFT(pack_tmp, -30)
   31864     1850627 :          idata = idata + 1
   31865     1850627 :          data_tmp = ISHFT(pack_tmp, 7)
   31866     1850627 :          ipack = ipack + 1
   31867     1850627 :          pack_tmp = packed_data(ipack)
   31868     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   31869     1850627 :          pack_tmp = ISHFT(pack_tmp, -7)
   31870     1850627 :          idata = idata + 1
   31871     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31872     1850627 :          full_data(idata) = data_tmp
   31873     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31874     1850627 :          idata = idata + 1
   31875     1850627 :          data_tmp = ISHFT(pack_tmp, 25)
   31876     1850627 :          ipack = ipack + 1
   31877     1850627 :          pack_tmp = packed_data(ipack)
   31878     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   31879     1850627 :          pack_tmp = ISHFT(pack_tmp, -25)
   31880     1850627 :          idata = idata + 1
   31881     1850627 :          data_tmp = ISHFT(pack_tmp, 2)
   31882     1850627 :          ipack = ipack + 1
   31883     1850627 :          pack_tmp = packed_data(ipack)
   31884     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   31885     1850627 :          pack_tmp = ISHFT(pack_tmp, -2)
   31886     1850627 :          idata = idata + 1
   31887     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31888     1850627 :          full_data(idata) = data_tmp
   31889     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31890     1850627 :          idata = idata + 1
   31891     1850627 :          data_tmp = ISHFT(pack_tmp, 20)
   31892     1850627 :          ipack = ipack + 1
   31893     1850627 :          pack_tmp = packed_data(ipack)
   31894     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   31895     1850627 :          pack_tmp = ISHFT(pack_tmp, -20)
   31896     1850627 :          idata = idata + 1
   31897     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31898     1850627 :          full_data(idata) = data_tmp
   31899     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31900     1850627 :          idata = idata + 1
   31901     1850627 :          data_tmp = ISHFT(pack_tmp, 38)
   31902     1850627 :          ipack = ipack + 1
   31903     1850627 :          pack_tmp = packed_data(ipack)
   31904     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   31905     1850627 :          pack_tmp = ISHFT(pack_tmp, -38)
   31906     1850627 :          idata = idata + 1
   31907     1850627 :          data_tmp = ISHFT(pack_tmp, 15)
   31908     1850627 :          ipack = ipack + 1
   31909     1850627 :          pack_tmp = packed_data(ipack)
   31910     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   31911     1850627 :          pack_tmp = ISHFT(pack_tmp, -15)
   31912     1850627 :          idata = idata + 1
   31913     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31914     1850627 :          full_data(idata) = data_tmp
   31915     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31916     1850627 :          idata = idata + 1
   31917     1850627 :          data_tmp = ISHFT(pack_tmp, 33)
   31918     1850627 :          ipack = ipack + 1
   31919     1850627 :          pack_tmp = packed_data(ipack)
   31920     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   31921     1850627 :          pack_tmp = ISHFT(pack_tmp, -33)
   31922     1850627 :          idata = idata + 1
   31923     1850627 :          data_tmp = ISHFT(pack_tmp, 10)
   31924     1850627 :          ipack = ipack + 1
   31925     1850627 :          pack_tmp = packed_data(ipack)
   31926     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   31927     1850627 :          pack_tmp = ISHFT(pack_tmp, -10)
   31928     1850627 :          idata = idata + 1
   31929     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31930     1850627 :          full_data(idata) = data_tmp
   31931     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31932     1850627 :          idata = idata + 1
   31933     1850627 :          data_tmp = ISHFT(pack_tmp, 28)
   31934     1850627 :          ipack = ipack + 1
   31935     1850627 :          pack_tmp = packed_data(ipack)
   31936     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   31937     1850627 :          pack_tmp = ISHFT(pack_tmp, -28)
   31938     1850627 :          idata = idata + 1
   31939     1850627 :          data_tmp = ISHFT(pack_tmp, 5)
   31940     1850627 :          ipack = ipack + 1
   31941     1850627 :          pack_tmp = packed_data(ipack)
   31942     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   31943     1850627 :          pack_tmp = ISHFT(pack_tmp, -5)
   31944     1850627 :          idata = idata + 1
   31945     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31946     1850627 :          full_data(idata) = data_tmp
   31947     1850627 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31948     1850627 :          idata = idata + 1
   31949     1850627 :          data_tmp = ISHFT(pack_tmp, 23)
   31950     1850627 :          ipack = ipack + 1
   31951     1850627 :          pack_tmp = packed_data(ipack)
   31952     1850627 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   31953     1850627 :          pack_tmp = ISHFT(pack_tmp, -23)
   31954     1850627 :          idata = idata + 1
   31955     1850627 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31956     1850627 :          full_data(idata) = data_tmp
   31957     1851116 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31958             :       END DO
   31959      131175 :       IF (Ndata_rep < Ndata) THEN
   31960       28890 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31961             :       END IF
   31962      131175 :    END SUBROUTINE bits2ints_41
   31963             : 
   31964             : ! **************************************************************************************************
   31965             : !> \brief ...
   31966             : !> \param Ndata ...
   31967             : !> \param packed_data ...
   31968             : !> \param full_data ...
   31969             : ! **************************************************************************************************
   31970       25381 :    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       25381 :       idata = 0
   31981       25381 :       ipack = 0
   31982       25381 :       Ndata_rep = (Ndata/64)*64
   31983       25381 :       DO kdata = 1, Ndata_rep, 64
   31984      393006 :          pack_tmp = 0
   31985      393006 :          idata = idata + 1
   31986      393006 :          data_tmp = full_data(idata)
   31987      393006 :          data_tmp = ISHFT(data_tmp, 22)
   31988      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31989      393006 :          pack_tmp = ISHFT(pack_tmp, -22)
   31990      393006 :          idata = idata + 1
   31991      393006 :          data_tmp = full_data(idata)
   31992      393006 :          data_tmp = ISHFT(data_tmp, 22)
   31993      393006 :          data_tmp = IAND(data_tmp, mask_left(22))
   31994      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31995      393006 :          ipack = ipack + 1
   31996      393006 :          packed_data(ipack) = pack_tmp
   31997      393006 :          data_tmp = full_data(idata)
   31998      393006 :          pack_tmp = ISHFT(data_tmp, 44)
   31999      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32000      393006 :          idata = idata + 1
   32001      393006 :          data_tmp = full_data(idata)
   32002      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32003      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32004      393006 :          pack_tmp = ISHFT(pack_tmp, -2)
   32005      393006 :          idata = idata + 1
   32006      393006 :          data_tmp = full_data(idata)
   32007      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32008      393006 :          data_tmp = IAND(data_tmp, mask_left(2))
   32009      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32010      393006 :          ipack = ipack + 1
   32011      393006 :          packed_data(ipack) = pack_tmp
   32012      393006 :          data_tmp = full_data(idata)
   32013      393006 :          pack_tmp = ISHFT(data_tmp, 24)
   32014      393006 :          pack_tmp = ISHFT(pack_tmp, -24)
   32015      393006 :          idata = idata + 1
   32016      393006 :          data_tmp = full_data(idata)
   32017      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32018      393006 :          data_tmp = IAND(data_tmp, mask_left(24))
   32019      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32020      393006 :          ipack = ipack + 1
   32021      393006 :          packed_data(ipack) = pack_tmp
   32022      393006 :          data_tmp = full_data(idata)
   32023      393006 :          pack_tmp = ISHFT(data_tmp, 46)
   32024      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32025      393006 :          idata = idata + 1
   32026      393006 :          data_tmp = full_data(idata)
   32027      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32028      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32029      393006 :          pack_tmp = ISHFT(pack_tmp, -4)
   32030      393006 :          idata = idata + 1
   32031      393006 :          data_tmp = full_data(idata)
   32032      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32033      393006 :          data_tmp = IAND(data_tmp, mask_left(4))
   32034      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32035      393006 :          ipack = ipack + 1
   32036      393006 :          packed_data(ipack) = pack_tmp
   32037      393006 :          data_tmp = full_data(idata)
   32038      393006 :          pack_tmp = ISHFT(data_tmp, 26)
   32039      393006 :          pack_tmp = ISHFT(pack_tmp, -26)
   32040      393006 :          idata = idata + 1
   32041      393006 :          data_tmp = full_data(idata)
   32042      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32043      393006 :          data_tmp = IAND(data_tmp, mask_left(26))
   32044      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32045      393006 :          ipack = ipack + 1
   32046      393006 :          packed_data(ipack) = pack_tmp
   32047      393006 :          data_tmp = full_data(idata)
   32048      393006 :          pack_tmp = ISHFT(data_tmp, 48)
   32049      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32050      393006 :          idata = idata + 1
   32051      393006 :          data_tmp = full_data(idata)
   32052      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32053      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32054      393006 :          pack_tmp = ISHFT(pack_tmp, -6)
   32055      393006 :          idata = idata + 1
   32056      393006 :          data_tmp = full_data(idata)
   32057      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32058      393006 :          data_tmp = IAND(data_tmp, mask_left(6))
   32059      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32060      393006 :          ipack = ipack + 1
   32061      393006 :          packed_data(ipack) = pack_tmp
   32062      393006 :          data_tmp = full_data(idata)
   32063      393006 :          pack_tmp = ISHFT(data_tmp, 28)
   32064      393006 :          pack_tmp = ISHFT(pack_tmp, -28)
   32065      393006 :          idata = idata + 1
   32066      393006 :          data_tmp = full_data(idata)
   32067      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32068      393006 :          data_tmp = IAND(data_tmp, mask_left(28))
   32069      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32070      393006 :          ipack = ipack + 1
   32071      393006 :          packed_data(ipack) = pack_tmp
   32072      393006 :          data_tmp = full_data(idata)
   32073      393006 :          pack_tmp = ISHFT(data_tmp, 50)
   32074      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32075      393006 :          idata = idata + 1
   32076      393006 :          data_tmp = full_data(idata)
   32077      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32078      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32079      393006 :          pack_tmp = ISHFT(pack_tmp, -8)
   32080      393006 :          idata = idata + 1
   32081      393006 :          data_tmp = full_data(idata)
   32082      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32083      393006 :          data_tmp = IAND(data_tmp, mask_left(8))
   32084      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32085      393006 :          ipack = ipack + 1
   32086      393006 :          packed_data(ipack) = pack_tmp
   32087      393006 :          data_tmp = full_data(idata)
   32088      393006 :          pack_tmp = ISHFT(data_tmp, 30)
   32089      393006 :          pack_tmp = ISHFT(pack_tmp, -30)
   32090      393006 :          idata = idata + 1
   32091      393006 :          data_tmp = full_data(idata)
   32092      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32093      393006 :          data_tmp = IAND(data_tmp, mask_left(30))
   32094      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32095      393006 :          ipack = ipack + 1
   32096      393006 :          packed_data(ipack) = pack_tmp
   32097      393006 :          data_tmp = full_data(idata)
   32098      393006 :          pack_tmp = ISHFT(data_tmp, 52)
   32099      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32100      393006 :          idata = idata + 1
   32101      393006 :          data_tmp = full_data(idata)
   32102      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32103      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32104      393006 :          pack_tmp = ISHFT(pack_tmp, -10)
   32105      393006 :          idata = idata + 1
   32106      393006 :          data_tmp = full_data(idata)
   32107      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32108      393006 :          data_tmp = IAND(data_tmp, mask_left(10))
   32109      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32110      393006 :          ipack = ipack + 1
   32111      393006 :          packed_data(ipack) = pack_tmp
   32112      393006 :          data_tmp = full_data(idata)
   32113      393006 :          pack_tmp = ISHFT(data_tmp, 32)
   32114      393006 :          pack_tmp = ISHFT(pack_tmp, -32)
   32115      393006 :          idata = idata + 1
   32116      393006 :          data_tmp = full_data(idata)
   32117      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32118      393006 :          data_tmp = IAND(data_tmp, mask_left(32))
   32119      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32120      393006 :          ipack = ipack + 1
   32121      393006 :          packed_data(ipack) = pack_tmp
   32122      393006 :          data_tmp = full_data(idata)
   32123      393006 :          pack_tmp = ISHFT(data_tmp, 54)
   32124      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32125      393006 :          idata = idata + 1
   32126      393006 :          data_tmp = full_data(idata)
   32127      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32128      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32129      393006 :          pack_tmp = ISHFT(pack_tmp, -12)
   32130      393006 :          idata = idata + 1
   32131      393006 :          data_tmp = full_data(idata)
   32132      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32133      393006 :          data_tmp = IAND(data_tmp, mask_left(12))
   32134      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32135      393006 :          ipack = ipack + 1
   32136      393006 :          packed_data(ipack) = pack_tmp
   32137      393006 :          data_tmp = full_data(idata)
   32138      393006 :          pack_tmp = ISHFT(data_tmp, 34)
   32139      393006 :          pack_tmp = ISHFT(pack_tmp, -34)
   32140      393006 :          idata = idata + 1
   32141      393006 :          data_tmp = full_data(idata)
   32142      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32143      393006 :          data_tmp = IAND(data_tmp, mask_left(34))
   32144      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32145      393006 :          ipack = ipack + 1
   32146      393006 :          packed_data(ipack) = pack_tmp
   32147      393006 :          data_tmp = full_data(idata)
   32148      393006 :          pack_tmp = ISHFT(data_tmp, 56)
   32149      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32150      393006 :          idata = idata + 1
   32151      393006 :          data_tmp = full_data(idata)
   32152      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32153      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32154      393006 :          pack_tmp = ISHFT(pack_tmp, -14)
   32155      393006 :          idata = idata + 1
   32156      393006 :          data_tmp = full_data(idata)
   32157      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32158      393006 :          data_tmp = IAND(data_tmp, mask_left(14))
   32159      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32160      393006 :          ipack = ipack + 1
   32161      393006 :          packed_data(ipack) = pack_tmp
   32162      393006 :          data_tmp = full_data(idata)
   32163      393006 :          pack_tmp = ISHFT(data_tmp, 36)
   32164      393006 :          pack_tmp = ISHFT(pack_tmp, -36)
   32165      393006 :          idata = idata + 1
   32166      393006 :          data_tmp = full_data(idata)
   32167      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32168      393006 :          data_tmp = IAND(data_tmp, mask_left(36))
   32169      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32170      393006 :          ipack = ipack + 1
   32171      393006 :          packed_data(ipack) = pack_tmp
   32172      393006 :          data_tmp = full_data(idata)
   32173      393006 :          pack_tmp = ISHFT(data_tmp, 58)
   32174      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32175      393006 :          idata = idata + 1
   32176      393006 :          data_tmp = full_data(idata)
   32177      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32178      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32179      393006 :          pack_tmp = ISHFT(pack_tmp, -16)
   32180      393006 :          idata = idata + 1
   32181      393006 :          data_tmp = full_data(idata)
   32182      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32183      393006 :          data_tmp = IAND(data_tmp, mask_left(16))
   32184      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32185      393006 :          ipack = ipack + 1
   32186      393006 :          packed_data(ipack) = pack_tmp
   32187      393006 :          data_tmp = full_data(idata)
   32188      393006 :          pack_tmp = ISHFT(data_tmp, 38)
   32189      393006 :          pack_tmp = ISHFT(pack_tmp, -38)
   32190      393006 :          idata = idata + 1
   32191      393006 :          data_tmp = full_data(idata)
   32192      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32193      393006 :          data_tmp = IAND(data_tmp, mask_left(38))
   32194      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32195      393006 :          ipack = ipack + 1
   32196      393006 :          packed_data(ipack) = pack_tmp
   32197      393006 :          data_tmp = full_data(idata)
   32198      393006 :          pack_tmp = ISHFT(data_tmp, 60)
   32199      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32200      393006 :          idata = idata + 1
   32201      393006 :          data_tmp = full_data(idata)
   32202      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32203      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32204      393006 :          pack_tmp = ISHFT(pack_tmp, -18)
   32205      393006 :          idata = idata + 1
   32206      393006 :          data_tmp = full_data(idata)
   32207      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32208      393006 :          data_tmp = IAND(data_tmp, mask_left(18))
   32209      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32210      393006 :          ipack = ipack + 1
   32211      393006 :          packed_data(ipack) = pack_tmp
   32212      393006 :          data_tmp = full_data(idata)
   32213      393006 :          pack_tmp = ISHFT(data_tmp, 40)
   32214      393006 :          pack_tmp = ISHFT(pack_tmp, -40)
   32215      393006 :          idata = idata + 1
   32216      393006 :          data_tmp = full_data(idata)
   32217      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32218      393006 :          data_tmp = IAND(data_tmp, mask_left(40))
   32219      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32220      393006 :          ipack = ipack + 1
   32221      393006 :          packed_data(ipack) = pack_tmp
   32222      393006 :          data_tmp = full_data(idata)
   32223      393006 :          pack_tmp = ISHFT(data_tmp, 62)
   32224      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32225      393006 :          idata = idata + 1
   32226      393006 :          data_tmp = full_data(idata)
   32227      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32228      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32229      393006 :          pack_tmp = ISHFT(pack_tmp, -20)
   32230      393006 :          idata = idata + 1
   32231      393006 :          data_tmp = full_data(idata)
   32232      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32233      393006 :          data_tmp = IAND(data_tmp, mask_left(20))
   32234      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32235      393006 :          ipack = ipack + 1
   32236      393006 :          packed_data(ipack) = pack_tmp
   32237      393006 :          data_tmp = full_data(idata)
   32238      393006 :          pack_tmp = ISHFT(data_tmp, 42)
   32239      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32240      393006 :          idata = idata + 1
   32241      393006 :          data_tmp = full_data(idata)
   32242      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32243      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32244      393006 :          pack_tmp = ISHFT(pack_tmp, 0)
   32245      393006 :          idata = idata + 1
   32246      393006 :          data_tmp = full_data(idata)
   32247             :          data_tmp = ISHFT(data_tmp, 22)
   32248      393006 :          data_tmp = IAND(data_tmp, mask_left(0))
   32249      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32250      393006 :          ipack = ipack + 1
   32251      393006 :          packed_data(ipack) = pack_tmp
   32252      393006 :          data_tmp = full_data(idata)
   32253      393006 :          pack_tmp = ISHFT(data_tmp, 22)
   32254      393006 :          pack_tmp = ISHFT(pack_tmp, -22)
   32255      393006 :          idata = idata + 1
   32256      393006 :          data_tmp = full_data(idata)
   32257      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32258      393006 :          data_tmp = IAND(data_tmp, mask_left(22))
   32259      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32260      393006 :          ipack = ipack + 1
   32261      393006 :          packed_data(ipack) = pack_tmp
   32262      393006 :          data_tmp = full_data(idata)
   32263      393006 :          pack_tmp = ISHFT(data_tmp, 44)
   32264      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32265      393006 :          idata = idata + 1
   32266      393006 :          data_tmp = full_data(idata)
   32267      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32268      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32269      393006 :          pack_tmp = ISHFT(pack_tmp, -2)
   32270      393006 :          idata = idata + 1
   32271      393006 :          data_tmp = full_data(idata)
   32272      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32273      393006 :          data_tmp = IAND(data_tmp, mask_left(2))
   32274      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32275      393006 :          ipack = ipack + 1
   32276      393006 :          packed_data(ipack) = pack_tmp
   32277      393006 :          data_tmp = full_data(idata)
   32278      393006 :          pack_tmp = ISHFT(data_tmp, 24)
   32279      393006 :          pack_tmp = ISHFT(pack_tmp, -24)
   32280      393006 :          idata = idata + 1
   32281      393006 :          data_tmp = full_data(idata)
   32282      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32283      393006 :          data_tmp = IAND(data_tmp, mask_left(24))
   32284      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32285      393006 :          ipack = ipack + 1
   32286      393006 :          packed_data(ipack) = pack_tmp
   32287      393006 :          data_tmp = full_data(idata)
   32288      393006 :          pack_tmp = ISHFT(data_tmp, 46)
   32289      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32290      393006 :          idata = idata + 1
   32291      393006 :          data_tmp = full_data(idata)
   32292      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32293      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32294      393006 :          pack_tmp = ISHFT(pack_tmp, -4)
   32295      393006 :          idata = idata + 1
   32296      393006 :          data_tmp = full_data(idata)
   32297      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32298      393006 :          data_tmp = IAND(data_tmp, mask_left(4))
   32299      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32300      393006 :          ipack = ipack + 1
   32301      393006 :          packed_data(ipack) = pack_tmp
   32302      393006 :          data_tmp = full_data(idata)
   32303      393006 :          pack_tmp = ISHFT(data_tmp, 26)
   32304      393006 :          pack_tmp = ISHFT(pack_tmp, -26)
   32305      393006 :          idata = idata + 1
   32306      393006 :          data_tmp = full_data(idata)
   32307      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32308      393006 :          data_tmp = IAND(data_tmp, mask_left(26))
   32309      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32310      393006 :          ipack = ipack + 1
   32311      393006 :          packed_data(ipack) = pack_tmp
   32312      393006 :          data_tmp = full_data(idata)
   32313      393006 :          pack_tmp = ISHFT(data_tmp, 48)
   32314      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32315      393006 :          idata = idata + 1
   32316      393006 :          data_tmp = full_data(idata)
   32317      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32318      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32319      393006 :          pack_tmp = ISHFT(pack_tmp, -6)
   32320      393006 :          idata = idata + 1
   32321      393006 :          data_tmp = full_data(idata)
   32322      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32323      393006 :          data_tmp = IAND(data_tmp, mask_left(6))
   32324      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32325      393006 :          ipack = ipack + 1
   32326      393006 :          packed_data(ipack) = pack_tmp
   32327      393006 :          data_tmp = full_data(idata)
   32328      393006 :          pack_tmp = ISHFT(data_tmp, 28)
   32329      393006 :          pack_tmp = ISHFT(pack_tmp, -28)
   32330      393006 :          idata = idata + 1
   32331      393006 :          data_tmp = full_data(idata)
   32332      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32333      393006 :          data_tmp = IAND(data_tmp, mask_left(28))
   32334      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32335      393006 :          ipack = ipack + 1
   32336      393006 :          packed_data(ipack) = pack_tmp
   32337      393006 :          data_tmp = full_data(idata)
   32338      393006 :          pack_tmp = ISHFT(data_tmp, 50)
   32339      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32340      393006 :          idata = idata + 1
   32341      393006 :          data_tmp = full_data(idata)
   32342      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32343      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32344      393006 :          pack_tmp = ISHFT(pack_tmp, -8)
   32345      393006 :          idata = idata + 1
   32346      393006 :          data_tmp = full_data(idata)
   32347      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32348      393006 :          data_tmp = IAND(data_tmp, mask_left(8))
   32349      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32350      393006 :          ipack = ipack + 1
   32351      393006 :          packed_data(ipack) = pack_tmp
   32352      393006 :          data_tmp = full_data(idata)
   32353      393006 :          pack_tmp = ISHFT(data_tmp, 30)
   32354      393006 :          pack_tmp = ISHFT(pack_tmp, -30)
   32355      393006 :          idata = idata + 1
   32356      393006 :          data_tmp = full_data(idata)
   32357      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32358      393006 :          data_tmp = IAND(data_tmp, mask_left(30))
   32359      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32360      393006 :          ipack = ipack + 1
   32361      393006 :          packed_data(ipack) = pack_tmp
   32362      393006 :          data_tmp = full_data(idata)
   32363      393006 :          pack_tmp = ISHFT(data_tmp, 52)
   32364      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32365      393006 :          idata = idata + 1
   32366      393006 :          data_tmp = full_data(idata)
   32367      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32368      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32369      393006 :          pack_tmp = ISHFT(pack_tmp, -10)
   32370      393006 :          idata = idata + 1
   32371      393006 :          data_tmp = full_data(idata)
   32372      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32373      393006 :          data_tmp = IAND(data_tmp, mask_left(10))
   32374      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32375      393006 :          ipack = ipack + 1
   32376      393006 :          packed_data(ipack) = pack_tmp
   32377      393006 :          data_tmp = full_data(idata)
   32378      393006 :          pack_tmp = ISHFT(data_tmp, 32)
   32379      393006 :          pack_tmp = ISHFT(pack_tmp, -32)
   32380      393006 :          idata = idata + 1
   32381      393006 :          data_tmp = full_data(idata)
   32382      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32383      393006 :          data_tmp = IAND(data_tmp, mask_left(32))
   32384      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32385      393006 :          ipack = ipack + 1
   32386      393006 :          packed_data(ipack) = pack_tmp
   32387      393006 :          data_tmp = full_data(idata)
   32388      393006 :          pack_tmp = ISHFT(data_tmp, 54)
   32389      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32390      393006 :          idata = idata + 1
   32391      393006 :          data_tmp = full_data(idata)
   32392      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32393      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32394      393006 :          pack_tmp = ISHFT(pack_tmp, -12)
   32395      393006 :          idata = idata + 1
   32396      393006 :          data_tmp = full_data(idata)
   32397      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32398      393006 :          data_tmp = IAND(data_tmp, mask_left(12))
   32399      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32400      393006 :          ipack = ipack + 1
   32401      393006 :          packed_data(ipack) = pack_tmp
   32402      393006 :          data_tmp = full_data(idata)
   32403      393006 :          pack_tmp = ISHFT(data_tmp, 34)
   32404      393006 :          pack_tmp = ISHFT(pack_tmp, -34)
   32405      393006 :          idata = idata + 1
   32406      393006 :          data_tmp = full_data(idata)
   32407      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32408      393006 :          data_tmp = IAND(data_tmp, mask_left(34))
   32409      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32410      393006 :          ipack = ipack + 1
   32411      393006 :          packed_data(ipack) = pack_tmp
   32412      393006 :          data_tmp = full_data(idata)
   32413      393006 :          pack_tmp = ISHFT(data_tmp, 56)
   32414      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32415      393006 :          idata = idata + 1
   32416      393006 :          data_tmp = full_data(idata)
   32417      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32418      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32419      393006 :          pack_tmp = ISHFT(pack_tmp, -14)
   32420      393006 :          idata = idata + 1
   32421      393006 :          data_tmp = full_data(idata)
   32422      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32423      393006 :          data_tmp = IAND(data_tmp, mask_left(14))
   32424      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32425      393006 :          ipack = ipack + 1
   32426      393006 :          packed_data(ipack) = pack_tmp
   32427      393006 :          data_tmp = full_data(idata)
   32428      393006 :          pack_tmp = ISHFT(data_tmp, 36)
   32429      393006 :          pack_tmp = ISHFT(pack_tmp, -36)
   32430      393006 :          idata = idata + 1
   32431      393006 :          data_tmp = full_data(idata)
   32432      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32433      393006 :          data_tmp = IAND(data_tmp, mask_left(36))
   32434      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32435      393006 :          ipack = ipack + 1
   32436      393006 :          packed_data(ipack) = pack_tmp
   32437      393006 :          data_tmp = full_data(idata)
   32438      393006 :          pack_tmp = ISHFT(data_tmp, 58)
   32439      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32440      393006 :          idata = idata + 1
   32441      393006 :          data_tmp = full_data(idata)
   32442      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32443      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32444      393006 :          pack_tmp = ISHFT(pack_tmp, -16)
   32445      393006 :          idata = idata + 1
   32446      393006 :          data_tmp = full_data(idata)
   32447      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32448      393006 :          data_tmp = IAND(data_tmp, mask_left(16))
   32449      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32450      393006 :          ipack = ipack + 1
   32451      393006 :          packed_data(ipack) = pack_tmp
   32452      393006 :          data_tmp = full_data(idata)
   32453      393006 :          pack_tmp = ISHFT(data_tmp, 38)
   32454      393006 :          pack_tmp = ISHFT(pack_tmp, -38)
   32455      393006 :          idata = idata + 1
   32456      393006 :          data_tmp = full_data(idata)
   32457      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32458      393006 :          data_tmp = IAND(data_tmp, mask_left(38))
   32459      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32460      393006 :          ipack = ipack + 1
   32461      393006 :          packed_data(ipack) = pack_tmp
   32462      393006 :          data_tmp = full_data(idata)
   32463      393006 :          pack_tmp = ISHFT(data_tmp, 60)
   32464      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32465      393006 :          idata = idata + 1
   32466      393006 :          data_tmp = full_data(idata)
   32467      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32468      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32469      393006 :          pack_tmp = ISHFT(pack_tmp, -18)
   32470      393006 :          idata = idata + 1
   32471      393006 :          data_tmp = full_data(idata)
   32472      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32473      393006 :          data_tmp = IAND(data_tmp, mask_left(18))
   32474      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32475      393006 :          ipack = ipack + 1
   32476      393006 :          packed_data(ipack) = pack_tmp
   32477      393006 :          data_tmp = full_data(idata)
   32478      393006 :          pack_tmp = ISHFT(data_tmp, 40)
   32479      393006 :          pack_tmp = ISHFT(pack_tmp, -40)
   32480      393006 :          idata = idata + 1
   32481      393006 :          data_tmp = full_data(idata)
   32482      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32483      393006 :          data_tmp = IAND(data_tmp, mask_left(40))
   32484      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32485      393006 :          ipack = ipack + 1
   32486      393006 :          packed_data(ipack) = pack_tmp
   32487      393006 :          data_tmp = full_data(idata)
   32488      393006 :          pack_tmp = ISHFT(data_tmp, 62)
   32489      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32490      393006 :          idata = idata + 1
   32491      393006 :          data_tmp = full_data(idata)
   32492      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32493      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32494      393006 :          pack_tmp = ISHFT(pack_tmp, -20)
   32495      393006 :          idata = idata + 1
   32496      393006 :          data_tmp = full_data(idata)
   32497      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32498      393006 :          data_tmp = IAND(data_tmp, mask_left(20))
   32499      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32500      393006 :          ipack = ipack + 1
   32501      393006 :          packed_data(ipack) = pack_tmp
   32502      393006 :          data_tmp = full_data(idata)
   32503      393006 :          pack_tmp = ISHFT(data_tmp, 42)
   32504      393006 :          pack_tmp = ISHFT(pack_tmp, -42)
   32505      393006 :          idata = idata + 1
   32506      393006 :          data_tmp = full_data(idata)
   32507      393006 :          data_tmp = ISHFT(data_tmp, 22)
   32508      393006 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32509             :          pack_tmp = ISHFT(pack_tmp, 0)
   32510      393006 :          pack_tmp = ISHFT(pack_tmp, 0)
   32511      393006 :          ipack = ipack + 1
   32512      393108 :          packed_data(ipack) = pack_tmp
   32513             :       END DO
   32514       25381 :       IF (Ndata_rep < Ndata) THEN
   32515        1540 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32516             :       END IF
   32517       25381 :    END SUBROUTINE ints2bits_42
   32518             : 
   32519             : ! **************************************************************************************************
   32520             : !> \brief ...
   32521             : !> \param Ndata ...
   32522             : !> \param packed_data ...
   32523             : !> \param full_data ...
   32524             : ! **************************************************************************************************
   32525      116082 :    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      116082 :       ipack = 0
   32536      116082 :       idata = 0
   32537      116082 :       pack_tmp = 0
   32538      116082 :       Ndata_rep = (Ndata/64)*64
   32539      116082 :       DO kdata = 1, Ndata_rep, 64
   32540     1713747 :          idata = idata + 1
   32541     1713747 :          data_tmp = ISHFT(pack_tmp, 42)
   32542     1713747 :          ipack = ipack + 1
   32543     1713747 :          pack_tmp = packed_data(ipack)
   32544     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32545     1713747 :          pack_tmp = ISHFT(pack_tmp, -42)
   32546     1713747 :          idata = idata + 1
   32547     1713747 :          data_tmp = ISHFT(pack_tmp, 20)
   32548     1713747 :          ipack = ipack + 1
   32549     1713747 :          pack_tmp = packed_data(ipack)
   32550     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32551     1713747 :          pack_tmp = ISHFT(pack_tmp, -20)
   32552     1713747 :          idata = idata + 1
   32553     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32554     1713747 :          full_data(idata) = data_tmp
   32555     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32556     1713747 :          idata = idata + 1
   32557     1713747 :          data_tmp = ISHFT(pack_tmp, 40)
   32558     1713747 :          ipack = ipack + 1
   32559     1713747 :          pack_tmp = packed_data(ipack)
   32560     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32561     1713747 :          pack_tmp = ISHFT(pack_tmp, -40)
   32562     1713747 :          idata = idata + 1
   32563     1713747 :          data_tmp = ISHFT(pack_tmp, 18)
   32564     1713747 :          ipack = ipack + 1
   32565     1713747 :          pack_tmp = packed_data(ipack)
   32566     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32567     1713747 :          pack_tmp = ISHFT(pack_tmp, -18)
   32568     1713747 :          idata = idata + 1
   32569     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32570     1713747 :          full_data(idata) = data_tmp
   32571     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32572     1713747 :          idata = idata + 1
   32573     1713747 :          data_tmp = ISHFT(pack_tmp, 38)
   32574     1713747 :          ipack = ipack + 1
   32575     1713747 :          pack_tmp = packed_data(ipack)
   32576     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32577     1713747 :          pack_tmp = ISHFT(pack_tmp, -38)
   32578     1713747 :          idata = idata + 1
   32579     1713747 :          data_tmp = ISHFT(pack_tmp, 16)
   32580     1713747 :          ipack = ipack + 1
   32581     1713747 :          pack_tmp = packed_data(ipack)
   32582     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32583     1713747 :          pack_tmp = ISHFT(pack_tmp, -16)
   32584     1713747 :          idata = idata + 1
   32585     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32586     1713747 :          full_data(idata) = data_tmp
   32587     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32588     1713747 :          idata = idata + 1
   32589     1713747 :          data_tmp = ISHFT(pack_tmp, 36)
   32590     1713747 :          ipack = ipack + 1
   32591     1713747 :          pack_tmp = packed_data(ipack)
   32592     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32593     1713747 :          pack_tmp = ISHFT(pack_tmp, -36)
   32594     1713747 :          idata = idata + 1
   32595     1713747 :          data_tmp = ISHFT(pack_tmp, 14)
   32596     1713747 :          ipack = ipack + 1
   32597     1713747 :          pack_tmp = packed_data(ipack)
   32598     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32599     1713747 :          pack_tmp = ISHFT(pack_tmp, -14)
   32600     1713747 :          idata = idata + 1
   32601     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32602     1713747 :          full_data(idata) = data_tmp
   32603     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32604     1713747 :          idata = idata + 1
   32605     1713747 :          data_tmp = ISHFT(pack_tmp, 34)
   32606     1713747 :          ipack = ipack + 1
   32607     1713747 :          pack_tmp = packed_data(ipack)
   32608     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32609     1713747 :          pack_tmp = ISHFT(pack_tmp, -34)
   32610     1713747 :          idata = idata + 1
   32611     1713747 :          data_tmp = ISHFT(pack_tmp, 12)
   32612     1713747 :          ipack = ipack + 1
   32613     1713747 :          pack_tmp = packed_data(ipack)
   32614     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32615     1713747 :          pack_tmp = ISHFT(pack_tmp, -12)
   32616     1713747 :          idata = idata + 1
   32617     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32618     1713747 :          full_data(idata) = data_tmp
   32619     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32620     1713747 :          idata = idata + 1
   32621     1713747 :          data_tmp = ISHFT(pack_tmp, 32)
   32622     1713747 :          ipack = ipack + 1
   32623     1713747 :          pack_tmp = packed_data(ipack)
   32624     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32625     1713747 :          pack_tmp = ISHFT(pack_tmp, -32)
   32626     1713747 :          idata = idata + 1
   32627     1713747 :          data_tmp = ISHFT(pack_tmp, 10)
   32628     1713747 :          ipack = ipack + 1
   32629     1713747 :          pack_tmp = packed_data(ipack)
   32630     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32631     1713747 :          pack_tmp = ISHFT(pack_tmp, -10)
   32632     1713747 :          idata = idata + 1
   32633     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32634     1713747 :          full_data(idata) = data_tmp
   32635     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32636     1713747 :          idata = idata + 1
   32637     1713747 :          data_tmp = ISHFT(pack_tmp, 30)
   32638     1713747 :          ipack = ipack + 1
   32639     1713747 :          pack_tmp = packed_data(ipack)
   32640     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32641     1713747 :          pack_tmp = ISHFT(pack_tmp, -30)
   32642     1713747 :          idata = idata + 1
   32643     1713747 :          data_tmp = ISHFT(pack_tmp, 8)
   32644     1713747 :          ipack = ipack + 1
   32645     1713747 :          pack_tmp = packed_data(ipack)
   32646     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32647     1713747 :          pack_tmp = ISHFT(pack_tmp, -8)
   32648     1713747 :          idata = idata + 1
   32649     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32650     1713747 :          full_data(idata) = data_tmp
   32651     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32652     1713747 :          idata = idata + 1
   32653     1713747 :          data_tmp = ISHFT(pack_tmp, 28)
   32654     1713747 :          ipack = ipack + 1
   32655     1713747 :          pack_tmp = packed_data(ipack)
   32656     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32657     1713747 :          pack_tmp = ISHFT(pack_tmp, -28)
   32658     1713747 :          idata = idata + 1
   32659     1713747 :          data_tmp = ISHFT(pack_tmp, 6)
   32660     1713747 :          ipack = ipack + 1
   32661     1713747 :          pack_tmp = packed_data(ipack)
   32662     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32663     1713747 :          pack_tmp = ISHFT(pack_tmp, -6)
   32664     1713747 :          idata = idata + 1
   32665     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32666     1713747 :          full_data(idata) = data_tmp
   32667     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32668     1713747 :          idata = idata + 1
   32669     1713747 :          data_tmp = ISHFT(pack_tmp, 26)
   32670     1713747 :          ipack = ipack + 1
   32671     1713747 :          pack_tmp = packed_data(ipack)
   32672     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32673     1713747 :          pack_tmp = ISHFT(pack_tmp, -26)
   32674     1713747 :          idata = idata + 1
   32675     1713747 :          data_tmp = ISHFT(pack_tmp, 4)
   32676     1713747 :          ipack = ipack + 1
   32677     1713747 :          pack_tmp = packed_data(ipack)
   32678     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32679     1713747 :          pack_tmp = ISHFT(pack_tmp, -4)
   32680     1713747 :          idata = idata + 1
   32681     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32682     1713747 :          full_data(idata) = data_tmp
   32683     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32684     1713747 :          idata = idata + 1
   32685     1713747 :          data_tmp = ISHFT(pack_tmp, 24)
   32686     1713747 :          ipack = ipack + 1
   32687     1713747 :          pack_tmp = packed_data(ipack)
   32688     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32689     1713747 :          pack_tmp = ISHFT(pack_tmp, -24)
   32690     1713747 :          idata = idata + 1
   32691     1713747 :          data_tmp = ISHFT(pack_tmp, 2)
   32692     1713747 :          ipack = ipack + 1
   32693     1713747 :          pack_tmp = packed_data(ipack)
   32694     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32695     1713747 :          pack_tmp = ISHFT(pack_tmp, -2)
   32696     1713747 :          idata = idata + 1
   32697     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32698     1713747 :          full_data(idata) = data_tmp
   32699     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32700     1713747 :          idata = idata + 1
   32701     1713747 :          data_tmp = ISHFT(pack_tmp, 22)
   32702     1713747 :          ipack = ipack + 1
   32703     1713747 :          pack_tmp = packed_data(ipack)
   32704     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32705     1713747 :          pack_tmp = ISHFT(pack_tmp, -22)
   32706     1713747 :          idata = idata + 1
   32707     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32708     1713747 :          full_data(idata) = data_tmp
   32709     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32710     1713747 :          idata = idata + 1
   32711     1713747 :          data_tmp = ISHFT(pack_tmp, 42)
   32712     1713747 :          ipack = ipack + 1
   32713     1713747 :          pack_tmp = packed_data(ipack)
   32714     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32715     1713747 :          pack_tmp = ISHFT(pack_tmp, -42)
   32716     1713747 :          idata = idata + 1
   32717     1713747 :          data_tmp = ISHFT(pack_tmp, 20)
   32718     1713747 :          ipack = ipack + 1
   32719     1713747 :          pack_tmp = packed_data(ipack)
   32720     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32721     1713747 :          pack_tmp = ISHFT(pack_tmp, -20)
   32722     1713747 :          idata = idata + 1
   32723     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32724     1713747 :          full_data(idata) = data_tmp
   32725     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32726     1713747 :          idata = idata + 1
   32727     1713747 :          data_tmp = ISHFT(pack_tmp, 40)
   32728     1713747 :          ipack = ipack + 1
   32729     1713747 :          pack_tmp = packed_data(ipack)
   32730     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32731     1713747 :          pack_tmp = ISHFT(pack_tmp, -40)
   32732     1713747 :          idata = idata + 1
   32733     1713747 :          data_tmp = ISHFT(pack_tmp, 18)
   32734     1713747 :          ipack = ipack + 1
   32735     1713747 :          pack_tmp = packed_data(ipack)
   32736     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32737     1713747 :          pack_tmp = ISHFT(pack_tmp, -18)
   32738     1713747 :          idata = idata + 1
   32739     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32740     1713747 :          full_data(idata) = data_tmp
   32741     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32742     1713747 :          idata = idata + 1
   32743     1713747 :          data_tmp = ISHFT(pack_tmp, 38)
   32744     1713747 :          ipack = ipack + 1
   32745     1713747 :          pack_tmp = packed_data(ipack)
   32746     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32747     1713747 :          pack_tmp = ISHFT(pack_tmp, -38)
   32748     1713747 :          idata = idata + 1
   32749     1713747 :          data_tmp = ISHFT(pack_tmp, 16)
   32750     1713747 :          ipack = ipack + 1
   32751     1713747 :          pack_tmp = packed_data(ipack)
   32752     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32753     1713747 :          pack_tmp = ISHFT(pack_tmp, -16)
   32754     1713747 :          idata = idata + 1
   32755     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32756     1713747 :          full_data(idata) = data_tmp
   32757     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32758     1713747 :          idata = idata + 1
   32759     1713747 :          data_tmp = ISHFT(pack_tmp, 36)
   32760     1713747 :          ipack = ipack + 1
   32761     1713747 :          pack_tmp = packed_data(ipack)
   32762     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32763     1713747 :          pack_tmp = ISHFT(pack_tmp, -36)
   32764     1713747 :          idata = idata + 1
   32765     1713747 :          data_tmp = ISHFT(pack_tmp, 14)
   32766     1713747 :          ipack = ipack + 1
   32767     1713747 :          pack_tmp = packed_data(ipack)
   32768     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32769     1713747 :          pack_tmp = ISHFT(pack_tmp, -14)
   32770     1713747 :          idata = idata + 1
   32771     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32772     1713747 :          full_data(idata) = data_tmp
   32773     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32774     1713747 :          idata = idata + 1
   32775     1713747 :          data_tmp = ISHFT(pack_tmp, 34)
   32776     1713747 :          ipack = ipack + 1
   32777     1713747 :          pack_tmp = packed_data(ipack)
   32778     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32779     1713747 :          pack_tmp = ISHFT(pack_tmp, -34)
   32780     1713747 :          idata = idata + 1
   32781     1713747 :          data_tmp = ISHFT(pack_tmp, 12)
   32782     1713747 :          ipack = ipack + 1
   32783     1713747 :          pack_tmp = packed_data(ipack)
   32784     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32785     1713747 :          pack_tmp = ISHFT(pack_tmp, -12)
   32786     1713747 :          idata = idata + 1
   32787     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32788     1713747 :          full_data(idata) = data_tmp
   32789     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32790     1713747 :          idata = idata + 1
   32791     1713747 :          data_tmp = ISHFT(pack_tmp, 32)
   32792     1713747 :          ipack = ipack + 1
   32793     1713747 :          pack_tmp = packed_data(ipack)
   32794     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32795     1713747 :          pack_tmp = ISHFT(pack_tmp, -32)
   32796     1713747 :          idata = idata + 1
   32797     1713747 :          data_tmp = ISHFT(pack_tmp, 10)
   32798     1713747 :          ipack = ipack + 1
   32799     1713747 :          pack_tmp = packed_data(ipack)
   32800     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32801     1713747 :          pack_tmp = ISHFT(pack_tmp, -10)
   32802     1713747 :          idata = idata + 1
   32803     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32804     1713747 :          full_data(idata) = data_tmp
   32805     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32806     1713747 :          idata = idata + 1
   32807     1713747 :          data_tmp = ISHFT(pack_tmp, 30)
   32808     1713747 :          ipack = ipack + 1
   32809     1713747 :          pack_tmp = packed_data(ipack)
   32810     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32811     1713747 :          pack_tmp = ISHFT(pack_tmp, -30)
   32812     1713747 :          idata = idata + 1
   32813     1713747 :          data_tmp = ISHFT(pack_tmp, 8)
   32814     1713747 :          ipack = ipack + 1
   32815     1713747 :          pack_tmp = packed_data(ipack)
   32816     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32817     1713747 :          pack_tmp = ISHFT(pack_tmp, -8)
   32818     1713747 :          idata = idata + 1
   32819     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32820     1713747 :          full_data(idata) = data_tmp
   32821     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32822     1713747 :          idata = idata + 1
   32823     1713747 :          data_tmp = ISHFT(pack_tmp, 28)
   32824     1713747 :          ipack = ipack + 1
   32825     1713747 :          pack_tmp = packed_data(ipack)
   32826     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32827     1713747 :          pack_tmp = ISHFT(pack_tmp, -28)
   32828     1713747 :          idata = idata + 1
   32829     1713747 :          data_tmp = ISHFT(pack_tmp, 6)
   32830     1713747 :          ipack = ipack + 1
   32831     1713747 :          pack_tmp = packed_data(ipack)
   32832     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32833     1713747 :          pack_tmp = ISHFT(pack_tmp, -6)
   32834     1713747 :          idata = idata + 1
   32835     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32836     1713747 :          full_data(idata) = data_tmp
   32837     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32838     1713747 :          idata = idata + 1
   32839     1713747 :          data_tmp = ISHFT(pack_tmp, 26)
   32840     1713747 :          ipack = ipack + 1
   32841     1713747 :          pack_tmp = packed_data(ipack)
   32842     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32843     1713747 :          pack_tmp = ISHFT(pack_tmp, -26)
   32844     1713747 :          idata = idata + 1
   32845     1713747 :          data_tmp = ISHFT(pack_tmp, 4)
   32846     1713747 :          ipack = ipack + 1
   32847     1713747 :          pack_tmp = packed_data(ipack)
   32848     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32849     1713747 :          pack_tmp = ISHFT(pack_tmp, -4)
   32850     1713747 :          idata = idata + 1
   32851     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32852     1713747 :          full_data(idata) = data_tmp
   32853     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32854     1713747 :          idata = idata + 1
   32855     1713747 :          data_tmp = ISHFT(pack_tmp, 24)
   32856     1713747 :          ipack = ipack + 1
   32857     1713747 :          pack_tmp = packed_data(ipack)
   32858     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32859     1713747 :          pack_tmp = ISHFT(pack_tmp, -24)
   32860     1713747 :          idata = idata + 1
   32861     1713747 :          data_tmp = ISHFT(pack_tmp, 2)
   32862     1713747 :          ipack = ipack + 1
   32863     1713747 :          pack_tmp = packed_data(ipack)
   32864     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32865     1713747 :          pack_tmp = ISHFT(pack_tmp, -2)
   32866     1713747 :          idata = idata + 1
   32867     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32868     1713747 :          full_data(idata) = data_tmp
   32869     1713747 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32870     1713747 :          idata = idata + 1
   32871     1713747 :          data_tmp = ISHFT(pack_tmp, 22)
   32872     1713747 :          ipack = ipack + 1
   32873     1713747 :          pack_tmp = packed_data(ipack)
   32874     1713747 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32875     1713747 :          pack_tmp = ISHFT(pack_tmp, -22)
   32876     1713747 :          idata = idata + 1
   32877     1713747 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32878     1713747 :          full_data(idata) = data_tmp
   32879     1715276 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32880             :       END DO
   32881      116082 :       IF (Ndata_rep < Ndata) THEN
   32882       16890 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32883             :       END IF
   32884      116082 :    END SUBROUTINE bits2ints_42
   32885             : 
   32886             : ! **************************************************************************************************
   32887             : !> \brief ...
   32888             : !> \param Ndata ...
   32889             : !> \param packed_data ...
   32890             : !> \param full_data ...
   32891             : ! **************************************************************************************************
   32892       26037 :    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       26037 :       idata = 0
   32903       26037 :       ipack = 0
   32904       26037 :       Ndata_rep = (Ndata/64)*64
   32905       26037 :       DO kdata = 1, Ndata_rep, 64
   32906      397535 :          pack_tmp = 0
   32907      397535 :          idata = idata + 1
   32908      397535 :          data_tmp = full_data(idata)
   32909      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32910      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32911      397535 :          pack_tmp = ISHFT(pack_tmp, -21)
   32912      397535 :          idata = idata + 1
   32913      397535 :          data_tmp = full_data(idata)
   32914      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32915      397535 :          data_tmp = IAND(data_tmp, mask_left(21))
   32916      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32917      397535 :          ipack = ipack + 1
   32918      397535 :          packed_data(ipack) = pack_tmp
   32919      397535 :          data_tmp = full_data(idata)
   32920      397535 :          pack_tmp = ISHFT(data_tmp, 42)
   32921      397535 :          pack_tmp = ISHFT(pack_tmp, -42)
   32922      397535 :          idata = idata + 1
   32923      397535 :          data_tmp = full_data(idata)
   32924      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32925      397535 :          data_tmp = IAND(data_tmp, mask_left(42))
   32926      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32927      397535 :          ipack = ipack + 1
   32928      397535 :          packed_data(ipack) = pack_tmp
   32929      397535 :          data_tmp = full_data(idata)
   32930      397535 :          pack_tmp = ISHFT(data_tmp, 63)
   32931      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   32932      397535 :          idata = idata + 1
   32933      397535 :          data_tmp = full_data(idata)
   32934      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32935      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32936      397535 :          pack_tmp = ISHFT(pack_tmp, -20)
   32937      397535 :          idata = idata + 1
   32938      397535 :          data_tmp = full_data(idata)
   32939      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32940      397535 :          data_tmp = IAND(data_tmp, mask_left(20))
   32941      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32942      397535 :          ipack = ipack + 1
   32943      397535 :          packed_data(ipack) = pack_tmp
   32944      397535 :          data_tmp = full_data(idata)
   32945      397535 :          pack_tmp = ISHFT(data_tmp, 41)
   32946      397535 :          pack_tmp = ISHFT(pack_tmp, -41)
   32947      397535 :          idata = idata + 1
   32948      397535 :          data_tmp = full_data(idata)
   32949      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32950      397535 :          data_tmp = IAND(data_tmp, mask_left(41))
   32951      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32952      397535 :          ipack = ipack + 1
   32953      397535 :          packed_data(ipack) = pack_tmp
   32954      397535 :          data_tmp = full_data(idata)
   32955      397535 :          pack_tmp = ISHFT(data_tmp, 62)
   32956      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   32957      397535 :          idata = idata + 1
   32958      397535 :          data_tmp = full_data(idata)
   32959      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32960      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32961      397535 :          pack_tmp = ISHFT(pack_tmp, -19)
   32962      397535 :          idata = idata + 1
   32963      397535 :          data_tmp = full_data(idata)
   32964      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32965      397535 :          data_tmp = IAND(data_tmp, mask_left(19))
   32966      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32967      397535 :          ipack = ipack + 1
   32968      397535 :          packed_data(ipack) = pack_tmp
   32969      397535 :          data_tmp = full_data(idata)
   32970      397535 :          pack_tmp = ISHFT(data_tmp, 40)
   32971      397535 :          pack_tmp = ISHFT(pack_tmp, -40)
   32972      397535 :          idata = idata + 1
   32973      397535 :          data_tmp = full_data(idata)
   32974      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32975      397535 :          data_tmp = IAND(data_tmp, mask_left(40))
   32976      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32977      397535 :          ipack = ipack + 1
   32978      397535 :          packed_data(ipack) = pack_tmp
   32979      397535 :          data_tmp = full_data(idata)
   32980      397535 :          pack_tmp = ISHFT(data_tmp, 61)
   32981      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   32982      397535 :          idata = idata + 1
   32983      397535 :          data_tmp = full_data(idata)
   32984      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32985      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32986      397535 :          pack_tmp = ISHFT(pack_tmp, -18)
   32987      397535 :          idata = idata + 1
   32988      397535 :          data_tmp = full_data(idata)
   32989      397535 :          data_tmp = ISHFT(data_tmp, 21)
   32990      397535 :          data_tmp = IAND(data_tmp, mask_left(18))
   32991      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32992      397535 :          ipack = ipack + 1
   32993      397535 :          packed_data(ipack) = pack_tmp
   32994      397535 :          data_tmp = full_data(idata)
   32995      397535 :          pack_tmp = ISHFT(data_tmp, 39)
   32996      397535 :          pack_tmp = ISHFT(pack_tmp, -39)
   32997      397535 :          idata = idata + 1
   32998      397535 :          data_tmp = full_data(idata)
   32999      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33000      397535 :          data_tmp = IAND(data_tmp, mask_left(39))
   33001      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33002      397535 :          ipack = ipack + 1
   33003      397535 :          packed_data(ipack) = pack_tmp
   33004      397535 :          data_tmp = full_data(idata)
   33005      397535 :          pack_tmp = ISHFT(data_tmp, 60)
   33006      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33007      397535 :          idata = idata + 1
   33008      397535 :          data_tmp = full_data(idata)
   33009      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33010      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33011      397535 :          pack_tmp = ISHFT(pack_tmp, -17)
   33012      397535 :          idata = idata + 1
   33013      397535 :          data_tmp = full_data(idata)
   33014      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33015      397535 :          data_tmp = IAND(data_tmp, mask_left(17))
   33016      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33017      397535 :          ipack = ipack + 1
   33018      397535 :          packed_data(ipack) = pack_tmp
   33019      397535 :          data_tmp = full_data(idata)
   33020      397535 :          pack_tmp = ISHFT(data_tmp, 38)
   33021      397535 :          pack_tmp = ISHFT(pack_tmp, -38)
   33022      397535 :          idata = idata + 1
   33023      397535 :          data_tmp = full_data(idata)
   33024      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33025      397535 :          data_tmp = IAND(data_tmp, mask_left(38))
   33026      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33027      397535 :          ipack = ipack + 1
   33028      397535 :          packed_data(ipack) = pack_tmp
   33029      397535 :          data_tmp = full_data(idata)
   33030      397535 :          pack_tmp = ISHFT(data_tmp, 59)
   33031      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33032      397535 :          idata = idata + 1
   33033      397535 :          data_tmp = full_data(idata)
   33034      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33035      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33036      397535 :          pack_tmp = ISHFT(pack_tmp, -16)
   33037      397535 :          idata = idata + 1
   33038      397535 :          data_tmp = full_data(idata)
   33039      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33040      397535 :          data_tmp = IAND(data_tmp, mask_left(16))
   33041      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33042      397535 :          ipack = ipack + 1
   33043      397535 :          packed_data(ipack) = pack_tmp
   33044      397535 :          data_tmp = full_data(idata)
   33045      397535 :          pack_tmp = ISHFT(data_tmp, 37)
   33046      397535 :          pack_tmp = ISHFT(pack_tmp, -37)
   33047      397535 :          idata = idata + 1
   33048      397535 :          data_tmp = full_data(idata)
   33049      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33050      397535 :          data_tmp = IAND(data_tmp, mask_left(37))
   33051      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33052      397535 :          ipack = ipack + 1
   33053      397535 :          packed_data(ipack) = pack_tmp
   33054      397535 :          data_tmp = full_data(idata)
   33055      397535 :          pack_tmp = ISHFT(data_tmp, 58)
   33056      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33057      397535 :          idata = idata + 1
   33058      397535 :          data_tmp = full_data(idata)
   33059      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33060      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33061      397535 :          pack_tmp = ISHFT(pack_tmp, -15)
   33062      397535 :          idata = idata + 1
   33063      397535 :          data_tmp = full_data(idata)
   33064      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33065      397535 :          data_tmp = IAND(data_tmp, mask_left(15))
   33066      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33067      397535 :          ipack = ipack + 1
   33068      397535 :          packed_data(ipack) = pack_tmp
   33069      397535 :          data_tmp = full_data(idata)
   33070      397535 :          pack_tmp = ISHFT(data_tmp, 36)
   33071      397535 :          pack_tmp = ISHFT(pack_tmp, -36)
   33072      397535 :          idata = idata + 1
   33073      397535 :          data_tmp = full_data(idata)
   33074      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33075      397535 :          data_tmp = IAND(data_tmp, mask_left(36))
   33076      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33077      397535 :          ipack = ipack + 1
   33078      397535 :          packed_data(ipack) = pack_tmp
   33079      397535 :          data_tmp = full_data(idata)
   33080      397535 :          pack_tmp = ISHFT(data_tmp, 57)
   33081      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33082      397535 :          idata = idata + 1
   33083      397535 :          data_tmp = full_data(idata)
   33084      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33085      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33086      397535 :          pack_tmp = ISHFT(pack_tmp, -14)
   33087      397535 :          idata = idata + 1
   33088      397535 :          data_tmp = full_data(idata)
   33089      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33090      397535 :          data_tmp = IAND(data_tmp, mask_left(14))
   33091      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33092      397535 :          ipack = ipack + 1
   33093      397535 :          packed_data(ipack) = pack_tmp
   33094      397535 :          data_tmp = full_data(idata)
   33095      397535 :          pack_tmp = ISHFT(data_tmp, 35)
   33096      397535 :          pack_tmp = ISHFT(pack_tmp, -35)
   33097      397535 :          idata = idata + 1
   33098      397535 :          data_tmp = full_data(idata)
   33099      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33100      397535 :          data_tmp = IAND(data_tmp, mask_left(35))
   33101      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33102      397535 :          ipack = ipack + 1
   33103      397535 :          packed_data(ipack) = pack_tmp
   33104      397535 :          data_tmp = full_data(idata)
   33105      397535 :          pack_tmp = ISHFT(data_tmp, 56)
   33106      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33107      397535 :          idata = idata + 1
   33108      397535 :          data_tmp = full_data(idata)
   33109      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33110      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33111      397535 :          pack_tmp = ISHFT(pack_tmp, -13)
   33112      397535 :          idata = idata + 1
   33113      397535 :          data_tmp = full_data(idata)
   33114      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33115      397535 :          data_tmp = IAND(data_tmp, mask_left(13))
   33116      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33117      397535 :          ipack = ipack + 1
   33118      397535 :          packed_data(ipack) = pack_tmp
   33119      397535 :          data_tmp = full_data(idata)
   33120      397535 :          pack_tmp = ISHFT(data_tmp, 34)
   33121      397535 :          pack_tmp = ISHFT(pack_tmp, -34)
   33122      397535 :          idata = idata + 1
   33123      397535 :          data_tmp = full_data(idata)
   33124      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33125      397535 :          data_tmp = IAND(data_tmp, mask_left(34))
   33126      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33127      397535 :          ipack = ipack + 1
   33128      397535 :          packed_data(ipack) = pack_tmp
   33129      397535 :          data_tmp = full_data(idata)
   33130      397535 :          pack_tmp = ISHFT(data_tmp, 55)
   33131      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33132      397535 :          idata = idata + 1
   33133      397535 :          data_tmp = full_data(idata)
   33134      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33135      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33136      397535 :          pack_tmp = ISHFT(pack_tmp, -12)
   33137      397535 :          idata = idata + 1
   33138      397535 :          data_tmp = full_data(idata)
   33139      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33140      397535 :          data_tmp = IAND(data_tmp, mask_left(12))
   33141      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33142      397535 :          ipack = ipack + 1
   33143      397535 :          packed_data(ipack) = pack_tmp
   33144      397535 :          data_tmp = full_data(idata)
   33145      397535 :          pack_tmp = ISHFT(data_tmp, 33)
   33146      397535 :          pack_tmp = ISHFT(pack_tmp, -33)
   33147      397535 :          idata = idata + 1
   33148      397535 :          data_tmp = full_data(idata)
   33149      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33150      397535 :          data_tmp = IAND(data_tmp, mask_left(33))
   33151      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33152      397535 :          ipack = ipack + 1
   33153      397535 :          packed_data(ipack) = pack_tmp
   33154      397535 :          data_tmp = full_data(idata)
   33155      397535 :          pack_tmp = ISHFT(data_tmp, 54)
   33156      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33157      397535 :          idata = idata + 1
   33158      397535 :          data_tmp = full_data(idata)
   33159      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33160      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33161      397535 :          pack_tmp = ISHFT(pack_tmp, -11)
   33162      397535 :          idata = idata + 1
   33163      397535 :          data_tmp = full_data(idata)
   33164      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33165      397535 :          data_tmp = IAND(data_tmp, mask_left(11))
   33166      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33167      397535 :          ipack = ipack + 1
   33168      397535 :          packed_data(ipack) = pack_tmp
   33169      397535 :          data_tmp = full_data(idata)
   33170      397535 :          pack_tmp = ISHFT(data_tmp, 32)
   33171      397535 :          pack_tmp = ISHFT(pack_tmp, -32)
   33172      397535 :          idata = idata + 1
   33173      397535 :          data_tmp = full_data(idata)
   33174      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33175      397535 :          data_tmp = IAND(data_tmp, mask_left(32))
   33176      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33177      397535 :          ipack = ipack + 1
   33178      397535 :          packed_data(ipack) = pack_tmp
   33179      397535 :          data_tmp = full_data(idata)
   33180      397535 :          pack_tmp = ISHFT(data_tmp, 53)
   33181      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33182      397535 :          idata = idata + 1
   33183      397535 :          data_tmp = full_data(idata)
   33184      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33185      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33186      397535 :          pack_tmp = ISHFT(pack_tmp, -10)
   33187      397535 :          idata = idata + 1
   33188      397535 :          data_tmp = full_data(idata)
   33189      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33190      397535 :          data_tmp = IAND(data_tmp, mask_left(10))
   33191      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33192      397535 :          ipack = ipack + 1
   33193      397535 :          packed_data(ipack) = pack_tmp
   33194      397535 :          data_tmp = full_data(idata)
   33195      397535 :          pack_tmp = ISHFT(data_tmp, 31)
   33196      397535 :          pack_tmp = ISHFT(pack_tmp, -31)
   33197      397535 :          idata = idata + 1
   33198      397535 :          data_tmp = full_data(idata)
   33199      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33200      397535 :          data_tmp = IAND(data_tmp, mask_left(31))
   33201      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33202      397535 :          ipack = ipack + 1
   33203      397535 :          packed_data(ipack) = pack_tmp
   33204      397535 :          data_tmp = full_data(idata)
   33205      397535 :          pack_tmp = ISHFT(data_tmp, 52)
   33206      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33207      397535 :          idata = idata + 1
   33208      397535 :          data_tmp = full_data(idata)
   33209      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33210      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33211      397535 :          pack_tmp = ISHFT(pack_tmp, -9)
   33212      397535 :          idata = idata + 1
   33213      397535 :          data_tmp = full_data(idata)
   33214      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33215      397535 :          data_tmp = IAND(data_tmp, mask_left(9))
   33216      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33217      397535 :          ipack = ipack + 1
   33218      397535 :          packed_data(ipack) = pack_tmp
   33219      397535 :          data_tmp = full_data(idata)
   33220      397535 :          pack_tmp = ISHFT(data_tmp, 30)
   33221      397535 :          pack_tmp = ISHFT(pack_tmp, -30)
   33222      397535 :          idata = idata + 1
   33223      397535 :          data_tmp = full_data(idata)
   33224      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33225      397535 :          data_tmp = IAND(data_tmp, mask_left(30))
   33226      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33227      397535 :          ipack = ipack + 1
   33228      397535 :          packed_data(ipack) = pack_tmp
   33229      397535 :          data_tmp = full_data(idata)
   33230      397535 :          pack_tmp = ISHFT(data_tmp, 51)
   33231      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33232      397535 :          idata = idata + 1
   33233      397535 :          data_tmp = full_data(idata)
   33234      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33235      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33236      397535 :          pack_tmp = ISHFT(pack_tmp, -8)
   33237      397535 :          idata = idata + 1
   33238      397535 :          data_tmp = full_data(idata)
   33239      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33240      397535 :          data_tmp = IAND(data_tmp, mask_left(8))
   33241      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33242      397535 :          ipack = ipack + 1
   33243      397535 :          packed_data(ipack) = pack_tmp
   33244      397535 :          data_tmp = full_data(idata)
   33245      397535 :          pack_tmp = ISHFT(data_tmp, 29)
   33246      397535 :          pack_tmp = ISHFT(pack_tmp, -29)
   33247      397535 :          idata = idata + 1
   33248      397535 :          data_tmp = full_data(idata)
   33249      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33250      397535 :          data_tmp = IAND(data_tmp, mask_left(29))
   33251      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33252      397535 :          ipack = ipack + 1
   33253      397535 :          packed_data(ipack) = pack_tmp
   33254      397535 :          data_tmp = full_data(idata)
   33255      397535 :          pack_tmp = ISHFT(data_tmp, 50)
   33256      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33257      397535 :          idata = idata + 1
   33258      397535 :          data_tmp = full_data(idata)
   33259      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33260      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33261      397535 :          pack_tmp = ISHFT(pack_tmp, -7)
   33262      397535 :          idata = idata + 1
   33263      397535 :          data_tmp = full_data(idata)
   33264      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33265      397535 :          data_tmp = IAND(data_tmp, mask_left(7))
   33266      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33267      397535 :          ipack = ipack + 1
   33268      397535 :          packed_data(ipack) = pack_tmp
   33269      397535 :          data_tmp = full_data(idata)
   33270      397535 :          pack_tmp = ISHFT(data_tmp, 28)
   33271      397535 :          pack_tmp = ISHFT(pack_tmp, -28)
   33272      397535 :          idata = idata + 1
   33273      397535 :          data_tmp = full_data(idata)
   33274      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33275      397535 :          data_tmp = IAND(data_tmp, mask_left(28))
   33276      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33277      397535 :          ipack = ipack + 1
   33278      397535 :          packed_data(ipack) = pack_tmp
   33279      397535 :          data_tmp = full_data(idata)
   33280      397535 :          pack_tmp = ISHFT(data_tmp, 49)
   33281      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33282      397535 :          idata = idata + 1
   33283      397535 :          data_tmp = full_data(idata)
   33284      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33285      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33286      397535 :          pack_tmp = ISHFT(pack_tmp, -6)
   33287      397535 :          idata = idata + 1
   33288      397535 :          data_tmp = full_data(idata)
   33289      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33290      397535 :          data_tmp = IAND(data_tmp, mask_left(6))
   33291      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33292      397535 :          ipack = ipack + 1
   33293      397535 :          packed_data(ipack) = pack_tmp
   33294      397535 :          data_tmp = full_data(idata)
   33295      397535 :          pack_tmp = ISHFT(data_tmp, 27)
   33296      397535 :          pack_tmp = ISHFT(pack_tmp, -27)
   33297      397535 :          idata = idata + 1
   33298      397535 :          data_tmp = full_data(idata)
   33299      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33300      397535 :          data_tmp = IAND(data_tmp, mask_left(27))
   33301      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33302      397535 :          ipack = ipack + 1
   33303      397535 :          packed_data(ipack) = pack_tmp
   33304      397535 :          data_tmp = full_data(idata)
   33305      397535 :          pack_tmp = ISHFT(data_tmp, 48)
   33306      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33307      397535 :          idata = idata + 1
   33308      397535 :          data_tmp = full_data(idata)
   33309      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33310      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33311      397535 :          pack_tmp = ISHFT(pack_tmp, -5)
   33312      397535 :          idata = idata + 1
   33313      397535 :          data_tmp = full_data(idata)
   33314      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33315      397535 :          data_tmp = IAND(data_tmp, mask_left(5))
   33316      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33317      397535 :          ipack = ipack + 1
   33318      397535 :          packed_data(ipack) = pack_tmp
   33319      397535 :          data_tmp = full_data(idata)
   33320      397535 :          pack_tmp = ISHFT(data_tmp, 26)
   33321      397535 :          pack_tmp = ISHFT(pack_tmp, -26)
   33322      397535 :          idata = idata + 1
   33323      397535 :          data_tmp = full_data(idata)
   33324      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33325      397535 :          data_tmp = IAND(data_tmp, mask_left(26))
   33326      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33327      397535 :          ipack = ipack + 1
   33328      397535 :          packed_data(ipack) = pack_tmp
   33329      397535 :          data_tmp = full_data(idata)
   33330      397535 :          pack_tmp = ISHFT(data_tmp, 47)
   33331      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33332      397535 :          idata = idata + 1
   33333      397535 :          data_tmp = full_data(idata)
   33334      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33335      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33336      397535 :          pack_tmp = ISHFT(pack_tmp, -4)
   33337      397535 :          idata = idata + 1
   33338      397535 :          data_tmp = full_data(idata)
   33339      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33340      397535 :          data_tmp = IAND(data_tmp, mask_left(4))
   33341      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33342      397535 :          ipack = ipack + 1
   33343      397535 :          packed_data(ipack) = pack_tmp
   33344      397535 :          data_tmp = full_data(idata)
   33345      397535 :          pack_tmp = ISHFT(data_tmp, 25)
   33346      397535 :          pack_tmp = ISHFT(pack_tmp, -25)
   33347      397535 :          idata = idata + 1
   33348      397535 :          data_tmp = full_data(idata)
   33349      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33350      397535 :          data_tmp = IAND(data_tmp, mask_left(25))
   33351      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33352      397535 :          ipack = ipack + 1
   33353      397535 :          packed_data(ipack) = pack_tmp
   33354      397535 :          data_tmp = full_data(idata)
   33355      397535 :          pack_tmp = ISHFT(data_tmp, 46)
   33356      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33357      397535 :          idata = idata + 1
   33358      397535 :          data_tmp = full_data(idata)
   33359      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33360      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33361      397535 :          pack_tmp = ISHFT(pack_tmp, -3)
   33362      397535 :          idata = idata + 1
   33363      397535 :          data_tmp = full_data(idata)
   33364      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33365      397535 :          data_tmp = IAND(data_tmp, mask_left(3))
   33366      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33367      397535 :          ipack = ipack + 1
   33368      397535 :          packed_data(ipack) = pack_tmp
   33369      397535 :          data_tmp = full_data(idata)
   33370      397535 :          pack_tmp = ISHFT(data_tmp, 24)
   33371      397535 :          pack_tmp = ISHFT(pack_tmp, -24)
   33372      397535 :          idata = idata + 1
   33373      397535 :          data_tmp = full_data(idata)
   33374      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33375      397535 :          data_tmp = IAND(data_tmp, mask_left(24))
   33376      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33377      397535 :          ipack = ipack + 1
   33378      397535 :          packed_data(ipack) = pack_tmp
   33379      397535 :          data_tmp = full_data(idata)
   33380      397535 :          pack_tmp = ISHFT(data_tmp, 45)
   33381      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33382      397535 :          idata = idata + 1
   33383      397535 :          data_tmp = full_data(idata)
   33384      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33385      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33386      397535 :          pack_tmp = ISHFT(pack_tmp, -2)
   33387      397535 :          idata = idata + 1
   33388      397535 :          data_tmp = full_data(idata)
   33389      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33390      397535 :          data_tmp = IAND(data_tmp, mask_left(2))
   33391      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33392      397535 :          ipack = ipack + 1
   33393      397535 :          packed_data(ipack) = pack_tmp
   33394      397535 :          data_tmp = full_data(idata)
   33395      397535 :          pack_tmp = ISHFT(data_tmp, 23)
   33396      397535 :          pack_tmp = ISHFT(pack_tmp, -23)
   33397      397535 :          idata = idata + 1
   33398      397535 :          data_tmp = full_data(idata)
   33399      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33400      397535 :          data_tmp = IAND(data_tmp, mask_left(23))
   33401      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33402      397535 :          ipack = ipack + 1
   33403      397535 :          packed_data(ipack) = pack_tmp
   33404      397535 :          data_tmp = full_data(idata)
   33405      397535 :          pack_tmp = ISHFT(data_tmp, 44)
   33406      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33407      397535 :          idata = idata + 1
   33408      397535 :          data_tmp = full_data(idata)
   33409      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33410      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33411      397535 :          pack_tmp = ISHFT(pack_tmp, -1)
   33412      397535 :          idata = idata + 1
   33413      397535 :          data_tmp = full_data(idata)
   33414      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33415      397535 :          data_tmp = IAND(data_tmp, mask_left(1))
   33416      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33417      397535 :          ipack = ipack + 1
   33418      397535 :          packed_data(ipack) = pack_tmp
   33419      397535 :          data_tmp = full_data(idata)
   33420      397535 :          pack_tmp = ISHFT(data_tmp, 22)
   33421      397535 :          pack_tmp = ISHFT(pack_tmp, -22)
   33422      397535 :          idata = idata + 1
   33423      397535 :          data_tmp = full_data(idata)
   33424      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33425      397535 :          data_tmp = IAND(data_tmp, mask_left(22))
   33426      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33427      397535 :          ipack = ipack + 1
   33428      397535 :          packed_data(ipack) = pack_tmp
   33429      397535 :          data_tmp = full_data(idata)
   33430      397535 :          pack_tmp = ISHFT(data_tmp, 43)
   33431      397535 :          pack_tmp = ISHFT(pack_tmp, -43)
   33432      397535 :          idata = idata + 1
   33433      397535 :          data_tmp = full_data(idata)
   33434      397535 :          data_tmp = ISHFT(data_tmp, 21)
   33435      397535 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33436             :          pack_tmp = ISHFT(pack_tmp, 0)
   33437      397535 :          pack_tmp = ISHFT(pack_tmp, 0)
   33438      397535 :          ipack = ipack + 1
   33439      397797 :          packed_data(ipack) = pack_tmp
   33440             :       END DO
   33441       26037 :       IF (Ndata_rep < Ndata) THEN
   33442        2242 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33443             :       END IF
   33444       26037 :    END SUBROUTINE ints2bits_43
   33445             : 
   33446             : ! **************************************************************************************************
   33447             : !> \brief ...
   33448             : !> \param Ndata ...
   33449             : !> \param packed_data ...
   33450             : !> \param full_data ...
   33451             : ! **************************************************************************************************
   33452      115867 :    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      115867 :       ipack = 0
   33463      115867 :       idata = 0
   33464      115867 :       pack_tmp = 0
   33465      115867 :       Ndata_rep = (Ndata/64)*64
   33466      115867 :       DO kdata = 1, Ndata_rep, 64
   33467     1699461 :          idata = idata + 1
   33468     1699461 :          data_tmp = ISHFT(pack_tmp, 43)
   33469     1699461 :          ipack = ipack + 1
   33470     1699461 :          pack_tmp = packed_data(ipack)
   33471     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   33472     1699461 :          pack_tmp = ISHFT(pack_tmp, -43)
   33473     1699461 :          idata = idata + 1
   33474     1699461 :          data_tmp = ISHFT(pack_tmp, 22)
   33475     1699461 :          ipack = ipack + 1
   33476     1699461 :          pack_tmp = packed_data(ipack)
   33477     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   33478     1699461 :          pack_tmp = ISHFT(pack_tmp, -22)
   33479     1699461 :          idata = idata + 1
   33480     1699461 :          data_tmp = ISHFT(pack_tmp, 1)
   33481     1699461 :          ipack = ipack + 1
   33482     1699461 :          pack_tmp = packed_data(ipack)
   33483     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   33484     1699461 :          pack_tmp = ISHFT(pack_tmp, -1)
   33485     1699461 :          idata = idata + 1
   33486     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33487     1699461 :          full_data(idata) = data_tmp
   33488     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33489     1699461 :          idata = idata + 1
   33490     1699461 :          data_tmp = ISHFT(pack_tmp, 23)
   33491     1699461 :          ipack = ipack + 1
   33492     1699461 :          pack_tmp = packed_data(ipack)
   33493     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   33494     1699461 :          pack_tmp = ISHFT(pack_tmp, -23)
   33495     1699461 :          idata = idata + 1
   33496     1699461 :          data_tmp = ISHFT(pack_tmp, 2)
   33497     1699461 :          ipack = ipack + 1
   33498     1699461 :          pack_tmp = packed_data(ipack)
   33499     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   33500     1699461 :          pack_tmp = ISHFT(pack_tmp, -2)
   33501     1699461 :          idata = idata + 1
   33502     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33503     1699461 :          full_data(idata) = data_tmp
   33504     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33505     1699461 :          idata = idata + 1
   33506     1699461 :          data_tmp = ISHFT(pack_tmp, 24)
   33507     1699461 :          ipack = ipack + 1
   33508     1699461 :          pack_tmp = packed_data(ipack)
   33509     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   33510     1699461 :          pack_tmp = ISHFT(pack_tmp, -24)
   33511     1699461 :          idata = idata + 1
   33512     1699461 :          data_tmp = ISHFT(pack_tmp, 3)
   33513     1699461 :          ipack = ipack + 1
   33514     1699461 :          pack_tmp = packed_data(ipack)
   33515     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   33516     1699461 :          pack_tmp = ISHFT(pack_tmp, -3)
   33517     1699461 :          idata = idata + 1
   33518     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33519     1699461 :          full_data(idata) = data_tmp
   33520     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33521     1699461 :          idata = idata + 1
   33522     1699461 :          data_tmp = ISHFT(pack_tmp, 25)
   33523     1699461 :          ipack = ipack + 1
   33524     1699461 :          pack_tmp = packed_data(ipack)
   33525     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   33526     1699461 :          pack_tmp = ISHFT(pack_tmp, -25)
   33527     1699461 :          idata = idata + 1
   33528     1699461 :          data_tmp = ISHFT(pack_tmp, 4)
   33529     1699461 :          ipack = ipack + 1
   33530     1699461 :          pack_tmp = packed_data(ipack)
   33531     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   33532     1699461 :          pack_tmp = ISHFT(pack_tmp, -4)
   33533     1699461 :          idata = idata + 1
   33534     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33535     1699461 :          full_data(idata) = data_tmp
   33536     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33537     1699461 :          idata = idata + 1
   33538     1699461 :          data_tmp = ISHFT(pack_tmp, 26)
   33539     1699461 :          ipack = ipack + 1
   33540     1699461 :          pack_tmp = packed_data(ipack)
   33541     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   33542     1699461 :          pack_tmp = ISHFT(pack_tmp, -26)
   33543     1699461 :          idata = idata + 1
   33544     1699461 :          data_tmp = ISHFT(pack_tmp, 5)
   33545     1699461 :          ipack = ipack + 1
   33546     1699461 :          pack_tmp = packed_data(ipack)
   33547     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   33548     1699461 :          pack_tmp = ISHFT(pack_tmp, -5)
   33549     1699461 :          idata = idata + 1
   33550     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33551     1699461 :          full_data(idata) = data_tmp
   33552     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33553     1699461 :          idata = idata + 1
   33554     1699461 :          data_tmp = ISHFT(pack_tmp, 27)
   33555     1699461 :          ipack = ipack + 1
   33556     1699461 :          pack_tmp = packed_data(ipack)
   33557     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   33558     1699461 :          pack_tmp = ISHFT(pack_tmp, -27)
   33559     1699461 :          idata = idata + 1
   33560     1699461 :          data_tmp = ISHFT(pack_tmp, 6)
   33561     1699461 :          ipack = ipack + 1
   33562     1699461 :          pack_tmp = packed_data(ipack)
   33563     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   33564     1699461 :          pack_tmp = ISHFT(pack_tmp, -6)
   33565     1699461 :          idata = idata + 1
   33566     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33567     1699461 :          full_data(idata) = data_tmp
   33568     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33569     1699461 :          idata = idata + 1
   33570     1699461 :          data_tmp = ISHFT(pack_tmp, 28)
   33571     1699461 :          ipack = ipack + 1
   33572     1699461 :          pack_tmp = packed_data(ipack)
   33573     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   33574     1699461 :          pack_tmp = ISHFT(pack_tmp, -28)
   33575     1699461 :          idata = idata + 1
   33576     1699461 :          data_tmp = ISHFT(pack_tmp, 7)
   33577     1699461 :          ipack = ipack + 1
   33578     1699461 :          pack_tmp = packed_data(ipack)
   33579     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   33580     1699461 :          pack_tmp = ISHFT(pack_tmp, -7)
   33581     1699461 :          idata = idata + 1
   33582     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33583     1699461 :          full_data(idata) = data_tmp
   33584     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33585     1699461 :          idata = idata + 1
   33586     1699461 :          data_tmp = ISHFT(pack_tmp, 29)
   33587     1699461 :          ipack = ipack + 1
   33588     1699461 :          pack_tmp = packed_data(ipack)
   33589     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   33590     1699461 :          pack_tmp = ISHFT(pack_tmp, -29)
   33591     1699461 :          idata = idata + 1
   33592     1699461 :          data_tmp = ISHFT(pack_tmp, 8)
   33593     1699461 :          ipack = ipack + 1
   33594     1699461 :          pack_tmp = packed_data(ipack)
   33595     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   33596     1699461 :          pack_tmp = ISHFT(pack_tmp, -8)
   33597     1699461 :          idata = idata + 1
   33598     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33599     1699461 :          full_data(idata) = data_tmp
   33600     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33601     1699461 :          idata = idata + 1
   33602     1699461 :          data_tmp = ISHFT(pack_tmp, 30)
   33603     1699461 :          ipack = ipack + 1
   33604     1699461 :          pack_tmp = packed_data(ipack)
   33605     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   33606     1699461 :          pack_tmp = ISHFT(pack_tmp, -30)
   33607     1699461 :          idata = idata + 1
   33608     1699461 :          data_tmp = ISHFT(pack_tmp, 9)
   33609     1699461 :          ipack = ipack + 1
   33610     1699461 :          pack_tmp = packed_data(ipack)
   33611     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   33612     1699461 :          pack_tmp = ISHFT(pack_tmp, -9)
   33613     1699461 :          idata = idata + 1
   33614     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33615     1699461 :          full_data(idata) = data_tmp
   33616     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33617     1699461 :          idata = idata + 1
   33618     1699461 :          data_tmp = ISHFT(pack_tmp, 31)
   33619     1699461 :          ipack = ipack + 1
   33620     1699461 :          pack_tmp = packed_data(ipack)
   33621     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   33622     1699461 :          pack_tmp = ISHFT(pack_tmp, -31)
   33623     1699461 :          idata = idata + 1
   33624     1699461 :          data_tmp = ISHFT(pack_tmp, 10)
   33625     1699461 :          ipack = ipack + 1
   33626     1699461 :          pack_tmp = packed_data(ipack)
   33627     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   33628     1699461 :          pack_tmp = ISHFT(pack_tmp, -10)
   33629     1699461 :          idata = idata + 1
   33630     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33631     1699461 :          full_data(idata) = data_tmp
   33632     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33633     1699461 :          idata = idata + 1
   33634     1699461 :          data_tmp = ISHFT(pack_tmp, 32)
   33635     1699461 :          ipack = ipack + 1
   33636     1699461 :          pack_tmp = packed_data(ipack)
   33637     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   33638     1699461 :          pack_tmp = ISHFT(pack_tmp, -32)
   33639     1699461 :          idata = idata + 1
   33640     1699461 :          data_tmp = ISHFT(pack_tmp, 11)
   33641     1699461 :          ipack = ipack + 1
   33642     1699461 :          pack_tmp = packed_data(ipack)
   33643     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   33644     1699461 :          pack_tmp = ISHFT(pack_tmp, -11)
   33645     1699461 :          idata = idata + 1
   33646     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33647     1699461 :          full_data(idata) = data_tmp
   33648     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33649     1699461 :          idata = idata + 1
   33650     1699461 :          data_tmp = ISHFT(pack_tmp, 33)
   33651     1699461 :          ipack = ipack + 1
   33652     1699461 :          pack_tmp = packed_data(ipack)
   33653     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   33654     1699461 :          pack_tmp = ISHFT(pack_tmp, -33)
   33655     1699461 :          idata = idata + 1
   33656     1699461 :          data_tmp = ISHFT(pack_tmp, 12)
   33657     1699461 :          ipack = ipack + 1
   33658     1699461 :          pack_tmp = packed_data(ipack)
   33659     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   33660     1699461 :          pack_tmp = ISHFT(pack_tmp, -12)
   33661     1699461 :          idata = idata + 1
   33662     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33663     1699461 :          full_data(idata) = data_tmp
   33664     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33665     1699461 :          idata = idata + 1
   33666     1699461 :          data_tmp = ISHFT(pack_tmp, 34)
   33667     1699461 :          ipack = ipack + 1
   33668     1699461 :          pack_tmp = packed_data(ipack)
   33669     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   33670     1699461 :          pack_tmp = ISHFT(pack_tmp, -34)
   33671     1699461 :          idata = idata + 1
   33672     1699461 :          data_tmp = ISHFT(pack_tmp, 13)
   33673     1699461 :          ipack = ipack + 1
   33674     1699461 :          pack_tmp = packed_data(ipack)
   33675     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   33676     1699461 :          pack_tmp = ISHFT(pack_tmp, -13)
   33677     1699461 :          idata = idata + 1
   33678     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33679     1699461 :          full_data(idata) = data_tmp
   33680     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33681     1699461 :          idata = idata + 1
   33682     1699461 :          data_tmp = ISHFT(pack_tmp, 35)
   33683     1699461 :          ipack = ipack + 1
   33684     1699461 :          pack_tmp = packed_data(ipack)
   33685     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   33686     1699461 :          pack_tmp = ISHFT(pack_tmp, -35)
   33687     1699461 :          idata = idata + 1
   33688     1699461 :          data_tmp = ISHFT(pack_tmp, 14)
   33689     1699461 :          ipack = ipack + 1
   33690     1699461 :          pack_tmp = packed_data(ipack)
   33691     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   33692     1699461 :          pack_tmp = ISHFT(pack_tmp, -14)
   33693     1699461 :          idata = idata + 1
   33694     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33695     1699461 :          full_data(idata) = data_tmp
   33696     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33697     1699461 :          idata = idata + 1
   33698     1699461 :          data_tmp = ISHFT(pack_tmp, 36)
   33699     1699461 :          ipack = ipack + 1
   33700     1699461 :          pack_tmp = packed_data(ipack)
   33701     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   33702     1699461 :          pack_tmp = ISHFT(pack_tmp, -36)
   33703     1699461 :          idata = idata + 1
   33704     1699461 :          data_tmp = ISHFT(pack_tmp, 15)
   33705     1699461 :          ipack = ipack + 1
   33706     1699461 :          pack_tmp = packed_data(ipack)
   33707     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   33708     1699461 :          pack_tmp = ISHFT(pack_tmp, -15)
   33709     1699461 :          idata = idata + 1
   33710     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33711     1699461 :          full_data(idata) = data_tmp
   33712     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33713     1699461 :          idata = idata + 1
   33714     1699461 :          data_tmp = ISHFT(pack_tmp, 37)
   33715     1699461 :          ipack = ipack + 1
   33716     1699461 :          pack_tmp = packed_data(ipack)
   33717     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   33718     1699461 :          pack_tmp = ISHFT(pack_tmp, -37)
   33719     1699461 :          idata = idata + 1
   33720     1699461 :          data_tmp = ISHFT(pack_tmp, 16)
   33721     1699461 :          ipack = ipack + 1
   33722     1699461 :          pack_tmp = packed_data(ipack)
   33723     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   33724     1699461 :          pack_tmp = ISHFT(pack_tmp, -16)
   33725     1699461 :          idata = idata + 1
   33726     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33727     1699461 :          full_data(idata) = data_tmp
   33728     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33729     1699461 :          idata = idata + 1
   33730     1699461 :          data_tmp = ISHFT(pack_tmp, 38)
   33731     1699461 :          ipack = ipack + 1
   33732     1699461 :          pack_tmp = packed_data(ipack)
   33733     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   33734     1699461 :          pack_tmp = ISHFT(pack_tmp, -38)
   33735     1699461 :          idata = idata + 1
   33736     1699461 :          data_tmp = ISHFT(pack_tmp, 17)
   33737     1699461 :          ipack = ipack + 1
   33738     1699461 :          pack_tmp = packed_data(ipack)
   33739     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   33740     1699461 :          pack_tmp = ISHFT(pack_tmp, -17)
   33741     1699461 :          idata = idata + 1
   33742     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33743     1699461 :          full_data(idata) = data_tmp
   33744     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33745     1699461 :          idata = idata + 1
   33746     1699461 :          data_tmp = ISHFT(pack_tmp, 39)
   33747     1699461 :          ipack = ipack + 1
   33748     1699461 :          pack_tmp = packed_data(ipack)
   33749     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   33750     1699461 :          pack_tmp = ISHFT(pack_tmp, -39)
   33751     1699461 :          idata = idata + 1
   33752     1699461 :          data_tmp = ISHFT(pack_tmp, 18)
   33753     1699461 :          ipack = ipack + 1
   33754     1699461 :          pack_tmp = packed_data(ipack)
   33755     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   33756     1699461 :          pack_tmp = ISHFT(pack_tmp, -18)
   33757     1699461 :          idata = idata + 1
   33758     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33759     1699461 :          full_data(idata) = data_tmp
   33760     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33761     1699461 :          idata = idata + 1
   33762     1699461 :          data_tmp = ISHFT(pack_tmp, 40)
   33763     1699461 :          ipack = ipack + 1
   33764     1699461 :          pack_tmp = packed_data(ipack)
   33765     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   33766     1699461 :          pack_tmp = ISHFT(pack_tmp, -40)
   33767     1699461 :          idata = idata + 1
   33768     1699461 :          data_tmp = ISHFT(pack_tmp, 19)
   33769     1699461 :          ipack = ipack + 1
   33770     1699461 :          pack_tmp = packed_data(ipack)
   33771     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   33772     1699461 :          pack_tmp = ISHFT(pack_tmp, -19)
   33773     1699461 :          idata = idata + 1
   33774     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33775     1699461 :          full_data(idata) = data_tmp
   33776     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33777     1699461 :          idata = idata + 1
   33778     1699461 :          data_tmp = ISHFT(pack_tmp, 41)
   33779     1699461 :          ipack = ipack + 1
   33780     1699461 :          pack_tmp = packed_data(ipack)
   33781     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   33782     1699461 :          pack_tmp = ISHFT(pack_tmp, -41)
   33783     1699461 :          idata = idata + 1
   33784     1699461 :          data_tmp = ISHFT(pack_tmp, 20)
   33785     1699461 :          ipack = ipack + 1
   33786     1699461 :          pack_tmp = packed_data(ipack)
   33787     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   33788     1699461 :          pack_tmp = ISHFT(pack_tmp, -20)
   33789     1699461 :          idata = idata + 1
   33790     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33791     1699461 :          full_data(idata) = data_tmp
   33792     1699461 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33793     1699461 :          idata = idata + 1
   33794     1699461 :          data_tmp = ISHFT(pack_tmp, 42)
   33795     1699461 :          ipack = ipack + 1
   33796     1699461 :          pack_tmp = packed_data(ipack)
   33797     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   33798     1699461 :          pack_tmp = ISHFT(pack_tmp, -42)
   33799     1699461 :          idata = idata + 1
   33800     1699461 :          data_tmp = ISHFT(pack_tmp, 21)
   33801     1699461 :          ipack = ipack + 1
   33802     1699461 :          pack_tmp = packed_data(ipack)
   33803     1699461 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   33804     1699461 :          pack_tmp = ISHFT(pack_tmp, -21)
   33805     1699461 :          idata = idata + 1
   33806     1699461 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33807     1699461 :          full_data(idata) = data_tmp
   33808     1701869 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33809             :       END DO
   33810      115867 :       IF (Ndata_rep < Ndata) THEN
   33811       18166 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33812             :       END IF
   33813      115867 :    END SUBROUTINE bits2ints_43
   33814             : 
   33815             : ! **************************************************************************************************
   33816             : !> \brief ...
   33817             : !> \param Ndata ...
   33818             : !> \param packed_data ...
   33819             : !> \param full_data ...
   33820             : ! **************************************************************************************************
   33821       27513 :    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       27513 :       idata = 0
   33832       27513 :       ipack = 0
   33833       27513 :       Ndata_rep = (Ndata/64)*64
   33834       27513 :       DO kdata = 1, Ndata_rep, 64
   33835      409506 :          pack_tmp = 0
   33836      409506 :          idata = idata + 1
   33837      409506 :          data_tmp = full_data(idata)
   33838      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33839      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33840      409506 :          pack_tmp = ISHFT(pack_tmp, -20)
   33841      409506 :          idata = idata + 1
   33842      409506 :          data_tmp = full_data(idata)
   33843      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33844      409506 :          data_tmp = IAND(data_tmp, mask_left(20))
   33845      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33846      409506 :          ipack = ipack + 1
   33847      409506 :          packed_data(ipack) = pack_tmp
   33848      409506 :          data_tmp = full_data(idata)
   33849      409506 :          pack_tmp = ISHFT(data_tmp, 40)
   33850      409506 :          pack_tmp = ISHFT(pack_tmp, -40)
   33851      409506 :          idata = idata + 1
   33852      409506 :          data_tmp = full_data(idata)
   33853      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33854      409506 :          data_tmp = IAND(data_tmp, mask_left(40))
   33855      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33856      409506 :          ipack = ipack + 1
   33857      409506 :          packed_data(ipack) = pack_tmp
   33858      409506 :          data_tmp = full_data(idata)
   33859      409506 :          pack_tmp = ISHFT(data_tmp, 60)
   33860      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33861      409506 :          idata = idata + 1
   33862      409506 :          data_tmp = full_data(idata)
   33863      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33864      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33865      409506 :          pack_tmp = ISHFT(pack_tmp, -16)
   33866      409506 :          idata = idata + 1
   33867      409506 :          data_tmp = full_data(idata)
   33868      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33869      409506 :          data_tmp = IAND(data_tmp, mask_left(16))
   33870      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33871      409506 :          ipack = ipack + 1
   33872      409506 :          packed_data(ipack) = pack_tmp
   33873      409506 :          data_tmp = full_data(idata)
   33874      409506 :          pack_tmp = ISHFT(data_tmp, 36)
   33875      409506 :          pack_tmp = ISHFT(pack_tmp, -36)
   33876      409506 :          idata = idata + 1
   33877      409506 :          data_tmp = full_data(idata)
   33878      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33879      409506 :          data_tmp = IAND(data_tmp, mask_left(36))
   33880      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33881      409506 :          ipack = ipack + 1
   33882      409506 :          packed_data(ipack) = pack_tmp
   33883      409506 :          data_tmp = full_data(idata)
   33884      409506 :          pack_tmp = ISHFT(data_tmp, 56)
   33885      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33886      409506 :          idata = idata + 1
   33887      409506 :          data_tmp = full_data(idata)
   33888      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33889      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33890      409506 :          pack_tmp = ISHFT(pack_tmp, -12)
   33891      409506 :          idata = idata + 1
   33892      409506 :          data_tmp = full_data(idata)
   33893      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33894      409506 :          data_tmp = IAND(data_tmp, mask_left(12))
   33895      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33896      409506 :          ipack = ipack + 1
   33897      409506 :          packed_data(ipack) = pack_tmp
   33898      409506 :          data_tmp = full_data(idata)
   33899      409506 :          pack_tmp = ISHFT(data_tmp, 32)
   33900      409506 :          pack_tmp = ISHFT(pack_tmp, -32)
   33901      409506 :          idata = idata + 1
   33902      409506 :          data_tmp = full_data(idata)
   33903      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33904      409506 :          data_tmp = IAND(data_tmp, mask_left(32))
   33905      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33906      409506 :          ipack = ipack + 1
   33907      409506 :          packed_data(ipack) = pack_tmp
   33908      409506 :          data_tmp = full_data(idata)
   33909      409506 :          pack_tmp = ISHFT(data_tmp, 52)
   33910      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33911      409506 :          idata = idata + 1
   33912      409506 :          data_tmp = full_data(idata)
   33913      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33914      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33915      409506 :          pack_tmp = ISHFT(pack_tmp, -8)
   33916      409506 :          idata = idata + 1
   33917      409506 :          data_tmp = full_data(idata)
   33918      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33919      409506 :          data_tmp = IAND(data_tmp, mask_left(8))
   33920      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33921      409506 :          ipack = ipack + 1
   33922      409506 :          packed_data(ipack) = pack_tmp
   33923      409506 :          data_tmp = full_data(idata)
   33924      409506 :          pack_tmp = ISHFT(data_tmp, 28)
   33925      409506 :          pack_tmp = ISHFT(pack_tmp, -28)
   33926      409506 :          idata = idata + 1
   33927      409506 :          data_tmp = full_data(idata)
   33928      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33929      409506 :          data_tmp = IAND(data_tmp, mask_left(28))
   33930      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33931      409506 :          ipack = ipack + 1
   33932      409506 :          packed_data(ipack) = pack_tmp
   33933      409506 :          data_tmp = full_data(idata)
   33934      409506 :          pack_tmp = ISHFT(data_tmp, 48)
   33935      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33936      409506 :          idata = idata + 1
   33937      409506 :          data_tmp = full_data(idata)
   33938      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33939      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33940      409506 :          pack_tmp = ISHFT(pack_tmp, -4)
   33941      409506 :          idata = idata + 1
   33942      409506 :          data_tmp = full_data(idata)
   33943      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33944      409506 :          data_tmp = IAND(data_tmp, mask_left(4))
   33945      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33946      409506 :          ipack = ipack + 1
   33947      409506 :          packed_data(ipack) = pack_tmp
   33948      409506 :          data_tmp = full_data(idata)
   33949      409506 :          pack_tmp = ISHFT(data_tmp, 24)
   33950      409506 :          pack_tmp = ISHFT(pack_tmp, -24)
   33951      409506 :          idata = idata + 1
   33952      409506 :          data_tmp = full_data(idata)
   33953      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33954      409506 :          data_tmp = IAND(data_tmp, mask_left(24))
   33955      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33956      409506 :          ipack = ipack + 1
   33957      409506 :          packed_data(ipack) = pack_tmp
   33958      409506 :          data_tmp = full_data(idata)
   33959      409506 :          pack_tmp = ISHFT(data_tmp, 44)
   33960      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33961      409506 :          idata = idata + 1
   33962      409506 :          data_tmp = full_data(idata)
   33963      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33964      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33965      409506 :          pack_tmp = ISHFT(pack_tmp, 0)
   33966      409506 :          idata = idata + 1
   33967      409506 :          data_tmp = full_data(idata)
   33968             :          data_tmp = ISHFT(data_tmp, 20)
   33969      409506 :          data_tmp = IAND(data_tmp, mask_left(0))
   33970      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33971      409506 :          ipack = ipack + 1
   33972      409506 :          packed_data(ipack) = pack_tmp
   33973      409506 :          data_tmp = full_data(idata)
   33974      409506 :          pack_tmp = ISHFT(data_tmp, 20)
   33975      409506 :          pack_tmp = ISHFT(pack_tmp, -20)
   33976      409506 :          idata = idata + 1
   33977      409506 :          data_tmp = full_data(idata)
   33978      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33979      409506 :          data_tmp = IAND(data_tmp, mask_left(20))
   33980      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33981      409506 :          ipack = ipack + 1
   33982      409506 :          packed_data(ipack) = pack_tmp
   33983      409506 :          data_tmp = full_data(idata)
   33984      409506 :          pack_tmp = ISHFT(data_tmp, 40)
   33985      409506 :          pack_tmp = ISHFT(pack_tmp, -40)
   33986      409506 :          idata = idata + 1
   33987      409506 :          data_tmp = full_data(idata)
   33988      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33989      409506 :          data_tmp = IAND(data_tmp, mask_left(40))
   33990      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33991      409506 :          ipack = ipack + 1
   33992      409506 :          packed_data(ipack) = pack_tmp
   33993      409506 :          data_tmp = full_data(idata)
   33994      409506 :          pack_tmp = ISHFT(data_tmp, 60)
   33995      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   33996      409506 :          idata = idata + 1
   33997      409506 :          data_tmp = full_data(idata)
   33998      409506 :          data_tmp = ISHFT(data_tmp, 20)
   33999      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34000      409506 :          pack_tmp = ISHFT(pack_tmp, -16)
   34001      409506 :          idata = idata + 1
   34002      409506 :          data_tmp = full_data(idata)
   34003      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34004      409506 :          data_tmp = IAND(data_tmp, mask_left(16))
   34005      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34006      409506 :          ipack = ipack + 1
   34007      409506 :          packed_data(ipack) = pack_tmp
   34008      409506 :          data_tmp = full_data(idata)
   34009      409506 :          pack_tmp = ISHFT(data_tmp, 36)
   34010      409506 :          pack_tmp = ISHFT(pack_tmp, -36)
   34011      409506 :          idata = idata + 1
   34012      409506 :          data_tmp = full_data(idata)
   34013      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34014      409506 :          data_tmp = IAND(data_tmp, mask_left(36))
   34015      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34016      409506 :          ipack = ipack + 1
   34017      409506 :          packed_data(ipack) = pack_tmp
   34018      409506 :          data_tmp = full_data(idata)
   34019      409506 :          pack_tmp = ISHFT(data_tmp, 56)
   34020      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34021      409506 :          idata = idata + 1
   34022      409506 :          data_tmp = full_data(idata)
   34023      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34024      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34025      409506 :          pack_tmp = ISHFT(pack_tmp, -12)
   34026      409506 :          idata = idata + 1
   34027      409506 :          data_tmp = full_data(idata)
   34028      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34029      409506 :          data_tmp = IAND(data_tmp, mask_left(12))
   34030      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34031      409506 :          ipack = ipack + 1
   34032      409506 :          packed_data(ipack) = pack_tmp
   34033      409506 :          data_tmp = full_data(idata)
   34034      409506 :          pack_tmp = ISHFT(data_tmp, 32)
   34035      409506 :          pack_tmp = ISHFT(pack_tmp, -32)
   34036      409506 :          idata = idata + 1
   34037      409506 :          data_tmp = full_data(idata)
   34038      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34039      409506 :          data_tmp = IAND(data_tmp, mask_left(32))
   34040      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34041      409506 :          ipack = ipack + 1
   34042      409506 :          packed_data(ipack) = pack_tmp
   34043      409506 :          data_tmp = full_data(idata)
   34044      409506 :          pack_tmp = ISHFT(data_tmp, 52)
   34045      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34046      409506 :          idata = idata + 1
   34047      409506 :          data_tmp = full_data(idata)
   34048      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34049      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34050      409506 :          pack_tmp = ISHFT(pack_tmp, -8)
   34051      409506 :          idata = idata + 1
   34052      409506 :          data_tmp = full_data(idata)
   34053      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34054      409506 :          data_tmp = IAND(data_tmp, mask_left(8))
   34055      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34056      409506 :          ipack = ipack + 1
   34057      409506 :          packed_data(ipack) = pack_tmp
   34058      409506 :          data_tmp = full_data(idata)
   34059      409506 :          pack_tmp = ISHFT(data_tmp, 28)
   34060      409506 :          pack_tmp = ISHFT(pack_tmp, -28)
   34061      409506 :          idata = idata + 1
   34062      409506 :          data_tmp = full_data(idata)
   34063      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34064      409506 :          data_tmp = IAND(data_tmp, mask_left(28))
   34065      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34066      409506 :          ipack = ipack + 1
   34067      409506 :          packed_data(ipack) = pack_tmp
   34068      409506 :          data_tmp = full_data(idata)
   34069      409506 :          pack_tmp = ISHFT(data_tmp, 48)
   34070      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34071      409506 :          idata = idata + 1
   34072      409506 :          data_tmp = full_data(idata)
   34073      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34074      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34075      409506 :          pack_tmp = ISHFT(pack_tmp, -4)
   34076      409506 :          idata = idata + 1
   34077      409506 :          data_tmp = full_data(idata)
   34078      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34079      409506 :          data_tmp = IAND(data_tmp, mask_left(4))
   34080      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34081      409506 :          ipack = ipack + 1
   34082      409506 :          packed_data(ipack) = pack_tmp
   34083      409506 :          data_tmp = full_data(idata)
   34084      409506 :          pack_tmp = ISHFT(data_tmp, 24)
   34085      409506 :          pack_tmp = ISHFT(pack_tmp, -24)
   34086      409506 :          idata = idata + 1
   34087      409506 :          data_tmp = full_data(idata)
   34088      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34089      409506 :          data_tmp = IAND(data_tmp, mask_left(24))
   34090      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34091      409506 :          ipack = ipack + 1
   34092      409506 :          packed_data(ipack) = pack_tmp
   34093      409506 :          data_tmp = full_data(idata)
   34094      409506 :          pack_tmp = ISHFT(data_tmp, 44)
   34095      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34096      409506 :          idata = idata + 1
   34097      409506 :          data_tmp = full_data(idata)
   34098      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34099      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34100      409506 :          pack_tmp = ISHFT(pack_tmp, 0)
   34101      409506 :          idata = idata + 1
   34102      409506 :          data_tmp = full_data(idata)
   34103             :          data_tmp = ISHFT(data_tmp, 20)
   34104      409506 :          data_tmp = IAND(data_tmp, mask_left(0))
   34105      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34106      409506 :          ipack = ipack + 1
   34107      409506 :          packed_data(ipack) = pack_tmp
   34108      409506 :          data_tmp = full_data(idata)
   34109      409506 :          pack_tmp = ISHFT(data_tmp, 20)
   34110      409506 :          pack_tmp = ISHFT(pack_tmp, -20)
   34111      409506 :          idata = idata + 1
   34112      409506 :          data_tmp = full_data(idata)
   34113      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34114      409506 :          data_tmp = IAND(data_tmp, mask_left(20))
   34115      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34116      409506 :          ipack = ipack + 1
   34117      409506 :          packed_data(ipack) = pack_tmp
   34118      409506 :          data_tmp = full_data(idata)
   34119      409506 :          pack_tmp = ISHFT(data_tmp, 40)
   34120      409506 :          pack_tmp = ISHFT(pack_tmp, -40)
   34121      409506 :          idata = idata + 1
   34122      409506 :          data_tmp = full_data(idata)
   34123      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34124      409506 :          data_tmp = IAND(data_tmp, mask_left(40))
   34125      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34126      409506 :          ipack = ipack + 1
   34127      409506 :          packed_data(ipack) = pack_tmp
   34128      409506 :          data_tmp = full_data(idata)
   34129      409506 :          pack_tmp = ISHFT(data_tmp, 60)
   34130      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34131      409506 :          idata = idata + 1
   34132      409506 :          data_tmp = full_data(idata)
   34133      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34134      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34135      409506 :          pack_tmp = ISHFT(pack_tmp, -16)
   34136      409506 :          idata = idata + 1
   34137      409506 :          data_tmp = full_data(idata)
   34138      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34139      409506 :          data_tmp = IAND(data_tmp, mask_left(16))
   34140      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34141      409506 :          ipack = ipack + 1
   34142      409506 :          packed_data(ipack) = pack_tmp
   34143      409506 :          data_tmp = full_data(idata)
   34144      409506 :          pack_tmp = ISHFT(data_tmp, 36)
   34145      409506 :          pack_tmp = ISHFT(pack_tmp, -36)
   34146      409506 :          idata = idata + 1
   34147      409506 :          data_tmp = full_data(idata)
   34148      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34149      409506 :          data_tmp = IAND(data_tmp, mask_left(36))
   34150      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34151      409506 :          ipack = ipack + 1
   34152      409506 :          packed_data(ipack) = pack_tmp
   34153      409506 :          data_tmp = full_data(idata)
   34154      409506 :          pack_tmp = ISHFT(data_tmp, 56)
   34155      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34156      409506 :          idata = idata + 1
   34157      409506 :          data_tmp = full_data(idata)
   34158      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34159      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34160      409506 :          pack_tmp = ISHFT(pack_tmp, -12)
   34161      409506 :          idata = idata + 1
   34162      409506 :          data_tmp = full_data(idata)
   34163      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34164      409506 :          data_tmp = IAND(data_tmp, mask_left(12))
   34165      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34166      409506 :          ipack = ipack + 1
   34167      409506 :          packed_data(ipack) = pack_tmp
   34168      409506 :          data_tmp = full_data(idata)
   34169      409506 :          pack_tmp = ISHFT(data_tmp, 32)
   34170      409506 :          pack_tmp = ISHFT(pack_tmp, -32)
   34171      409506 :          idata = idata + 1
   34172      409506 :          data_tmp = full_data(idata)
   34173      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34174      409506 :          data_tmp = IAND(data_tmp, mask_left(32))
   34175      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34176      409506 :          ipack = ipack + 1
   34177      409506 :          packed_data(ipack) = pack_tmp
   34178      409506 :          data_tmp = full_data(idata)
   34179      409506 :          pack_tmp = ISHFT(data_tmp, 52)
   34180      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34181      409506 :          idata = idata + 1
   34182      409506 :          data_tmp = full_data(idata)
   34183      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34184      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34185      409506 :          pack_tmp = ISHFT(pack_tmp, -8)
   34186      409506 :          idata = idata + 1
   34187      409506 :          data_tmp = full_data(idata)
   34188      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34189      409506 :          data_tmp = IAND(data_tmp, mask_left(8))
   34190      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34191      409506 :          ipack = ipack + 1
   34192      409506 :          packed_data(ipack) = pack_tmp
   34193      409506 :          data_tmp = full_data(idata)
   34194      409506 :          pack_tmp = ISHFT(data_tmp, 28)
   34195      409506 :          pack_tmp = ISHFT(pack_tmp, -28)
   34196      409506 :          idata = idata + 1
   34197      409506 :          data_tmp = full_data(idata)
   34198      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34199      409506 :          data_tmp = IAND(data_tmp, mask_left(28))
   34200      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34201      409506 :          ipack = ipack + 1
   34202      409506 :          packed_data(ipack) = pack_tmp
   34203      409506 :          data_tmp = full_data(idata)
   34204      409506 :          pack_tmp = ISHFT(data_tmp, 48)
   34205      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34206      409506 :          idata = idata + 1
   34207      409506 :          data_tmp = full_data(idata)
   34208      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34209      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34210      409506 :          pack_tmp = ISHFT(pack_tmp, -4)
   34211      409506 :          idata = idata + 1
   34212      409506 :          data_tmp = full_data(idata)
   34213      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34214      409506 :          data_tmp = IAND(data_tmp, mask_left(4))
   34215      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34216      409506 :          ipack = ipack + 1
   34217      409506 :          packed_data(ipack) = pack_tmp
   34218      409506 :          data_tmp = full_data(idata)
   34219      409506 :          pack_tmp = ISHFT(data_tmp, 24)
   34220      409506 :          pack_tmp = ISHFT(pack_tmp, -24)
   34221      409506 :          idata = idata + 1
   34222      409506 :          data_tmp = full_data(idata)
   34223      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34224      409506 :          data_tmp = IAND(data_tmp, mask_left(24))
   34225      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34226      409506 :          ipack = ipack + 1
   34227      409506 :          packed_data(ipack) = pack_tmp
   34228      409506 :          data_tmp = full_data(idata)
   34229      409506 :          pack_tmp = ISHFT(data_tmp, 44)
   34230      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34231      409506 :          idata = idata + 1
   34232      409506 :          data_tmp = full_data(idata)
   34233      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34234      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34235      409506 :          pack_tmp = ISHFT(pack_tmp, 0)
   34236      409506 :          idata = idata + 1
   34237      409506 :          data_tmp = full_data(idata)
   34238             :          data_tmp = ISHFT(data_tmp, 20)
   34239      409506 :          data_tmp = IAND(data_tmp, mask_left(0))
   34240      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34241      409506 :          ipack = ipack + 1
   34242      409506 :          packed_data(ipack) = pack_tmp
   34243      409506 :          data_tmp = full_data(idata)
   34244      409506 :          pack_tmp = ISHFT(data_tmp, 20)
   34245      409506 :          pack_tmp = ISHFT(pack_tmp, -20)
   34246      409506 :          idata = idata + 1
   34247      409506 :          data_tmp = full_data(idata)
   34248      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34249      409506 :          data_tmp = IAND(data_tmp, mask_left(20))
   34250      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34251      409506 :          ipack = ipack + 1
   34252      409506 :          packed_data(ipack) = pack_tmp
   34253      409506 :          data_tmp = full_data(idata)
   34254      409506 :          pack_tmp = ISHFT(data_tmp, 40)
   34255      409506 :          pack_tmp = ISHFT(pack_tmp, -40)
   34256      409506 :          idata = idata + 1
   34257      409506 :          data_tmp = full_data(idata)
   34258      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34259      409506 :          data_tmp = IAND(data_tmp, mask_left(40))
   34260      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34261      409506 :          ipack = ipack + 1
   34262      409506 :          packed_data(ipack) = pack_tmp
   34263      409506 :          data_tmp = full_data(idata)
   34264      409506 :          pack_tmp = ISHFT(data_tmp, 60)
   34265      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34266      409506 :          idata = idata + 1
   34267      409506 :          data_tmp = full_data(idata)
   34268      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34269      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34270      409506 :          pack_tmp = ISHFT(pack_tmp, -16)
   34271      409506 :          idata = idata + 1
   34272      409506 :          data_tmp = full_data(idata)
   34273      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34274      409506 :          data_tmp = IAND(data_tmp, mask_left(16))
   34275      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34276      409506 :          ipack = ipack + 1
   34277      409506 :          packed_data(ipack) = pack_tmp
   34278      409506 :          data_tmp = full_data(idata)
   34279      409506 :          pack_tmp = ISHFT(data_tmp, 36)
   34280      409506 :          pack_tmp = ISHFT(pack_tmp, -36)
   34281      409506 :          idata = idata + 1
   34282      409506 :          data_tmp = full_data(idata)
   34283      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34284      409506 :          data_tmp = IAND(data_tmp, mask_left(36))
   34285      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34286      409506 :          ipack = ipack + 1
   34287      409506 :          packed_data(ipack) = pack_tmp
   34288      409506 :          data_tmp = full_data(idata)
   34289      409506 :          pack_tmp = ISHFT(data_tmp, 56)
   34290      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34291      409506 :          idata = idata + 1
   34292      409506 :          data_tmp = full_data(idata)
   34293      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34294      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34295      409506 :          pack_tmp = ISHFT(pack_tmp, -12)
   34296      409506 :          idata = idata + 1
   34297      409506 :          data_tmp = full_data(idata)
   34298      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34299      409506 :          data_tmp = IAND(data_tmp, mask_left(12))
   34300      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34301      409506 :          ipack = ipack + 1
   34302      409506 :          packed_data(ipack) = pack_tmp
   34303      409506 :          data_tmp = full_data(idata)
   34304      409506 :          pack_tmp = ISHFT(data_tmp, 32)
   34305      409506 :          pack_tmp = ISHFT(pack_tmp, -32)
   34306      409506 :          idata = idata + 1
   34307      409506 :          data_tmp = full_data(idata)
   34308      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34309      409506 :          data_tmp = IAND(data_tmp, mask_left(32))
   34310      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34311      409506 :          ipack = ipack + 1
   34312      409506 :          packed_data(ipack) = pack_tmp
   34313      409506 :          data_tmp = full_data(idata)
   34314      409506 :          pack_tmp = ISHFT(data_tmp, 52)
   34315      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34316      409506 :          idata = idata + 1
   34317      409506 :          data_tmp = full_data(idata)
   34318      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34319      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34320      409506 :          pack_tmp = ISHFT(pack_tmp, -8)
   34321      409506 :          idata = idata + 1
   34322      409506 :          data_tmp = full_data(idata)
   34323      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34324      409506 :          data_tmp = IAND(data_tmp, mask_left(8))
   34325      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34326      409506 :          ipack = ipack + 1
   34327      409506 :          packed_data(ipack) = pack_tmp
   34328      409506 :          data_tmp = full_data(idata)
   34329      409506 :          pack_tmp = ISHFT(data_tmp, 28)
   34330      409506 :          pack_tmp = ISHFT(pack_tmp, -28)
   34331      409506 :          idata = idata + 1
   34332      409506 :          data_tmp = full_data(idata)
   34333      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34334      409506 :          data_tmp = IAND(data_tmp, mask_left(28))
   34335      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34336      409506 :          ipack = ipack + 1
   34337      409506 :          packed_data(ipack) = pack_tmp
   34338      409506 :          data_tmp = full_data(idata)
   34339      409506 :          pack_tmp = ISHFT(data_tmp, 48)
   34340      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34341      409506 :          idata = idata + 1
   34342      409506 :          data_tmp = full_data(idata)
   34343      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34344      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34345      409506 :          pack_tmp = ISHFT(pack_tmp, -4)
   34346      409506 :          idata = idata + 1
   34347      409506 :          data_tmp = full_data(idata)
   34348      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34349      409506 :          data_tmp = IAND(data_tmp, mask_left(4))
   34350      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34351      409506 :          ipack = ipack + 1
   34352      409506 :          packed_data(ipack) = pack_tmp
   34353      409506 :          data_tmp = full_data(idata)
   34354      409506 :          pack_tmp = ISHFT(data_tmp, 24)
   34355      409506 :          pack_tmp = ISHFT(pack_tmp, -24)
   34356      409506 :          idata = idata + 1
   34357      409506 :          data_tmp = full_data(idata)
   34358      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34359      409506 :          data_tmp = IAND(data_tmp, mask_left(24))
   34360      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34361      409506 :          ipack = ipack + 1
   34362      409506 :          packed_data(ipack) = pack_tmp
   34363      409506 :          data_tmp = full_data(idata)
   34364      409506 :          pack_tmp = ISHFT(data_tmp, 44)
   34365      409506 :          pack_tmp = ISHFT(pack_tmp, -44)
   34366      409506 :          idata = idata + 1
   34367      409506 :          data_tmp = full_data(idata)
   34368      409506 :          data_tmp = ISHFT(data_tmp, 20)
   34369      409506 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34370             :          pack_tmp = ISHFT(pack_tmp, 0)
   34371      409506 :          pack_tmp = ISHFT(pack_tmp, 0)
   34372      409506 :          ipack = ipack + 1
   34373      409519 :          packed_data(ipack) = pack_tmp
   34374             :       END DO
   34375       27513 :       IF (Ndata_rep < Ndata) THEN
   34376        3612 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34377             :       END IF
   34378       27513 :    END SUBROUTINE ints2bits_44
   34379             : 
   34380             : ! **************************************************************************************************
   34381             : !> \brief ...
   34382             : !> \param Ndata ...
   34383             : !> \param packed_data ...
   34384             : !> \param full_data ...
   34385             : ! **************************************************************************************************
   34386      123340 :    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      123340 :       ipack = 0
   34397      123340 :       idata = 0
   34398      123340 :       pack_tmp = 0
   34399      123340 :       Ndata_rep = (Ndata/64)*64
   34400      123340 :       DO kdata = 1, Ndata_rep, 64
   34401     1765683 :          idata = idata + 1
   34402     1765683 :          data_tmp = ISHFT(pack_tmp, 44)
   34403     1765683 :          ipack = ipack + 1
   34404     1765683 :          pack_tmp = packed_data(ipack)
   34405     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34406     1765683 :          pack_tmp = ISHFT(pack_tmp, -44)
   34407     1765683 :          idata = idata + 1
   34408     1765683 :          data_tmp = ISHFT(pack_tmp, 24)
   34409     1765683 :          ipack = ipack + 1
   34410     1765683 :          pack_tmp = packed_data(ipack)
   34411     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34412     1765683 :          pack_tmp = ISHFT(pack_tmp, -24)
   34413     1765683 :          idata = idata + 1
   34414     1765683 :          data_tmp = ISHFT(pack_tmp, 4)
   34415     1765683 :          ipack = ipack + 1
   34416     1765683 :          pack_tmp = packed_data(ipack)
   34417     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34418     1765683 :          pack_tmp = ISHFT(pack_tmp, -4)
   34419     1765683 :          idata = idata + 1
   34420     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34421     1765683 :          full_data(idata) = data_tmp
   34422     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34423     1765683 :          idata = idata + 1
   34424     1765683 :          data_tmp = ISHFT(pack_tmp, 28)
   34425     1765683 :          ipack = ipack + 1
   34426     1765683 :          pack_tmp = packed_data(ipack)
   34427     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34428     1765683 :          pack_tmp = ISHFT(pack_tmp, -28)
   34429     1765683 :          idata = idata + 1
   34430     1765683 :          data_tmp = ISHFT(pack_tmp, 8)
   34431     1765683 :          ipack = ipack + 1
   34432     1765683 :          pack_tmp = packed_data(ipack)
   34433     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34434     1765683 :          pack_tmp = ISHFT(pack_tmp, -8)
   34435     1765683 :          idata = idata + 1
   34436     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34437     1765683 :          full_data(idata) = data_tmp
   34438     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34439     1765683 :          idata = idata + 1
   34440     1765683 :          data_tmp = ISHFT(pack_tmp, 32)
   34441     1765683 :          ipack = ipack + 1
   34442     1765683 :          pack_tmp = packed_data(ipack)
   34443     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34444     1765683 :          pack_tmp = ISHFT(pack_tmp, -32)
   34445     1765683 :          idata = idata + 1
   34446     1765683 :          data_tmp = ISHFT(pack_tmp, 12)
   34447     1765683 :          ipack = ipack + 1
   34448     1765683 :          pack_tmp = packed_data(ipack)
   34449     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34450     1765683 :          pack_tmp = ISHFT(pack_tmp, -12)
   34451     1765683 :          idata = idata + 1
   34452     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34453     1765683 :          full_data(idata) = data_tmp
   34454     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34455     1765683 :          idata = idata + 1
   34456     1765683 :          data_tmp = ISHFT(pack_tmp, 36)
   34457     1765683 :          ipack = ipack + 1
   34458     1765683 :          pack_tmp = packed_data(ipack)
   34459     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34460     1765683 :          pack_tmp = ISHFT(pack_tmp, -36)
   34461     1765683 :          idata = idata + 1
   34462     1765683 :          data_tmp = ISHFT(pack_tmp, 16)
   34463     1765683 :          ipack = ipack + 1
   34464     1765683 :          pack_tmp = packed_data(ipack)
   34465     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34466     1765683 :          pack_tmp = ISHFT(pack_tmp, -16)
   34467     1765683 :          idata = idata + 1
   34468     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34469     1765683 :          full_data(idata) = data_tmp
   34470     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34471     1765683 :          idata = idata + 1
   34472     1765683 :          data_tmp = ISHFT(pack_tmp, 40)
   34473     1765683 :          ipack = ipack + 1
   34474     1765683 :          pack_tmp = packed_data(ipack)
   34475     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34476     1765683 :          pack_tmp = ISHFT(pack_tmp, -40)
   34477     1765683 :          idata = idata + 1
   34478     1765683 :          data_tmp = ISHFT(pack_tmp, 20)
   34479     1765683 :          ipack = ipack + 1
   34480     1765683 :          pack_tmp = packed_data(ipack)
   34481     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34482     1765683 :          pack_tmp = ISHFT(pack_tmp, -20)
   34483     1765683 :          idata = idata + 1
   34484     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34485     1765683 :          full_data(idata) = data_tmp
   34486     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34487     1765683 :          idata = idata + 1
   34488     1765683 :          data_tmp = ISHFT(pack_tmp, 44)
   34489     1765683 :          ipack = ipack + 1
   34490     1765683 :          pack_tmp = packed_data(ipack)
   34491     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34492     1765683 :          pack_tmp = ISHFT(pack_tmp, -44)
   34493     1765683 :          idata = idata + 1
   34494     1765683 :          data_tmp = ISHFT(pack_tmp, 24)
   34495     1765683 :          ipack = ipack + 1
   34496     1765683 :          pack_tmp = packed_data(ipack)
   34497     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34498     1765683 :          pack_tmp = ISHFT(pack_tmp, -24)
   34499     1765683 :          idata = idata + 1
   34500     1765683 :          data_tmp = ISHFT(pack_tmp, 4)
   34501     1765683 :          ipack = ipack + 1
   34502     1765683 :          pack_tmp = packed_data(ipack)
   34503     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34504     1765683 :          pack_tmp = ISHFT(pack_tmp, -4)
   34505     1765683 :          idata = idata + 1
   34506     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34507     1765683 :          full_data(idata) = data_tmp
   34508     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34509     1765683 :          idata = idata + 1
   34510     1765683 :          data_tmp = ISHFT(pack_tmp, 28)
   34511     1765683 :          ipack = ipack + 1
   34512     1765683 :          pack_tmp = packed_data(ipack)
   34513     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34514     1765683 :          pack_tmp = ISHFT(pack_tmp, -28)
   34515     1765683 :          idata = idata + 1
   34516     1765683 :          data_tmp = ISHFT(pack_tmp, 8)
   34517     1765683 :          ipack = ipack + 1
   34518     1765683 :          pack_tmp = packed_data(ipack)
   34519     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34520     1765683 :          pack_tmp = ISHFT(pack_tmp, -8)
   34521     1765683 :          idata = idata + 1
   34522     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34523     1765683 :          full_data(idata) = data_tmp
   34524     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34525     1765683 :          idata = idata + 1
   34526     1765683 :          data_tmp = ISHFT(pack_tmp, 32)
   34527     1765683 :          ipack = ipack + 1
   34528     1765683 :          pack_tmp = packed_data(ipack)
   34529     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34530     1765683 :          pack_tmp = ISHFT(pack_tmp, -32)
   34531     1765683 :          idata = idata + 1
   34532     1765683 :          data_tmp = ISHFT(pack_tmp, 12)
   34533     1765683 :          ipack = ipack + 1
   34534     1765683 :          pack_tmp = packed_data(ipack)
   34535     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34536     1765683 :          pack_tmp = ISHFT(pack_tmp, -12)
   34537     1765683 :          idata = idata + 1
   34538     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34539     1765683 :          full_data(idata) = data_tmp
   34540     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34541     1765683 :          idata = idata + 1
   34542     1765683 :          data_tmp = ISHFT(pack_tmp, 36)
   34543     1765683 :          ipack = ipack + 1
   34544     1765683 :          pack_tmp = packed_data(ipack)
   34545     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34546     1765683 :          pack_tmp = ISHFT(pack_tmp, -36)
   34547     1765683 :          idata = idata + 1
   34548     1765683 :          data_tmp = ISHFT(pack_tmp, 16)
   34549     1765683 :          ipack = ipack + 1
   34550     1765683 :          pack_tmp = packed_data(ipack)
   34551     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34552     1765683 :          pack_tmp = ISHFT(pack_tmp, -16)
   34553     1765683 :          idata = idata + 1
   34554     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34555     1765683 :          full_data(idata) = data_tmp
   34556     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34557     1765683 :          idata = idata + 1
   34558     1765683 :          data_tmp = ISHFT(pack_tmp, 40)
   34559     1765683 :          ipack = ipack + 1
   34560     1765683 :          pack_tmp = packed_data(ipack)
   34561     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34562     1765683 :          pack_tmp = ISHFT(pack_tmp, -40)
   34563     1765683 :          idata = idata + 1
   34564     1765683 :          data_tmp = ISHFT(pack_tmp, 20)
   34565     1765683 :          ipack = ipack + 1
   34566     1765683 :          pack_tmp = packed_data(ipack)
   34567     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34568     1765683 :          pack_tmp = ISHFT(pack_tmp, -20)
   34569     1765683 :          idata = idata + 1
   34570     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34571     1765683 :          full_data(idata) = data_tmp
   34572     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34573     1765683 :          idata = idata + 1
   34574     1765683 :          data_tmp = ISHFT(pack_tmp, 44)
   34575     1765683 :          ipack = ipack + 1
   34576     1765683 :          pack_tmp = packed_data(ipack)
   34577     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34578     1765683 :          pack_tmp = ISHFT(pack_tmp, -44)
   34579     1765683 :          idata = idata + 1
   34580     1765683 :          data_tmp = ISHFT(pack_tmp, 24)
   34581     1765683 :          ipack = ipack + 1
   34582     1765683 :          pack_tmp = packed_data(ipack)
   34583     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34584     1765683 :          pack_tmp = ISHFT(pack_tmp, -24)
   34585     1765683 :          idata = idata + 1
   34586     1765683 :          data_tmp = ISHFT(pack_tmp, 4)
   34587     1765683 :          ipack = ipack + 1
   34588     1765683 :          pack_tmp = packed_data(ipack)
   34589     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34590     1765683 :          pack_tmp = ISHFT(pack_tmp, -4)
   34591     1765683 :          idata = idata + 1
   34592     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34593     1765683 :          full_data(idata) = data_tmp
   34594     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34595     1765683 :          idata = idata + 1
   34596     1765683 :          data_tmp = ISHFT(pack_tmp, 28)
   34597     1765683 :          ipack = ipack + 1
   34598     1765683 :          pack_tmp = packed_data(ipack)
   34599     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34600     1765683 :          pack_tmp = ISHFT(pack_tmp, -28)
   34601     1765683 :          idata = idata + 1
   34602     1765683 :          data_tmp = ISHFT(pack_tmp, 8)
   34603     1765683 :          ipack = ipack + 1
   34604     1765683 :          pack_tmp = packed_data(ipack)
   34605     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34606     1765683 :          pack_tmp = ISHFT(pack_tmp, -8)
   34607     1765683 :          idata = idata + 1
   34608     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34609     1765683 :          full_data(idata) = data_tmp
   34610     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34611     1765683 :          idata = idata + 1
   34612     1765683 :          data_tmp = ISHFT(pack_tmp, 32)
   34613     1765683 :          ipack = ipack + 1
   34614     1765683 :          pack_tmp = packed_data(ipack)
   34615     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34616     1765683 :          pack_tmp = ISHFT(pack_tmp, -32)
   34617     1765683 :          idata = idata + 1
   34618     1765683 :          data_tmp = ISHFT(pack_tmp, 12)
   34619     1765683 :          ipack = ipack + 1
   34620     1765683 :          pack_tmp = packed_data(ipack)
   34621     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34622     1765683 :          pack_tmp = ISHFT(pack_tmp, -12)
   34623     1765683 :          idata = idata + 1
   34624     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34625     1765683 :          full_data(idata) = data_tmp
   34626     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34627     1765683 :          idata = idata + 1
   34628     1765683 :          data_tmp = ISHFT(pack_tmp, 36)
   34629     1765683 :          ipack = ipack + 1
   34630     1765683 :          pack_tmp = packed_data(ipack)
   34631     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34632     1765683 :          pack_tmp = ISHFT(pack_tmp, -36)
   34633     1765683 :          idata = idata + 1
   34634     1765683 :          data_tmp = ISHFT(pack_tmp, 16)
   34635     1765683 :          ipack = ipack + 1
   34636     1765683 :          pack_tmp = packed_data(ipack)
   34637     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34638     1765683 :          pack_tmp = ISHFT(pack_tmp, -16)
   34639     1765683 :          idata = idata + 1
   34640     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34641     1765683 :          full_data(idata) = data_tmp
   34642     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34643     1765683 :          idata = idata + 1
   34644     1765683 :          data_tmp = ISHFT(pack_tmp, 40)
   34645     1765683 :          ipack = ipack + 1
   34646     1765683 :          pack_tmp = packed_data(ipack)
   34647     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34648     1765683 :          pack_tmp = ISHFT(pack_tmp, -40)
   34649     1765683 :          idata = idata + 1
   34650     1765683 :          data_tmp = ISHFT(pack_tmp, 20)
   34651     1765683 :          ipack = ipack + 1
   34652     1765683 :          pack_tmp = packed_data(ipack)
   34653     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34654     1765683 :          pack_tmp = ISHFT(pack_tmp, -20)
   34655     1765683 :          idata = idata + 1
   34656     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34657     1765683 :          full_data(idata) = data_tmp
   34658     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34659     1765683 :          idata = idata + 1
   34660     1765683 :          data_tmp = ISHFT(pack_tmp, 44)
   34661     1765683 :          ipack = ipack + 1
   34662     1765683 :          pack_tmp = packed_data(ipack)
   34663     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34664     1765683 :          pack_tmp = ISHFT(pack_tmp, -44)
   34665     1765683 :          idata = idata + 1
   34666     1765683 :          data_tmp = ISHFT(pack_tmp, 24)
   34667     1765683 :          ipack = ipack + 1
   34668     1765683 :          pack_tmp = packed_data(ipack)
   34669     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34670     1765683 :          pack_tmp = ISHFT(pack_tmp, -24)
   34671     1765683 :          idata = idata + 1
   34672     1765683 :          data_tmp = ISHFT(pack_tmp, 4)
   34673     1765683 :          ipack = ipack + 1
   34674     1765683 :          pack_tmp = packed_data(ipack)
   34675     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34676     1765683 :          pack_tmp = ISHFT(pack_tmp, -4)
   34677     1765683 :          idata = idata + 1
   34678     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34679     1765683 :          full_data(idata) = data_tmp
   34680     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34681     1765683 :          idata = idata + 1
   34682     1765683 :          data_tmp = ISHFT(pack_tmp, 28)
   34683     1765683 :          ipack = ipack + 1
   34684     1765683 :          pack_tmp = packed_data(ipack)
   34685     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34686     1765683 :          pack_tmp = ISHFT(pack_tmp, -28)
   34687     1765683 :          idata = idata + 1
   34688     1765683 :          data_tmp = ISHFT(pack_tmp, 8)
   34689     1765683 :          ipack = ipack + 1
   34690     1765683 :          pack_tmp = packed_data(ipack)
   34691     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34692     1765683 :          pack_tmp = ISHFT(pack_tmp, -8)
   34693     1765683 :          idata = idata + 1
   34694     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34695     1765683 :          full_data(idata) = data_tmp
   34696     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34697     1765683 :          idata = idata + 1
   34698     1765683 :          data_tmp = ISHFT(pack_tmp, 32)
   34699     1765683 :          ipack = ipack + 1
   34700     1765683 :          pack_tmp = packed_data(ipack)
   34701     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34702     1765683 :          pack_tmp = ISHFT(pack_tmp, -32)
   34703     1765683 :          idata = idata + 1
   34704     1765683 :          data_tmp = ISHFT(pack_tmp, 12)
   34705     1765683 :          ipack = ipack + 1
   34706     1765683 :          pack_tmp = packed_data(ipack)
   34707     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34708     1765683 :          pack_tmp = ISHFT(pack_tmp, -12)
   34709     1765683 :          idata = idata + 1
   34710     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34711     1765683 :          full_data(idata) = data_tmp
   34712     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34713     1765683 :          idata = idata + 1
   34714     1765683 :          data_tmp = ISHFT(pack_tmp, 36)
   34715     1765683 :          ipack = ipack + 1
   34716     1765683 :          pack_tmp = packed_data(ipack)
   34717     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34718     1765683 :          pack_tmp = ISHFT(pack_tmp, -36)
   34719     1765683 :          idata = idata + 1
   34720     1765683 :          data_tmp = ISHFT(pack_tmp, 16)
   34721     1765683 :          ipack = ipack + 1
   34722     1765683 :          pack_tmp = packed_data(ipack)
   34723     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34724     1765683 :          pack_tmp = ISHFT(pack_tmp, -16)
   34725     1765683 :          idata = idata + 1
   34726     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34727     1765683 :          full_data(idata) = data_tmp
   34728     1765683 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34729     1765683 :          idata = idata + 1
   34730     1765683 :          data_tmp = ISHFT(pack_tmp, 40)
   34731     1765683 :          ipack = ipack + 1
   34732     1765683 :          pack_tmp = packed_data(ipack)
   34733     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34734     1765683 :          pack_tmp = ISHFT(pack_tmp, -40)
   34735     1765683 :          idata = idata + 1
   34736     1765683 :          data_tmp = ISHFT(pack_tmp, 20)
   34737     1765683 :          ipack = ipack + 1
   34738     1765683 :          pack_tmp = packed_data(ipack)
   34739     1765683 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34740     1765683 :          pack_tmp = ISHFT(pack_tmp, -20)
   34741     1765683 :          idata = idata + 1
   34742     1765683 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34743     1765683 :          full_data(idata) = data_tmp
   34744     1765935 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34745             :       END DO
   34746      123340 :       IF (Ndata_rep < Ndata) THEN
   34747       24442 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34748             :       END IF
   34749      123340 :    END SUBROUTINE bits2ints_44
   34750             : 
   34751             : ! **************************************************************************************************
   34752             : !> \brief ...
   34753             : !> \param Ndata ...
   34754             : !> \param packed_data ...
   34755             : !> \param full_data ...
   34756             : ! **************************************************************************************************
   34757       29155 :    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       29155 :       idata = 0
   34768       29155 :       ipack = 0
   34769       29155 :       Ndata_rep = (Ndata/64)*64
   34770       29155 :       DO kdata = 1, Ndata_rep, 64
   34771      424065 :          pack_tmp = 0
   34772      424065 :          idata = idata + 1
   34773      424065 :          data_tmp = full_data(idata)
   34774      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34775      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34776      424065 :          pack_tmp = ISHFT(pack_tmp, -19)
   34777      424065 :          idata = idata + 1
   34778      424065 :          data_tmp = full_data(idata)
   34779      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34780      424065 :          data_tmp = IAND(data_tmp, mask_left(19))
   34781      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34782      424065 :          ipack = ipack + 1
   34783      424065 :          packed_data(ipack) = pack_tmp
   34784      424065 :          data_tmp = full_data(idata)
   34785      424065 :          pack_tmp = ISHFT(data_tmp, 38)
   34786      424065 :          pack_tmp = ISHFT(pack_tmp, -38)
   34787      424065 :          idata = idata + 1
   34788      424065 :          data_tmp = full_data(idata)
   34789      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34790      424065 :          data_tmp = IAND(data_tmp, mask_left(38))
   34791      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34792      424065 :          ipack = ipack + 1
   34793      424065 :          packed_data(ipack) = pack_tmp
   34794      424065 :          data_tmp = full_data(idata)
   34795      424065 :          pack_tmp = ISHFT(data_tmp, 57)
   34796      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34797      424065 :          idata = idata + 1
   34798      424065 :          data_tmp = full_data(idata)
   34799      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34800      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34801      424065 :          pack_tmp = ISHFT(pack_tmp, -12)
   34802      424065 :          idata = idata + 1
   34803      424065 :          data_tmp = full_data(idata)
   34804      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34805      424065 :          data_tmp = IAND(data_tmp, mask_left(12))
   34806      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34807      424065 :          ipack = ipack + 1
   34808      424065 :          packed_data(ipack) = pack_tmp
   34809      424065 :          data_tmp = full_data(idata)
   34810      424065 :          pack_tmp = ISHFT(data_tmp, 31)
   34811      424065 :          pack_tmp = ISHFT(pack_tmp, -31)
   34812      424065 :          idata = idata + 1
   34813      424065 :          data_tmp = full_data(idata)
   34814      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34815      424065 :          data_tmp = IAND(data_tmp, mask_left(31))
   34816      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34817      424065 :          ipack = ipack + 1
   34818      424065 :          packed_data(ipack) = pack_tmp
   34819      424065 :          data_tmp = full_data(idata)
   34820      424065 :          pack_tmp = ISHFT(data_tmp, 50)
   34821      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34822      424065 :          idata = idata + 1
   34823      424065 :          data_tmp = full_data(idata)
   34824      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34825      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34826      424065 :          pack_tmp = ISHFT(pack_tmp, -5)
   34827      424065 :          idata = idata + 1
   34828      424065 :          data_tmp = full_data(idata)
   34829      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34830      424065 :          data_tmp = IAND(data_tmp, mask_left(5))
   34831      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34832      424065 :          ipack = ipack + 1
   34833      424065 :          packed_data(ipack) = pack_tmp
   34834      424065 :          data_tmp = full_data(idata)
   34835      424065 :          pack_tmp = ISHFT(data_tmp, 24)
   34836      424065 :          pack_tmp = ISHFT(pack_tmp, -24)
   34837      424065 :          idata = idata + 1
   34838      424065 :          data_tmp = full_data(idata)
   34839      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34840      424065 :          data_tmp = IAND(data_tmp, mask_left(24))
   34841      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34842      424065 :          ipack = ipack + 1
   34843      424065 :          packed_data(ipack) = pack_tmp
   34844      424065 :          data_tmp = full_data(idata)
   34845      424065 :          pack_tmp = ISHFT(data_tmp, 43)
   34846      424065 :          pack_tmp = ISHFT(pack_tmp, -43)
   34847      424065 :          idata = idata + 1
   34848      424065 :          data_tmp = full_data(idata)
   34849      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34850      424065 :          data_tmp = IAND(data_tmp, mask_left(43))
   34851      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34852      424065 :          ipack = ipack + 1
   34853      424065 :          packed_data(ipack) = pack_tmp
   34854      424065 :          data_tmp = full_data(idata)
   34855      424065 :          pack_tmp = ISHFT(data_tmp, 62)
   34856      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34857      424065 :          idata = idata + 1
   34858      424065 :          data_tmp = full_data(idata)
   34859      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34860      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34861      424065 :          pack_tmp = ISHFT(pack_tmp, -17)
   34862      424065 :          idata = idata + 1
   34863      424065 :          data_tmp = full_data(idata)
   34864      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34865      424065 :          data_tmp = IAND(data_tmp, mask_left(17))
   34866      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34867      424065 :          ipack = ipack + 1
   34868      424065 :          packed_data(ipack) = pack_tmp
   34869      424065 :          data_tmp = full_data(idata)
   34870      424065 :          pack_tmp = ISHFT(data_tmp, 36)
   34871      424065 :          pack_tmp = ISHFT(pack_tmp, -36)
   34872      424065 :          idata = idata + 1
   34873      424065 :          data_tmp = full_data(idata)
   34874      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34875      424065 :          data_tmp = IAND(data_tmp, mask_left(36))
   34876      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34877      424065 :          ipack = ipack + 1
   34878      424065 :          packed_data(ipack) = pack_tmp
   34879      424065 :          data_tmp = full_data(idata)
   34880      424065 :          pack_tmp = ISHFT(data_tmp, 55)
   34881      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34882      424065 :          idata = idata + 1
   34883      424065 :          data_tmp = full_data(idata)
   34884      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34885      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34886      424065 :          pack_tmp = ISHFT(pack_tmp, -10)
   34887      424065 :          idata = idata + 1
   34888      424065 :          data_tmp = full_data(idata)
   34889      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34890      424065 :          data_tmp = IAND(data_tmp, mask_left(10))
   34891      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34892      424065 :          ipack = ipack + 1
   34893      424065 :          packed_data(ipack) = pack_tmp
   34894      424065 :          data_tmp = full_data(idata)
   34895      424065 :          pack_tmp = ISHFT(data_tmp, 29)
   34896      424065 :          pack_tmp = ISHFT(pack_tmp, -29)
   34897      424065 :          idata = idata + 1
   34898      424065 :          data_tmp = full_data(idata)
   34899      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34900      424065 :          data_tmp = IAND(data_tmp, mask_left(29))
   34901      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34902      424065 :          ipack = ipack + 1
   34903      424065 :          packed_data(ipack) = pack_tmp
   34904      424065 :          data_tmp = full_data(idata)
   34905      424065 :          pack_tmp = ISHFT(data_tmp, 48)
   34906      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34907      424065 :          idata = idata + 1
   34908      424065 :          data_tmp = full_data(idata)
   34909      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34910      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34911      424065 :          pack_tmp = ISHFT(pack_tmp, -3)
   34912      424065 :          idata = idata + 1
   34913      424065 :          data_tmp = full_data(idata)
   34914      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34915      424065 :          data_tmp = IAND(data_tmp, mask_left(3))
   34916      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34917      424065 :          ipack = ipack + 1
   34918      424065 :          packed_data(ipack) = pack_tmp
   34919      424065 :          data_tmp = full_data(idata)
   34920      424065 :          pack_tmp = ISHFT(data_tmp, 22)
   34921      424065 :          pack_tmp = ISHFT(pack_tmp, -22)
   34922      424065 :          idata = idata + 1
   34923      424065 :          data_tmp = full_data(idata)
   34924      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34925      424065 :          data_tmp = IAND(data_tmp, mask_left(22))
   34926      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34927      424065 :          ipack = ipack + 1
   34928      424065 :          packed_data(ipack) = pack_tmp
   34929      424065 :          data_tmp = full_data(idata)
   34930      424065 :          pack_tmp = ISHFT(data_tmp, 41)
   34931      424065 :          pack_tmp = ISHFT(pack_tmp, -41)
   34932      424065 :          idata = idata + 1
   34933      424065 :          data_tmp = full_data(idata)
   34934      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34935      424065 :          data_tmp = IAND(data_tmp, mask_left(41))
   34936      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34937      424065 :          ipack = ipack + 1
   34938      424065 :          packed_data(ipack) = pack_tmp
   34939      424065 :          data_tmp = full_data(idata)
   34940      424065 :          pack_tmp = ISHFT(data_tmp, 60)
   34941      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34942      424065 :          idata = idata + 1
   34943      424065 :          data_tmp = full_data(idata)
   34944      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34945      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34946      424065 :          pack_tmp = ISHFT(pack_tmp, -15)
   34947      424065 :          idata = idata + 1
   34948      424065 :          data_tmp = full_data(idata)
   34949      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34950      424065 :          data_tmp = IAND(data_tmp, mask_left(15))
   34951      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34952      424065 :          ipack = ipack + 1
   34953      424065 :          packed_data(ipack) = pack_tmp
   34954      424065 :          data_tmp = full_data(idata)
   34955      424065 :          pack_tmp = ISHFT(data_tmp, 34)
   34956      424065 :          pack_tmp = ISHFT(pack_tmp, -34)
   34957      424065 :          idata = idata + 1
   34958      424065 :          data_tmp = full_data(idata)
   34959      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34960      424065 :          data_tmp = IAND(data_tmp, mask_left(34))
   34961      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34962      424065 :          ipack = ipack + 1
   34963      424065 :          packed_data(ipack) = pack_tmp
   34964      424065 :          data_tmp = full_data(idata)
   34965      424065 :          pack_tmp = ISHFT(data_tmp, 53)
   34966      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34967      424065 :          idata = idata + 1
   34968      424065 :          data_tmp = full_data(idata)
   34969      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34970      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34971      424065 :          pack_tmp = ISHFT(pack_tmp, -8)
   34972      424065 :          idata = idata + 1
   34973      424065 :          data_tmp = full_data(idata)
   34974      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34975      424065 :          data_tmp = IAND(data_tmp, mask_left(8))
   34976      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34977      424065 :          ipack = ipack + 1
   34978      424065 :          packed_data(ipack) = pack_tmp
   34979      424065 :          data_tmp = full_data(idata)
   34980      424065 :          pack_tmp = ISHFT(data_tmp, 27)
   34981      424065 :          pack_tmp = ISHFT(pack_tmp, -27)
   34982      424065 :          idata = idata + 1
   34983      424065 :          data_tmp = full_data(idata)
   34984      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34985      424065 :          data_tmp = IAND(data_tmp, mask_left(27))
   34986      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34987      424065 :          ipack = ipack + 1
   34988      424065 :          packed_data(ipack) = pack_tmp
   34989      424065 :          data_tmp = full_data(idata)
   34990      424065 :          pack_tmp = ISHFT(data_tmp, 46)
   34991      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   34992      424065 :          idata = idata + 1
   34993      424065 :          data_tmp = full_data(idata)
   34994      424065 :          data_tmp = ISHFT(data_tmp, 19)
   34995      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34996      424065 :          pack_tmp = ISHFT(pack_tmp, -1)
   34997      424065 :          idata = idata + 1
   34998      424065 :          data_tmp = full_data(idata)
   34999      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35000      424065 :          data_tmp = IAND(data_tmp, mask_left(1))
   35001      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35002      424065 :          ipack = ipack + 1
   35003      424065 :          packed_data(ipack) = pack_tmp
   35004      424065 :          data_tmp = full_data(idata)
   35005      424065 :          pack_tmp = ISHFT(data_tmp, 20)
   35006      424065 :          pack_tmp = ISHFT(pack_tmp, -20)
   35007      424065 :          idata = idata + 1
   35008      424065 :          data_tmp = full_data(idata)
   35009      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35010      424065 :          data_tmp = IAND(data_tmp, mask_left(20))
   35011      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35012      424065 :          ipack = ipack + 1
   35013      424065 :          packed_data(ipack) = pack_tmp
   35014      424065 :          data_tmp = full_data(idata)
   35015      424065 :          pack_tmp = ISHFT(data_tmp, 39)
   35016      424065 :          pack_tmp = ISHFT(pack_tmp, -39)
   35017      424065 :          idata = idata + 1
   35018      424065 :          data_tmp = full_data(idata)
   35019      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35020      424065 :          data_tmp = IAND(data_tmp, mask_left(39))
   35021      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35022      424065 :          ipack = ipack + 1
   35023      424065 :          packed_data(ipack) = pack_tmp
   35024      424065 :          data_tmp = full_data(idata)
   35025      424065 :          pack_tmp = ISHFT(data_tmp, 58)
   35026      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35027      424065 :          idata = idata + 1
   35028      424065 :          data_tmp = full_data(idata)
   35029      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35030      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35031      424065 :          pack_tmp = ISHFT(pack_tmp, -13)
   35032      424065 :          idata = idata + 1
   35033      424065 :          data_tmp = full_data(idata)
   35034      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35035      424065 :          data_tmp = IAND(data_tmp, mask_left(13))
   35036      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35037      424065 :          ipack = ipack + 1
   35038      424065 :          packed_data(ipack) = pack_tmp
   35039      424065 :          data_tmp = full_data(idata)
   35040      424065 :          pack_tmp = ISHFT(data_tmp, 32)
   35041      424065 :          pack_tmp = ISHFT(pack_tmp, -32)
   35042      424065 :          idata = idata + 1
   35043      424065 :          data_tmp = full_data(idata)
   35044      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35045      424065 :          data_tmp = IAND(data_tmp, mask_left(32))
   35046      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35047      424065 :          ipack = ipack + 1
   35048      424065 :          packed_data(ipack) = pack_tmp
   35049      424065 :          data_tmp = full_data(idata)
   35050      424065 :          pack_tmp = ISHFT(data_tmp, 51)
   35051      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35052      424065 :          idata = idata + 1
   35053      424065 :          data_tmp = full_data(idata)
   35054      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35055      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35056      424065 :          pack_tmp = ISHFT(pack_tmp, -6)
   35057      424065 :          idata = idata + 1
   35058      424065 :          data_tmp = full_data(idata)
   35059      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35060      424065 :          data_tmp = IAND(data_tmp, mask_left(6))
   35061      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35062      424065 :          ipack = ipack + 1
   35063      424065 :          packed_data(ipack) = pack_tmp
   35064      424065 :          data_tmp = full_data(idata)
   35065      424065 :          pack_tmp = ISHFT(data_tmp, 25)
   35066      424065 :          pack_tmp = ISHFT(pack_tmp, -25)
   35067      424065 :          idata = idata + 1
   35068      424065 :          data_tmp = full_data(idata)
   35069      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35070      424065 :          data_tmp = IAND(data_tmp, mask_left(25))
   35071      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35072      424065 :          ipack = ipack + 1
   35073      424065 :          packed_data(ipack) = pack_tmp
   35074      424065 :          data_tmp = full_data(idata)
   35075      424065 :          pack_tmp = ISHFT(data_tmp, 44)
   35076      424065 :          pack_tmp = ISHFT(pack_tmp, -44)
   35077      424065 :          idata = idata + 1
   35078      424065 :          data_tmp = full_data(idata)
   35079      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35080      424065 :          data_tmp = IAND(data_tmp, mask_left(44))
   35081      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35082      424065 :          ipack = ipack + 1
   35083      424065 :          packed_data(ipack) = pack_tmp
   35084      424065 :          data_tmp = full_data(idata)
   35085      424065 :          pack_tmp = ISHFT(data_tmp, 63)
   35086      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35087      424065 :          idata = idata + 1
   35088      424065 :          data_tmp = full_data(idata)
   35089      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35090      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35091      424065 :          pack_tmp = ISHFT(pack_tmp, -18)
   35092      424065 :          idata = idata + 1
   35093      424065 :          data_tmp = full_data(idata)
   35094      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35095      424065 :          data_tmp = IAND(data_tmp, mask_left(18))
   35096      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35097      424065 :          ipack = ipack + 1
   35098      424065 :          packed_data(ipack) = pack_tmp
   35099      424065 :          data_tmp = full_data(idata)
   35100      424065 :          pack_tmp = ISHFT(data_tmp, 37)
   35101      424065 :          pack_tmp = ISHFT(pack_tmp, -37)
   35102      424065 :          idata = idata + 1
   35103      424065 :          data_tmp = full_data(idata)
   35104      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35105      424065 :          data_tmp = IAND(data_tmp, mask_left(37))
   35106      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35107      424065 :          ipack = ipack + 1
   35108      424065 :          packed_data(ipack) = pack_tmp
   35109      424065 :          data_tmp = full_data(idata)
   35110      424065 :          pack_tmp = ISHFT(data_tmp, 56)
   35111      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35112      424065 :          idata = idata + 1
   35113      424065 :          data_tmp = full_data(idata)
   35114      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35115      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35116      424065 :          pack_tmp = ISHFT(pack_tmp, -11)
   35117      424065 :          idata = idata + 1
   35118      424065 :          data_tmp = full_data(idata)
   35119      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35120      424065 :          data_tmp = IAND(data_tmp, mask_left(11))
   35121      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35122      424065 :          ipack = ipack + 1
   35123      424065 :          packed_data(ipack) = pack_tmp
   35124      424065 :          data_tmp = full_data(idata)
   35125      424065 :          pack_tmp = ISHFT(data_tmp, 30)
   35126      424065 :          pack_tmp = ISHFT(pack_tmp, -30)
   35127      424065 :          idata = idata + 1
   35128      424065 :          data_tmp = full_data(idata)
   35129      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35130      424065 :          data_tmp = IAND(data_tmp, mask_left(30))
   35131      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35132      424065 :          ipack = ipack + 1
   35133      424065 :          packed_data(ipack) = pack_tmp
   35134      424065 :          data_tmp = full_data(idata)
   35135      424065 :          pack_tmp = ISHFT(data_tmp, 49)
   35136      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35137      424065 :          idata = idata + 1
   35138      424065 :          data_tmp = full_data(idata)
   35139      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35140      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35141      424065 :          pack_tmp = ISHFT(pack_tmp, -4)
   35142      424065 :          idata = idata + 1
   35143      424065 :          data_tmp = full_data(idata)
   35144      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35145      424065 :          data_tmp = IAND(data_tmp, mask_left(4))
   35146      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35147      424065 :          ipack = ipack + 1
   35148      424065 :          packed_data(ipack) = pack_tmp
   35149      424065 :          data_tmp = full_data(idata)
   35150      424065 :          pack_tmp = ISHFT(data_tmp, 23)
   35151      424065 :          pack_tmp = ISHFT(pack_tmp, -23)
   35152      424065 :          idata = idata + 1
   35153      424065 :          data_tmp = full_data(idata)
   35154      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35155      424065 :          data_tmp = IAND(data_tmp, mask_left(23))
   35156      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35157      424065 :          ipack = ipack + 1
   35158      424065 :          packed_data(ipack) = pack_tmp
   35159      424065 :          data_tmp = full_data(idata)
   35160      424065 :          pack_tmp = ISHFT(data_tmp, 42)
   35161      424065 :          pack_tmp = ISHFT(pack_tmp, -42)
   35162      424065 :          idata = idata + 1
   35163      424065 :          data_tmp = full_data(idata)
   35164      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35165      424065 :          data_tmp = IAND(data_tmp, mask_left(42))
   35166      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35167      424065 :          ipack = ipack + 1
   35168      424065 :          packed_data(ipack) = pack_tmp
   35169      424065 :          data_tmp = full_data(idata)
   35170      424065 :          pack_tmp = ISHFT(data_tmp, 61)
   35171      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35172      424065 :          idata = idata + 1
   35173      424065 :          data_tmp = full_data(idata)
   35174      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35175      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35176      424065 :          pack_tmp = ISHFT(pack_tmp, -16)
   35177      424065 :          idata = idata + 1
   35178      424065 :          data_tmp = full_data(idata)
   35179      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35180      424065 :          data_tmp = IAND(data_tmp, mask_left(16))
   35181      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35182      424065 :          ipack = ipack + 1
   35183      424065 :          packed_data(ipack) = pack_tmp
   35184      424065 :          data_tmp = full_data(idata)
   35185      424065 :          pack_tmp = ISHFT(data_tmp, 35)
   35186      424065 :          pack_tmp = ISHFT(pack_tmp, -35)
   35187      424065 :          idata = idata + 1
   35188      424065 :          data_tmp = full_data(idata)
   35189      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35190      424065 :          data_tmp = IAND(data_tmp, mask_left(35))
   35191      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35192      424065 :          ipack = ipack + 1
   35193      424065 :          packed_data(ipack) = pack_tmp
   35194      424065 :          data_tmp = full_data(idata)
   35195      424065 :          pack_tmp = ISHFT(data_tmp, 54)
   35196      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35197      424065 :          idata = idata + 1
   35198      424065 :          data_tmp = full_data(idata)
   35199      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35200      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35201      424065 :          pack_tmp = ISHFT(pack_tmp, -9)
   35202      424065 :          idata = idata + 1
   35203      424065 :          data_tmp = full_data(idata)
   35204      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35205      424065 :          data_tmp = IAND(data_tmp, mask_left(9))
   35206      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35207      424065 :          ipack = ipack + 1
   35208      424065 :          packed_data(ipack) = pack_tmp
   35209      424065 :          data_tmp = full_data(idata)
   35210      424065 :          pack_tmp = ISHFT(data_tmp, 28)
   35211      424065 :          pack_tmp = ISHFT(pack_tmp, -28)
   35212      424065 :          idata = idata + 1
   35213      424065 :          data_tmp = full_data(idata)
   35214      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35215      424065 :          data_tmp = IAND(data_tmp, mask_left(28))
   35216      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35217      424065 :          ipack = ipack + 1
   35218      424065 :          packed_data(ipack) = pack_tmp
   35219      424065 :          data_tmp = full_data(idata)
   35220      424065 :          pack_tmp = ISHFT(data_tmp, 47)
   35221      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35222      424065 :          idata = idata + 1
   35223      424065 :          data_tmp = full_data(idata)
   35224      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35225      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35226      424065 :          pack_tmp = ISHFT(pack_tmp, -2)
   35227      424065 :          idata = idata + 1
   35228      424065 :          data_tmp = full_data(idata)
   35229      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35230      424065 :          data_tmp = IAND(data_tmp, mask_left(2))
   35231      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35232      424065 :          ipack = ipack + 1
   35233      424065 :          packed_data(ipack) = pack_tmp
   35234      424065 :          data_tmp = full_data(idata)
   35235      424065 :          pack_tmp = ISHFT(data_tmp, 21)
   35236      424065 :          pack_tmp = ISHFT(pack_tmp, -21)
   35237      424065 :          idata = idata + 1
   35238      424065 :          data_tmp = full_data(idata)
   35239      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35240      424065 :          data_tmp = IAND(data_tmp, mask_left(21))
   35241      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35242      424065 :          ipack = ipack + 1
   35243      424065 :          packed_data(ipack) = pack_tmp
   35244      424065 :          data_tmp = full_data(idata)
   35245      424065 :          pack_tmp = ISHFT(data_tmp, 40)
   35246      424065 :          pack_tmp = ISHFT(pack_tmp, -40)
   35247      424065 :          idata = idata + 1
   35248      424065 :          data_tmp = full_data(idata)
   35249      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35250      424065 :          data_tmp = IAND(data_tmp, mask_left(40))
   35251      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35252      424065 :          ipack = ipack + 1
   35253      424065 :          packed_data(ipack) = pack_tmp
   35254      424065 :          data_tmp = full_data(idata)
   35255      424065 :          pack_tmp = ISHFT(data_tmp, 59)
   35256      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35257      424065 :          idata = idata + 1
   35258      424065 :          data_tmp = full_data(idata)
   35259      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35260      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35261      424065 :          pack_tmp = ISHFT(pack_tmp, -14)
   35262      424065 :          idata = idata + 1
   35263      424065 :          data_tmp = full_data(idata)
   35264      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35265      424065 :          data_tmp = IAND(data_tmp, mask_left(14))
   35266      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35267      424065 :          ipack = ipack + 1
   35268      424065 :          packed_data(ipack) = pack_tmp
   35269      424065 :          data_tmp = full_data(idata)
   35270      424065 :          pack_tmp = ISHFT(data_tmp, 33)
   35271      424065 :          pack_tmp = ISHFT(pack_tmp, -33)
   35272      424065 :          idata = idata + 1
   35273      424065 :          data_tmp = full_data(idata)
   35274      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35275      424065 :          data_tmp = IAND(data_tmp, mask_left(33))
   35276      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35277      424065 :          ipack = ipack + 1
   35278      424065 :          packed_data(ipack) = pack_tmp
   35279      424065 :          data_tmp = full_data(idata)
   35280      424065 :          pack_tmp = ISHFT(data_tmp, 52)
   35281      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35282      424065 :          idata = idata + 1
   35283      424065 :          data_tmp = full_data(idata)
   35284      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35285      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35286      424065 :          pack_tmp = ISHFT(pack_tmp, -7)
   35287      424065 :          idata = idata + 1
   35288      424065 :          data_tmp = full_data(idata)
   35289      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35290      424065 :          data_tmp = IAND(data_tmp, mask_left(7))
   35291      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35292      424065 :          ipack = ipack + 1
   35293      424065 :          packed_data(ipack) = pack_tmp
   35294      424065 :          data_tmp = full_data(idata)
   35295      424065 :          pack_tmp = ISHFT(data_tmp, 26)
   35296      424065 :          pack_tmp = ISHFT(pack_tmp, -26)
   35297      424065 :          idata = idata + 1
   35298      424065 :          data_tmp = full_data(idata)
   35299      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35300      424065 :          data_tmp = IAND(data_tmp, mask_left(26))
   35301      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35302      424065 :          ipack = ipack + 1
   35303      424065 :          packed_data(ipack) = pack_tmp
   35304      424065 :          data_tmp = full_data(idata)
   35305      424065 :          pack_tmp = ISHFT(data_tmp, 45)
   35306      424065 :          pack_tmp = ISHFT(pack_tmp, -45)
   35307      424065 :          idata = idata + 1
   35308      424065 :          data_tmp = full_data(idata)
   35309      424065 :          data_tmp = ISHFT(data_tmp, 19)
   35310      424065 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35311             :          pack_tmp = ISHFT(pack_tmp, 0)
   35312      424065 :          pack_tmp = ISHFT(pack_tmp, 0)
   35313      424065 :          ipack = ipack + 1
   35314      424116 :          packed_data(ipack) = pack_tmp
   35315             :       END DO
   35316       29155 :       IF (Ndata_rep < Ndata) THEN
   35317        4990 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35318             :       END IF
   35319       29155 :    END SUBROUTINE ints2bits_45
   35320             : 
   35321             : ! **************************************************************************************************
   35322             : !> \brief ...
   35323             : !> \param Ndata ...
   35324             : !> \param packed_data ...
   35325             : !> \param full_data ...
   35326             : ! **************************************************************************************************
   35327      132204 :    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      132204 :       ipack = 0
   35338      132204 :       idata = 0
   35339      132204 :       pack_tmp = 0
   35340      132204 :       Ndata_rep = (Ndata/64)*64
   35341      132204 :       DO kdata = 1, Ndata_rep, 64
   35342     1847004 :          idata = idata + 1
   35343     1847004 :          data_tmp = ISHFT(pack_tmp, 45)
   35344     1847004 :          ipack = ipack + 1
   35345     1847004 :          pack_tmp = packed_data(ipack)
   35346     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   35347     1847004 :          pack_tmp = ISHFT(pack_tmp, -45)
   35348     1847004 :          idata = idata + 1
   35349     1847004 :          data_tmp = ISHFT(pack_tmp, 26)
   35350     1847004 :          ipack = ipack + 1
   35351     1847004 :          pack_tmp = packed_data(ipack)
   35352     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   35353     1847004 :          pack_tmp = ISHFT(pack_tmp, -26)
   35354     1847004 :          idata = idata + 1
   35355     1847004 :          data_tmp = ISHFT(pack_tmp, 7)
   35356     1847004 :          ipack = ipack + 1
   35357     1847004 :          pack_tmp = packed_data(ipack)
   35358     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   35359     1847004 :          pack_tmp = ISHFT(pack_tmp, -7)
   35360     1847004 :          idata = idata + 1
   35361     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35362     1847004 :          full_data(idata) = data_tmp
   35363     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35364     1847004 :          idata = idata + 1
   35365     1847004 :          data_tmp = ISHFT(pack_tmp, 33)
   35366     1847004 :          ipack = ipack + 1
   35367     1847004 :          pack_tmp = packed_data(ipack)
   35368     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   35369     1847004 :          pack_tmp = ISHFT(pack_tmp, -33)
   35370     1847004 :          idata = idata + 1
   35371     1847004 :          data_tmp = ISHFT(pack_tmp, 14)
   35372     1847004 :          ipack = ipack + 1
   35373     1847004 :          pack_tmp = packed_data(ipack)
   35374     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   35375     1847004 :          pack_tmp = ISHFT(pack_tmp, -14)
   35376     1847004 :          idata = idata + 1
   35377     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35378     1847004 :          full_data(idata) = data_tmp
   35379     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35380     1847004 :          idata = idata + 1
   35381     1847004 :          data_tmp = ISHFT(pack_tmp, 40)
   35382     1847004 :          ipack = ipack + 1
   35383     1847004 :          pack_tmp = packed_data(ipack)
   35384     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   35385     1847004 :          pack_tmp = ISHFT(pack_tmp, -40)
   35386     1847004 :          idata = idata + 1
   35387     1847004 :          data_tmp = ISHFT(pack_tmp, 21)
   35388     1847004 :          ipack = ipack + 1
   35389     1847004 :          pack_tmp = packed_data(ipack)
   35390     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   35391     1847004 :          pack_tmp = ISHFT(pack_tmp, -21)
   35392     1847004 :          idata = idata + 1
   35393     1847004 :          data_tmp = ISHFT(pack_tmp, 2)
   35394     1847004 :          ipack = ipack + 1
   35395     1847004 :          pack_tmp = packed_data(ipack)
   35396     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   35397     1847004 :          pack_tmp = ISHFT(pack_tmp, -2)
   35398     1847004 :          idata = idata + 1
   35399     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35400     1847004 :          full_data(idata) = data_tmp
   35401     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35402     1847004 :          idata = idata + 1
   35403     1847004 :          data_tmp = ISHFT(pack_tmp, 28)
   35404     1847004 :          ipack = ipack + 1
   35405     1847004 :          pack_tmp = packed_data(ipack)
   35406     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   35407     1847004 :          pack_tmp = ISHFT(pack_tmp, -28)
   35408     1847004 :          idata = idata + 1
   35409     1847004 :          data_tmp = ISHFT(pack_tmp, 9)
   35410     1847004 :          ipack = ipack + 1
   35411     1847004 :          pack_tmp = packed_data(ipack)
   35412     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   35413     1847004 :          pack_tmp = ISHFT(pack_tmp, -9)
   35414     1847004 :          idata = idata + 1
   35415     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35416     1847004 :          full_data(idata) = data_tmp
   35417     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35418     1847004 :          idata = idata + 1
   35419     1847004 :          data_tmp = ISHFT(pack_tmp, 35)
   35420     1847004 :          ipack = ipack + 1
   35421     1847004 :          pack_tmp = packed_data(ipack)
   35422     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   35423     1847004 :          pack_tmp = ISHFT(pack_tmp, -35)
   35424     1847004 :          idata = idata + 1
   35425     1847004 :          data_tmp = ISHFT(pack_tmp, 16)
   35426     1847004 :          ipack = ipack + 1
   35427     1847004 :          pack_tmp = packed_data(ipack)
   35428     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   35429     1847004 :          pack_tmp = ISHFT(pack_tmp, -16)
   35430     1847004 :          idata = idata + 1
   35431     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35432     1847004 :          full_data(idata) = data_tmp
   35433     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35434     1847004 :          idata = idata + 1
   35435     1847004 :          data_tmp = ISHFT(pack_tmp, 42)
   35436     1847004 :          ipack = ipack + 1
   35437     1847004 :          pack_tmp = packed_data(ipack)
   35438     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   35439     1847004 :          pack_tmp = ISHFT(pack_tmp, -42)
   35440     1847004 :          idata = idata + 1
   35441     1847004 :          data_tmp = ISHFT(pack_tmp, 23)
   35442     1847004 :          ipack = ipack + 1
   35443     1847004 :          pack_tmp = packed_data(ipack)
   35444     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   35445     1847004 :          pack_tmp = ISHFT(pack_tmp, -23)
   35446     1847004 :          idata = idata + 1
   35447     1847004 :          data_tmp = ISHFT(pack_tmp, 4)
   35448     1847004 :          ipack = ipack + 1
   35449     1847004 :          pack_tmp = packed_data(ipack)
   35450     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   35451     1847004 :          pack_tmp = ISHFT(pack_tmp, -4)
   35452     1847004 :          idata = idata + 1
   35453     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35454     1847004 :          full_data(idata) = data_tmp
   35455     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35456     1847004 :          idata = idata + 1
   35457     1847004 :          data_tmp = ISHFT(pack_tmp, 30)
   35458     1847004 :          ipack = ipack + 1
   35459     1847004 :          pack_tmp = packed_data(ipack)
   35460     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   35461     1847004 :          pack_tmp = ISHFT(pack_tmp, -30)
   35462     1847004 :          idata = idata + 1
   35463     1847004 :          data_tmp = ISHFT(pack_tmp, 11)
   35464     1847004 :          ipack = ipack + 1
   35465     1847004 :          pack_tmp = packed_data(ipack)
   35466     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   35467     1847004 :          pack_tmp = ISHFT(pack_tmp, -11)
   35468     1847004 :          idata = idata + 1
   35469     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35470     1847004 :          full_data(idata) = data_tmp
   35471     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35472     1847004 :          idata = idata + 1
   35473     1847004 :          data_tmp = ISHFT(pack_tmp, 37)
   35474     1847004 :          ipack = ipack + 1
   35475     1847004 :          pack_tmp = packed_data(ipack)
   35476     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   35477     1847004 :          pack_tmp = ISHFT(pack_tmp, -37)
   35478     1847004 :          idata = idata + 1
   35479     1847004 :          data_tmp = ISHFT(pack_tmp, 18)
   35480     1847004 :          ipack = ipack + 1
   35481     1847004 :          pack_tmp = packed_data(ipack)
   35482     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   35483     1847004 :          pack_tmp = ISHFT(pack_tmp, -18)
   35484     1847004 :          idata = idata + 1
   35485     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35486     1847004 :          full_data(idata) = data_tmp
   35487     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35488     1847004 :          idata = idata + 1
   35489     1847004 :          data_tmp = ISHFT(pack_tmp, 44)
   35490     1847004 :          ipack = ipack + 1
   35491     1847004 :          pack_tmp = packed_data(ipack)
   35492     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   35493     1847004 :          pack_tmp = ISHFT(pack_tmp, -44)
   35494     1847004 :          idata = idata + 1
   35495     1847004 :          data_tmp = ISHFT(pack_tmp, 25)
   35496     1847004 :          ipack = ipack + 1
   35497     1847004 :          pack_tmp = packed_data(ipack)
   35498     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   35499     1847004 :          pack_tmp = ISHFT(pack_tmp, -25)
   35500     1847004 :          idata = idata + 1
   35501     1847004 :          data_tmp = ISHFT(pack_tmp, 6)
   35502     1847004 :          ipack = ipack + 1
   35503     1847004 :          pack_tmp = packed_data(ipack)
   35504     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   35505     1847004 :          pack_tmp = ISHFT(pack_tmp, -6)
   35506     1847004 :          idata = idata + 1
   35507     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35508     1847004 :          full_data(idata) = data_tmp
   35509     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35510     1847004 :          idata = idata + 1
   35511     1847004 :          data_tmp = ISHFT(pack_tmp, 32)
   35512     1847004 :          ipack = ipack + 1
   35513     1847004 :          pack_tmp = packed_data(ipack)
   35514     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   35515     1847004 :          pack_tmp = ISHFT(pack_tmp, -32)
   35516     1847004 :          idata = idata + 1
   35517     1847004 :          data_tmp = ISHFT(pack_tmp, 13)
   35518     1847004 :          ipack = ipack + 1
   35519     1847004 :          pack_tmp = packed_data(ipack)
   35520     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   35521     1847004 :          pack_tmp = ISHFT(pack_tmp, -13)
   35522     1847004 :          idata = idata + 1
   35523     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35524     1847004 :          full_data(idata) = data_tmp
   35525     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35526     1847004 :          idata = idata + 1
   35527     1847004 :          data_tmp = ISHFT(pack_tmp, 39)
   35528     1847004 :          ipack = ipack + 1
   35529     1847004 :          pack_tmp = packed_data(ipack)
   35530     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   35531     1847004 :          pack_tmp = ISHFT(pack_tmp, -39)
   35532     1847004 :          idata = idata + 1
   35533     1847004 :          data_tmp = ISHFT(pack_tmp, 20)
   35534     1847004 :          ipack = ipack + 1
   35535     1847004 :          pack_tmp = packed_data(ipack)
   35536     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   35537     1847004 :          pack_tmp = ISHFT(pack_tmp, -20)
   35538     1847004 :          idata = idata + 1
   35539     1847004 :          data_tmp = ISHFT(pack_tmp, 1)
   35540     1847004 :          ipack = ipack + 1
   35541     1847004 :          pack_tmp = packed_data(ipack)
   35542     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   35543     1847004 :          pack_tmp = ISHFT(pack_tmp, -1)
   35544     1847004 :          idata = idata + 1
   35545     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35546     1847004 :          full_data(idata) = data_tmp
   35547     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35548     1847004 :          idata = idata + 1
   35549     1847004 :          data_tmp = ISHFT(pack_tmp, 27)
   35550     1847004 :          ipack = ipack + 1
   35551     1847004 :          pack_tmp = packed_data(ipack)
   35552     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   35553     1847004 :          pack_tmp = ISHFT(pack_tmp, -27)
   35554     1847004 :          idata = idata + 1
   35555     1847004 :          data_tmp = ISHFT(pack_tmp, 8)
   35556     1847004 :          ipack = ipack + 1
   35557     1847004 :          pack_tmp = packed_data(ipack)
   35558     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   35559     1847004 :          pack_tmp = ISHFT(pack_tmp, -8)
   35560     1847004 :          idata = idata + 1
   35561     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35562     1847004 :          full_data(idata) = data_tmp
   35563     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35564     1847004 :          idata = idata + 1
   35565     1847004 :          data_tmp = ISHFT(pack_tmp, 34)
   35566     1847004 :          ipack = ipack + 1
   35567     1847004 :          pack_tmp = packed_data(ipack)
   35568     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   35569     1847004 :          pack_tmp = ISHFT(pack_tmp, -34)
   35570     1847004 :          idata = idata + 1
   35571     1847004 :          data_tmp = ISHFT(pack_tmp, 15)
   35572     1847004 :          ipack = ipack + 1
   35573     1847004 :          pack_tmp = packed_data(ipack)
   35574     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   35575     1847004 :          pack_tmp = ISHFT(pack_tmp, -15)
   35576     1847004 :          idata = idata + 1
   35577     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35578     1847004 :          full_data(idata) = data_tmp
   35579     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35580     1847004 :          idata = idata + 1
   35581     1847004 :          data_tmp = ISHFT(pack_tmp, 41)
   35582     1847004 :          ipack = ipack + 1
   35583     1847004 :          pack_tmp = packed_data(ipack)
   35584     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   35585     1847004 :          pack_tmp = ISHFT(pack_tmp, -41)
   35586     1847004 :          idata = idata + 1
   35587     1847004 :          data_tmp = ISHFT(pack_tmp, 22)
   35588     1847004 :          ipack = ipack + 1
   35589     1847004 :          pack_tmp = packed_data(ipack)
   35590     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   35591     1847004 :          pack_tmp = ISHFT(pack_tmp, -22)
   35592     1847004 :          idata = idata + 1
   35593     1847004 :          data_tmp = ISHFT(pack_tmp, 3)
   35594     1847004 :          ipack = ipack + 1
   35595     1847004 :          pack_tmp = packed_data(ipack)
   35596     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   35597     1847004 :          pack_tmp = ISHFT(pack_tmp, -3)
   35598     1847004 :          idata = idata + 1
   35599     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35600     1847004 :          full_data(idata) = data_tmp
   35601     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35602     1847004 :          idata = idata + 1
   35603     1847004 :          data_tmp = ISHFT(pack_tmp, 29)
   35604     1847004 :          ipack = ipack + 1
   35605     1847004 :          pack_tmp = packed_data(ipack)
   35606     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   35607     1847004 :          pack_tmp = ISHFT(pack_tmp, -29)
   35608     1847004 :          idata = idata + 1
   35609     1847004 :          data_tmp = ISHFT(pack_tmp, 10)
   35610     1847004 :          ipack = ipack + 1
   35611     1847004 :          pack_tmp = packed_data(ipack)
   35612     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   35613     1847004 :          pack_tmp = ISHFT(pack_tmp, -10)
   35614     1847004 :          idata = idata + 1
   35615     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35616     1847004 :          full_data(idata) = data_tmp
   35617     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35618     1847004 :          idata = idata + 1
   35619     1847004 :          data_tmp = ISHFT(pack_tmp, 36)
   35620     1847004 :          ipack = ipack + 1
   35621     1847004 :          pack_tmp = packed_data(ipack)
   35622     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   35623     1847004 :          pack_tmp = ISHFT(pack_tmp, -36)
   35624     1847004 :          idata = idata + 1
   35625     1847004 :          data_tmp = ISHFT(pack_tmp, 17)
   35626     1847004 :          ipack = ipack + 1
   35627     1847004 :          pack_tmp = packed_data(ipack)
   35628     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   35629     1847004 :          pack_tmp = ISHFT(pack_tmp, -17)
   35630     1847004 :          idata = idata + 1
   35631     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35632     1847004 :          full_data(idata) = data_tmp
   35633     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35634     1847004 :          idata = idata + 1
   35635     1847004 :          data_tmp = ISHFT(pack_tmp, 43)
   35636     1847004 :          ipack = ipack + 1
   35637     1847004 :          pack_tmp = packed_data(ipack)
   35638     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   35639     1847004 :          pack_tmp = ISHFT(pack_tmp, -43)
   35640     1847004 :          idata = idata + 1
   35641     1847004 :          data_tmp = ISHFT(pack_tmp, 24)
   35642     1847004 :          ipack = ipack + 1
   35643     1847004 :          pack_tmp = packed_data(ipack)
   35644     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   35645     1847004 :          pack_tmp = ISHFT(pack_tmp, -24)
   35646     1847004 :          idata = idata + 1
   35647     1847004 :          data_tmp = ISHFT(pack_tmp, 5)
   35648     1847004 :          ipack = ipack + 1
   35649     1847004 :          pack_tmp = packed_data(ipack)
   35650     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   35651     1847004 :          pack_tmp = ISHFT(pack_tmp, -5)
   35652     1847004 :          idata = idata + 1
   35653     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35654     1847004 :          full_data(idata) = data_tmp
   35655     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35656     1847004 :          idata = idata + 1
   35657     1847004 :          data_tmp = ISHFT(pack_tmp, 31)
   35658     1847004 :          ipack = ipack + 1
   35659     1847004 :          pack_tmp = packed_data(ipack)
   35660     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   35661     1847004 :          pack_tmp = ISHFT(pack_tmp, -31)
   35662     1847004 :          idata = idata + 1
   35663     1847004 :          data_tmp = ISHFT(pack_tmp, 12)
   35664     1847004 :          ipack = ipack + 1
   35665     1847004 :          pack_tmp = packed_data(ipack)
   35666     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   35667     1847004 :          pack_tmp = ISHFT(pack_tmp, -12)
   35668     1847004 :          idata = idata + 1
   35669     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35670     1847004 :          full_data(idata) = data_tmp
   35671     1847004 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35672     1847004 :          idata = idata + 1
   35673     1847004 :          data_tmp = ISHFT(pack_tmp, 38)
   35674     1847004 :          ipack = ipack + 1
   35675     1847004 :          pack_tmp = packed_data(ipack)
   35676     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   35677     1847004 :          pack_tmp = ISHFT(pack_tmp, -38)
   35678     1847004 :          idata = idata + 1
   35679     1847004 :          data_tmp = ISHFT(pack_tmp, 19)
   35680     1847004 :          ipack = ipack + 1
   35681     1847004 :          pack_tmp = packed_data(ipack)
   35682     1847004 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   35683     1847004 :          pack_tmp = ISHFT(pack_tmp, -19)
   35684     1847004 :          idata = idata + 1
   35685     1847004 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35686     1847004 :          full_data(idata) = data_tmp
   35687     1847980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35688             :       END DO
   35689      132204 :       IF (Ndata_rep < Ndata) THEN
   35690       31560 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35691             :       END IF
   35692      132204 :    END SUBROUTINE bits2ints_45
   35693             : 
   35694             : ! **************************************************************************************************
   35695             : !> \brief ...
   35696             : !> \param Ndata ...
   35697             : !> \param packed_data ...
   35698             : !> \param full_data ...
   35699             : ! **************************************************************************************************
   35700       28676 :    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       28676 :       idata = 0
   35711       28676 :       ipack = 0
   35712       28676 :       Ndata_rep = (Ndata/64)*64
   35713       28676 :       DO kdata = 1, Ndata_rep, 64
   35714      419135 :          pack_tmp = 0
   35715      419135 :          idata = idata + 1
   35716      419135 :          data_tmp = full_data(idata)
   35717      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35718      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35719      419135 :          pack_tmp = ISHFT(pack_tmp, -18)
   35720      419135 :          idata = idata + 1
   35721      419135 :          data_tmp = full_data(idata)
   35722      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35723      419135 :          data_tmp = IAND(data_tmp, mask_left(18))
   35724      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35725      419135 :          ipack = ipack + 1
   35726      419135 :          packed_data(ipack) = pack_tmp
   35727      419135 :          data_tmp = full_data(idata)
   35728      419135 :          pack_tmp = ISHFT(data_tmp, 36)
   35729      419135 :          pack_tmp = ISHFT(pack_tmp, -36)
   35730      419135 :          idata = idata + 1
   35731      419135 :          data_tmp = full_data(idata)
   35732      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35733      419135 :          data_tmp = IAND(data_tmp, mask_left(36))
   35734      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35735      419135 :          ipack = ipack + 1
   35736      419135 :          packed_data(ipack) = pack_tmp
   35737      419135 :          data_tmp = full_data(idata)
   35738      419135 :          pack_tmp = ISHFT(data_tmp, 54)
   35739      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35740      419135 :          idata = idata + 1
   35741      419135 :          data_tmp = full_data(idata)
   35742      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35743      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35744      419135 :          pack_tmp = ISHFT(pack_tmp, -8)
   35745      419135 :          idata = idata + 1
   35746      419135 :          data_tmp = full_data(idata)
   35747      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35748      419135 :          data_tmp = IAND(data_tmp, mask_left(8))
   35749      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35750      419135 :          ipack = ipack + 1
   35751      419135 :          packed_data(ipack) = pack_tmp
   35752      419135 :          data_tmp = full_data(idata)
   35753      419135 :          pack_tmp = ISHFT(data_tmp, 26)
   35754      419135 :          pack_tmp = ISHFT(pack_tmp, -26)
   35755      419135 :          idata = idata + 1
   35756      419135 :          data_tmp = full_data(idata)
   35757      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35758      419135 :          data_tmp = IAND(data_tmp, mask_left(26))
   35759      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35760      419135 :          ipack = ipack + 1
   35761      419135 :          packed_data(ipack) = pack_tmp
   35762      419135 :          data_tmp = full_data(idata)
   35763      419135 :          pack_tmp = ISHFT(data_tmp, 44)
   35764      419135 :          pack_tmp = ISHFT(pack_tmp, -44)
   35765      419135 :          idata = idata + 1
   35766      419135 :          data_tmp = full_data(idata)
   35767      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35768      419135 :          data_tmp = IAND(data_tmp, mask_left(44))
   35769      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35770      419135 :          ipack = ipack + 1
   35771      419135 :          packed_data(ipack) = pack_tmp
   35772      419135 :          data_tmp = full_data(idata)
   35773      419135 :          pack_tmp = ISHFT(data_tmp, 62)
   35774      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35775      419135 :          idata = idata + 1
   35776      419135 :          data_tmp = full_data(idata)
   35777      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35778      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35779      419135 :          pack_tmp = ISHFT(pack_tmp, -16)
   35780      419135 :          idata = idata + 1
   35781      419135 :          data_tmp = full_data(idata)
   35782      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35783      419135 :          data_tmp = IAND(data_tmp, mask_left(16))
   35784      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35785      419135 :          ipack = ipack + 1
   35786      419135 :          packed_data(ipack) = pack_tmp
   35787      419135 :          data_tmp = full_data(idata)
   35788      419135 :          pack_tmp = ISHFT(data_tmp, 34)
   35789      419135 :          pack_tmp = ISHFT(pack_tmp, -34)
   35790      419135 :          idata = idata + 1
   35791      419135 :          data_tmp = full_data(idata)
   35792      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35793      419135 :          data_tmp = IAND(data_tmp, mask_left(34))
   35794      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35795      419135 :          ipack = ipack + 1
   35796      419135 :          packed_data(ipack) = pack_tmp
   35797      419135 :          data_tmp = full_data(idata)
   35798      419135 :          pack_tmp = ISHFT(data_tmp, 52)
   35799      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35800      419135 :          idata = idata + 1
   35801      419135 :          data_tmp = full_data(idata)
   35802      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35803      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35804      419135 :          pack_tmp = ISHFT(pack_tmp, -6)
   35805      419135 :          idata = idata + 1
   35806      419135 :          data_tmp = full_data(idata)
   35807      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35808      419135 :          data_tmp = IAND(data_tmp, mask_left(6))
   35809      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35810      419135 :          ipack = ipack + 1
   35811      419135 :          packed_data(ipack) = pack_tmp
   35812      419135 :          data_tmp = full_data(idata)
   35813      419135 :          pack_tmp = ISHFT(data_tmp, 24)
   35814      419135 :          pack_tmp = ISHFT(pack_tmp, -24)
   35815      419135 :          idata = idata + 1
   35816      419135 :          data_tmp = full_data(idata)
   35817      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35818      419135 :          data_tmp = IAND(data_tmp, mask_left(24))
   35819      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35820      419135 :          ipack = ipack + 1
   35821      419135 :          packed_data(ipack) = pack_tmp
   35822      419135 :          data_tmp = full_data(idata)
   35823      419135 :          pack_tmp = ISHFT(data_tmp, 42)
   35824      419135 :          pack_tmp = ISHFT(pack_tmp, -42)
   35825      419135 :          idata = idata + 1
   35826      419135 :          data_tmp = full_data(idata)
   35827      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35828      419135 :          data_tmp = IAND(data_tmp, mask_left(42))
   35829      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35830      419135 :          ipack = ipack + 1
   35831      419135 :          packed_data(ipack) = pack_tmp
   35832      419135 :          data_tmp = full_data(idata)
   35833      419135 :          pack_tmp = ISHFT(data_tmp, 60)
   35834      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35835      419135 :          idata = idata + 1
   35836      419135 :          data_tmp = full_data(idata)
   35837      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35838      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35839      419135 :          pack_tmp = ISHFT(pack_tmp, -14)
   35840      419135 :          idata = idata + 1
   35841      419135 :          data_tmp = full_data(idata)
   35842      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35843      419135 :          data_tmp = IAND(data_tmp, mask_left(14))
   35844      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35845      419135 :          ipack = ipack + 1
   35846      419135 :          packed_data(ipack) = pack_tmp
   35847      419135 :          data_tmp = full_data(idata)
   35848      419135 :          pack_tmp = ISHFT(data_tmp, 32)
   35849      419135 :          pack_tmp = ISHFT(pack_tmp, -32)
   35850      419135 :          idata = idata + 1
   35851      419135 :          data_tmp = full_data(idata)
   35852      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35853      419135 :          data_tmp = IAND(data_tmp, mask_left(32))
   35854      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35855      419135 :          ipack = ipack + 1
   35856      419135 :          packed_data(ipack) = pack_tmp
   35857      419135 :          data_tmp = full_data(idata)
   35858      419135 :          pack_tmp = ISHFT(data_tmp, 50)
   35859      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35860      419135 :          idata = idata + 1
   35861      419135 :          data_tmp = full_data(idata)
   35862      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35863      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35864      419135 :          pack_tmp = ISHFT(pack_tmp, -4)
   35865      419135 :          idata = idata + 1
   35866      419135 :          data_tmp = full_data(idata)
   35867      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35868      419135 :          data_tmp = IAND(data_tmp, mask_left(4))
   35869      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35870      419135 :          ipack = ipack + 1
   35871      419135 :          packed_data(ipack) = pack_tmp
   35872      419135 :          data_tmp = full_data(idata)
   35873      419135 :          pack_tmp = ISHFT(data_tmp, 22)
   35874      419135 :          pack_tmp = ISHFT(pack_tmp, -22)
   35875      419135 :          idata = idata + 1
   35876      419135 :          data_tmp = full_data(idata)
   35877      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35878      419135 :          data_tmp = IAND(data_tmp, mask_left(22))
   35879      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35880      419135 :          ipack = ipack + 1
   35881      419135 :          packed_data(ipack) = pack_tmp
   35882      419135 :          data_tmp = full_data(idata)
   35883      419135 :          pack_tmp = ISHFT(data_tmp, 40)
   35884      419135 :          pack_tmp = ISHFT(pack_tmp, -40)
   35885      419135 :          idata = idata + 1
   35886      419135 :          data_tmp = full_data(idata)
   35887      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35888      419135 :          data_tmp = IAND(data_tmp, mask_left(40))
   35889      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35890      419135 :          ipack = ipack + 1
   35891      419135 :          packed_data(ipack) = pack_tmp
   35892      419135 :          data_tmp = full_data(idata)
   35893      419135 :          pack_tmp = ISHFT(data_tmp, 58)
   35894      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35895      419135 :          idata = idata + 1
   35896      419135 :          data_tmp = full_data(idata)
   35897      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35898      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35899      419135 :          pack_tmp = ISHFT(pack_tmp, -12)
   35900      419135 :          idata = idata + 1
   35901      419135 :          data_tmp = full_data(idata)
   35902      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35903      419135 :          data_tmp = IAND(data_tmp, mask_left(12))
   35904      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35905      419135 :          ipack = ipack + 1
   35906      419135 :          packed_data(ipack) = pack_tmp
   35907      419135 :          data_tmp = full_data(idata)
   35908      419135 :          pack_tmp = ISHFT(data_tmp, 30)
   35909      419135 :          pack_tmp = ISHFT(pack_tmp, -30)
   35910      419135 :          idata = idata + 1
   35911      419135 :          data_tmp = full_data(idata)
   35912      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35913      419135 :          data_tmp = IAND(data_tmp, mask_left(30))
   35914      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35915      419135 :          ipack = ipack + 1
   35916      419135 :          packed_data(ipack) = pack_tmp
   35917      419135 :          data_tmp = full_data(idata)
   35918      419135 :          pack_tmp = ISHFT(data_tmp, 48)
   35919      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35920      419135 :          idata = idata + 1
   35921      419135 :          data_tmp = full_data(idata)
   35922      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35923      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35924      419135 :          pack_tmp = ISHFT(pack_tmp, -2)
   35925      419135 :          idata = idata + 1
   35926      419135 :          data_tmp = full_data(idata)
   35927      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35928      419135 :          data_tmp = IAND(data_tmp, mask_left(2))
   35929      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35930      419135 :          ipack = ipack + 1
   35931      419135 :          packed_data(ipack) = pack_tmp
   35932      419135 :          data_tmp = full_data(idata)
   35933      419135 :          pack_tmp = ISHFT(data_tmp, 20)
   35934      419135 :          pack_tmp = ISHFT(pack_tmp, -20)
   35935      419135 :          idata = idata + 1
   35936      419135 :          data_tmp = full_data(idata)
   35937      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35938      419135 :          data_tmp = IAND(data_tmp, mask_left(20))
   35939      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35940      419135 :          ipack = ipack + 1
   35941      419135 :          packed_data(ipack) = pack_tmp
   35942      419135 :          data_tmp = full_data(idata)
   35943      419135 :          pack_tmp = ISHFT(data_tmp, 38)
   35944      419135 :          pack_tmp = ISHFT(pack_tmp, -38)
   35945      419135 :          idata = idata + 1
   35946      419135 :          data_tmp = full_data(idata)
   35947      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35948      419135 :          data_tmp = IAND(data_tmp, mask_left(38))
   35949      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35950      419135 :          ipack = ipack + 1
   35951      419135 :          packed_data(ipack) = pack_tmp
   35952      419135 :          data_tmp = full_data(idata)
   35953      419135 :          pack_tmp = ISHFT(data_tmp, 56)
   35954      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35955      419135 :          idata = idata + 1
   35956      419135 :          data_tmp = full_data(idata)
   35957      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35958      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35959      419135 :          pack_tmp = ISHFT(pack_tmp, -10)
   35960      419135 :          idata = idata + 1
   35961      419135 :          data_tmp = full_data(idata)
   35962      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35963      419135 :          data_tmp = IAND(data_tmp, mask_left(10))
   35964      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35965      419135 :          ipack = ipack + 1
   35966      419135 :          packed_data(ipack) = pack_tmp
   35967      419135 :          data_tmp = full_data(idata)
   35968      419135 :          pack_tmp = ISHFT(data_tmp, 28)
   35969      419135 :          pack_tmp = ISHFT(pack_tmp, -28)
   35970      419135 :          idata = idata + 1
   35971      419135 :          data_tmp = full_data(idata)
   35972      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35973      419135 :          data_tmp = IAND(data_tmp, mask_left(28))
   35974      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35975      419135 :          ipack = ipack + 1
   35976      419135 :          packed_data(ipack) = pack_tmp
   35977      419135 :          data_tmp = full_data(idata)
   35978      419135 :          pack_tmp = ISHFT(data_tmp, 46)
   35979      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   35980      419135 :          idata = idata + 1
   35981      419135 :          data_tmp = full_data(idata)
   35982      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35983      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35984      419135 :          pack_tmp = ISHFT(pack_tmp, 0)
   35985      419135 :          idata = idata + 1
   35986      419135 :          data_tmp = full_data(idata)
   35987             :          data_tmp = ISHFT(data_tmp, 18)
   35988      419135 :          data_tmp = IAND(data_tmp, mask_left(0))
   35989      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35990      419135 :          ipack = ipack + 1
   35991      419135 :          packed_data(ipack) = pack_tmp
   35992      419135 :          data_tmp = full_data(idata)
   35993      419135 :          pack_tmp = ISHFT(data_tmp, 18)
   35994      419135 :          pack_tmp = ISHFT(pack_tmp, -18)
   35995      419135 :          idata = idata + 1
   35996      419135 :          data_tmp = full_data(idata)
   35997      419135 :          data_tmp = ISHFT(data_tmp, 18)
   35998      419135 :          data_tmp = IAND(data_tmp, mask_left(18))
   35999      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36000      419135 :          ipack = ipack + 1
   36001      419135 :          packed_data(ipack) = pack_tmp
   36002      419135 :          data_tmp = full_data(idata)
   36003      419135 :          pack_tmp = ISHFT(data_tmp, 36)
   36004      419135 :          pack_tmp = ISHFT(pack_tmp, -36)
   36005      419135 :          idata = idata + 1
   36006      419135 :          data_tmp = full_data(idata)
   36007      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36008      419135 :          data_tmp = IAND(data_tmp, mask_left(36))
   36009      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36010      419135 :          ipack = ipack + 1
   36011      419135 :          packed_data(ipack) = pack_tmp
   36012      419135 :          data_tmp = full_data(idata)
   36013      419135 :          pack_tmp = ISHFT(data_tmp, 54)
   36014      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36015      419135 :          idata = idata + 1
   36016      419135 :          data_tmp = full_data(idata)
   36017      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36018      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36019      419135 :          pack_tmp = ISHFT(pack_tmp, -8)
   36020      419135 :          idata = idata + 1
   36021      419135 :          data_tmp = full_data(idata)
   36022      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36023      419135 :          data_tmp = IAND(data_tmp, mask_left(8))
   36024      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36025      419135 :          ipack = ipack + 1
   36026      419135 :          packed_data(ipack) = pack_tmp
   36027      419135 :          data_tmp = full_data(idata)
   36028      419135 :          pack_tmp = ISHFT(data_tmp, 26)
   36029      419135 :          pack_tmp = ISHFT(pack_tmp, -26)
   36030      419135 :          idata = idata + 1
   36031      419135 :          data_tmp = full_data(idata)
   36032      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36033      419135 :          data_tmp = IAND(data_tmp, mask_left(26))
   36034      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36035      419135 :          ipack = ipack + 1
   36036      419135 :          packed_data(ipack) = pack_tmp
   36037      419135 :          data_tmp = full_data(idata)
   36038      419135 :          pack_tmp = ISHFT(data_tmp, 44)
   36039      419135 :          pack_tmp = ISHFT(pack_tmp, -44)
   36040      419135 :          idata = idata + 1
   36041      419135 :          data_tmp = full_data(idata)
   36042      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36043      419135 :          data_tmp = IAND(data_tmp, mask_left(44))
   36044      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36045      419135 :          ipack = ipack + 1
   36046      419135 :          packed_data(ipack) = pack_tmp
   36047      419135 :          data_tmp = full_data(idata)
   36048      419135 :          pack_tmp = ISHFT(data_tmp, 62)
   36049      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36050      419135 :          idata = idata + 1
   36051      419135 :          data_tmp = full_data(idata)
   36052      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36053      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36054      419135 :          pack_tmp = ISHFT(pack_tmp, -16)
   36055      419135 :          idata = idata + 1
   36056      419135 :          data_tmp = full_data(idata)
   36057      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36058      419135 :          data_tmp = IAND(data_tmp, mask_left(16))
   36059      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36060      419135 :          ipack = ipack + 1
   36061      419135 :          packed_data(ipack) = pack_tmp
   36062      419135 :          data_tmp = full_data(idata)
   36063      419135 :          pack_tmp = ISHFT(data_tmp, 34)
   36064      419135 :          pack_tmp = ISHFT(pack_tmp, -34)
   36065      419135 :          idata = idata + 1
   36066      419135 :          data_tmp = full_data(idata)
   36067      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36068      419135 :          data_tmp = IAND(data_tmp, mask_left(34))
   36069      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36070      419135 :          ipack = ipack + 1
   36071      419135 :          packed_data(ipack) = pack_tmp
   36072      419135 :          data_tmp = full_data(idata)
   36073      419135 :          pack_tmp = ISHFT(data_tmp, 52)
   36074      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36075      419135 :          idata = idata + 1
   36076      419135 :          data_tmp = full_data(idata)
   36077      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36078      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36079      419135 :          pack_tmp = ISHFT(pack_tmp, -6)
   36080      419135 :          idata = idata + 1
   36081      419135 :          data_tmp = full_data(idata)
   36082      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36083      419135 :          data_tmp = IAND(data_tmp, mask_left(6))
   36084      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36085      419135 :          ipack = ipack + 1
   36086      419135 :          packed_data(ipack) = pack_tmp
   36087      419135 :          data_tmp = full_data(idata)
   36088      419135 :          pack_tmp = ISHFT(data_tmp, 24)
   36089      419135 :          pack_tmp = ISHFT(pack_tmp, -24)
   36090      419135 :          idata = idata + 1
   36091      419135 :          data_tmp = full_data(idata)
   36092      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36093      419135 :          data_tmp = IAND(data_tmp, mask_left(24))
   36094      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36095      419135 :          ipack = ipack + 1
   36096      419135 :          packed_data(ipack) = pack_tmp
   36097      419135 :          data_tmp = full_data(idata)
   36098      419135 :          pack_tmp = ISHFT(data_tmp, 42)
   36099      419135 :          pack_tmp = ISHFT(pack_tmp, -42)
   36100      419135 :          idata = idata + 1
   36101      419135 :          data_tmp = full_data(idata)
   36102      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36103      419135 :          data_tmp = IAND(data_tmp, mask_left(42))
   36104      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36105      419135 :          ipack = ipack + 1
   36106      419135 :          packed_data(ipack) = pack_tmp
   36107      419135 :          data_tmp = full_data(idata)
   36108      419135 :          pack_tmp = ISHFT(data_tmp, 60)
   36109      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36110      419135 :          idata = idata + 1
   36111      419135 :          data_tmp = full_data(idata)
   36112      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36113      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36114      419135 :          pack_tmp = ISHFT(pack_tmp, -14)
   36115      419135 :          idata = idata + 1
   36116      419135 :          data_tmp = full_data(idata)
   36117      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36118      419135 :          data_tmp = IAND(data_tmp, mask_left(14))
   36119      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36120      419135 :          ipack = ipack + 1
   36121      419135 :          packed_data(ipack) = pack_tmp
   36122      419135 :          data_tmp = full_data(idata)
   36123      419135 :          pack_tmp = ISHFT(data_tmp, 32)
   36124      419135 :          pack_tmp = ISHFT(pack_tmp, -32)
   36125      419135 :          idata = idata + 1
   36126      419135 :          data_tmp = full_data(idata)
   36127      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36128      419135 :          data_tmp = IAND(data_tmp, mask_left(32))
   36129      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36130      419135 :          ipack = ipack + 1
   36131      419135 :          packed_data(ipack) = pack_tmp
   36132      419135 :          data_tmp = full_data(idata)
   36133      419135 :          pack_tmp = ISHFT(data_tmp, 50)
   36134      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36135      419135 :          idata = idata + 1
   36136      419135 :          data_tmp = full_data(idata)
   36137      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36138      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36139      419135 :          pack_tmp = ISHFT(pack_tmp, -4)
   36140      419135 :          idata = idata + 1
   36141      419135 :          data_tmp = full_data(idata)
   36142      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36143      419135 :          data_tmp = IAND(data_tmp, mask_left(4))
   36144      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36145      419135 :          ipack = ipack + 1
   36146      419135 :          packed_data(ipack) = pack_tmp
   36147      419135 :          data_tmp = full_data(idata)
   36148      419135 :          pack_tmp = ISHFT(data_tmp, 22)
   36149      419135 :          pack_tmp = ISHFT(pack_tmp, -22)
   36150      419135 :          idata = idata + 1
   36151      419135 :          data_tmp = full_data(idata)
   36152      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36153      419135 :          data_tmp = IAND(data_tmp, mask_left(22))
   36154      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36155      419135 :          ipack = ipack + 1
   36156      419135 :          packed_data(ipack) = pack_tmp
   36157      419135 :          data_tmp = full_data(idata)
   36158      419135 :          pack_tmp = ISHFT(data_tmp, 40)
   36159      419135 :          pack_tmp = ISHFT(pack_tmp, -40)
   36160      419135 :          idata = idata + 1
   36161      419135 :          data_tmp = full_data(idata)
   36162      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36163      419135 :          data_tmp = IAND(data_tmp, mask_left(40))
   36164      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36165      419135 :          ipack = ipack + 1
   36166      419135 :          packed_data(ipack) = pack_tmp
   36167      419135 :          data_tmp = full_data(idata)
   36168      419135 :          pack_tmp = ISHFT(data_tmp, 58)
   36169      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36170      419135 :          idata = idata + 1
   36171      419135 :          data_tmp = full_data(idata)
   36172      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36173      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36174      419135 :          pack_tmp = ISHFT(pack_tmp, -12)
   36175      419135 :          idata = idata + 1
   36176      419135 :          data_tmp = full_data(idata)
   36177      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36178      419135 :          data_tmp = IAND(data_tmp, mask_left(12))
   36179      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36180      419135 :          ipack = ipack + 1
   36181      419135 :          packed_data(ipack) = pack_tmp
   36182      419135 :          data_tmp = full_data(idata)
   36183      419135 :          pack_tmp = ISHFT(data_tmp, 30)
   36184      419135 :          pack_tmp = ISHFT(pack_tmp, -30)
   36185      419135 :          idata = idata + 1
   36186      419135 :          data_tmp = full_data(idata)
   36187      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36188      419135 :          data_tmp = IAND(data_tmp, mask_left(30))
   36189      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36190      419135 :          ipack = ipack + 1
   36191      419135 :          packed_data(ipack) = pack_tmp
   36192      419135 :          data_tmp = full_data(idata)
   36193      419135 :          pack_tmp = ISHFT(data_tmp, 48)
   36194      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36195      419135 :          idata = idata + 1
   36196      419135 :          data_tmp = full_data(idata)
   36197      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36198      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36199      419135 :          pack_tmp = ISHFT(pack_tmp, -2)
   36200      419135 :          idata = idata + 1
   36201      419135 :          data_tmp = full_data(idata)
   36202      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36203      419135 :          data_tmp = IAND(data_tmp, mask_left(2))
   36204      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36205      419135 :          ipack = ipack + 1
   36206      419135 :          packed_data(ipack) = pack_tmp
   36207      419135 :          data_tmp = full_data(idata)
   36208      419135 :          pack_tmp = ISHFT(data_tmp, 20)
   36209      419135 :          pack_tmp = ISHFT(pack_tmp, -20)
   36210      419135 :          idata = idata + 1
   36211      419135 :          data_tmp = full_data(idata)
   36212      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36213      419135 :          data_tmp = IAND(data_tmp, mask_left(20))
   36214      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36215      419135 :          ipack = ipack + 1
   36216      419135 :          packed_data(ipack) = pack_tmp
   36217      419135 :          data_tmp = full_data(idata)
   36218      419135 :          pack_tmp = ISHFT(data_tmp, 38)
   36219      419135 :          pack_tmp = ISHFT(pack_tmp, -38)
   36220      419135 :          idata = idata + 1
   36221      419135 :          data_tmp = full_data(idata)
   36222      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36223      419135 :          data_tmp = IAND(data_tmp, mask_left(38))
   36224      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36225      419135 :          ipack = ipack + 1
   36226      419135 :          packed_data(ipack) = pack_tmp
   36227      419135 :          data_tmp = full_data(idata)
   36228      419135 :          pack_tmp = ISHFT(data_tmp, 56)
   36229      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36230      419135 :          idata = idata + 1
   36231      419135 :          data_tmp = full_data(idata)
   36232      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36233      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36234      419135 :          pack_tmp = ISHFT(pack_tmp, -10)
   36235      419135 :          idata = idata + 1
   36236      419135 :          data_tmp = full_data(idata)
   36237      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36238      419135 :          data_tmp = IAND(data_tmp, mask_left(10))
   36239      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36240      419135 :          ipack = ipack + 1
   36241      419135 :          packed_data(ipack) = pack_tmp
   36242      419135 :          data_tmp = full_data(idata)
   36243      419135 :          pack_tmp = ISHFT(data_tmp, 28)
   36244      419135 :          pack_tmp = ISHFT(pack_tmp, -28)
   36245      419135 :          idata = idata + 1
   36246      419135 :          data_tmp = full_data(idata)
   36247      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36248      419135 :          data_tmp = IAND(data_tmp, mask_left(28))
   36249      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36250      419135 :          ipack = ipack + 1
   36251      419135 :          packed_data(ipack) = pack_tmp
   36252      419135 :          data_tmp = full_data(idata)
   36253      419135 :          pack_tmp = ISHFT(data_tmp, 46)
   36254      419135 :          pack_tmp = ISHFT(pack_tmp, -46)
   36255      419135 :          idata = idata + 1
   36256      419135 :          data_tmp = full_data(idata)
   36257      419135 :          data_tmp = ISHFT(data_tmp, 18)
   36258      419135 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36259             :          pack_tmp = ISHFT(pack_tmp, 0)
   36260      419135 :          pack_tmp = ISHFT(pack_tmp, 0)
   36261      419135 :          ipack = ipack + 1
   36262      419180 :          packed_data(ipack) = pack_tmp
   36263             :       END DO
   36264       28676 :       IF (Ndata_rep < Ndata) THEN
   36265        4546 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36266             :       END IF
   36267       28676 :    END SUBROUTINE ints2bits_46
   36268             : 
   36269             : ! **************************************************************************************************
   36270             : !> \brief ...
   36271             : !> \param Ndata ...
   36272             : !> \param packed_data ...
   36273             : !> \param full_data ...
   36274             : ! **************************************************************************************************
   36275      119985 :    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      119985 :       ipack = 0
   36286      119985 :       idata = 0
   36287      119985 :       pack_tmp = 0
   36288      119985 :       Ndata_rep = (Ndata/64)*64
   36289      119985 :       DO kdata = 1, Ndata_rep, 64
   36290     1733619 :          idata = idata + 1
   36291     1733619 :          data_tmp = ISHFT(pack_tmp, 46)
   36292     1733619 :          ipack = ipack + 1
   36293     1733619 :          pack_tmp = packed_data(ipack)
   36294     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36295     1733619 :          pack_tmp = ISHFT(pack_tmp, -46)
   36296     1733619 :          idata = idata + 1
   36297     1733619 :          data_tmp = ISHFT(pack_tmp, 28)
   36298     1733619 :          ipack = ipack + 1
   36299     1733619 :          pack_tmp = packed_data(ipack)
   36300     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36301     1733619 :          pack_tmp = ISHFT(pack_tmp, -28)
   36302     1733619 :          idata = idata + 1
   36303     1733619 :          data_tmp = ISHFT(pack_tmp, 10)
   36304     1733619 :          ipack = ipack + 1
   36305     1733619 :          pack_tmp = packed_data(ipack)
   36306     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36307     1733619 :          pack_tmp = ISHFT(pack_tmp, -10)
   36308     1733619 :          idata = idata + 1
   36309     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36310     1733619 :          full_data(idata) = data_tmp
   36311     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36312     1733619 :          idata = idata + 1
   36313     1733619 :          data_tmp = ISHFT(pack_tmp, 38)
   36314     1733619 :          ipack = ipack + 1
   36315     1733619 :          pack_tmp = packed_data(ipack)
   36316     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36317     1733619 :          pack_tmp = ISHFT(pack_tmp, -38)
   36318     1733619 :          idata = idata + 1
   36319     1733619 :          data_tmp = ISHFT(pack_tmp, 20)
   36320     1733619 :          ipack = ipack + 1
   36321     1733619 :          pack_tmp = packed_data(ipack)
   36322     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36323     1733619 :          pack_tmp = ISHFT(pack_tmp, -20)
   36324     1733619 :          idata = idata + 1
   36325     1733619 :          data_tmp = ISHFT(pack_tmp, 2)
   36326     1733619 :          ipack = ipack + 1
   36327     1733619 :          pack_tmp = packed_data(ipack)
   36328     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36329     1733619 :          pack_tmp = ISHFT(pack_tmp, -2)
   36330     1733619 :          idata = idata + 1
   36331     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36332     1733619 :          full_data(idata) = data_tmp
   36333     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36334     1733619 :          idata = idata + 1
   36335     1733619 :          data_tmp = ISHFT(pack_tmp, 30)
   36336     1733619 :          ipack = ipack + 1
   36337     1733619 :          pack_tmp = packed_data(ipack)
   36338     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36339     1733619 :          pack_tmp = ISHFT(pack_tmp, -30)
   36340     1733619 :          idata = idata + 1
   36341     1733619 :          data_tmp = ISHFT(pack_tmp, 12)
   36342     1733619 :          ipack = ipack + 1
   36343     1733619 :          pack_tmp = packed_data(ipack)
   36344     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36345     1733619 :          pack_tmp = ISHFT(pack_tmp, -12)
   36346     1733619 :          idata = idata + 1
   36347     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36348     1733619 :          full_data(idata) = data_tmp
   36349     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36350     1733619 :          idata = idata + 1
   36351     1733619 :          data_tmp = ISHFT(pack_tmp, 40)
   36352     1733619 :          ipack = ipack + 1
   36353     1733619 :          pack_tmp = packed_data(ipack)
   36354     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36355     1733619 :          pack_tmp = ISHFT(pack_tmp, -40)
   36356     1733619 :          idata = idata + 1
   36357     1733619 :          data_tmp = ISHFT(pack_tmp, 22)
   36358     1733619 :          ipack = ipack + 1
   36359     1733619 :          pack_tmp = packed_data(ipack)
   36360     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36361     1733619 :          pack_tmp = ISHFT(pack_tmp, -22)
   36362     1733619 :          idata = idata + 1
   36363     1733619 :          data_tmp = ISHFT(pack_tmp, 4)
   36364     1733619 :          ipack = ipack + 1
   36365     1733619 :          pack_tmp = packed_data(ipack)
   36366     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36367     1733619 :          pack_tmp = ISHFT(pack_tmp, -4)
   36368     1733619 :          idata = idata + 1
   36369     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36370     1733619 :          full_data(idata) = data_tmp
   36371     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36372     1733619 :          idata = idata + 1
   36373     1733619 :          data_tmp = ISHFT(pack_tmp, 32)
   36374     1733619 :          ipack = ipack + 1
   36375     1733619 :          pack_tmp = packed_data(ipack)
   36376     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36377     1733619 :          pack_tmp = ISHFT(pack_tmp, -32)
   36378     1733619 :          idata = idata + 1
   36379     1733619 :          data_tmp = ISHFT(pack_tmp, 14)
   36380     1733619 :          ipack = ipack + 1
   36381     1733619 :          pack_tmp = packed_data(ipack)
   36382     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36383     1733619 :          pack_tmp = ISHFT(pack_tmp, -14)
   36384     1733619 :          idata = idata + 1
   36385     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36386     1733619 :          full_data(idata) = data_tmp
   36387     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36388     1733619 :          idata = idata + 1
   36389     1733619 :          data_tmp = ISHFT(pack_tmp, 42)
   36390     1733619 :          ipack = ipack + 1
   36391     1733619 :          pack_tmp = packed_data(ipack)
   36392     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36393     1733619 :          pack_tmp = ISHFT(pack_tmp, -42)
   36394     1733619 :          idata = idata + 1
   36395     1733619 :          data_tmp = ISHFT(pack_tmp, 24)
   36396     1733619 :          ipack = ipack + 1
   36397     1733619 :          pack_tmp = packed_data(ipack)
   36398     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36399     1733619 :          pack_tmp = ISHFT(pack_tmp, -24)
   36400     1733619 :          idata = idata + 1
   36401     1733619 :          data_tmp = ISHFT(pack_tmp, 6)
   36402     1733619 :          ipack = ipack + 1
   36403     1733619 :          pack_tmp = packed_data(ipack)
   36404     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36405     1733619 :          pack_tmp = ISHFT(pack_tmp, -6)
   36406     1733619 :          idata = idata + 1
   36407     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36408     1733619 :          full_data(idata) = data_tmp
   36409     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36410     1733619 :          idata = idata + 1
   36411     1733619 :          data_tmp = ISHFT(pack_tmp, 34)
   36412     1733619 :          ipack = ipack + 1
   36413     1733619 :          pack_tmp = packed_data(ipack)
   36414     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36415     1733619 :          pack_tmp = ISHFT(pack_tmp, -34)
   36416     1733619 :          idata = idata + 1
   36417     1733619 :          data_tmp = ISHFT(pack_tmp, 16)
   36418     1733619 :          ipack = ipack + 1
   36419     1733619 :          pack_tmp = packed_data(ipack)
   36420     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36421     1733619 :          pack_tmp = ISHFT(pack_tmp, -16)
   36422     1733619 :          idata = idata + 1
   36423     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36424     1733619 :          full_data(idata) = data_tmp
   36425     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36426     1733619 :          idata = idata + 1
   36427     1733619 :          data_tmp = ISHFT(pack_tmp, 44)
   36428     1733619 :          ipack = ipack + 1
   36429     1733619 :          pack_tmp = packed_data(ipack)
   36430     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36431     1733619 :          pack_tmp = ISHFT(pack_tmp, -44)
   36432     1733619 :          idata = idata + 1
   36433     1733619 :          data_tmp = ISHFT(pack_tmp, 26)
   36434     1733619 :          ipack = ipack + 1
   36435     1733619 :          pack_tmp = packed_data(ipack)
   36436     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36437     1733619 :          pack_tmp = ISHFT(pack_tmp, -26)
   36438     1733619 :          idata = idata + 1
   36439     1733619 :          data_tmp = ISHFT(pack_tmp, 8)
   36440     1733619 :          ipack = ipack + 1
   36441     1733619 :          pack_tmp = packed_data(ipack)
   36442     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36443     1733619 :          pack_tmp = ISHFT(pack_tmp, -8)
   36444     1733619 :          idata = idata + 1
   36445     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36446     1733619 :          full_data(idata) = data_tmp
   36447     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36448     1733619 :          idata = idata + 1
   36449     1733619 :          data_tmp = ISHFT(pack_tmp, 36)
   36450     1733619 :          ipack = ipack + 1
   36451     1733619 :          pack_tmp = packed_data(ipack)
   36452     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36453     1733619 :          pack_tmp = ISHFT(pack_tmp, -36)
   36454     1733619 :          idata = idata + 1
   36455     1733619 :          data_tmp = ISHFT(pack_tmp, 18)
   36456     1733619 :          ipack = ipack + 1
   36457     1733619 :          pack_tmp = packed_data(ipack)
   36458     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36459     1733619 :          pack_tmp = ISHFT(pack_tmp, -18)
   36460     1733619 :          idata = idata + 1
   36461     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36462     1733619 :          full_data(idata) = data_tmp
   36463     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36464     1733619 :          idata = idata + 1
   36465     1733619 :          data_tmp = ISHFT(pack_tmp, 46)
   36466     1733619 :          ipack = ipack + 1
   36467     1733619 :          pack_tmp = packed_data(ipack)
   36468     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36469     1733619 :          pack_tmp = ISHFT(pack_tmp, -46)
   36470     1733619 :          idata = idata + 1
   36471     1733619 :          data_tmp = ISHFT(pack_tmp, 28)
   36472     1733619 :          ipack = ipack + 1
   36473     1733619 :          pack_tmp = packed_data(ipack)
   36474     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36475     1733619 :          pack_tmp = ISHFT(pack_tmp, -28)
   36476     1733619 :          idata = idata + 1
   36477     1733619 :          data_tmp = ISHFT(pack_tmp, 10)
   36478     1733619 :          ipack = ipack + 1
   36479     1733619 :          pack_tmp = packed_data(ipack)
   36480     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36481     1733619 :          pack_tmp = ISHFT(pack_tmp, -10)
   36482     1733619 :          idata = idata + 1
   36483     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36484     1733619 :          full_data(idata) = data_tmp
   36485     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36486     1733619 :          idata = idata + 1
   36487     1733619 :          data_tmp = ISHFT(pack_tmp, 38)
   36488     1733619 :          ipack = ipack + 1
   36489     1733619 :          pack_tmp = packed_data(ipack)
   36490     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36491     1733619 :          pack_tmp = ISHFT(pack_tmp, -38)
   36492     1733619 :          idata = idata + 1
   36493     1733619 :          data_tmp = ISHFT(pack_tmp, 20)
   36494     1733619 :          ipack = ipack + 1
   36495     1733619 :          pack_tmp = packed_data(ipack)
   36496     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36497     1733619 :          pack_tmp = ISHFT(pack_tmp, -20)
   36498     1733619 :          idata = idata + 1
   36499     1733619 :          data_tmp = ISHFT(pack_tmp, 2)
   36500     1733619 :          ipack = ipack + 1
   36501     1733619 :          pack_tmp = packed_data(ipack)
   36502     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36503     1733619 :          pack_tmp = ISHFT(pack_tmp, -2)
   36504     1733619 :          idata = idata + 1
   36505     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36506     1733619 :          full_data(idata) = data_tmp
   36507     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36508     1733619 :          idata = idata + 1
   36509     1733619 :          data_tmp = ISHFT(pack_tmp, 30)
   36510     1733619 :          ipack = ipack + 1
   36511     1733619 :          pack_tmp = packed_data(ipack)
   36512     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36513     1733619 :          pack_tmp = ISHFT(pack_tmp, -30)
   36514     1733619 :          idata = idata + 1
   36515     1733619 :          data_tmp = ISHFT(pack_tmp, 12)
   36516     1733619 :          ipack = ipack + 1
   36517     1733619 :          pack_tmp = packed_data(ipack)
   36518     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36519     1733619 :          pack_tmp = ISHFT(pack_tmp, -12)
   36520     1733619 :          idata = idata + 1
   36521     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36522     1733619 :          full_data(idata) = data_tmp
   36523     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36524     1733619 :          idata = idata + 1
   36525     1733619 :          data_tmp = ISHFT(pack_tmp, 40)
   36526     1733619 :          ipack = ipack + 1
   36527     1733619 :          pack_tmp = packed_data(ipack)
   36528     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36529     1733619 :          pack_tmp = ISHFT(pack_tmp, -40)
   36530     1733619 :          idata = idata + 1
   36531     1733619 :          data_tmp = ISHFT(pack_tmp, 22)
   36532     1733619 :          ipack = ipack + 1
   36533     1733619 :          pack_tmp = packed_data(ipack)
   36534     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36535     1733619 :          pack_tmp = ISHFT(pack_tmp, -22)
   36536     1733619 :          idata = idata + 1
   36537     1733619 :          data_tmp = ISHFT(pack_tmp, 4)
   36538     1733619 :          ipack = ipack + 1
   36539     1733619 :          pack_tmp = packed_data(ipack)
   36540     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36541     1733619 :          pack_tmp = ISHFT(pack_tmp, -4)
   36542     1733619 :          idata = idata + 1
   36543     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36544     1733619 :          full_data(idata) = data_tmp
   36545     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36546     1733619 :          idata = idata + 1
   36547     1733619 :          data_tmp = ISHFT(pack_tmp, 32)
   36548     1733619 :          ipack = ipack + 1
   36549     1733619 :          pack_tmp = packed_data(ipack)
   36550     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36551     1733619 :          pack_tmp = ISHFT(pack_tmp, -32)
   36552     1733619 :          idata = idata + 1
   36553     1733619 :          data_tmp = ISHFT(pack_tmp, 14)
   36554     1733619 :          ipack = ipack + 1
   36555     1733619 :          pack_tmp = packed_data(ipack)
   36556     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36557     1733619 :          pack_tmp = ISHFT(pack_tmp, -14)
   36558     1733619 :          idata = idata + 1
   36559     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36560     1733619 :          full_data(idata) = data_tmp
   36561     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36562     1733619 :          idata = idata + 1
   36563     1733619 :          data_tmp = ISHFT(pack_tmp, 42)
   36564     1733619 :          ipack = ipack + 1
   36565     1733619 :          pack_tmp = packed_data(ipack)
   36566     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36567     1733619 :          pack_tmp = ISHFT(pack_tmp, -42)
   36568     1733619 :          idata = idata + 1
   36569     1733619 :          data_tmp = ISHFT(pack_tmp, 24)
   36570     1733619 :          ipack = ipack + 1
   36571     1733619 :          pack_tmp = packed_data(ipack)
   36572     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36573     1733619 :          pack_tmp = ISHFT(pack_tmp, -24)
   36574     1733619 :          idata = idata + 1
   36575     1733619 :          data_tmp = ISHFT(pack_tmp, 6)
   36576     1733619 :          ipack = ipack + 1
   36577     1733619 :          pack_tmp = packed_data(ipack)
   36578     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36579     1733619 :          pack_tmp = ISHFT(pack_tmp, -6)
   36580     1733619 :          idata = idata + 1
   36581     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36582     1733619 :          full_data(idata) = data_tmp
   36583     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36584     1733619 :          idata = idata + 1
   36585     1733619 :          data_tmp = ISHFT(pack_tmp, 34)
   36586     1733619 :          ipack = ipack + 1
   36587     1733619 :          pack_tmp = packed_data(ipack)
   36588     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36589     1733619 :          pack_tmp = ISHFT(pack_tmp, -34)
   36590     1733619 :          idata = idata + 1
   36591     1733619 :          data_tmp = ISHFT(pack_tmp, 16)
   36592     1733619 :          ipack = ipack + 1
   36593     1733619 :          pack_tmp = packed_data(ipack)
   36594     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36595     1733619 :          pack_tmp = ISHFT(pack_tmp, -16)
   36596     1733619 :          idata = idata + 1
   36597     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36598     1733619 :          full_data(idata) = data_tmp
   36599     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36600     1733619 :          idata = idata + 1
   36601     1733619 :          data_tmp = ISHFT(pack_tmp, 44)
   36602     1733619 :          ipack = ipack + 1
   36603     1733619 :          pack_tmp = packed_data(ipack)
   36604     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36605     1733619 :          pack_tmp = ISHFT(pack_tmp, -44)
   36606     1733619 :          idata = idata + 1
   36607     1733619 :          data_tmp = ISHFT(pack_tmp, 26)
   36608     1733619 :          ipack = ipack + 1
   36609     1733619 :          pack_tmp = packed_data(ipack)
   36610     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36611     1733619 :          pack_tmp = ISHFT(pack_tmp, -26)
   36612     1733619 :          idata = idata + 1
   36613     1733619 :          data_tmp = ISHFT(pack_tmp, 8)
   36614     1733619 :          ipack = ipack + 1
   36615     1733619 :          pack_tmp = packed_data(ipack)
   36616     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36617     1733619 :          pack_tmp = ISHFT(pack_tmp, -8)
   36618     1733619 :          idata = idata + 1
   36619     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36620     1733619 :          full_data(idata) = data_tmp
   36621     1733619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36622     1733619 :          idata = idata + 1
   36623     1733619 :          data_tmp = ISHFT(pack_tmp, 36)
   36624     1733619 :          ipack = ipack + 1
   36625     1733619 :          pack_tmp = packed_data(ipack)
   36626     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36627     1733619 :          pack_tmp = ISHFT(pack_tmp, -36)
   36628     1733619 :          idata = idata + 1
   36629     1733619 :          data_tmp = ISHFT(pack_tmp, 18)
   36630     1733619 :          ipack = ipack + 1
   36631     1733619 :          pack_tmp = packed_data(ipack)
   36632     1733619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36633     1733619 :          pack_tmp = ISHFT(pack_tmp, -18)
   36634     1733619 :          idata = idata + 1
   36635     1733619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36636     1733619 :          full_data(idata) = data_tmp
   36637     1734065 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36638             :       END DO
   36639      119985 :       IF (Ndata_rep < Ndata) THEN
   36640       20474 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36641             :       END IF
   36642      119985 :    END SUBROUTINE bits2ints_46
   36643             : 
   36644             : ! **************************************************************************************************
   36645             : !> \brief ...
   36646             : !> \param Ndata ...
   36647             : !> \param packed_data ...
   36648             : !> \param full_data ...
   36649             : ! **************************************************************************************************
   36650       26112 :    SUBROUTINE ints2bits_47(Ndata, packed_data, full_data)
   36651             :       INTEGER, INTENT(IN)                                :: Ndata
   36652             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   36653             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   36654             : 
   36655             :       INTEGER, PARAMETER                                 :: Nbits = 47
   36656             : 
   36657             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   36658             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   36659             : 
   36660       26112 :       idata = 0
   36661       26112 :       ipack = 0
   36662       26112 :       Ndata_rep = (Ndata/64)*64
   36663       26112 :       DO kdata = 1, Ndata_rep, 64
   36664      398684 :          pack_tmp = 0
   36665      398684 :          idata = idata + 1
   36666      398684 :          data_tmp = full_data(idata)
   36667      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36668      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36669      398684 :          pack_tmp = ISHFT(pack_tmp, -17)
   36670      398684 :          idata = idata + 1
   36671      398684 :          data_tmp = full_data(idata)
   36672      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36673      398684 :          data_tmp = IAND(data_tmp, mask_left(17))
   36674      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36675      398684 :          ipack = ipack + 1
   36676      398684 :          packed_data(ipack) = pack_tmp
   36677      398684 :          data_tmp = full_data(idata)
   36678      398684 :          pack_tmp = ISHFT(data_tmp, 34)
   36679      398684 :          pack_tmp = ISHFT(pack_tmp, -34)
   36680      398684 :          idata = idata + 1
   36681      398684 :          data_tmp = full_data(idata)
   36682      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36683      398684 :          data_tmp = IAND(data_tmp, mask_left(34))
   36684      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36685      398684 :          ipack = ipack + 1
   36686      398684 :          packed_data(ipack) = pack_tmp
   36687      398684 :          data_tmp = full_data(idata)
   36688      398684 :          pack_tmp = ISHFT(data_tmp, 51)
   36689      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36690      398684 :          idata = idata + 1
   36691      398684 :          data_tmp = full_data(idata)
   36692      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36693      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36694      398684 :          pack_tmp = ISHFT(pack_tmp, -4)
   36695      398684 :          idata = idata + 1
   36696      398684 :          data_tmp = full_data(idata)
   36697      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36698      398684 :          data_tmp = IAND(data_tmp, mask_left(4))
   36699      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36700      398684 :          ipack = ipack + 1
   36701      398684 :          packed_data(ipack) = pack_tmp
   36702      398684 :          data_tmp = full_data(idata)
   36703      398684 :          pack_tmp = ISHFT(data_tmp, 21)
   36704      398684 :          pack_tmp = ISHFT(pack_tmp, -21)
   36705      398684 :          idata = idata + 1
   36706      398684 :          data_tmp = full_data(idata)
   36707      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36708      398684 :          data_tmp = IAND(data_tmp, mask_left(21))
   36709      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36710      398684 :          ipack = ipack + 1
   36711      398684 :          packed_data(ipack) = pack_tmp
   36712      398684 :          data_tmp = full_data(idata)
   36713      398684 :          pack_tmp = ISHFT(data_tmp, 38)
   36714      398684 :          pack_tmp = ISHFT(pack_tmp, -38)
   36715      398684 :          idata = idata + 1
   36716      398684 :          data_tmp = full_data(idata)
   36717      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36718      398684 :          data_tmp = IAND(data_tmp, mask_left(38))
   36719      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36720      398684 :          ipack = ipack + 1
   36721      398684 :          packed_data(ipack) = pack_tmp
   36722      398684 :          data_tmp = full_data(idata)
   36723      398684 :          pack_tmp = ISHFT(data_tmp, 55)
   36724      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36725      398684 :          idata = idata + 1
   36726      398684 :          data_tmp = full_data(idata)
   36727      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36728      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36729      398684 :          pack_tmp = ISHFT(pack_tmp, -8)
   36730      398684 :          idata = idata + 1
   36731      398684 :          data_tmp = full_data(idata)
   36732      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36733      398684 :          data_tmp = IAND(data_tmp, mask_left(8))
   36734      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36735      398684 :          ipack = ipack + 1
   36736      398684 :          packed_data(ipack) = pack_tmp
   36737      398684 :          data_tmp = full_data(idata)
   36738      398684 :          pack_tmp = ISHFT(data_tmp, 25)
   36739      398684 :          pack_tmp = ISHFT(pack_tmp, -25)
   36740      398684 :          idata = idata + 1
   36741      398684 :          data_tmp = full_data(idata)
   36742      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36743      398684 :          data_tmp = IAND(data_tmp, mask_left(25))
   36744      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36745      398684 :          ipack = ipack + 1
   36746      398684 :          packed_data(ipack) = pack_tmp
   36747      398684 :          data_tmp = full_data(idata)
   36748      398684 :          pack_tmp = ISHFT(data_tmp, 42)
   36749      398684 :          pack_tmp = ISHFT(pack_tmp, -42)
   36750      398684 :          idata = idata + 1
   36751      398684 :          data_tmp = full_data(idata)
   36752      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36753      398684 :          data_tmp = IAND(data_tmp, mask_left(42))
   36754      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36755      398684 :          ipack = ipack + 1
   36756      398684 :          packed_data(ipack) = pack_tmp
   36757      398684 :          data_tmp = full_data(idata)
   36758      398684 :          pack_tmp = ISHFT(data_tmp, 59)
   36759      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36760      398684 :          idata = idata + 1
   36761      398684 :          data_tmp = full_data(idata)
   36762      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36763      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36764      398684 :          pack_tmp = ISHFT(pack_tmp, -12)
   36765      398684 :          idata = idata + 1
   36766      398684 :          data_tmp = full_data(idata)
   36767      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36768      398684 :          data_tmp = IAND(data_tmp, mask_left(12))
   36769      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36770      398684 :          ipack = ipack + 1
   36771      398684 :          packed_data(ipack) = pack_tmp
   36772      398684 :          data_tmp = full_data(idata)
   36773      398684 :          pack_tmp = ISHFT(data_tmp, 29)
   36774      398684 :          pack_tmp = ISHFT(pack_tmp, -29)
   36775      398684 :          idata = idata + 1
   36776      398684 :          data_tmp = full_data(idata)
   36777      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36778      398684 :          data_tmp = IAND(data_tmp, mask_left(29))
   36779      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36780      398684 :          ipack = ipack + 1
   36781      398684 :          packed_data(ipack) = pack_tmp
   36782      398684 :          data_tmp = full_data(idata)
   36783      398684 :          pack_tmp = ISHFT(data_tmp, 46)
   36784      398684 :          pack_tmp = ISHFT(pack_tmp, -46)
   36785      398684 :          idata = idata + 1
   36786      398684 :          data_tmp = full_data(idata)
   36787      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36788      398684 :          data_tmp = IAND(data_tmp, mask_left(46))
   36789      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36790      398684 :          ipack = ipack + 1
   36791      398684 :          packed_data(ipack) = pack_tmp
   36792      398684 :          data_tmp = full_data(idata)
   36793      398684 :          pack_tmp = ISHFT(data_tmp, 63)
   36794      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36795      398684 :          idata = idata + 1
   36796      398684 :          data_tmp = full_data(idata)
   36797      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36798      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36799      398684 :          pack_tmp = ISHFT(pack_tmp, -16)
   36800      398684 :          idata = idata + 1
   36801      398684 :          data_tmp = full_data(idata)
   36802      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36803      398684 :          data_tmp = IAND(data_tmp, mask_left(16))
   36804      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36805      398684 :          ipack = ipack + 1
   36806      398684 :          packed_data(ipack) = pack_tmp
   36807      398684 :          data_tmp = full_data(idata)
   36808      398684 :          pack_tmp = ISHFT(data_tmp, 33)
   36809      398684 :          pack_tmp = ISHFT(pack_tmp, -33)
   36810      398684 :          idata = idata + 1
   36811      398684 :          data_tmp = full_data(idata)
   36812      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36813      398684 :          data_tmp = IAND(data_tmp, mask_left(33))
   36814      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36815      398684 :          ipack = ipack + 1
   36816      398684 :          packed_data(ipack) = pack_tmp
   36817      398684 :          data_tmp = full_data(idata)
   36818      398684 :          pack_tmp = ISHFT(data_tmp, 50)
   36819      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36820      398684 :          idata = idata + 1
   36821      398684 :          data_tmp = full_data(idata)
   36822      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36823      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36824      398684 :          pack_tmp = ISHFT(pack_tmp, -3)
   36825      398684 :          idata = idata + 1
   36826      398684 :          data_tmp = full_data(idata)
   36827      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36828      398684 :          data_tmp = IAND(data_tmp, mask_left(3))
   36829      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36830      398684 :          ipack = ipack + 1
   36831      398684 :          packed_data(ipack) = pack_tmp
   36832      398684 :          data_tmp = full_data(idata)
   36833      398684 :          pack_tmp = ISHFT(data_tmp, 20)
   36834      398684 :          pack_tmp = ISHFT(pack_tmp, -20)
   36835      398684 :          idata = idata + 1
   36836      398684 :          data_tmp = full_data(idata)
   36837      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36838      398684 :          data_tmp = IAND(data_tmp, mask_left(20))
   36839      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36840      398684 :          ipack = ipack + 1
   36841      398684 :          packed_data(ipack) = pack_tmp
   36842      398684 :          data_tmp = full_data(idata)
   36843      398684 :          pack_tmp = ISHFT(data_tmp, 37)
   36844      398684 :          pack_tmp = ISHFT(pack_tmp, -37)
   36845      398684 :          idata = idata + 1
   36846      398684 :          data_tmp = full_data(idata)
   36847      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36848      398684 :          data_tmp = IAND(data_tmp, mask_left(37))
   36849      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36850      398684 :          ipack = ipack + 1
   36851      398684 :          packed_data(ipack) = pack_tmp
   36852      398684 :          data_tmp = full_data(idata)
   36853      398684 :          pack_tmp = ISHFT(data_tmp, 54)
   36854      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36855      398684 :          idata = idata + 1
   36856      398684 :          data_tmp = full_data(idata)
   36857      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36858      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36859      398684 :          pack_tmp = ISHFT(pack_tmp, -7)
   36860      398684 :          idata = idata + 1
   36861      398684 :          data_tmp = full_data(idata)
   36862      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36863      398684 :          data_tmp = IAND(data_tmp, mask_left(7))
   36864      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36865      398684 :          ipack = ipack + 1
   36866      398684 :          packed_data(ipack) = pack_tmp
   36867      398684 :          data_tmp = full_data(idata)
   36868      398684 :          pack_tmp = ISHFT(data_tmp, 24)
   36869      398684 :          pack_tmp = ISHFT(pack_tmp, -24)
   36870      398684 :          idata = idata + 1
   36871      398684 :          data_tmp = full_data(idata)
   36872      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36873      398684 :          data_tmp = IAND(data_tmp, mask_left(24))
   36874      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36875      398684 :          ipack = ipack + 1
   36876      398684 :          packed_data(ipack) = pack_tmp
   36877      398684 :          data_tmp = full_data(idata)
   36878      398684 :          pack_tmp = ISHFT(data_tmp, 41)
   36879      398684 :          pack_tmp = ISHFT(pack_tmp, -41)
   36880      398684 :          idata = idata + 1
   36881      398684 :          data_tmp = full_data(idata)
   36882      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36883      398684 :          data_tmp = IAND(data_tmp, mask_left(41))
   36884      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36885      398684 :          ipack = ipack + 1
   36886      398684 :          packed_data(ipack) = pack_tmp
   36887      398684 :          data_tmp = full_data(idata)
   36888      398684 :          pack_tmp = ISHFT(data_tmp, 58)
   36889      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36890      398684 :          idata = idata + 1
   36891      398684 :          data_tmp = full_data(idata)
   36892      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36893      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36894      398684 :          pack_tmp = ISHFT(pack_tmp, -11)
   36895      398684 :          idata = idata + 1
   36896      398684 :          data_tmp = full_data(idata)
   36897      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36898      398684 :          data_tmp = IAND(data_tmp, mask_left(11))
   36899      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36900      398684 :          ipack = ipack + 1
   36901      398684 :          packed_data(ipack) = pack_tmp
   36902      398684 :          data_tmp = full_data(idata)
   36903      398684 :          pack_tmp = ISHFT(data_tmp, 28)
   36904      398684 :          pack_tmp = ISHFT(pack_tmp, -28)
   36905      398684 :          idata = idata + 1
   36906      398684 :          data_tmp = full_data(idata)
   36907      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36908      398684 :          data_tmp = IAND(data_tmp, mask_left(28))
   36909      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36910      398684 :          ipack = ipack + 1
   36911      398684 :          packed_data(ipack) = pack_tmp
   36912      398684 :          data_tmp = full_data(idata)
   36913      398684 :          pack_tmp = ISHFT(data_tmp, 45)
   36914      398684 :          pack_tmp = ISHFT(pack_tmp, -45)
   36915      398684 :          idata = idata + 1
   36916      398684 :          data_tmp = full_data(idata)
   36917      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36918      398684 :          data_tmp = IAND(data_tmp, mask_left(45))
   36919      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36920      398684 :          ipack = ipack + 1
   36921      398684 :          packed_data(ipack) = pack_tmp
   36922      398684 :          data_tmp = full_data(idata)
   36923      398684 :          pack_tmp = ISHFT(data_tmp, 62)
   36924      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36925      398684 :          idata = idata + 1
   36926      398684 :          data_tmp = full_data(idata)
   36927      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36928      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36929      398684 :          pack_tmp = ISHFT(pack_tmp, -15)
   36930      398684 :          idata = idata + 1
   36931      398684 :          data_tmp = full_data(idata)
   36932      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36933      398684 :          data_tmp = IAND(data_tmp, mask_left(15))
   36934      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36935      398684 :          ipack = ipack + 1
   36936      398684 :          packed_data(ipack) = pack_tmp
   36937      398684 :          data_tmp = full_data(idata)
   36938      398684 :          pack_tmp = ISHFT(data_tmp, 32)
   36939      398684 :          pack_tmp = ISHFT(pack_tmp, -32)
   36940      398684 :          idata = idata + 1
   36941      398684 :          data_tmp = full_data(idata)
   36942      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36943      398684 :          data_tmp = IAND(data_tmp, mask_left(32))
   36944      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36945      398684 :          ipack = ipack + 1
   36946      398684 :          packed_data(ipack) = pack_tmp
   36947      398684 :          data_tmp = full_data(idata)
   36948      398684 :          pack_tmp = ISHFT(data_tmp, 49)
   36949      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36950      398684 :          idata = idata + 1
   36951      398684 :          data_tmp = full_data(idata)
   36952      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36953      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36954      398684 :          pack_tmp = ISHFT(pack_tmp, -2)
   36955      398684 :          idata = idata + 1
   36956      398684 :          data_tmp = full_data(idata)
   36957      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36958      398684 :          data_tmp = IAND(data_tmp, mask_left(2))
   36959      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36960      398684 :          ipack = ipack + 1
   36961      398684 :          packed_data(ipack) = pack_tmp
   36962      398684 :          data_tmp = full_data(idata)
   36963      398684 :          pack_tmp = ISHFT(data_tmp, 19)
   36964      398684 :          pack_tmp = ISHFT(pack_tmp, -19)
   36965      398684 :          idata = idata + 1
   36966      398684 :          data_tmp = full_data(idata)
   36967      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36968      398684 :          data_tmp = IAND(data_tmp, mask_left(19))
   36969      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36970      398684 :          ipack = ipack + 1
   36971      398684 :          packed_data(ipack) = pack_tmp
   36972      398684 :          data_tmp = full_data(idata)
   36973      398684 :          pack_tmp = ISHFT(data_tmp, 36)
   36974      398684 :          pack_tmp = ISHFT(pack_tmp, -36)
   36975      398684 :          idata = idata + 1
   36976      398684 :          data_tmp = full_data(idata)
   36977      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36978      398684 :          data_tmp = IAND(data_tmp, mask_left(36))
   36979      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36980      398684 :          ipack = ipack + 1
   36981      398684 :          packed_data(ipack) = pack_tmp
   36982      398684 :          data_tmp = full_data(idata)
   36983      398684 :          pack_tmp = ISHFT(data_tmp, 53)
   36984      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   36985      398684 :          idata = idata + 1
   36986      398684 :          data_tmp = full_data(idata)
   36987      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36988      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36989      398684 :          pack_tmp = ISHFT(pack_tmp, -6)
   36990      398684 :          idata = idata + 1
   36991      398684 :          data_tmp = full_data(idata)
   36992      398684 :          data_tmp = ISHFT(data_tmp, 17)
   36993      398684 :          data_tmp = IAND(data_tmp, mask_left(6))
   36994      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36995      398684 :          ipack = ipack + 1
   36996      398684 :          packed_data(ipack) = pack_tmp
   36997      398684 :          data_tmp = full_data(idata)
   36998      398684 :          pack_tmp = ISHFT(data_tmp, 23)
   36999      398684 :          pack_tmp = ISHFT(pack_tmp, -23)
   37000      398684 :          idata = idata + 1
   37001      398684 :          data_tmp = full_data(idata)
   37002      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37003      398684 :          data_tmp = IAND(data_tmp, mask_left(23))
   37004      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37005      398684 :          ipack = ipack + 1
   37006      398684 :          packed_data(ipack) = pack_tmp
   37007      398684 :          data_tmp = full_data(idata)
   37008      398684 :          pack_tmp = ISHFT(data_tmp, 40)
   37009      398684 :          pack_tmp = ISHFT(pack_tmp, -40)
   37010      398684 :          idata = idata + 1
   37011      398684 :          data_tmp = full_data(idata)
   37012      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37013      398684 :          data_tmp = IAND(data_tmp, mask_left(40))
   37014      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37015      398684 :          ipack = ipack + 1
   37016      398684 :          packed_data(ipack) = pack_tmp
   37017      398684 :          data_tmp = full_data(idata)
   37018      398684 :          pack_tmp = ISHFT(data_tmp, 57)
   37019      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37020      398684 :          idata = idata + 1
   37021      398684 :          data_tmp = full_data(idata)
   37022      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37023      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37024      398684 :          pack_tmp = ISHFT(pack_tmp, -10)
   37025      398684 :          idata = idata + 1
   37026      398684 :          data_tmp = full_data(idata)
   37027      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37028      398684 :          data_tmp = IAND(data_tmp, mask_left(10))
   37029      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37030      398684 :          ipack = ipack + 1
   37031      398684 :          packed_data(ipack) = pack_tmp
   37032      398684 :          data_tmp = full_data(idata)
   37033      398684 :          pack_tmp = ISHFT(data_tmp, 27)
   37034      398684 :          pack_tmp = ISHFT(pack_tmp, -27)
   37035      398684 :          idata = idata + 1
   37036      398684 :          data_tmp = full_data(idata)
   37037      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37038      398684 :          data_tmp = IAND(data_tmp, mask_left(27))
   37039      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37040      398684 :          ipack = ipack + 1
   37041      398684 :          packed_data(ipack) = pack_tmp
   37042      398684 :          data_tmp = full_data(idata)
   37043      398684 :          pack_tmp = ISHFT(data_tmp, 44)
   37044      398684 :          pack_tmp = ISHFT(pack_tmp, -44)
   37045      398684 :          idata = idata + 1
   37046      398684 :          data_tmp = full_data(idata)
   37047      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37048      398684 :          data_tmp = IAND(data_tmp, mask_left(44))
   37049      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37050      398684 :          ipack = ipack + 1
   37051      398684 :          packed_data(ipack) = pack_tmp
   37052      398684 :          data_tmp = full_data(idata)
   37053      398684 :          pack_tmp = ISHFT(data_tmp, 61)
   37054      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37055      398684 :          idata = idata + 1
   37056      398684 :          data_tmp = full_data(idata)
   37057      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37058      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37059      398684 :          pack_tmp = ISHFT(pack_tmp, -14)
   37060      398684 :          idata = idata + 1
   37061      398684 :          data_tmp = full_data(idata)
   37062      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37063      398684 :          data_tmp = IAND(data_tmp, mask_left(14))
   37064      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37065      398684 :          ipack = ipack + 1
   37066      398684 :          packed_data(ipack) = pack_tmp
   37067      398684 :          data_tmp = full_data(idata)
   37068      398684 :          pack_tmp = ISHFT(data_tmp, 31)
   37069      398684 :          pack_tmp = ISHFT(pack_tmp, -31)
   37070      398684 :          idata = idata + 1
   37071      398684 :          data_tmp = full_data(idata)
   37072      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37073      398684 :          data_tmp = IAND(data_tmp, mask_left(31))
   37074      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37075      398684 :          ipack = ipack + 1
   37076      398684 :          packed_data(ipack) = pack_tmp
   37077      398684 :          data_tmp = full_data(idata)
   37078      398684 :          pack_tmp = ISHFT(data_tmp, 48)
   37079      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37080      398684 :          idata = idata + 1
   37081      398684 :          data_tmp = full_data(idata)
   37082      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37083      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37084      398684 :          pack_tmp = ISHFT(pack_tmp, -1)
   37085      398684 :          idata = idata + 1
   37086      398684 :          data_tmp = full_data(idata)
   37087      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37088      398684 :          data_tmp = IAND(data_tmp, mask_left(1))
   37089      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37090      398684 :          ipack = ipack + 1
   37091      398684 :          packed_data(ipack) = pack_tmp
   37092      398684 :          data_tmp = full_data(idata)
   37093      398684 :          pack_tmp = ISHFT(data_tmp, 18)
   37094      398684 :          pack_tmp = ISHFT(pack_tmp, -18)
   37095      398684 :          idata = idata + 1
   37096      398684 :          data_tmp = full_data(idata)
   37097      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37098      398684 :          data_tmp = IAND(data_tmp, mask_left(18))
   37099      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37100      398684 :          ipack = ipack + 1
   37101      398684 :          packed_data(ipack) = pack_tmp
   37102      398684 :          data_tmp = full_data(idata)
   37103      398684 :          pack_tmp = ISHFT(data_tmp, 35)
   37104      398684 :          pack_tmp = ISHFT(pack_tmp, -35)
   37105      398684 :          idata = idata + 1
   37106      398684 :          data_tmp = full_data(idata)
   37107      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37108      398684 :          data_tmp = IAND(data_tmp, mask_left(35))
   37109      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37110      398684 :          ipack = ipack + 1
   37111      398684 :          packed_data(ipack) = pack_tmp
   37112      398684 :          data_tmp = full_data(idata)
   37113      398684 :          pack_tmp = ISHFT(data_tmp, 52)
   37114      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37115      398684 :          idata = idata + 1
   37116      398684 :          data_tmp = full_data(idata)
   37117      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37118      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37119      398684 :          pack_tmp = ISHFT(pack_tmp, -5)
   37120      398684 :          idata = idata + 1
   37121      398684 :          data_tmp = full_data(idata)
   37122      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37123      398684 :          data_tmp = IAND(data_tmp, mask_left(5))
   37124      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37125      398684 :          ipack = ipack + 1
   37126      398684 :          packed_data(ipack) = pack_tmp
   37127      398684 :          data_tmp = full_data(idata)
   37128      398684 :          pack_tmp = ISHFT(data_tmp, 22)
   37129      398684 :          pack_tmp = ISHFT(pack_tmp, -22)
   37130      398684 :          idata = idata + 1
   37131      398684 :          data_tmp = full_data(idata)
   37132      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37133      398684 :          data_tmp = IAND(data_tmp, mask_left(22))
   37134      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37135      398684 :          ipack = ipack + 1
   37136      398684 :          packed_data(ipack) = pack_tmp
   37137      398684 :          data_tmp = full_data(idata)
   37138      398684 :          pack_tmp = ISHFT(data_tmp, 39)
   37139      398684 :          pack_tmp = ISHFT(pack_tmp, -39)
   37140      398684 :          idata = idata + 1
   37141      398684 :          data_tmp = full_data(idata)
   37142      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37143      398684 :          data_tmp = IAND(data_tmp, mask_left(39))
   37144      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37145      398684 :          ipack = ipack + 1
   37146      398684 :          packed_data(ipack) = pack_tmp
   37147      398684 :          data_tmp = full_data(idata)
   37148      398684 :          pack_tmp = ISHFT(data_tmp, 56)
   37149      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37150      398684 :          idata = idata + 1
   37151      398684 :          data_tmp = full_data(idata)
   37152      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37153      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37154      398684 :          pack_tmp = ISHFT(pack_tmp, -9)
   37155      398684 :          idata = idata + 1
   37156      398684 :          data_tmp = full_data(idata)
   37157      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37158      398684 :          data_tmp = IAND(data_tmp, mask_left(9))
   37159      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37160      398684 :          ipack = ipack + 1
   37161      398684 :          packed_data(ipack) = pack_tmp
   37162      398684 :          data_tmp = full_data(idata)
   37163      398684 :          pack_tmp = ISHFT(data_tmp, 26)
   37164      398684 :          pack_tmp = ISHFT(pack_tmp, -26)
   37165      398684 :          idata = idata + 1
   37166      398684 :          data_tmp = full_data(idata)
   37167      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37168      398684 :          data_tmp = IAND(data_tmp, mask_left(26))
   37169      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37170      398684 :          ipack = ipack + 1
   37171      398684 :          packed_data(ipack) = pack_tmp
   37172      398684 :          data_tmp = full_data(idata)
   37173      398684 :          pack_tmp = ISHFT(data_tmp, 43)
   37174      398684 :          pack_tmp = ISHFT(pack_tmp, -43)
   37175      398684 :          idata = idata + 1
   37176      398684 :          data_tmp = full_data(idata)
   37177      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37178      398684 :          data_tmp = IAND(data_tmp, mask_left(43))
   37179      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37180      398684 :          ipack = ipack + 1
   37181      398684 :          packed_data(ipack) = pack_tmp
   37182      398684 :          data_tmp = full_data(idata)
   37183      398684 :          pack_tmp = ISHFT(data_tmp, 60)
   37184      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37185      398684 :          idata = idata + 1
   37186      398684 :          data_tmp = full_data(idata)
   37187      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37188      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37189      398684 :          pack_tmp = ISHFT(pack_tmp, -13)
   37190      398684 :          idata = idata + 1
   37191      398684 :          data_tmp = full_data(idata)
   37192      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37193      398684 :          data_tmp = IAND(data_tmp, mask_left(13))
   37194      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37195      398684 :          ipack = ipack + 1
   37196      398684 :          packed_data(ipack) = pack_tmp
   37197      398684 :          data_tmp = full_data(idata)
   37198      398684 :          pack_tmp = ISHFT(data_tmp, 30)
   37199      398684 :          pack_tmp = ISHFT(pack_tmp, -30)
   37200      398684 :          idata = idata + 1
   37201      398684 :          data_tmp = full_data(idata)
   37202      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37203      398684 :          data_tmp = IAND(data_tmp, mask_left(30))
   37204      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37205      398684 :          ipack = ipack + 1
   37206      398684 :          packed_data(ipack) = pack_tmp
   37207      398684 :          data_tmp = full_data(idata)
   37208      398684 :          pack_tmp = ISHFT(data_tmp, 47)
   37209      398684 :          pack_tmp = ISHFT(pack_tmp, -47)
   37210      398684 :          idata = idata + 1
   37211      398684 :          data_tmp = full_data(idata)
   37212      398684 :          data_tmp = ISHFT(data_tmp, 17)
   37213      398684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37214             :          pack_tmp = ISHFT(pack_tmp, 0)
   37215      398684 :          pack_tmp = ISHFT(pack_tmp, 0)
   37216      398684 :          ipack = ipack + 1
   37217      398688 :          packed_data(ipack) = pack_tmp
   37218             :       END DO
   37219       26112 :       IF (Ndata_rep < Ndata) THEN
   37220        2248 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37221             :       END IF
   37222       26112 :    END SUBROUTINE ints2bits_47
   37223             : 
   37224             : ! **************************************************************************************************
   37225             : !> \brief ...
   37226             : !> \param Ndata ...
   37227             : !> \param packed_data ...
   37228             : !> \param full_data ...
   37229             : ! **************************************************************************************************
   37230      114730 :    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      114730 :       ipack = 0
   37241      114730 :       idata = 0
   37242      114730 :       pack_tmp = 0
   37243      114730 :       Ndata_rep = (Ndata/64)*64
   37244      114730 :       DO kdata = 1, Ndata_rep, 64
   37245     1690449 :          idata = idata + 1
   37246     1690449 :          data_tmp = ISHFT(pack_tmp, 47)
   37247     1690449 :          ipack = ipack + 1
   37248     1690449 :          pack_tmp = packed_data(ipack)
   37249     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   37250     1690449 :          pack_tmp = ISHFT(pack_tmp, -47)
   37251     1690449 :          idata = idata + 1
   37252     1690449 :          data_tmp = ISHFT(pack_tmp, 30)
   37253     1690449 :          ipack = ipack + 1
   37254     1690449 :          pack_tmp = packed_data(ipack)
   37255     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   37256     1690449 :          pack_tmp = ISHFT(pack_tmp, -30)
   37257     1690449 :          idata = idata + 1
   37258     1690449 :          data_tmp = ISHFT(pack_tmp, 13)
   37259     1690449 :          ipack = ipack + 1
   37260     1690449 :          pack_tmp = packed_data(ipack)
   37261     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   37262     1690449 :          pack_tmp = ISHFT(pack_tmp, -13)
   37263     1690449 :          idata = idata + 1
   37264     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37265     1690449 :          full_data(idata) = data_tmp
   37266     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37267     1690449 :          idata = idata + 1
   37268     1690449 :          data_tmp = ISHFT(pack_tmp, 43)
   37269     1690449 :          ipack = ipack + 1
   37270     1690449 :          pack_tmp = packed_data(ipack)
   37271     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   37272     1690449 :          pack_tmp = ISHFT(pack_tmp, -43)
   37273     1690449 :          idata = idata + 1
   37274     1690449 :          data_tmp = ISHFT(pack_tmp, 26)
   37275     1690449 :          ipack = ipack + 1
   37276     1690449 :          pack_tmp = packed_data(ipack)
   37277     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   37278     1690449 :          pack_tmp = ISHFT(pack_tmp, -26)
   37279     1690449 :          idata = idata + 1
   37280     1690449 :          data_tmp = ISHFT(pack_tmp, 9)
   37281     1690449 :          ipack = ipack + 1
   37282     1690449 :          pack_tmp = packed_data(ipack)
   37283     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   37284     1690449 :          pack_tmp = ISHFT(pack_tmp, -9)
   37285     1690449 :          idata = idata + 1
   37286     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37287     1690449 :          full_data(idata) = data_tmp
   37288     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37289     1690449 :          idata = idata + 1
   37290     1690449 :          data_tmp = ISHFT(pack_tmp, 39)
   37291     1690449 :          ipack = ipack + 1
   37292     1690449 :          pack_tmp = packed_data(ipack)
   37293     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   37294     1690449 :          pack_tmp = ISHFT(pack_tmp, -39)
   37295     1690449 :          idata = idata + 1
   37296     1690449 :          data_tmp = ISHFT(pack_tmp, 22)
   37297     1690449 :          ipack = ipack + 1
   37298     1690449 :          pack_tmp = packed_data(ipack)
   37299     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   37300     1690449 :          pack_tmp = ISHFT(pack_tmp, -22)
   37301     1690449 :          idata = idata + 1
   37302     1690449 :          data_tmp = ISHFT(pack_tmp, 5)
   37303     1690449 :          ipack = ipack + 1
   37304     1690449 :          pack_tmp = packed_data(ipack)
   37305     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   37306     1690449 :          pack_tmp = ISHFT(pack_tmp, -5)
   37307     1690449 :          idata = idata + 1
   37308     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37309     1690449 :          full_data(idata) = data_tmp
   37310     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37311     1690449 :          idata = idata + 1
   37312     1690449 :          data_tmp = ISHFT(pack_tmp, 35)
   37313     1690449 :          ipack = ipack + 1
   37314     1690449 :          pack_tmp = packed_data(ipack)
   37315     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   37316     1690449 :          pack_tmp = ISHFT(pack_tmp, -35)
   37317     1690449 :          idata = idata + 1
   37318     1690449 :          data_tmp = ISHFT(pack_tmp, 18)
   37319     1690449 :          ipack = ipack + 1
   37320     1690449 :          pack_tmp = packed_data(ipack)
   37321     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   37322     1690449 :          pack_tmp = ISHFT(pack_tmp, -18)
   37323     1690449 :          idata = idata + 1
   37324     1690449 :          data_tmp = ISHFT(pack_tmp, 1)
   37325     1690449 :          ipack = ipack + 1
   37326     1690449 :          pack_tmp = packed_data(ipack)
   37327     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   37328     1690449 :          pack_tmp = ISHFT(pack_tmp, -1)
   37329     1690449 :          idata = idata + 1
   37330     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37331     1690449 :          full_data(idata) = data_tmp
   37332     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37333     1690449 :          idata = idata + 1
   37334     1690449 :          data_tmp = ISHFT(pack_tmp, 31)
   37335     1690449 :          ipack = ipack + 1
   37336     1690449 :          pack_tmp = packed_data(ipack)
   37337     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   37338     1690449 :          pack_tmp = ISHFT(pack_tmp, -31)
   37339     1690449 :          idata = idata + 1
   37340     1690449 :          data_tmp = ISHFT(pack_tmp, 14)
   37341     1690449 :          ipack = ipack + 1
   37342     1690449 :          pack_tmp = packed_data(ipack)
   37343     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   37344     1690449 :          pack_tmp = ISHFT(pack_tmp, -14)
   37345     1690449 :          idata = idata + 1
   37346     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37347     1690449 :          full_data(idata) = data_tmp
   37348     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37349     1690449 :          idata = idata + 1
   37350     1690449 :          data_tmp = ISHFT(pack_tmp, 44)
   37351     1690449 :          ipack = ipack + 1
   37352     1690449 :          pack_tmp = packed_data(ipack)
   37353     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   37354     1690449 :          pack_tmp = ISHFT(pack_tmp, -44)
   37355     1690449 :          idata = idata + 1
   37356     1690449 :          data_tmp = ISHFT(pack_tmp, 27)
   37357     1690449 :          ipack = ipack + 1
   37358     1690449 :          pack_tmp = packed_data(ipack)
   37359     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   37360     1690449 :          pack_tmp = ISHFT(pack_tmp, -27)
   37361     1690449 :          idata = idata + 1
   37362     1690449 :          data_tmp = ISHFT(pack_tmp, 10)
   37363     1690449 :          ipack = ipack + 1
   37364     1690449 :          pack_tmp = packed_data(ipack)
   37365     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   37366     1690449 :          pack_tmp = ISHFT(pack_tmp, -10)
   37367     1690449 :          idata = idata + 1
   37368     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37369     1690449 :          full_data(idata) = data_tmp
   37370     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37371     1690449 :          idata = idata + 1
   37372     1690449 :          data_tmp = ISHFT(pack_tmp, 40)
   37373     1690449 :          ipack = ipack + 1
   37374     1690449 :          pack_tmp = packed_data(ipack)
   37375     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   37376     1690449 :          pack_tmp = ISHFT(pack_tmp, -40)
   37377     1690449 :          idata = idata + 1
   37378     1690449 :          data_tmp = ISHFT(pack_tmp, 23)
   37379     1690449 :          ipack = ipack + 1
   37380     1690449 :          pack_tmp = packed_data(ipack)
   37381     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   37382     1690449 :          pack_tmp = ISHFT(pack_tmp, -23)
   37383     1690449 :          idata = idata + 1
   37384     1690449 :          data_tmp = ISHFT(pack_tmp, 6)
   37385     1690449 :          ipack = ipack + 1
   37386     1690449 :          pack_tmp = packed_data(ipack)
   37387     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   37388     1690449 :          pack_tmp = ISHFT(pack_tmp, -6)
   37389     1690449 :          idata = idata + 1
   37390     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37391     1690449 :          full_data(idata) = data_tmp
   37392     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37393     1690449 :          idata = idata + 1
   37394     1690449 :          data_tmp = ISHFT(pack_tmp, 36)
   37395     1690449 :          ipack = ipack + 1
   37396     1690449 :          pack_tmp = packed_data(ipack)
   37397     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   37398     1690449 :          pack_tmp = ISHFT(pack_tmp, -36)
   37399     1690449 :          idata = idata + 1
   37400     1690449 :          data_tmp = ISHFT(pack_tmp, 19)
   37401     1690449 :          ipack = ipack + 1
   37402     1690449 :          pack_tmp = packed_data(ipack)
   37403     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   37404     1690449 :          pack_tmp = ISHFT(pack_tmp, -19)
   37405     1690449 :          idata = idata + 1
   37406     1690449 :          data_tmp = ISHFT(pack_tmp, 2)
   37407     1690449 :          ipack = ipack + 1
   37408     1690449 :          pack_tmp = packed_data(ipack)
   37409     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   37410     1690449 :          pack_tmp = ISHFT(pack_tmp, -2)
   37411     1690449 :          idata = idata + 1
   37412     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37413     1690449 :          full_data(idata) = data_tmp
   37414     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37415     1690449 :          idata = idata + 1
   37416     1690449 :          data_tmp = ISHFT(pack_tmp, 32)
   37417     1690449 :          ipack = ipack + 1
   37418     1690449 :          pack_tmp = packed_data(ipack)
   37419     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   37420     1690449 :          pack_tmp = ISHFT(pack_tmp, -32)
   37421     1690449 :          idata = idata + 1
   37422     1690449 :          data_tmp = ISHFT(pack_tmp, 15)
   37423     1690449 :          ipack = ipack + 1
   37424     1690449 :          pack_tmp = packed_data(ipack)
   37425     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   37426     1690449 :          pack_tmp = ISHFT(pack_tmp, -15)
   37427     1690449 :          idata = idata + 1
   37428     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37429     1690449 :          full_data(idata) = data_tmp
   37430     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37431     1690449 :          idata = idata + 1
   37432     1690449 :          data_tmp = ISHFT(pack_tmp, 45)
   37433     1690449 :          ipack = ipack + 1
   37434     1690449 :          pack_tmp = packed_data(ipack)
   37435     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   37436     1690449 :          pack_tmp = ISHFT(pack_tmp, -45)
   37437     1690449 :          idata = idata + 1
   37438     1690449 :          data_tmp = ISHFT(pack_tmp, 28)
   37439     1690449 :          ipack = ipack + 1
   37440     1690449 :          pack_tmp = packed_data(ipack)
   37441     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   37442     1690449 :          pack_tmp = ISHFT(pack_tmp, -28)
   37443     1690449 :          idata = idata + 1
   37444     1690449 :          data_tmp = ISHFT(pack_tmp, 11)
   37445     1690449 :          ipack = ipack + 1
   37446     1690449 :          pack_tmp = packed_data(ipack)
   37447     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   37448     1690449 :          pack_tmp = ISHFT(pack_tmp, -11)
   37449     1690449 :          idata = idata + 1
   37450     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37451     1690449 :          full_data(idata) = data_tmp
   37452     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37453     1690449 :          idata = idata + 1
   37454     1690449 :          data_tmp = ISHFT(pack_tmp, 41)
   37455     1690449 :          ipack = ipack + 1
   37456     1690449 :          pack_tmp = packed_data(ipack)
   37457     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   37458     1690449 :          pack_tmp = ISHFT(pack_tmp, -41)
   37459     1690449 :          idata = idata + 1
   37460     1690449 :          data_tmp = ISHFT(pack_tmp, 24)
   37461     1690449 :          ipack = ipack + 1
   37462     1690449 :          pack_tmp = packed_data(ipack)
   37463     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   37464     1690449 :          pack_tmp = ISHFT(pack_tmp, -24)
   37465     1690449 :          idata = idata + 1
   37466     1690449 :          data_tmp = ISHFT(pack_tmp, 7)
   37467     1690449 :          ipack = ipack + 1
   37468     1690449 :          pack_tmp = packed_data(ipack)
   37469     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   37470     1690449 :          pack_tmp = ISHFT(pack_tmp, -7)
   37471     1690449 :          idata = idata + 1
   37472     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37473     1690449 :          full_data(idata) = data_tmp
   37474     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37475     1690449 :          idata = idata + 1
   37476     1690449 :          data_tmp = ISHFT(pack_tmp, 37)
   37477     1690449 :          ipack = ipack + 1
   37478     1690449 :          pack_tmp = packed_data(ipack)
   37479     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   37480     1690449 :          pack_tmp = ISHFT(pack_tmp, -37)
   37481     1690449 :          idata = idata + 1
   37482     1690449 :          data_tmp = ISHFT(pack_tmp, 20)
   37483     1690449 :          ipack = ipack + 1
   37484     1690449 :          pack_tmp = packed_data(ipack)
   37485     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   37486     1690449 :          pack_tmp = ISHFT(pack_tmp, -20)
   37487     1690449 :          idata = idata + 1
   37488     1690449 :          data_tmp = ISHFT(pack_tmp, 3)
   37489     1690449 :          ipack = ipack + 1
   37490     1690449 :          pack_tmp = packed_data(ipack)
   37491     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   37492     1690449 :          pack_tmp = ISHFT(pack_tmp, -3)
   37493     1690449 :          idata = idata + 1
   37494     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37495     1690449 :          full_data(idata) = data_tmp
   37496     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37497     1690449 :          idata = idata + 1
   37498     1690449 :          data_tmp = ISHFT(pack_tmp, 33)
   37499     1690449 :          ipack = ipack + 1
   37500     1690449 :          pack_tmp = packed_data(ipack)
   37501     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   37502     1690449 :          pack_tmp = ISHFT(pack_tmp, -33)
   37503     1690449 :          idata = idata + 1
   37504     1690449 :          data_tmp = ISHFT(pack_tmp, 16)
   37505     1690449 :          ipack = ipack + 1
   37506     1690449 :          pack_tmp = packed_data(ipack)
   37507     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   37508     1690449 :          pack_tmp = ISHFT(pack_tmp, -16)
   37509     1690449 :          idata = idata + 1
   37510     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37511     1690449 :          full_data(idata) = data_tmp
   37512     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37513     1690449 :          idata = idata + 1
   37514     1690449 :          data_tmp = ISHFT(pack_tmp, 46)
   37515     1690449 :          ipack = ipack + 1
   37516     1690449 :          pack_tmp = packed_data(ipack)
   37517     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   37518     1690449 :          pack_tmp = ISHFT(pack_tmp, -46)
   37519     1690449 :          idata = idata + 1
   37520     1690449 :          data_tmp = ISHFT(pack_tmp, 29)
   37521     1690449 :          ipack = ipack + 1
   37522     1690449 :          pack_tmp = packed_data(ipack)
   37523     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   37524     1690449 :          pack_tmp = ISHFT(pack_tmp, -29)
   37525     1690449 :          idata = idata + 1
   37526     1690449 :          data_tmp = ISHFT(pack_tmp, 12)
   37527     1690449 :          ipack = ipack + 1
   37528     1690449 :          pack_tmp = packed_data(ipack)
   37529     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   37530     1690449 :          pack_tmp = ISHFT(pack_tmp, -12)
   37531     1690449 :          idata = idata + 1
   37532     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37533     1690449 :          full_data(idata) = data_tmp
   37534     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37535     1690449 :          idata = idata + 1
   37536     1690449 :          data_tmp = ISHFT(pack_tmp, 42)
   37537     1690449 :          ipack = ipack + 1
   37538     1690449 :          pack_tmp = packed_data(ipack)
   37539     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   37540     1690449 :          pack_tmp = ISHFT(pack_tmp, -42)
   37541     1690449 :          idata = idata + 1
   37542     1690449 :          data_tmp = ISHFT(pack_tmp, 25)
   37543     1690449 :          ipack = ipack + 1
   37544     1690449 :          pack_tmp = packed_data(ipack)
   37545     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   37546     1690449 :          pack_tmp = ISHFT(pack_tmp, -25)
   37547     1690449 :          idata = idata + 1
   37548     1690449 :          data_tmp = ISHFT(pack_tmp, 8)
   37549     1690449 :          ipack = ipack + 1
   37550     1690449 :          pack_tmp = packed_data(ipack)
   37551     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   37552     1690449 :          pack_tmp = ISHFT(pack_tmp, -8)
   37553     1690449 :          idata = idata + 1
   37554     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37555     1690449 :          full_data(idata) = data_tmp
   37556     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37557     1690449 :          idata = idata + 1
   37558     1690449 :          data_tmp = ISHFT(pack_tmp, 38)
   37559     1690449 :          ipack = ipack + 1
   37560     1690449 :          pack_tmp = packed_data(ipack)
   37561     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   37562     1690449 :          pack_tmp = ISHFT(pack_tmp, -38)
   37563     1690449 :          idata = idata + 1
   37564     1690449 :          data_tmp = ISHFT(pack_tmp, 21)
   37565     1690449 :          ipack = ipack + 1
   37566     1690449 :          pack_tmp = packed_data(ipack)
   37567     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   37568     1690449 :          pack_tmp = ISHFT(pack_tmp, -21)
   37569     1690449 :          idata = idata + 1
   37570     1690449 :          data_tmp = ISHFT(pack_tmp, 4)
   37571     1690449 :          ipack = ipack + 1
   37572     1690449 :          pack_tmp = packed_data(ipack)
   37573     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   37574     1690449 :          pack_tmp = ISHFT(pack_tmp, -4)
   37575     1690449 :          idata = idata + 1
   37576     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37577     1690449 :          full_data(idata) = data_tmp
   37578     1690449 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37579     1690449 :          idata = idata + 1
   37580     1690449 :          data_tmp = ISHFT(pack_tmp, 34)
   37581     1690449 :          ipack = ipack + 1
   37582     1690449 :          pack_tmp = packed_data(ipack)
   37583     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   37584     1690449 :          pack_tmp = ISHFT(pack_tmp, -34)
   37585     1690449 :          idata = idata + 1
   37586     1690449 :          data_tmp = ISHFT(pack_tmp, 17)
   37587     1690449 :          ipack = ipack + 1
   37588     1690449 :          pack_tmp = packed_data(ipack)
   37589     1690449 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   37590     1690449 :          pack_tmp = ISHFT(pack_tmp, -17)
   37591     1690449 :          idata = idata + 1
   37592     1690449 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37593     1690449 :          full_data(idata) = data_tmp
   37594     1690529 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37595             :       END DO
   37596      114730 :       IF (Ndata_rep < Ndata) THEN
   37597       17086 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37598             :       END IF
   37599      114730 :    END SUBROUTINE bits2ints_47
   37600             : 
   37601             : ! **************************************************************************************************
   37602             : !> \brief ...
   37603             : !> \param Ndata ...
   37604             : !> \param packed_data ...
   37605             : !> \param full_data ...
   37606             : ! **************************************************************************************************
   37607       26673 :    SUBROUTINE ints2bits_48(Ndata, packed_data, full_data)
   37608             :       INTEGER, INTENT(IN)                                :: Ndata
   37609             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   37610             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   37611             : 
   37612             :       INTEGER, PARAMETER                                 :: Nbits = 48
   37613             : 
   37614             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   37615             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   37616             : 
   37617       26673 :       idata = 0
   37618       26673 :       ipack = 0
   37619       26673 :       Ndata_rep = (Ndata/64)*64
   37620       26673 :       DO kdata = 1, Ndata_rep, 64
   37621      402084 :          pack_tmp = 0
   37622      402084 :          idata = idata + 1
   37623      402084 :          data_tmp = full_data(idata)
   37624      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37625      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37626      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37627      402084 :          idata = idata + 1
   37628      402084 :          data_tmp = full_data(idata)
   37629      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37630      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37631      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37632      402084 :          ipack = ipack + 1
   37633      402084 :          packed_data(ipack) = pack_tmp
   37634      402084 :          data_tmp = full_data(idata)
   37635      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37636      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37637      402084 :          idata = idata + 1
   37638      402084 :          data_tmp = full_data(idata)
   37639      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37640      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37641      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37642      402084 :          ipack = ipack + 1
   37643      402084 :          packed_data(ipack) = pack_tmp
   37644      402084 :          data_tmp = full_data(idata)
   37645      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37646      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37647      402084 :          idata = idata + 1
   37648      402084 :          data_tmp = full_data(idata)
   37649      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37650      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37651      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37652      402084 :          idata = idata + 1
   37653      402084 :          data_tmp = full_data(idata)
   37654             :          data_tmp = ISHFT(data_tmp, 16)
   37655      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37656      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37657      402084 :          ipack = ipack + 1
   37658      402084 :          packed_data(ipack) = pack_tmp
   37659      402084 :          data_tmp = full_data(idata)
   37660      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37661      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37662      402084 :          idata = idata + 1
   37663      402084 :          data_tmp = full_data(idata)
   37664      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37665      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37666      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37667      402084 :          ipack = ipack + 1
   37668      402084 :          packed_data(ipack) = pack_tmp
   37669      402084 :          data_tmp = full_data(idata)
   37670      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37671      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37672      402084 :          idata = idata + 1
   37673      402084 :          data_tmp = full_data(idata)
   37674      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37675      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37676      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37677      402084 :          ipack = ipack + 1
   37678      402084 :          packed_data(ipack) = pack_tmp
   37679      402084 :          data_tmp = full_data(idata)
   37680      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37681      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37682      402084 :          idata = idata + 1
   37683      402084 :          data_tmp = full_data(idata)
   37684      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37685      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37686      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37687      402084 :          idata = idata + 1
   37688      402084 :          data_tmp = full_data(idata)
   37689             :          data_tmp = ISHFT(data_tmp, 16)
   37690      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37691      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37692      402084 :          ipack = ipack + 1
   37693      402084 :          packed_data(ipack) = pack_tmp
   37694      402084 :          data_tmp = full_data(idata)
   37695      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37696      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37697      402084 :          idata = idata + 1
   37698      402084 :          data_tmp = full_data(idata)
   37699      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37700      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37701      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37702      402084 :          ipack = ipack + 1
   37703      402084 :          packed_data(ipack) = pack_tmp
   37704      402084 :          data_tmp = full_data(idata)
   37705      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37706      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37707      402084 :          idata = idata + 1
   37708      402084 :          data_tmp = full_data(idata)
   37709      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37710      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37711      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37712      402084 :          ipack = ipack + 1
   37713      402084 :          packed_data(ipack) = pack_tmp
   37714      402084 :          data_tmp = full_data(idata)
   37715      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37716      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37717      402084 :          idata = idata + 1
   37718      402084 :          data_tmp = full_data(idata)
   37719      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37720      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37721      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37722      402084 :          idata = idata + 1
   37723      402084 :          data_tmp = full_data(idata)
   37724             :          data_tmp = ISHFT(data_tmp, 16)
   37725      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37726      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37727      402084 :          ipack = ipack + 1
   37728      402084 :          packed_data(ipack) = pack_tmp
   37729      402084 :          data_tmp = full_data(idata)
   37730      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37731      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37732      402084 :          idata = idata + 1
   37733      402084 :          data_tmp = full_data(idata)
   37734      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37735      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37736      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37737      402084 :          ipack = ipack + 1
   37738      402084 :          packed_data(ipack) = pack_tmp
   37739      402084 :          data_tmp = full_data(idata)
   37740      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37741      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37742      402084 :          idata = idata + 1
   37743      402084 :          data_tmp = full_data(idata)
   37744      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37745      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37746      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37747      402084 :          ipack = ipack + 1
   37748      402084 :          packed_data(ipack) = pack_tmp
   37749      402084 :          data_tmp = full_data(idata)
   37750      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37751      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37752      402084 :          idata = idata + 1
   37753      402084 :          data_tmp = full_data(idata)
   37754      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37755      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37756      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37757      402084 :          idata = idata + 1
   37758      402084 :          data_tmp = full_data(idata)
   37759             :          data_tmp = ISHFT(data_tmp, 16)
   37760      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37761      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37762      402084 :          ipack = ipack + 1
   37763      402084 :          packed_data(ipack) = pack_tmp
   37764      402084 :          data_tmp = full_data(idata)
   37765      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37766      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37767      402084 :          idata = idata + 1
   37768      402084 :          data_tmp = full_data(idata)
   37769      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37770      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37771      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37772      402084 :          ipack = ipack + 1
   37773      402084 :          packed_data(ipack) = pack_tmp
   37774      402084 :          data_tmp = full_data(idata)
   37775      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37776      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37777      402084 :          idata = idata + 1
   37778      402084 :          data_tmp = full_data(idata)
   37779      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37780      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37781      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37782      402084 :          ipack = ipack + 1
   37783      402084 :          packed_data(ipack) = pack_tmp
   37784      402084 :          data_tmp = full_data(idata)
   37785      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37786      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37787      402084 :          idata = idata + 1
   37788      402084 :          data_tmp = full_data(idata)
   37789      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37790      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37791      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37792      402084 :          idata = idata + 1
   37793      402084 :          data_tmp = full_data(idata)
   37794             :          data_tmp = ISHFT(data_tmp, 16)
   37795      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37796      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37797      402084 :          ipack = ipack + 1
   37798      402084 :          packed_data(ipack) = pack_tmp
   37799      402084 :          data_tmp = full_data(idata)
   37800      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37801      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37802      402084 :          idata = idata + 1
   37803      402084 :          data_tmp = full_data(idata)
   37804      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37805      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37806      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37807      402084 :          ipack = ipack + 1
   37808      402084 :          packed_data(ipack) = pack_tmp
   37809      402084 :          data_tmp = full_data(idata)
   37810      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37811      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37812      402084 :          idata = idata + 1
   37813      402084 :          data_tmp = full_data(idata)
   37814      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37815      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37816      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37817      402084 :          ipack = ipack + 1
   37818      402084 :          packed_data(ipack) = pack_tmp
   37819      402084 :          data_tmp = full_data(idata)
   37820      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37821      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37822      402084 :          idata = idata + 1
   37823      402084 :          data_tmp = full_data(idata)
   37824      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37825      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37826      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37827      402084 :          idata = idata + 1
   37828      402084 :          data_tmp = full_data(idata)
   37829             :          data_tmp = ISHFT(data_tmp, 16)
   37830      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37831      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37832      402084 :          ipack = ipack + 1
   37833      402084 :          packed_data(ipack) = pack_tmp
   37834      402084 :          data_tmp = full_data(idata)
   37835      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37836      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37837      402084 :          idata = idata + 1
   37838      402084 :          data_tmp = full_data(idata)
   37839      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37840      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37841      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37842      402084 :          ipack = ipack + 1
   37843      402084 :          packed_data(ipack) = pack_tmp
   37844      402084 :          data_tmp = full_data(idata)
   37845      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37846      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37847      402084 :          idata = idata + 1
   37848      402084 :          data_tmp = full_data(idata)
   37849      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37850      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37851      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37852      402084 :          ipack = ipack + 1
   37853      402084 :          packed_data(ipack) = pack_tmp
   37854      402084 :          data_tmp = full_data(idata)
   37855      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37856      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37857      402084 :          idata = idata + 1
   37858      402084 :          data_tmp = full_data(idata)
   37859      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37860      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37861      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37862      402084 :          idata = idata + 1
   37863      402084 :          data_tmp = full_data(idata)
   37864             :          data_tmp = ISHFT(data_tmp, 16)
   37865      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37866      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37867      402084 :          ipack = ipack + 1
   37868      402084 :          packed_data(ipack) = pack_tmp
   37869      402084 :          data_tmp = full_data(idata)
   37870      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37871      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37872      402084 :          idata = idata + 1
   37873      402084 :          data_tmp = full_data(idata)
   37874      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37875      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37876      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37877      402084 :          ipack = ipack + 1
   37878      402084 :          packed_data(ipack) = pack_tmp
   37879      402084 :          data_tmp = full_data(idata)
   37880      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37881      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37882      402084 :          idata = idata + 1
   37883      402084 :          data_tmp = full_data(idata)
   37884      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37885      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37886      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37887      402084 :          ipack = ipack + 1
   37888      402084 :          packed_data(ipack) = pack_tmp
   37889      402084 :          data_tmp = full_data(idata)
   37890      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37891      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37892      402084 :          idata = idata + 1
   37893      402084 :          data_tmp = full_data(idata)
   37894      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37895      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37896      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37897      402084 :          idata = idata + 1
   37898      402084 :          data_tmp = full_data(idata)
   37899             :          data_tmp = ISHFT(data_tmp, 16)
   37900      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37901      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37902      402084 :          ipack = ipack + 1
   37903      402084 :          packed_data(ipack) = pack_tmp
   37904      402084 :          data_tmp = full_data(idata)
   37905      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37906      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37907      402084 :          idata = idata + 1
   37908      402084 :          data_tmp = full_data(idata)
   37909      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37910      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37911      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37912      402084 :          ipack = ipack + 1
   37913      402084 :          packed_data(ipack) = pack_tmp
   37914      402084 :          data_tmp = full_data(idata)
   37915      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37916      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37917      402084 :          idata = idata + 1
   37918      402084 :          data_tmp = full_data(idata)
   37919      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37920      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37921      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37922      402084 :          ipack = ipack + 1
   37923      402084 :          packed_data(ipack) = pack_tmp
   37924      402084 :          data_tmp = full_data(idata)
   37925      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37926      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37927      402084 :          idata = idata + 1
   37928      402084 :          data_tmp = full_data(idata)
   37929      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37930      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37931      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37932      402084 :          idata = idata + 1
   37933      402084 :          data_tmp = full_data(idata)
   37934             :          data_tmp = ISHFT(data_tmp, 16)
   37935      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37936      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37937      402084 :          ipack = ipack + 1
   37938      402084 :          packed_data(ipack) = pack_tmp
   37939      402084 :          data_tmp = full_data(idata)
   37940      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37941      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37942      402084 :          idata = idata + 1
   37943      402084 :          data_tmp = full_data(idata)
   37944      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37945      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37946      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37947      402084 :          ipack = ipack + 1
   37948      402084 :          packed_data(ipack) = pack_tmp
   37949      402084 :          data_tmp = full_data(idata)
   37950      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37951      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37952      402084 :          idata = idata + 1
   37953      402084 :          data_tmp = full_data(idata)
   37954      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37955      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37956      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37957      402084 :          ipack = ipack + 1
   37958      402084 :          packed_data(ipack) = pack_tmp
   37959      402084 :          data_tmp = full_data(idata)
   37960      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37961      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37962      402084 :          idata = idata + 1
   37963      402084 :          data_tmp = full_data(idata)
   37964      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37965      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37966      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37967      402084 :          idata = idata + 1
   37968      402084 :          data_tmp = full_data(idata)
   37969             :          data_tmp = ISHFT(data_tmp, 16)
   37970      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37971      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37972      402084 :          ipack = ipack + 1
   37973      402084 :          packed_data(ipack) = pack_tmp
   37974      402084 :          data_tmp = full_data(idata)
   37975      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37976      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37977      402084 :          idata = idata + 1
   37978      402084 :          data_tmp = full_data(idata)
   37979      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37980      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37981      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37982      402084 :          ipack = ipack + 1
   37983      402084 :          packed_data(ipack) = pack_tmp
   37984      402084 :          data_tmp = full_data(idata)
   37985      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37986      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37987      402084 :          idata = idata + 1
   37988      402084 :          data_tmp = full_data(idata)
   37989      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37990      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37991      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37992      402084 :          ipack = ipack + 1
   37993      402084 :          packed_data(ipack) = pack_tmp
   37994      402084 :          data_tmp = full_data(idata)
   37995      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37996      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37997      402084 :          idata = idata + 1
   37998      402084 :          data_tmp = full_data(idata)
   37999      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38000      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38001      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38002      402084 :          idata = idata + 1
   38003      402084 :          data_tmp = full_data(idata)
   38004             :          data_tmp = ISHFT(data_tmp, 16)
   38005      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38006      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38007      402084 :          ipack = ipack + 1
   38008      402084 :          packed_data(ipack) = pack_tmp
   38009      402084 :          data_tmp = full_data(idata)
   38010      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38011      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38012      402084 :          idata = idata + 1
   38013      402084 :          data_tmp = full_data(idata)
   38014      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38015      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38016      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38017      402084 :          ipack = ipack + 1
   38018      402084 :          packed_data(ipack) = pack_tmp
   38019      402084 :          data_tmp = full_data(idata)
   38020      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38021      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38022      402084 :          idata = idata + 1
   38023      402084 :          data_tmp = full_data(idata)
   38024      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38025      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38026      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38027      402084 :          ipack = ipack + 1
   38028      402084 :          packed_data(ipack) = pack_tmp
   38029      402084 :          data_tmp = full_data(idata)
   38030      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38031      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38032      402084 :          idata = idata + 1
   38033      402084 :          data_tmp = full_data(idata)
   38034      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38035      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38036      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38037      402084 :          idata = idata + 1
   38038      402084 :          data_tmp = full_data(idata)
   38039             :          data_tmp = ISHFT(data_tmp, 16)
   38040      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38041      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38042      402084 :          ipack = ipack + 1
   38043      402084 :          packed_data(ipack) = pack_tmp
   38044      402084 :          data_tmp = full_data(idata)
   38045      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38046      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38047      402084 :          idata = idata + 1
   38048      402084 :          data_tmp = full_data(idata)
   38049      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38050      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38051      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38052      402084 :          ipack = ipack + 1
   38053      402084 :          packed_data(ipack) = pack_tmp
   38054      402084 :          data_tmp = full_data(idata)
   38055      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38056      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38057      402084 :          idata = idata + 1
   38058      402084 :          data_tmp = full_data(idata)
   38059      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38060      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38061      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38062      402084 :          ipack = ipack + 1
   38063      402084 :          packed_data(ipack) = pack_tmp
   38064      402084 :          data_tmp = full_data(idata)
   38065      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38066      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38067      402084 :          idata = idata + 1
   38068      402084 :          data_tmp = full_data(idata)
   38069      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38070      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38071      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38072      402084 :          idata = idata + 1
   38073      402084 :          data_tmp = full_data(idata)
   38074             :          data_tmp = ISHFT(data_tmp, 16)
   38075      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38076      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38077      402084 :          ipack = ipack + 1
   38078      402084 :          packed_data(ipack) = pack_tmp
   38079      402084 :          data_tmp = full_data(idata)
   38080      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38081      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38082      402084 :          idata = idata + 1
   38083      402084 :          data_tmp = full_data(idata)
   38084      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38085      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38086      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38087      402084 :          ipack = ipack + 1
   38088      402084 :          packed_data(ipack) = pack_tmp
   38089      402084 :          data_tmp = full_data(idata)
   38090      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38091      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38092      402084 :          idata = idata + 1
   38093      402084 :          data_tmp = full_data(idata)
   38094      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38095      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38096      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38097      402084 :          ipack = ipack + 1
   38098      402084 :          packed_data(ipack) = pack_tmp
   38099      402084 :          data_tmp = full_data(idata)
   38100      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38101      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38102      402084 :          idata = idata + 1
   38103      402084 :          data_tmp = full_data(idata)
   38104      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38105      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38106      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38107      402084 :          idata = idata + 1
   38108      402084 :          data_tmp = full_data(idata)
   38109             :          data_tmp = ISHFT(data_tmp, 16)
   38110      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38111      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38112      402084 :          ipack = ipack + 1
   38113      402084 :          packed_data(ipack) = pack_tmp
   38114      402084 :          data_tmp = full_data(idata)
   38115      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38116      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38117      402084 :          idata = idata + 1
   38118      402084 :          data_tmp = full_data(idata)
   38119      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38120      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38121      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38122      402084 :          ipack = ipack + 1
   38123      402084 :          packed_data(ipack) = pack_tmp
   38124      402084 :          data_tmp = full_data(idata)
   38125      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38126      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38127      402084 :          idata = idata + 1
   38128      402084 :          data_tmp = full_data(idata)
   38129      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38130      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38131      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38132      402084 :          ipack = ipack + 1
   38133      402084 :          packed_data(ipack) = pack_tmp
   38134      402084 :          data_tmp = full_data(idata)
   38135      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38136      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38137      402084 :          idata = idata + 1
   38138      402084 :          data_tmp = full_data(idata)
   38139      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38140      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38141      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38142      402084 :          idata = idata + 1
   38143      402084 :          data_tmp = full_data(idata)
   38144             :          data_tmp = ISHFT(data_tmp, 16)
   38145      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38146      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38147      402084 :          ipack = ipack + 1
   38148      402084 :          packed_data(ipack) = pack_tmp
   38149      402084 :          data_tmp = full_data(idata)
   38150      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38151      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38152      402084 :          idata = idata + 1
   38153      402084 :          data_tmp = full_data(idata)
   38154      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38155      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38156      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38157      402084 :          ipack = ipack + 1
   38158      402084 :          packed_data(ipack) = pack_tmp
   38159      402084 :          data_tmp = full_data(idata)
   38160      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38161      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38162      402084 :          idata = idata + 1
   38163      402084 :          data_tmp = full_data(idata)
   38164      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38165      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38166      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38167      402084 :          ipack = ipack + 1
   38168      402084 :          packed_data(ipack) = pack_tmp
   38169      402084 :          data_tmp = full_data(idata)
   38170      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38171      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38172      402084 :          idata = idata + 1
   38173      402084 :          data_tmp = full_data(idata)
   38174      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38175      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38176             :          pack_tmp = ISHFT(pack_tmp, 0)
   38177      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38178      402084 :          ipack = ipack + 1
   38179      402318 :          packed_data(ipack) = pack_tmp
   38180             :       END DO
   38181       26673 :       IF (Ndata_rep < Ndata) THEN
   38182        2904 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38183             :       END IF
   38184       26673 :    END SUBROUTINE ints2bits_48
   38185             : 
   38186             : ! **************************************************************************************************
   38187             : !> \brief ...
   38188             : !> \param Ndata ...
   38189             : !> \param packed_data ...
   38190             : !> \param full_data ...
   38191             : ! **************************************************************************************************
   38192      112296 :    SUBROUTINE bits2ints_48(Ndata, packed_data, full_data)
   38193             :       INTEGER, INTENT(IN)                                :: Ndata
   38194             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   38195             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   38196             : 
   38197             :       INTEGER, PARAMETER                                 :: Nbits = 48
   38198             : 
   38199             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   38200             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   38201             : 
   38202      112296 :       ipack = 0
   38203      112296 :       idata = 0
   38204      112296 :       pack_tmp = 0
   38205      112296 :       Ndata_rep = (Ndata/64)*64
   38206      112296 :       DO kdata = 1, Ndata_rep, 64
   38207     1662011 :          idata = idata + 1
   38208     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38209     1662011 :          ipack = ipack + 1
   38210     1662011 :          pack_tmp = packed_data(ipack)
   38211     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38212     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38213     1662011 :          idata = idata + 1
   38214     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38215     1662011 :          ipack = ipack + 1
   38216     1662011 :          pack_tmp = packed_data(ipack)
   38217     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38218     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38219     1662011 :          idata = idata + 1
   38220     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38221     1662011 :          ipack = ipack + 1
   38222     1662011 :          pack_tmp = packed_data(ipack)
   38223     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38224     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38225     1662011 :          idata = idata + 1
   38226     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38227     1662011 :          full_data(idata) = data_tmp
   38228     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38229     1662011 :          idata = idata + 1
   38230     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38231     1662011 :          ipack = ipack + 1
   38232     1662011 :          pack_tmp = packed_data(ipack)
   38233     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38234     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38235     1662011 :          idata = idata + 1
   38236     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38237     1662011 :          ipack = ipack + 1
   38238     1662011 :          pack_tmp = packed_data(ipack)
   38239     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38240     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38241     1662011 :          idata = idata + 1
   38242     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38243     1662011 :          ipack = ipack + 1
   38244     1662011 :          pack_tmp = packed_data(ipack)
   38245     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38246     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38247     1662011 :          idata = idata + 1
   38248     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38249     1662011 :          full_data(idata) = data_tmp
   38250     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38251     1662011 :          idata = idata + 1
   38252     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38253     1662011 :          ipack = ipack + 1
   38254     1662011 :          pack_tmp = packed_data(ipack)
   38255     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38256     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38257     1662011 :          idata = idata + 1
   38258     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38259     1662011 :          ipack = ipack + 1
   38260     1662011 :          pack_tmp = packed_data(ipack)
   38261     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38262     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38263     1662011 :          idata = idata + 1
   38264     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38265     1662011 :          ipack = ipack + 1
   38266     1662011 :          pack_tmp = packed_data(ipack)
   38267     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38268     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38269     1662011 :          idata = idata + 1
   38270     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38271     1662011 :          full_data(idata) = data_tmp
   38272     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38273     1662011 :          idata = idata + 1
   38274     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38275     1662011 :          ipack = ipack + 1
   38276     1662011 :          pack_tmp = packed_data(ipack)
   38277     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38278     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38279     1662011 :          idata = idata + 1
   38280     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38281     1662011 :          ipack = ipack + 1
   38282     1662011 :          pack_tmp = packed_data(ipack)
   38283     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38284     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38285     1662011 :          idata = idata + 1
   38286     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38287     1662011 :          ipack = ipack + 1
   38288     1662011 :          pack_tmp = packed_data(ipack)
   38289     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38290     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38291     1662011 :          idata = idata + 1
   38292     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38293     1662011 :          full_data(idata) = data_tmp
   38294     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38295     1662011 :          idata = idata + 1
   38296     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38297     1662011 :          ipack = ipack + 1
   38298     1662011 :          pack_tmp = packed_data(ipack)
   38299     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38300     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38301     1662011 :          idata = idata + 1
   38302     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38303     1662011 :          ipack = ipack + 1
   38304     1662011 :          pack_tmp = packed_data(ipack)
   38305     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38306     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38307     1662011 :          idata = idata + 1
   38308     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38309     1662011 :          ipack = ipack + 1
   38310     1662011 :          pack_tmp = packed_data(ipack)
   38311     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38312     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38313     1662011 :          idata = idata + 1
   38314     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38315     1662011 :          full_data(idata) = data_tmp
   38316     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38317     1662011 :          idata = idata + 1
   38318     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38319     1662011 :          ipack = ipack + 1
   38320     1662011 :          pack_tmp = packed_data(ipack)
   38321     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38322     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38323     1662011 :          idata = idata + 1
   38324     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38325     1662011 :          ipack = ipack + 1
   38326     1662011 :          pack_tmp = packed_data(ipack)
   38327     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38328     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38329     1662011 :          idata = idata + 1
   38330     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38331     1662011 :          ipack = ipack + 1
   38332     1662011 :          pack_tmp = packed_data(ipack)
   38333     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38334     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38335     1662011 :          idata = idata + 1
   38336     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38337     1662011 :          full_data(idata) = data_tmp
   38338     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38339     1662011 :          idata = idata + 1
   38340     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38341     1662011 :          ipack = ipack + 1
   38342     1662011 :          pack_tmp = packed_data(ipack)
   38343     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38344     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38345     1662011 :          idata = idata + 1
   38346     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38347     1662011 :          ipack = ipack + 1
   38348     1662011 :          pack_tmp = packed_data(ipack)
   38349     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38350     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38351     1662011 :          idata = idata + 1
   38352     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38353     1662011 :          ipack = ipack + 1
   38354     1662011 :          pack_tmp = packed_data(ipack)
   38355     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38356     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38357     1662011 :          idata = idata + 1
   38358     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38359     1662011 :          full_data(idata) = data_tmp
   38360     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38361     1662011 :          idata = idata + 1
   38362     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38363     1662011 :          ipack = ipack + 1
   38364     1662011 :          pack_tmp = packed_data(ipack)
   38365     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38366     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38367     1662011 :          idata = idata + 1
   38368     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38369     1662011 :          ipack = ipack + 1
   38370     1662011 :          pack_tmp = packed_data(ipack)
   38371     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38372     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38373     1662011 :          idata = idata + 1
   38374     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38375     1662011 :          ipack = ipack + 1
   38376     1662011 :          pack_tmp = packed_data(ipack)
   38377     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38378     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38379     1662011 :          idata = idata + 1
   38380     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38381     1662011 :          full_data(idata) = data_tmp
   38382     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38383     1662011 :          idata = idata + 1
   38384     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38385     1662011 :          ipack = ipack + 1
   38386     1662011 :          pack_tmp = packed_data(ipack)
   38387     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38388     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38389     1662011 :          idata = idata + 1
   38390     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38391     1662011 :          ipack = ipack + 1
   38392     1662011 :          pack_tmp = packed_data(ipack)
   38393     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38394     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38395     1662011 :          idata = idata + 1
   38396     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38397     1662011 :          ipack = ipack + 1
   38398     1662011 :          pack_tmp = packed_data(ipack)
   38399     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38400     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38401     1662011 :          idata = idata + 1
   38402     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38403     1662011 :          full_data(idata) = data_tmp
   38404     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38405     1662011 :          idata = idata + 1
   38406     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38407     1662011 :          ipack = ipack + 1
   38408     1662011 :          pack_tmp = packed_data(ipack)
   38409     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38410     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38411     1662011 :          idata = idata + 1
   38412     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38413     1662011 :          ipack = ipack + 1
   38414     1662011 :          pack_tmp = packed_data(ipack)
   38415     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38416     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38417     1662011 :          idata = idata + 1
   38418     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38419     1662011 :          ipack = ipack + 1
   38420     1662011 :          pack_tmp = packed_data(ipack)
   38421     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38422     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38423     1662011 :          idata = idata + 1
   38424     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38425     1662011 :          full_data(idata) = data_tmp
   38426     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38427     1662011 :          idata = idata + 1
   38428     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38429     1662011 :          ipack = ipack + 1
   38430     1662011 :          pack_tmp = packed_data(ipack)
   38431     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38432     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38433     1662011 :          idata = idata + 1
   38434     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38435     1662011 :          ipack = ipack + 1
   38436     1662011 :          pack_tmp = packed_data(ipack)
   38437     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38438     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38439     1662011 :          idata = idata + 1
   38440     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38441     1662011 :          ipack = ipack + 1
   38442     1662011 :          pack_tmp = packed_data(ipack)
   38443     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38444     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38445     1662011 :          idata = idata + 1
   38446     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38447     1662011 :          full_data(idata) = data_tmp
   38448     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38449     1662011 :          idata = idata + 1
   38450     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38451     1662011 :          ipack = ipack + 1
   38452     1662011 :          pack_tmp = packed_data(ipack)
   38453     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38454     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38455     1662011 :          idata = idata + 1
   38456     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38457     1662011 :          ipack = ipack + 1
   38458     1662011 :          pack_tmp = packed_data(ipack)
   38459     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38460     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38461     1662011 :          idata = idata + 1
   38462     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38463     1662011 :          ipack = ipack + 1
   38464     1662011 :          pack_tmp = packed_data(ipack)
   38465     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38466     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38467     1662011 :          idata = idata + 1
   38468     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38469     1662011 :          full_data(idata) = data_tmp
   38470     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38471     1662011 :          idata = idata + 1
   38472     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38473     1662011 :          ipack = ipack + 1
   38474     1662011 :          pack_tmp = packed_data(ipack)
   38475     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38476     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38477     1662011 :          idata = idata + 1
   38478     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38479     1662011 :          ipack = ipack + 1
   38480     1662011 :          pack_tmp = packed_data(ipack)
   38481     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38482     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38483     1662011 :          idata = idata + 1
   38484     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38485     1662011 :          ipack = ipack + 1
   38486     1662011 :          pack_tmp = packed_data(ipack)
   38487     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38488     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38489     1662011 :          idata = idata + 1
   38490     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38491     1662011 :          full_data(idata) = data_tmp
   38492     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38493     1662011 :          idata = idata + 1
   38494     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38495     1662011 :          ipack = ipack + 1
   38496     1662011 :          pack_tmp = packed_data(ipack)
   38497     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38498     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38499     1662011 :          idata = idata + 1
   38500     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38501     1662011 :          ipack = ipack + 1
   38502     1662011 :          pack_tmp = packed_data(ipack)
   38503     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38504     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38505     1662011 :          idata = idata + 1
   38506     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38507     1662011 :          ipack = ipack + 1
   38508     1662011 :          pack_tmp = packed_data(ipack)
   38509     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38510     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38511     1662011 :          idata = idata + 1
   38512     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38513     1662011 :          full_data(idata) = data_tmp
   38514     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38515     1662011 :          idata = idata + 1
   38516     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38517     1662011 :          ipack = ipack + 1
   38518     1662011 :          pack_tmp = packed_data(ipack)
   38519     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38520     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38521     1662011 :          idata = idata + 1
   38522     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38523     1662011 :          ipack = ipack + 1
   38524     1662011 :          pack_tmp = packed_data(ipack)
   38525     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38526     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38527     1662011 :          idata = idata + 1
   38528     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38529     1662011 :          ipack = ipack + 1
   38530     1662011 :          pack_tmp = packed_data(ipack)
   38531     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38532     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38533     1662011 :          idata = idata + 1
   38534     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38535     1662011 :          full_data(idata) = data_tmp
   38536     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38537     1662011 :          idata = idata + 1
   38538     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38539     1662011 :          ipack = ipack + 1
   38540     1662011 :          pack_tmp = packed_data(ipack)
   38541     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38542     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38543     1662011 :          idata = idata + 1
   38544     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38545     1662011 :          ipack = ipack + 1
   38546     1662011 :          pack_tmp = packed_data(ipack)
   38547     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38548     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38549     1662011 :          idata = idata + 1
   38550     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38551     1662011 :          ipack = ipack + 1
   38552     1662011 :          pack_tmp = packed_data(ipack)
   38553     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38554     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38555     1662011 :          idata = idata + 1
   38556     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38557     1662011 :          full_data(idata) = data_tmp
   38558     1663576 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38559             :       END DO
   38560      112296 :       IF (Ndata_rep < Ndata) THEN
   38561       15850 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38562             :       END IF
   38563      112296 :    END SUBROUTINE bits2ints_48
   38564             : 
   38565             : ! **************************************************************************************************
   38566             : !> \brief ...
   38567             : !> \param Ndata ...
   38568             : !> \param packed_data ...
   38569             : !> \param full_data ...
   38570             : ! **************************************************************************************************
   38571       25532 :    SUBROUTINE ints2bits_49(Ndata, packed_data, full_data)
   38572             :       INTEGER, INTENT(IN)                                :: Ndata
   38573             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   38574             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   38575             : 
   38576             :       INTEGER, PARAMETER                                 :: Nbits = 49
   38577             : 
   38578             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   38579             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   38580             : 
   38581       25532 :       idata = 0
   38582       25532 :       ipack = 0
   38583       25532 :       Ndata_rep = (Ndata/64)*64
   38584       25532 :       DO kdata = 1, Ndata_rep, 64
   38585      393229 :          pack_tmp = 0
   38586      393229 :          idata = idata + 1
   38587      393229 :          data_tmp = full_data(idata)
   38588      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38589      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38590      393229 :          pack_tmp = ISHFT(pack_tmp, -15)
   38591      393229 :          idata = idata + 1
   38592      393229 :          data_tmp = full_data(idata)
   38593      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38594      393229 :          data_tmp = IAND(data_tmp, mask_left(15))
   38595      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38596      393229 :          ipack = ipack + 1
   38597      393229 :          packed_data(ipack) = pack_tmp
   38598      393229 :          data_tmp = full_data(idata)
   38599      393229 :          pack_tmp = ISHFT(data_tmp, 30)
   38600      393229 :          pack_tmp = ISHFT(pack_tmp, -30)
   38601      393229 :          idata = idata + 1
   38602      393229 :          data_tmp = full_data(idata)
   38603      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38604      393229 :          data_tmp = IAND(data_tmp, mask_left(30))
   38605      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38606      393229 :          ipack = ipack + 1
   38607      393229 :          packed_data(ipack) = pack_tmp
   38608      393229 :          data_tmp = full_data(idata)
   38609      393229 :          pack_tmp = ISHFT(data_tmp, 45)
   38610      393229 :          pack_tmp = ISHFT(pack_tmp, -45)
   38611      393229 :          idata = idata + 1
   38612      393229 :          data_tmp = full_data(idata)
   38613      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38614      393229 :          data_tmp = IAND(data_tmp, mask_left(45))
   38615      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38616      393229 :          ipack = ipack + 1
   38617      393229 :          packed_data(ipack) = pack_tmp
   38618      393229 :          data_tmp = full_data(idata)
   38619      393229 :          pack_tmp = ISHFT(data_tmp, 60)
   38620      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38621      393229 :          idata = idata + 1
   38622      393229 :          data_tmp = full_data(idata)
   38623      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38624      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38625      393229 :          pack_tmp = ISHFT(pack_tmp, -11)
   38626      393229 :          idata = idata + 1
   38627      393229 :          data_tmp = full_data(idata)
   38628      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38629      393229 :          data_tmp = IAND(data_tmp, mask_left(11))
   38630      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38631      393229 :          ipack = ipack + 1
   38632      393229 :          packed_data(ipack) = pack_tmp
   38633      393229 :          data_tmp = full_data(idata)
   38634      393229 :          pack_tmp = ISHFT(data_tmp, 26)
   38635      393229 :          pack_tmp = ISHFT(pack_tmp, -26)
   38636      393229 :          idata = idata + 1
   38637      393229 :          data_tmp = full_data(idata)
   38638      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38639      393229 :          data_tmp = IAND(data_tmp, mask_left(26))
   38640      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38641      393229 :          ipack = ipack + 1
   38642      393229 :          packed_data(ipack) = pack_tmp
   38643      393229 :          data_tmp = full_data(idata)
   38644      393229 :          pack_tmp = ISHFT(data_tmp, 41)
   38645      393229 :          pack_tmp = ISHFT(pack_tmp, -41)
   38646      393229 :          idata = idata + 1
   38647      393229 :          data_tmp = full_data(idata)
   38648      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38649      393229 :          data_tmp = IAND(data_tmp, mask_left(41))
   38650      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38651      393229 :          ipack = ipack + 1
   38652      393229 :          packed_data(ipack) = pack_tmp
   38653      393229 :          data_tmp = full_data(idata)
   38654      393229 :          pack_tmp = ISHFT(data_tmp, 56)
   38655      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38656      393229 :          idata = idata + 1
   38657      393229 :          data_tmp = full_data(idata)
   38658      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38659      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38660      393229 :          pack_tmp = ISHFT(pack_tmp, -7)
   38661      393229 :          idata = idata + 1
   38662      393229 :          data_tmp = full_data(idata)
   38663      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38664      393229 :          data_tmp = IAND(data_tmp, mask_left(7))
   38665      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38666      393229 :          ipack = ipack + 1
   38667      393229 :          packed_data(ipack) = pack_tmp
   38668      393229 :          data_tmp = full_data(idata)
   38669      393229 :          pack_tmp = ISHFT(data_tmp, 22)
   38670      393229 :          pack_tmp = ISHFT(pack_tmp, -22)
   38671      393229 :          idata = idata + 1
   38672      393229 :          data_tmp = full_data(idata)
   38673      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38674      393229 :          data_tmp = IAND(data_tmp, mask_left(22))
   38675      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38676      393229 :          ipack = ipack + 1
   38677      393229 :          packed_data(ipack) = pack_tmp
   38678      393229 :          data_tmp = full_data(idata)
   38679      393229 :          pack_tmp = ISHFT(data_tmp, 37)
   38680      393229 :          pack_tmp = ISHFT(pack_tmp, -37)
   38681      393229 :          idata = idata + 1
   38682      393229 :          data_tmp = full_data(idata)
   38683      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38684      393229 :          data_tmp = IAND(data_tmp, mask_left(37))
   38685      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38686      393229 :          ipack = ipack + 1
   38687      393229 :          packed_data(ipack) = pack_tmp
   38688      393229 :          data_tmp = full_data(idata)
   38689      393229 :          pack_tmp = ISHFT(data_tmp, 52)
   38690      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38691      393229 :          idata = idata + 1
   38692      393229 :          data_tmp = full_data(idata)
   38693      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38694      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38695      393229 :          pack_tmp = ISHFT(pack_tmp, -3)
   38696      393229 :          idata = idata + 1
   38697      393229 :          data_tmp = full_data(idata)
   38698      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38699      393229 :          data_tmp = IAND(data_tmp, mask_left(3))
   38700      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38701      393229 :          ipack = ipack + 1
   38702      393229 :          packed_data(ipack) = pack_tmp
   38703      393229 :          data_tmp = full_data(idata)
   38704      393229 :          pack_tmp = ISHFT(data_tmp, 18)
   38705      393229 :          pack_tmp = ISHFT(pack_tmp, -18)
   38706      393229 :          idata = idata + 1
   38707      393229 :          data_tmp = full_data(idata)
   38708      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38709      393229 :          data_tmp = IAND(data_tmp, mask_left(18))
   38710      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38711      393229 :          ipack = ipack + 1
   38712      393229 :          packed_data(ipack) = pack_tmp
   38713      393229 :          data_tmp = full_data(idata)
   38714      393229 :          pack_tmp = ISHFT(data_tmp, 33)
   38715      393229 :          pack_tmp = ISHFT(pack_tmp, -33)
   38716      393229 :          idata = idata + 1
   38717      393229 :          data_tmp = full_data(idata)
   38718      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38719      393229 :          data_tmp = IAND(data_tmp, mask_left(33))
   38720      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38721      393229 :          ipack = ipack + 1
   38722      393229 :          packed_data(ipack) = pack_tmp
   38723      393229 :          data_tmp = full_data(idata)
   38724      393229 :          pack_tmp = ISHFT(data_tmp, 48)
   38725      393229 :          pack_tmp = ISHFT(pack_tmp, -48)
   38726      393229 :          idata = idata + 1
   38727      393229 :          data_tmp = full_data(idata)
   38728      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38729      393229 :          data_tmp = IAND(data_tmp, mask_left(48))
   38730      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38731      393229 :          ipack = ipack + 1
   38732      393229 :          packed_data(ipack) = pack_tmp
   38733      393229 :          data_tmp = full_data(idata)
   38734      393229 :          pack_tmp = ISHFT(data_tmp, 63)
   38735      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38736      393229 :          idata = idata + 1
   38737      393229 :          data_tmp = full_data(idata)
   38738      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38739      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38740      393229 :          pack_tmp = ISHFT(pack_tmp, -14)
   38741      393229 :          idata = idata + 1
   38742      393229 :          data_tmp = full_data(idata)
   38743      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38744      393229 :          data_tmp = IAND(data_tmp, mask_left(14))
   38745      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38746      393229 :          ipack = ipack + 1
   38747      393229 :          packed_data(ipack) = pack_tmp
   38748      393229 :          data_tmp = full_data(idata)
   38749      393229 :          pack_tmp = ISHFT(data_tmp, 29)
   38750      393229 :          pack_tmp = ISHFT(pack_tmp, -29)
   38751      393229 :          idata = idata + 1
   38752      393229 :          data_tmp = full_data(idata)
   38753      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38754      393229 :          data_tmp = IAND(data_tmp, mask_left(29))
   38755      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38756      393229 :          ipack = ipack + 1
   38757      393229 :          packed_data(ipack) = pack_tmp
   38758      393229 :          data_tmp = full_data(idata)
   38759      393229 :          pack_tmp = ISHFT(data_tmp, 44)
   38760      393229 :          pack_tmp = ISHFT(pack_tmp, -44)
   38761      393229 :          idata = idata + 1
   38762      393229 :          data_tmp = full_data(idata)
   38763      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38764      393229 :          data_tmp = IAND(data_tmp, mask_left(44))
   38765      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38766      393229 :          ipack = ipack + 1
   38767      393229 :          packed_data(ipack) = pack_tmp
   38768      393229 :          data_tmp = full_data(idata)
   38769      393229 :          pack_tmp = ISHFT(data_tmp, 59)
   38770      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38771      393229 :          idata = idata + 1
   38772      393229 :          data_tmp = full_data(idata)
   38773      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38774      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38775      393229 :          pack_tmp = ISHFT(pack_tmp, -10)
   38776      393229 :          idata = idata + 1
   38777      393229 :          data_tmp = full_data(idata)
   38778      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38779      393229 :          data_tmp = IAND(data_tmp, mask_left(10))
   38780      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38781      393229 :          ipack = ipack + 1
   38782      393229 :          packed_data(ipack) = pack_tmp
   38783      393229 :          data_tmp = full_data(idata)
   38784      393229 :          pack_tmp = ISHFT(data_tmp, 25)
   38785      393229 :          pack_tmp = ISHFT(pack_tmp, -25)
   38786      393229 :          idata = idata + 1
   38787      393229 :          data_tmp = full_data(idata)
   38788      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38789      393229 :          data_tmp = IAND(data_tmp, mask_left(25))
   38790      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38791      393229 :          ipack = ipack + 1
   38792      393229 :          packed_data(ipack) = pack_tmp
   38793      393229 :          data_tmp = full_data(idata)
   38794      393229 :          pack_tmp = ISHFT(data_tmp, 40)
   38795      393229 :          pack_tmp = ISHFT(pack_tmp, -40)
   38796      393229 :          idata = idata + 1
   38797      393229 :          data_tmp = full_data(idata)
   38798      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38799      393229 :          data_tmp = IAND(data_tmp, mask_left(40))
   38800      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38801      393229 :          ipack = ipack + 1
   38802      393229 :          packed_data(ipack) = pack_tmp
   38803      393229 :          data_tmp = full_data(idata)
   38804      393229 :          pack_tmp = ISHFT(data_tmp, 55)
   38805      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38806      393229 :          idata = idata + 1
   38807      393229 :          data_tmp = full_data(idata)
   38808      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38809      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38810      393229 :          pack_tmp = ISHFT(pack_tmp, -6)
   38811      393229 :          idata = idata + 1
   38812      393229 :          data_tmp = full_data(idata)
   38813      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38814      393229 :          data_tmp = IAND(data_tmp, mask_left(6))
   38815      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38816      393229 :          ipack = ipack + 1
   38817      393229 :          packed_data(ipack) = pack_tmp
   38818      393229 :          data_tmp = full_data(idata)
   38819      393229 :          pack_tmp = ISHFT(data_tmp, 21)
   38820      393229 :          pack_tmp = ISHFT(pack_tmp, -21)
   38821      393229 :          idata = idata + 1
   38822      393229 :          data_tmp = full_data(idata)
   38823      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38824      393229 :          data_tmp = IAND(data_tmp, mask_left(21))
   38825      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38826      393229 :          ipack = ipack + 1
   38827      393229 :          packed_data(ipack) = pack_tmp
   38828      393229 :          data_tmp = full_data(idata)
   38829      393229 :          pack_tmp = ISHFT(data_tmp, 36)
   38830      393229 :          pack_tmp = ISHFT(pack_tmp, -36)
   38831      393229 :          idata = idata + 1
   38832      393229 :          data_tmp = full_data(idata)
   38833      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38834      393229 :          data_tmp = IAND(data_tmp, mask_left(36))
   38835      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38836      393229 :          ipack = ipack + 1
   38837      393229 :          packed_data(ipack) = pack_tmp
   38838      393229 :          data_tmp = full_data(idata)
   38839      393229 :          pack_tmp = ISHFT(data_tmp, 51)
   38840      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38841      393229 :          idata = idata + 1
   38842      393229 :          data_tmp = full_data(idata)
   38843      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38844      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38845      393229 :          pack_tmp = ISHFT(pack_tmp, -2)
   38846      393229 :          idata = idata + 1
   38847      393229 :          data_tmp = full_data(idata)
   38848      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38849      393229 :          data_tmp = IAND(data_tmp, mask_left(2))
   38850      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38851      393229 :          ipack = ipack + 1
   38852      393229 :          packed_data(ipack) = pack_tmp
   38853      393229 :          data_tmp = full_data(idata)
   38854      393229 :          pack_tmp = ISHFT(data_tmp, 17)
   38855      393229 :          pack_tmp = ISHFT(pack_tmp, -17)
   38856      393229 :          idata = idata + 1
   38857      393229 :          data_tmp = full_data(idata)
   38858      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38859      393229 :          data_tmp = IAND(data_tmp, mask_left(17))
   38860      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38861      393229 :          ipack = ipack + 1
   38862      393229 :          packed_data(ipack) = pack_tmp
   38863      393229 :          data_tmp = full_data(idata)
   38864      393229 :          pack_tmp = ISHFT(data_tmp, 32)
   38865      393229 :          pack_tmp = ISHFT(pack_tmp, -32)
   38866      393229 :          idata = idata + 1
   38867      393229 :          data_tmp = full_data(idata)
   38868      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38869      393229 :          data_tmp = IAND(data_tmp, mask_left(32))
   38870      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38871      393229 :          ipack = ipack + 1
   38872      393229 :          packed_data(ipack) = pack_tmp
   38873      393229 :          data_tmp = full_data(idata)
   38874      393229 :          pack_tmp = ISHFT(data_tmp, 47)
   38875      393229 :          pack_tmp = ISHFT(pack_tmp, -47)
   38876      393229 :          idata = idata + 1
   38877      393229 :          data_tmp = full_data(idata)
   38878      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38879      393229 :          data_tmp = IAND(data_tmp, mask_left(47))
   38880      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38881      393229 :          ipack = ipack + 1
   38882      393229 :          packed_data(ipack) = pack_tmp
   38883      393229 :          data_tmp = full_data(idata)
   38884      393229 :          pack_tmp = ISHFT(data_tmp, 62)
   38885      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38886      393229 :          idata = idata + 1
   38887      393229 :          data_tmp = full_data(idata)
   38888      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38889      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38890      393229 :          pack_tmp = ISHFT(pack_tmp, -13)
   38891      393229 :          idata = idata + 1
   38892      393229 :          data_tmp = full_data(idata)
   38893      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38894      393229 :          data_tmp = IAND(data_tmp, mask_left(13))
   38895      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38896      393229 :          ipack = ipack + 1
   38897      393229 :          packed_data(ipack) = pack_tmp
   38898      393229 :          data_tmp = full_data(idata)
   38899      393229 :          pack_tmp = ISHFT(data_tmp, 28)
   38900      393229 :          pack_tmp = ISHFT(pack_tmp, -28)
   38901      393229 :          idata = idata + 1
   38902      393229 :          data_tmp = full_data(idata)
   38903      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38904      393229 :          data_tmp = IAND(data_tmp, mask_left(28))
   38905      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38906      393229 :          ipack = ipack + 1
   38907      393229 :          packed_data(ipack) = pack_tmp
   38908      393229 :          data_tmp = full_data(idata)
   38909      393229 :          pack_tmp = ISHFT(data_tmp, 43)
   38910      393229 :          pack_tmp = ISHFT(pack_tmp, -43)
   38911      393229 :          idata = idata + 1
   38912      393229 :          data_tmp = full_data(idata)
   38913      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38914      393229 :          data_tmp = IAND(data_tmp, mask_left(43))
   38915      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38916      393229 :          ipack = ipack + 1
   38917      393229 :          packed_data(ipack) = pack_tmp
   38918      393229 :          data_tmp = full_data(idata)
   38919      393229 :          pack_tmp = ISHFT(data_tmp, 58)
   38920      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38921      393229 :          idata = idata + 1
   38922      393229 :          data_tmp = full_data(idata)
   38923      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38924      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38925      393229 :          pack_tmp = ISHFT(pack_tmp, -9)
   38926      393229 :          idata = idata + 1
   38927      393229 :          data_tmp = full_data(idata)
   38928      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38929      393229 :          data_tmp = IAND(data_tmp, mask_left(9))
   38930      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38931      393229 :          ipack = ipack + 1
   38932      393229 :          packed_data(ipack) = pack_tmp
   38933      393229 :          data_tmp = full_data(idata)
   38934      393229 :          pack_tmp = ISHFT(data_tmp, 24)
   38935      393229 :          pack_tmp = ISHFT(pack_tmp, -24)
   38936      393229 :          idata = idata + 1
   38937      393229 :          data_tmp = full_data(idata)
   38938      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38939      393229 :          data_tmp = IAND(data_tmp, mask_left(24))
   38940      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38941      393229 :          ipack = ipack + 1
   38942      393229 :          packed_data(ipack) = pack_tmp
   38943      393229 :          data_tmp = full_data(idata)
   38944      393229 :          pack_tmp = ISHFT(data_tmp, 39)
   38945      393229 :          pack_tmp = ISHFT(pack_tmp, -39)
   38946      393229 :          idata = idata + 1
   38947      393229 :          data_tmp = full_data(idata)
   38948      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38949      393229 :          data_tmp = IAND(data_tmp, mask_left(39))
   38950      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38951      393229 :          ipack = ipack + 1
   38952      393229 :          packed_data(ipack) = pack_tmp
   38953      393229 :          data_tmp = full_data(idata)
   38954      393229 :          pack_tmp = ISHFT(data_tmp, 54)
   38955      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38956      393229 :          idata = idata + 1
   38957      393229 :          data_tmp = full_data(idata)
   38958      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38959      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38960      393229 :          pack_tmp = ISHFT(pack_tmp, -5)
   38961      393229 :          idata = idata + 1
   38962      393229 :          data_tmp = full_data(idata)
   38963      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38964      393229 :          data_tmp = IAND(data_tmp, mask_left(5))
   38965      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38966      393229 :          ipack = ipack + 1
   38967      393229 :          packed_data(ipack) = pack_tmp
   38968      393229 :          data_tmp = full_data(idata)
   38969      393229 :          pack_tmp = ISHFT(data_tmp, 20)
   38970      393229 :          pack_tmp = ISHFT(pack_tmp, -20)
   38971      393229 :          idata = idata + 1
   38972      393229 :          data_tmp = full_data(idata)
   38973      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38974      393229 :          data_tmp = IAND(data_tmp, mask_left(20))
   38975      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38976      393229 :          ipack = ipack + 1
   38977      393229 :          packed_data(ipack) = pack_tmp
   38978      393229 :          data_tmp = full_data(idata)
   38979      393229 :          pack_tmp = ISHFT(data_tmp, 35)
   38980      393229 :          pack_tmp = ISHFT(pack_tmp, -35)
   38981      393229 :          idata = idata + 1
   38982      393229 :          data_tmp = full_data(idata)
   38983      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38984      393229 :          data_tmp = IAND(data_tmp, mask_left(35))
   38985      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38986      393229 :          ipack = ipack + 1
   38987      393229 :          packed_data(ipack) = pack_tmp
   38988      393229 :          data_tmp = full_data(idata)
   38989      393229 :          pack_tmp = ISHFT(data_tmp, 50)
   38990      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38991      393229 :          idata = idata + 1
   38992      393229 :          data_tmp = full_data(idata)
   38993      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38994      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38995      393229 :          pack_tmp = ISHFT(pack_tmp, -1)
   38996      393229 :          idata = idata + 1
   38997      393229 :          data_tmp = full_data(idata)
   38998      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38999      393229 :          data_tmp = IAND(data_tmp, mask_left(1))
   39000      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39001      393229 :          ipack = ipack + 1
   39002      393229 :          packed_data(ipack) = pack_tmp
   39003      393229 :          data_tmp = full_data(idata)
   39004      393229 :          pack_tmp = ISHFT(data_tmp, 16)
   39005      393229 :          pack_tmp = ISHFT(pack_tmp, -16)
   39006      393229 :          idata = idata + 1
   39007      393229 :          data_tmp = full_data(idata)
   39008      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39009      393229 :          data_tmp = IAND(data_tmp, mask_left(16))
   39010      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39011      393229 :          ipack = ipack + 1
   39012      393229 :          packed_data(ipack) = pack_tmp
   39013      393229 :          data_tmp = full_data(idata)
   39014      393229 :          pack_tmp = ISHFT(data_tmp, 31)
   39015      393229 :          pack_tmp = ISHFT(pack_tmp, -31)
   39016      393229 :          idata = idata + 1
   39017      393229 :          data_tmp = full_data(idata)
   39018      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39019      393229 :          data_tmp = IAND(data_tmp, mask_left(31))
   39020      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39021      393229 :          ipack = ipack + 1
   39022      393229 :          packed_data(ipack) = pack_tmp
   39023      393229 :          data_tmp = full_data(idata)
   39024      393229 :          pack_tmp = ISHFT(data_tmp, 46)
   39025      393229 :          pack_tmp = ISHFT(pack_tmp, -46)
   39026      393229 :          idata = idata + 1
   39027      393229 :          data_tmp = full_data(idata)
   39028      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39029      393229 :          data_tmp = IAND(data_tmp, mask_left(46))
   39030      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39031      393229 :          ipack = ipack + 1
   39032      393229 :          packed_data(ipack) = pack_tmp
   39033      393229 :          data_tmp = full_data(idata)
   39034      393229 :          pack_tmp = ISHFT(data_tmp, 61)
   39035      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39036      393229 :          idata = idata + 1
   39037      393229 :          data_tmp = full_data(idata)
   39038      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39039      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39040      393229 :          pack_tmp = ISHFT(pack_tmp, -12)
   39041      393229 :          idata = idata + 1
   39042      393229 :          data_tmp = full_data(idata)
   39043      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39044      393229 :          data_tmp = IAND(data_tmp, mask_left(12))
   39045      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39046      393229 :          ipack = ipack + 1
   39047      393229 :          packed_data(ipack) = pack_tmp
   39048      393229 :          data_tmp = full_data(idata)
   39049      393229 :          pack_tmp = ISHFT(data_tmp, 27)
   39050      393229 :          pack_tmp = ISHFT(pack_tmp, -27)
   39051      393229 :          idata = idata + 1
   39052      393229 :          data_tmp = full_data(idata)
   39053      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39054      393229 :          data_tmp = IAND(data_tmp, mask_left(27))
   39055      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39056      393229 :          ipack = ipack + 1
   39057      393229 :          packed_data(ipack) = pack_tmp
   39058      393229 :          data_tmp = full_data(idata)
   39059      393229 :          pack_tmp = ISHFT(data_tmp, 42)
   39060      393229 :          pack_tmp = ISHFT(pack_tmp, -42)
   39061      393229 :          idata = idata + 1
   39062      393229 :          data_tmp = full_data(idata)
   39063      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39064      393229 :          data_tmp = IAND(data_tmp, mask_left(42))
   39065      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39066      393229 :          ipack = ipack + 1
   39067      393229 :          packed_data(ipack) = pack_tmp
   39068      393229 :          data_tmp = full_data(idata)
   39069      393229 :          pack_tmp = ISHFT(data_tmp, 57)
   39070      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39071      393229 :          idata = idata + 1
   39072      393229 :          data_tmp = full_data(idata)
   39073      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39074      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39075      393229 :          pack_tmp = ISHFT(pack_tmp, -8)
   39076      393229 :          idata = idata + 1
   39077      393229 :          data_tmp = full_data(idata)
   39078      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39079      393229 :          data_tmp = IAND(data_tmp, mask_left(8))
   39080      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39081      393229 :          ipack = ipack + 1
   39082      393229 :          packed_data(ipack) = pack_tmp
   39083      393229 :          data_tmp = full_data(idata)
   39084      393229 :          pack_tmp = ISHFT(data_tmp, 23)
   39085      393229 :          pack_tmp = ISHFT(pack_tmp, -23)
   39086      393229 :          idata = idata + 1
   39087      393229 :          data_tmp = full_data(idata)
   39088      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39089      393229 :          data_tmp = IAND(data_tmp, mask_left(23))
   39090      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39091      393229 :          ipack = ipack + 1
   39092      393229 :          packed_data(ipack) = pack_tmp
   39093      393229 :          data_tmp = full_data(idata)
   39094      393229 :          pack_tmp = ISHFT(data_tmp, 38)
   39095      393229 :          pack_tmp = ISHFT(pack_tmp, -38)
   39096      393229 :          idata = idata + 1
   39097      393229 :          data_tmp = full_data(idata)
   39098      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39099      393229 :          data_tmp = IAND(data_tmp, mask_left(38))
   39100      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39101      393229 :          ipack = ipack + 1
   39102      393229 :          packed_data(ipack) = pack_tmp
   39103      393229 :          data_tmp = full_data(idata)
   39104      393229 :          pack_tmp = ISHFT(data_tmp, 53)
   39105      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39106      393229 :          idata = idata + 1
   39107      393229 :          data_tmp = full_data(idata)
   39108      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39109      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39110      393229 :          pack_tmp = ISHFT(pack_tmp, -4)
   39111      393229 :          idata = idata + 1
   39112      393229 :          data_tmp = full_data(idata)
   39113      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39114      393229 :          data_tmp = IAND(data_tmp, mask_left(4))
   39115      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39116      393229 :          ipack = ipack + 1
   39117      393229 :          packed_data(ipack) = pack_tmp
   39118      393229 :          data_tmp = full_data(idata)
   39119      393229 :          pack_tmp = ISHFT(data_tmp, 19)
   39120      393229 :          pack_tmp = ISHFT(pack_tmp, -19)
   39121      393229 :          idata = idata + 1
   39122      393229 :          data_tmp = full_data(idata)
   39123      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39124      393229 :          data_tmp = IAND(data_tmp, mask_left(19))
   39125      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39126      393229 :          ipack = ipack + 1
   39127      393229 :          packed_data(ipack) = pack_tmp
   39128      393229 :          data_tmp = full_data(idata)
   39129      393229 :          pack_tmp = ISHFT(data_tmp, 34)
   39130      393229 :          pack_tmp = ISHFT(pack_tmp, -34)
   39131      393229 :          idata = idata + 1
   39132      393229 :          data_tmp = full_data(idata)
   39133      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39134      393229 :          data_tmp = IAND(data_tmp, mask_left(34))
   39135      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39136      393229 :          ipack = ipack + 1
   39137      393229 :          packed_data(ipack) = pack_tmp
   39138      393229 :          data_tmp = full_data(idata)
   39139      393229 :          pack_tmp = ISHFT(data_tmp, 49)
   39140      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39141      393229 :          idata = idata + 1
   39142      393229 :          data_tmp = full_data(idata)
   39143      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39144      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39145             :          pack_tmp = ISHFT(pack_tmp, 0)
   39146      393229 :          pack_tmp = ISHFT(pack_tmp, 0)
   39147      393229 :          ipack = ipack + 1
   39148      393233 :          packed_data(ipack) = pack_tmp
   39149             :       END DO
   39150       25532 :       IF (Ndata_rep < Ndata) THEN
   39151        1798 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39152             :       END IF
   39153       25532 :    END SUBROUTINE ints2bits_49
   39154             : 
   39155             : ! **************************************************************************************************
   39156             : !> \brief ...
   39157             : !> \param Ndata ...
   39158             : !> \param packed_data ...
   39159             : !> \param full_data ...
   39160             : ! **************************************************************************************************
   39161      101717 :    SUBROUTINE bits2ints_49(Ndata, packed_data, full_data)
   39162             :       INTEGER, INTENT(IN)                                :: Ndata
   39163             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   39164             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   39165             : 
   39166             :       INTEGER, PARAMETER                                 :: Nbits = 49
   39167             : 
   39168             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   39169             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   39170             : 
   39171      101717 :       ipack = 0
   39172      101717 :       idata = 0
   39173      101717 :       pack_tmp = 0
   39174      101717 :       Ndata_rep = (Ndata/64)*64
   39175      101717 :       DO kdata = 1, Ndata_rep, 64
   39176     1575537 :          idata = idata + 1
   39177     1575537 :          data_tmp = ISHFT(pack_tmp, 49)
   39178     1575537 :          ipack = ipack + 1
   39179     1575537 :          pack_tmp = packed_data(ipack)
   39180     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   39181     1575537 :          pack_tmp = ISHFT(pack_tmp, -49)
   39182     1575537 :          idata = idata + 1
   39183     1575537 :          data_tmp = ISHFT(pack_tmp, 34)
   39184     1575537 :          ipack = ipack + 1
   39185     1575537 :          pack_tmp = packed_data(ipack)
   39186     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   39187     1575537 :          pack_tmp = ISHFT(pack_tmp, -34)
   39188     1575537 :          idata = idata + 1
   39189     1575537 :          data_tmp = ISHFT(pack_tmp, 19)
   39190     1575537 :          ipack = ipack + 1
   39191     1575537 :          pack_tmp = packed_data(ipack)
   39192     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   39193     1575537 :          pack_tmp = ISHFT(pack_tmp, -19)
   39194     1575537 :          idata = idata + 1
   39195     1575537 :          data_tmp = ISHFT(pack_tmp, 4)
   39196     1575537 :          ipack = ipack + 1
   39197     1575537 :          pack_tmp = packed_data(ipack)
   39198     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   39199     1575537 :          pack_tmp = ISHFT(pack_tmp, -4)
   39200     1575537 :          idata = idata + 1
   39201     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39202     1575537 :          full_data(idata) = data_tmp
   39203     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39204     1575537 :          idata = idata + 1
   39205     1575537 :          data_tmp = ISHFT(pack_tmp, 38)
   39206     1575537 :          ipack = ipack + 1
   39207     1575537 :          pack_tmp = packed_data(ipack)
   39208     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   39209     1575537 :          pack_tmp = ISHFT(pack_tmp, -38)
   39210     1575537 :          idata = idata + 1
   39211     1575537 :          data_tmp = ISHFT(pack_tmp, 23)
   39212     1575537 :          ipack = ipack + 1
   39213     1575537 :          pack_tmp = packed_data(ipack)
   39214     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   39215     1575537 :          pack_tmp = ISHFT(pack_tmp, -23)
   39216     1575537 :          idata = idata + 1
   39217     1575537 :          data_tmp = ISHFT(pack_tmp, 8)
   39218     1575537 :          ipack = ipack + 1
   39219     1575537 :          pack_tmp = packed_data(ipack)
   39220     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   39221     1575537 :          pack_tmp = ISHFT(pack_tmp, -8)
   39222     1575537 :          idata = idata + 1
   39223     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39224     1575537 :          full_data(idata) = data_tmp
   39225     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39226     1575537 :          idata = idata + 1
   39227     1575537 :          data_tmp = ISHFT(pack_tmp, 42)
   39228     1575537 :          ipack = ipack + 1
   39229     1575537 :          pack_tmp = packed_data(ipack)
   39230     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   39231     1575537 :          pack_tmp = ISHFT(pack_tmp, -42)
   39232     1575537 :          idata = idata + 1
   39233     1575537 :          data_tmp = ISHFT(pack_tmp, 27)
   39234     1575537 :          ipack = ipack + 1
   39235     1575537 :          pack_tmp = packed_data(ipack)
   39236     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   39237     1575537 :          pack_tmp = ISHFT(pack_tmp, -27)
   39238     1575537 :          idata = idata + 1
   39239     1575537 :          data_tmp = ISHFT(pack_tmp, 12)
   39240     1575537 :          ipack = ipack + 1
   39241     1575537 :          pack_tmp = packed_data(ipack)
   39242     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   39243     1575537 :          pack_tmp = ISHFT(pack_tmp, -12)
   39244     1575537 :          idata = idata + 1
   39245     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39246     1575537 :          full_data(idata) = data_tmp
   39247     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39248     1575537 :          idata = idata + 1
   39249     1575537 :          data_tmp = ISHFT(pack_tmp, 46)
   39250     1575537 :          ipack = ipack + 1
   39251     1575537 :          pack_tmp = packed_data(ipack)
   39252     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   39253     1575537 :          pack_tmp = ISHFT(pack_tmp, -46)
   39254     1575537 :          idata = idata + 1
   39255     1575537 :          data_tmp = ISHFT(pack_tmp, 31)
   39256     1575537 :          ipack = ipack + 1
   39257     1575537 :          pack_tmp = packed_data(ipack)
   39258     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   39259     1575537 :          pack_tmp = ISHFT(pack_tmp, -31)
   39260     1575537 :          idata = idata + 1
   39261     1575537 :          data_tmp = ISHFT(pack_tmp, 16)
   39262     1575537 :          ipack = ipack + 1
   39263     1575537 :          pack_tmp = packed_data(ipack)
   39264     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   39265     1575537 :          pack_tmp = ISHFT(pack_tmp, -16)
   39266     1575537 :          idata = idata + 1
   39267     1575537 :          data_tmp = ISHFT(pack_tmp, 1)
   39268     1575537 :          ipack = ipack + 1
   39269     1575537 :          pack_tmp = packed_data(ipack)
   39270     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   39271     1575537 :          pack_tmp = ISHFT(pack_tmp, -1)
   39272     1575537 :          idata = idata + 1
   39273     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39274     1575537 :          full_data(idata) = data_tmp
   39275     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39276     1575537 :          idata = idata + 1
   39277     1575537 :          data_tmp = ISHFT(pack_tmp, 35)
   39278     1575537 :          ipack = ipack + 1
   39279     1575537 :          pack_tmp = packed_data(ipack)
   39280     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   39281     1575537 :          pack_tmp = ISHFT(pack_tmp, -35)
   39282     1575537 :          idata = idata + 1
   39283     1575537 :          data_tmp = ISHFT(pack_tmp, 20)
   39284     1575537 :          ipack = ipack + 1
   39285     1575537 :          pack_tmp = packed_data(ipack)
   39286     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   39287     1575537 :          pack_tmp = ISHFT(pack_tmp, -20)
   39288     1575537 :          idata = idata + 1
   39289     1575537 :          data_tmp = ISHFT(pack_tmp, 5)
   39290     1575537 :          ipack = ipack + 1
   39291     1575537 :          pack_tmp = packed_data(ipack)
   39292     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   39293     1575537 :          pack_tmp = ISHFT(pack_tmp, -5)
   39294     1575537 :          idata = idata + 1
   39295     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39296     1575537 :          full_data(idata) = data_tmp
   39297     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39298     1575537 :          idata = idata + 1
   39299     1575537 :          data_tmp = ISHFT(pack_tmp, 39)
   39300     1575537 :          ipack = ipack + 1
   39301     1575537 :          pack_tmp = packed_data(ipack)
   39302     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   39303     1575537 :          pack_tmp = ISHFT(pack_tmp, -39)
   39304     1575537 :          idata = idata + 1
   39305     1575537 :          data_tmp = ISHFT(pack_tmp, 24)
   39306     1575537 :          ipack = ipack + 1
   39307     1575537 :          pack_tmp = packed_data(ipack)
   39308     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   39309     1575537 :          pack_tmp = ISHFT(pack_tmp, -24)
   39310     1575537 :          idata = idata + 1
   39311     1575537 :          data_tmp = ISHFT(pack_tmp, 9)
   39312     1575537 :          ipack = ipack + 1
   39313     1575537 :          pack_tmp = packed_data(ipack)
   39314     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   39315     1575537 :          pack_tmp = ISHFT(pack_tmp, -9)
   39316     1575537 :          idata = idata + 1
   39317     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39318     1575537 :          full_data(idata) = data_tmp
   39319     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39320     1575537 :          idata = idata + 1
   39321     1575537 :          data_tmp = ISHFT(pack_tmp, 43)
   39322     1575537 :          ipack = ipack + 1
   39323     1575537 :          pack_tmp = packed_data(ipack)
   39324     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   39325     1575537 :          pack_tmp = ISHFT(pack_tmp, -43)
   39326     1575537 :          idata = idata + 1
   39327     1575537 :          data_tmp = ISHFT(pack_tmp, 28)
   39328     1575537 :          ipack = ipack + 1
   39329     1575537 :          pack_tmp = packed_data(ipack)
   39330     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   39331     1575537 :          pack_tmp = ISHFT(pack_tmp, -28)
   39332     1575537 :          idata = idata + 1
   39333     1575537 :          data_tmp = ISHFT(pack_tmp, 13)
   39334     1575537 :          ipack = ipack + 1
   39335     1575537 :          pack_tmp = packed_data(ipack)
   39336     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   39337     1575537 :          pack_tmp = ISHFT(pack_tmp, -13)
   39338     1575537 :          idata = idata + 1
   39339     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39340     1575537 :          full_data(idata) = data_tmp
   39341     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39342     1575537 :          idata = idata + 1
   39343     1575537 :          data_tmp = ISHFT(pack_tmp, 47)
   39344     1575537 :          ipack = ipack + 1
   39345     1575537 :          pack_tmp = packed_data(ipack)
   39346     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   39347     1575537 :          pack_tmp = ISHFT(pack_tmp, -47)
   39348     1575537 :          idata = idata + 1
   39349     1575537 :          data_tmp = ISHFT(pack_tmp, 32)
   39350     1575537 :          ipack = ipack + 1
   39351     1575537 :          pack_tmp = packed_data(ipack)
   39352     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   39353     1575537 :          pack_tmp = ISHFT(pack_tmp, -32)
   39354     1575537 :          idata = idata + 1
   39355     1575537 :          data_tmp = ISHFT(pack_tmp, 17)
   39356     1575537 :          ipack = ipack + 1
   39357     1575537 :          pack_tmp = packed_data(ipack)
   39358     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   39359     1575537 :          pack_tmp = ISHFT(pack_tmp, -17)
   39360     1575537 :          idata = idata + 1
   39361     1575537 :          data_tmp = ISHFT(pack_tmp, 2)
   39362     1575537 :          ipack = ipack + 1
   39363     1575537 :          pack_tmp = packed_data(ipack)
   39364     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   39365     1575537 :          pack_tmp = ISHFT(pack_tmp, -2)
   39366     1575537 :          idata = idata + 1
   39367     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39368     1575537 :          full_data(idata) = data_tmp
   39369     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39370     1575537 :          idata = idata + 1
   39371     1575537 :          data_tmp = ISHFT(pack_tmp, 36)
   39372     1575537 :          ipack = ipack + 1
   39373     1575537 :          pack_tmp = packed_data(ipack)
   39374     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   39375     1575537 :          pack_tmp = ISHFT(pack_tmp, -36)
   39376     1575537 :          idata = idata + 1
   39377     1575537 :          data_tmp = ISHFT(pack_tmp, 21)
   39378     1575537 :          ipack = ipack + 1
   39379     1575537 :          pack_tmp = packed_data(ipack)
   39380     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   39381     1575537 :          pack_tmp = ISHFT(pack_tmp, -21)
   39382     1575537 :          idata = idata + 1
   39383     1575537 :          data_tmp = ISHFT(pack_tmp, 6)
   39384     1575537 :          ipack = ipack + 1
   39385     1575537 :          pack_tmp = packed_data(ipack)
   39386     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   39387     1575537 :          pack_tmp = ISHFT(pack_tmp, -6)
   39388     1575537 :          idata = idata + 1
   39389     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39390     1575537 :          full_data(idata) = data_tmp
   39391     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39392     1575537 :          idata = idata + 1
   39393     1575537 :          data_tmp = ISHFT(pack_tmp, 40)
   39394     1575537 :          ipack = ipack + 1
   39395     1575537 :          pack_tmp = packed_data(ipack)
   39396     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   39397     1575537 :          pack_tmp = ISHFT(pack_tmp, -40)
   39398     1575537 :          idata = idata + 1
   39399     1575537 :          data_tmp = ISHFT(pack_tmp, 25)
   39400     1575537 :          ipack = ipack + 1
   39401     1575537 :          pack_tmp = packed_data(ipack)
   39402     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   39403     1575537 :          pack_tmp = ISHFT(pack_tmp, -25)
   39404     1575537 :          idata = idata + 1
   39405     1575537 :          data_tmp = ISHFT(pack_tmp, 10)
   39406     1575537 :          ipack = ipack + 1
   39407     1575537 :          pack_tmp = packed_data(ipack)
   39408     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   39409     1575537 :          pack_tmp = ISHFT(pack_tmp, -10)
   39410     1575537 :          idata = idata + 1
   39411     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39412     1575537 :          full_data(idata) = data_tmp
   39413     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39414     1575537 :          idata = idata + 1
   39415     1575537 :          data_tmp = ISHFT(pack_tmp, 44)
   39416     1575537 :          ipack = ipack + 1
   39417     1575537 :          pack_tmp = packed_data(ipack)
   39418     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   39419     1575537 :          pack_tmp = ISHFT(pack_tmp, -44)
   39420     1575537 :          idata = idata + 1
   39421     1575537 :          data_tmp = ISHFT(pack_tmp, 29)
   39422     1575537 :          ipack = ipack + 1
   39423     1575537 :          pack_tmp = packed_data(ipack)
   39424     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   39425     1575537 :          pack_tmp = ISHFT(pack_tmp, -29)
   39426     1575537 :          idata = idata + 1
   39427     1575537 :          data_tmp = ISHFT(pack_tmp, 14)
   39428     1575537 :          ipack = ipack + 1
   39429     1575537 :          pack_tmp = packed_data(ipack)
   39430     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   39431     1575537 :          pack_tmp = ISHFT(pack_tmp, -14)
   39432     1575537 :          idata = idata + 1
   39433     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39434     1575537 :          full_data(idata) = data_tmp
   39435     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39436     1575537 :          idata = idata + 1
   39437     1575537 :          data_tmp = ISHFT(pack_tmp, 48)
   39438     1575537 :          ipack = ipack + 1
   39439     1575537 :          pack_tmp = packed_data(ipack)
   39440     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   39441     1575537 :          pack_tmp = ISHFT(pack_tmp, -48)
   39442     1575537 :          idata = idata + 1
   39443     1575537 :          data_tmp = ISHFT(pack_tmp, 33)
   39444     1575537 :          ipack = ipack + 1
   39445     1575537 :          pack_tmp = packed_data(ipack)
   39446     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   39447     1575537 :          pack_tmp = ISHFT(pack_tmp, -33)
   39448     1575537 :          idata = idata + 1
   39449     1575537 :          data_tmp = ISHFT(pack_tmp, 18)
   39450     1575537 :          ipack = ipack + 1
   39451     1575537 :          pack_tmp = packed_data(ipack)
   39452     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   39453     1575537 :          pack_tmp = ISHFT(pack_tmp, -18)
   39454     1575537 :          idata = idata + 1
   39455     1575537 :          data_tmp = ISHFT(pack_tmp, 3)
   39456     1575537 :          ipack = ipack + 1
   39457     1575537 :          pack_tmp = packed_data(ipack)
   39458     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   39459     1575537 :          pack_tmp = ISHFT(pack_tmp, -3)
   39460     1575537 :          idata = idata + 1
   39461     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39462     1575537 :          full_data(idata) = data_tmp
   39463     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39464     1575537 :          idata = idata + 1
   39465     1575537 :          data_tmp = ISHFT(pack_tmp, 37)
   39466     1575537 :          ipack = ipack + 1
   39467     1575537 :          pack_tmp = packed_data(ipack)
   39468     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   39469     1575537 :          pack_tmp = ISHFT(pack_tmp, -37)
   39470     1575537 :          idata = idata + 1
   39471     1575537 :          data_tmp = ISHFT(pack_tmp, 22)
   39472     1575537 :          ipack = ipack + 1
   39473     1575537 :          pack_tmp = packed_data(ipack)
   39474     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   39475     1575537 :          pack_tmp = ISHFT(pack_tmp, -22)
   39476     1575537 :          idata = idata + 1
   39477     1575537 :          data_tmp = ISHFT(pack_tmp, 7)
   39478     1575537 :          ipack = ipack + 1
   39479     1575537 :          pack_tmp = packed_data(ipack)
   39480     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   39481     1575537 :          pack_tmp = ISHFT(pack_tmp, -7)
   39482     1575537 :          idata = idata + 1
   39483     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39484     1575537 :          full_data(idata) = data_tmp
   39485     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39486     1575537 :          idata = idata + 1
   39487     1575537 :          data_tmp = ISHFT(pack_tmp, 41)
   39488     1575537 :          ipack = ipack + 1
   39489     1575537 :          pack_tmp = packed_data(ipack)
   39490     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   39491     1575537 :          pack_tmp = ISHFT(pack_tmp, -41)
   39492     1575537 :          idata = idata + 1
   39493     1575537 :          data_tmp = ISHFT(pack_tmp, 26)
   39494     1575537 :          ipack = ipack + 1
   39495     1575537 :          pack_tmp = packed_data(ipack)
   39496     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   39497     1575537 :          pack_tmp = ISHFT(pack_tmp, -26)
   39498     1575537 :          idata = idata + 1
   39499     1575537 :          data_tmp = ISHFT(pack_tmp, 11)
   39500     1575537 :          ipack = ipack + 1
   39501     1575537 :          pack_tmp = packed_data(ipack)
   39502     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   39503     1575537 :          pack_tmp = ISHFT(pack_tmp, -11)
   39504     1575537 :          idata = idata + 1
   39505     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39506     1575537 :          full_data(idata) = data_tmp
   39507     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39508     1575537 :          idata = idata + 1
   39509     1575537 :          data_tmp = ISHFT(pack_tmp, 45)
   39510     1575537 :          ipack = ipack + 1
   39511     1575537 :          pack_tmp = packed_data(ipack)
   39512     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   39513     1575537 :          pack_tmp = ISHFT(pack_tmp, -45)
   39514     1575537 :          idata = idata + 1
   39515     1575537 :          data_tmp = ISHFT(pack_tmp, 30)
   39516     1575537 :          ipack = ipack + 1
   39517     1575537 :          pack_tmp = packed_data(ipack)
   39518     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   39519     1575537 :          pack_tmp = ISHFT(pack_tmp, -30)
   39520     1575537 :          idata = idata + 1
   39521     1575537 :          data_tmp = ISHFT(pack_tmp, 15)
   39522     1575537 :          ipack = ipack + 1
   39523     1575537 :          pack_tmp = packed_data(ipack)
   39524     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   39525     1575537 :          pack_tmp = ISHFT(pack_tmp, -15)
   39526     1575537 :          idata = idata + 1
   39527     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39528     1575537 :          full_data(idata) = data_tmp
   39529     1575553 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39530             :       END DO
   39531      101717 :       IF (Ndata_rep < Ndata) THEN
   39532        6110 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39533             :       END IF
   39534      101717 :    END SUBROUTINE bits2ints_49
   39535             : 
   39536             : ! **************************************************************************************************
   39537             : !> \brief ...
   39538             : !> \param Ndata ...
   39539             : !> \param packed_data ...
   39540             : !> \param full_data ...
   39541             : ! **************************************************************************************************
   39542       25110 :    SUBROUTINE ints2bits_50(Ndata, packed_data, full_data)
   39543             :       INTEGER, INTENT(IN)                                :: Ndata
   39544             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   39545             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   39546             : 
   39547             :       INTEGER, PARAMETER                                 :: Nbits = 50
   39548             : 
   39549             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   39550             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   39551             : 
   39552       25110 :       idata = 0
   39553       25110 :       ipack = 0
   39554       25110 :       Ndata_rep = (Ndata/64)*64
   39555       25110 :       DO kdata = 1, Ndata_rep, 64
   39556      389775 :          pack_tmp = 0
   39557      389775 :          idata = idata + 1
   39558      389775 :          data_tmp = full_data(idata)
   39559      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39560      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39561      389775 :          pack_tmp = ISHFT(pack_tmp, -14)
   39562      389775 :          idata = idata + 1
   39563      389775 :          data_tmp = full_data(idata)
   39564      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39565      389775 :          data_tmp = IAND(data_tmp, mask_left(14))
   39566      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39567      389775 :          ipack = ipack + 1
   39568      389775 :          packed_data(ipack) = pack_tmp
   39569      389775 :          data_tmp = full_data(idata)
   39570      389775 :          pack_tmp = ISHFT(data_tmp, 28)
   39571      389775 :          pack_tmp = ISHFT(pack_tmp, -28)
   39572      389775 :          idata = idata + 1
   39573      389775 :          data_tmp = full_data(idata)
   39574      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39575      389775 :          data_tmp = IAND(data_tmp, mask_left(28))
   39576      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39577      389775 :          ipack = ipack + 1
   39578      389775 :          packed_data(ipack) = pack_tmp
   39579      389775 :          data_tmp = full_data(idata)
   39580      389775 :          pack_tmp = ISHFT(data_tmp, 42)
   39581      389775 :          pack_tmp = ISHFT(pack_tmp, -42)
   39582      389775 :          idata = idata + 1
   39583      389775 :          data_tmp = full_data(idata)
   39584      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39585      389775 :          data_tmp = IAND(data_tmp, mask_left(42))
   39586      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39587      389775 :          ipack = ipack + 1
   39588      389775 :          packed_data(ipack) = pack_tmp
   39589      389775 :          data_tmp = full_data(idata)
   39590      389775 :          pack_tmp = ISHFT(data_tmp, 56)
   39591      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39592      389775 :          idata = idata + 1
   39593      389775 :          data_tmp = full_data(idata)
   39594      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39595      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39596      389775 :          pack_tmp = ISHFT(pack_tmp, -6)
   39597      389775 :          idata = idata + 1
   39598      389775 :          data_tmp = full_data(idata)
   39599      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39600      389775 :          data_tmp = IAND(data_tmp, mask_left(6))
   39601      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39602      389775 :          ipack = ipack + 1
   39603      389775 :          packed_data(ipack) = pack_tmp
   39604      389775 :          data_tmp = full_data(idata)
   39605      389775 :          pack_tmp = ISHFT(data_tmp, 20)
   39606      389775 :          pack_tmp = ISHFT(pack_tmp, -20)
   39607      389775 :          idata = idata + 1
   39608      389775 :          data_tmp = full_data(idata)
   39609      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39610      389775 :          data_tmp = IAND(data_tmp, mask_left(20))
   39611      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39612      389775 :          ipack = ipack + 1
   39613      389775 :          packed_data(ipack) = pack_tmp
   39614      389775 :          data_tmp = full_data(idata)
   39615      389775 :          pack_tmp = ISHFT(data_tmp, 34)
   39616      389775 :          pack_tmp = ISHFT(pack_tmp, -34)
   39617      389775 :          idata = idata + 1
   39618      389775 :          data_tmp = full_data(idata)
   39619      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39620      389775 :          data_tmp = IAND(data_tmp, mask_left(34))
   39621      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39622      389775 :          ipack = ipack + 1
   39623      389775 :          packed_data(ipack) = pack_tmp
   39624      389775 :          data_tmp = full_data(idata)
   39625      389775 :          pack_tmp = ISHFT(data_tmp, 48)
   39626      389775 :          pack_tmp = ISHFT(pack_tmp, -48)
   39627      389775 :          idata = idata + 1
   39628      389775 :          data_tmp = full_data(idata)
   39629      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39630      389775 :          data_tmp = IAND(data_tmp, mask_left(48))
   39631      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39632      389775 :          ipack = ipack + 1
   39633      389775 :          packed_data(ipack) = pack_tmp
   39634      389775 :          data_tmp = full_data(idata)
   39635      389775 :          pack_tmp = ISHFT(data_tmp, 62)
   39636      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39637      389775 :          idata = idata + 1
   39638      389775 :          data_tmp = full_data(idata)
   39639      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39640      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39641      389775 :          pack_tmp = ISHFT(pack_tmp, -12)
   39642      389775 :          idata = idata + 1
   39643      389775 :          data_tmp = full_data(idata)
   39644      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39645      389775 :          data_tmp = IAND(data_tmp, mask_left(12))
   39646      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39647      389775 :          ipack = ipack + 1
   39648      389775 :          packed_data(ipack) = pack_tmp
   39649      389775 :          data_tmp = full_data(idata)
   39650      389775 :          pack_tmp = ISHFT(data_tmp, 26)
   39651      389775 :          pack_tmp = ISHFT(pack_tmp, -26)
   39652      389775 :          idata = idata + 1
   39653      389775 :          data_tmp = full_data(idata)
   39654      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39655      389775 :          data_tmp = IAND(data_tmp, mask_left(26))
   39656      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39657      389775 :          ipack = ipack + 1
   39658      389775 :          packed_data(ipack) = pack_tmp
   39659      389775 :          data_tmp = full_data(idata)
   39660      389775 :          pack_tmp = ISHFT(data_tmp, 40)
   39661      389775 :          pack_tmp = ISHFT(pack_tmp, -40)
   39662      389775 :          idata = idata + 1
   39663      389775 :          data_tmp = full_data(idata)
   39664      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39665      389775 :          data_tmp = IAND(data_tmp, mask_left(40))
   39666      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39667      389775 :          ipack = ipack + 1
   39668      389775 :          packed_data(ipack) = pack_tmp
   39669      389775 :          data_tmp = full_data(idata)
   39670      389775 :          pack_tmp = ISHFT(data_tmp, 54)
   39671      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39672      389775 :          idata = idata + 1
   39673      389775 :          data_tmp = full_data(idata)
   39674      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39675      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39676      389775 :          pack_tmp = ISHFT(pack_tmp, -4)
   39677      389775 :          idata = idata + 1
   39678      389775 :          data_tmp = full_data(idata)
   39679      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39680      389775 :          data_tmp = IAND(data_tmp, mask_left(4))
   39681      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39682      389775 :          ipack = ipack + 1
   39683      389775 :          packed_data(ipack) = pack_tmp
   39684      389775 :          data_tmp = full_data(idata)
   39685      389775 :          pack_tmp = ISHFT(data_tmp, 18)
   39686      389775 :          pack_tmp = ISHFT(pack_tmp, -18)
   39687      389775 :          idata = idata + 1
   39688      389775 :          data_tmp = full_data(idata)
   39689      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39690      389775 :          data_tmp = IAND(data_tmp, mask_left(18))
   39691      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39692      389775 :          ipack = ipack + 1
   39693      389775 :          packed_data(ipack) = pack_tmp
   39694      389775 :          data_tmp = full_data(idata)
   39695      389775 :          pack_tmp = ISHFT(data_tmp, 32)
   39696      389775 :          pack_tmp = ISHFT(pack_tmp, -32)
   39697      389775 :          idata = idata + 1
   39698      389775 :          data_tmp = full_data(idata)
   39699      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39700      389775 :          data_tmp = IAND(data_tmp, mask_left(32))
   39701      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39702      389775 :          ipack = ipack + 1
   39703      389775 :          packed_data(ipack) = pack_tmp
   39704      389775 :          data_tmp = full_data(idata)
   39705      389775 :          pack_tmp = ISHFT(data_tmp, 46)
   39706      389775 :          pack_tmp = ISHFT(pack_tmp, -46)
   39707      389775 :          idata = idata + 1
   39708      389775 :          data_tmp = full_data(idata)
   39709      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39710      389775 :          data_tmp = IAND(data_tmp, mask_left(46))
   39711      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39712      389775 :          ipack = ipack + 1
   39713      389775 :          packed_data(ipack) = pack_tmp
   39714      389775 :          data_tmp = full_data(idata)
   39715      389775 :          pack_tmp = ISHFT(data_tmp, 60)
   39716      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39717      389775 :          idata = idata + 1
   39718      389775 :          data_tmp = full_data(idata)
   39719      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39720      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39721      389775 :          pack_tmp = ISHFT(pack_tmp, -10)
   39722      389775 :          idata = idata + 1
   39723      389775 :          data_tmp = full_data(idata)
   39724      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39725      389775 :          data_tmp = IAND(data_tmp, mask_left(10))
   39726      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39727      389775 :          ipack = ipack + 1
   39728      389775 :          packed_data(ipack) = pack_tmp
   39729      389775 :          data_tmp = full_data(idata)
   39730      389775 :          pack_tmp = ISHFT(data_tmp, 24)
   39731      389775 :          pack_tmp = ISHFT(pack_tmp, -24)
   39732      389775 :          idata = idata + 1
   39733      389775 :          data_tmp = full_data(idata)
   39734      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39735      389775 :          data_tmp = IAND(data_tmp, mask_left(24))
   39736      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39737      389775 :          ipack = ipack + 1
   39738      389775 :          packed_data(ipack) = pack_tmp
   39739      389775 :          data_tmp = full_data(idata)
   39740      389775 :          pack_tmp = ISHFT(data_tmp, 38)
   39741      389775 :          pack_tmp = ISHFT(pack_tmp, -38)
   39742      389775 :          idata = idata + 1
   39743      389775 :          data_tmp = full_data(idata)
   39744      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39745      389775 :          data_tmp = IAND(data_tmp, mask_left(38))
   39746      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39747      389775 :          ipack = ipack + 1
   39748      389775 :          packed_data(ipack) = pack_tmp
   39749      389775 :          data_tmp = full_data(idata)
   39750      389775 :          pack_tmp = ISHFT(data_tmp, 52)
   39751      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39752      389775 :          idata = idata + 1
   39753      389775 :          data_tmp = full_data(idata)
   39754      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39755      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39756      389775 :          pack_tmp = ISHFT(pack_tmp, -2)
   39757      389775 :          idata = idata + 1
   39758      389775 :          data_tmp = full_data(idata)
   39759      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39760      389775 :          data_tmp = IAND(data_tmp, mask_left(2))
   39761      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39762      389775 :          ipack = ipack + 1
   39763      389775 :          packed_data(ipack) = pack_tmp
   39764      389775 :          data_tmp = full_data(idata)
   39765      389775 :          pack_tmp = ISHFT(data_tmp, 16)
   39766      389775 :          pack_tmp = ISHFT(pack_tmp, -16)
   39767      389775 :          idata = idata + 1
   39768      389775 :          data_tmp = full_data(idata)
   39769      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39770      389775 :          data_tmp = IAND(data_tmp, mask_left(16))
   39771      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39772      389775 :          ipack = ipack + 1
   39773      389775 :          packed_data(ipack) = pack_tmp
   39774      389775 :          data_tmp = full_data(idata)
   39775      389775 :          pack_tmp = ISHFT(data_tmp, 30)
   39776      389775 :          pack_tmp = ISHFT(pack_tmp, -30)
   39777      389775 :          idata = idata + 1
   39778      389775 :          data_tmp = full_data(idata)
   39779      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39780      389775 :          data_tmp = IAND(data_tmp, mask_left(30))
   39781      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39782      389775 :          ipack = ipack + 1
   39783      389775 :          packed_data(ipack) = pack_tmp
   39784      389775 :          data_tmp = full_data(idata)
   39785      389775 :          pack_tmp = ISHFT(data_tmp, 44)
   39786      389775 :          pack_tmp = ISHFT(pack_tmp, -44)
   39787      389775 :          idata = idata + 1
   39788      389775 :          data_tmp = full_data(idata)
   39789      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39790      389775 :          data_tmp = IAND(data_tmp, mask_left(44))
   39791      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39792      389775 :          ipack = ipack + 1
   39793      389775 :          packed_data(ipack) = pack_tmp
   39794      389775 :          data_tmp = full_data(idata)
   39795      389775 :          pack_tmp = ISHFT(data_tmp, 58)
   39796      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39797      389775 :          idata = idata + 1
   39798      389775 :          data_tmp = full_data(idata)
   39799      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39800      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39801      389775 :          pack_tmp = ISHFT(pack_tmp, -8)
   39802      389775 :          idata = idata + 1
   39803      389775 :          data_tmp = full_data(idata)
   39804      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39805      389775 :          data_tmp = IAND(data_tmp, mask_left(8))
   39806      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39807      389775 :          ipack = ipack + 1
   39808      389775 :          packed_data(ipack) = pack_tmp
   39809      389775 :          data_tmp = full_data(idata)
   39810      389775 :          pack_tmp = ISHFT(data_tmp, 22)
   39811      389775 :          pack_tmp = ISHFT(pack_tmp, -22)
   39812      389775 :          idata = idata + 1
   39813      389775 :          data_tmp = full_data(idata)
   39814      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39815      389775 :          data_tmp = IAND(data_tmp, mask_left(22))
   39816      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39817      389775 :          ipack = ipack + 1
   39818      389775 :          packed_data(ipack) = pack_tmp
   39819      389775 :          data_tmp = full_data(idata)
   39820      389775 :          pack_tmp = ISHFT(data_tmp, 36)
   39821      389775 :          pack_tmp = ISHFT(pack_tmp, -36)
   39822      389775 :          idata = idata + 1
   39823      389775 :          data_tmp = full_data(idata)
   39824      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39825      389775 :          data_tmp = IAND(data_tmp, mask_left(36))
   39826      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39827      389775 :          ipack = ipack + 1
   39828      389775 :          packed_data(ipack) = pack_tmp
   39829      389775 :          data_tmp = full_data(idata)
   39830      389775 :          pack_tmp = ISHFT(data_tmp, 50)
   39831      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39832      389775 :          idata = idata + 1
   39833      389775 :          data_tmp = full_data(idata)
   39834      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39835      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39836      389775 :          pack_tmp = ISHFT(pack_tmp, 0)
   39837      389775 :          idata = idata + 1
   39838      389775 :          data_tmp = full_data(idata)
   39839             :          data_tmp = ISHFT(data_tmp, 14)
   39840      389775 :          data_tmp = IAND(data_tmp, mask_left(0))
   39841      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39842      389775 :          ipack = ipack + 1
   39843      389775 :          packed_data(ipack) = pack_tmp
   39844      389775 :          data_tmp = full_data(idata)
   39845      389775 :          pack_tmp = ISHFT(data_tmp, 14)
   39846      389775 :          pack_tmp = ISHFT(pack_tmp, -14)
   39847      389775 :          idata = idata + 1
   39848      389775 :          data_tmp = full_data(idata)
   39849      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39850      389775 :          data_tmp = IAND(data_tmp, mask_left(14))
   39851      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39852      389775 :          ipack = ipack + 1
   39853      389775 :          packed_data(ipack) = pack_tmp
   39854      389775 :          data_tmp = full_data(idata)
   39855      389775 :          pack_tmp = ISHFT(data_tmp, 28)
   39856      389775 :          pack_tmp = ISHFT(pack_tmp, -28)
   39857      389775 :          idata = idata + 1
   39858      389775 :          data_tmp = full_data(idata)
   39859      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39860      389775 :          data_tmp = IAND(data_tmp, mask_left(28))
   39861      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39862      389775 :          ipack = ipack + 1
   39863      389775 :          packed_data(ipack) = pack_tmp
   39864      389775 :          data_tmp = full_data(idata)
   39865      389775 :          pack_tmp = ISHFT(data_tmp, 42)
   39866      389775 :          pack_tmp = ISHFT(pack_tmp, -42)
   39867      389775 :          idata = idata + 1
   39868      389775 :          data_tmp = full_data(idata)
   39869      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39870      389775 :          data_tmp = IAND(data_tmp, mask_left(42))
   39871      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39872      389775 :          ipack = ipack + 1
   39873      389775 :          packed_data(ipack) = pack_tmp
   39874      389775 :          data_tmp = full_data(idata)
   39875      389775 :          pack_tmp = ISHFT(data_tmp, 56)
   39876      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39877      389775 :          idata = idata + 1
   39878      389775 :          data_tmp = full_data(idata)
   39879      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39880      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39881      389775 :          pack_tmp = ISHFT(pack_tmp, -6)
   39882      389775 :          idata = idata + 1
   39883      389775 :          data_tmp = full_data(idata)
   39884      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39885      389775 :          data_tmp = IAND(data_tmp, mask_left(6))
   39886      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39887      389775 :          ipack = ipack + 1
   39888      389775 :          packed_data(ipack) = pack_tmp
   39889      389775 :          data_tmp = full_data(idata)
   39890      389775 :          pack_tmp = ISHFT(data_tmp, 20)
   39891      389775 :          pack_tmp = ISHFT(pack_tmp, -20)
   39892      389775 :          idata = idata + 1
   39893      389775 :          data_tmp = full_data(idata)
   39894      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39895      389775 :          data_tmp = IAND(data_tmp, mask_left(20))
   39896      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39897      389775 :          ipack = ipack + 1
   39898      389775 :          packed_data(ipack) = pack_tmp
   39899      389775 :          data_tmp = full_data(idata)
   39900      389775 :          pack_tmp = ISHFT(data_tmp, 34)
   39901      389775 :          pack_tmp = ISHFT(pack_tmp, -34)
   39902      389775 :          idata = idata + 1
   39903      389775 :          data_tmp = full_data(idata)
   39904      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39905      389775 :          data_tmp = IAND(data_tmp, mask_left(34))
   39906      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39907      389775 :          ipack = ipack + 1
   39908      389775 :          packed_data(ipack) = pack_tmp
   39909      389775 :          data_tmp = full_data(idata)
   39910      389775 :          pack_tmp = ISHFT(data_tmp, 48)
   39911      389775 :          pack_tmp = ISHFT(pack_tmp, -48)
   39912      389775 :          idata = idata + 1
   39913      389775 :          data_tmp = full_data(idata)
   39914      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39915      389775 :          data_tmp = IAND(data_tmp, mask_left(48))
   39916      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39917      389775 :          ipack = ipack + 1
   39918      389775 :          packed_data(ipack) = pack_tmp
   39919      389775 :          data_tmp = full_data(idata)
   39920      389775 :          pack_tmp = ISHFT(data_tmp, 62)
   39921      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39922      389775 :          idata = idata + 1
   39923      389775 :          data_tmp = full_data(idata)
   39924      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39925      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39926      389775 :          pack_tmp = ISHFT(pack_tmp, -12)
   39927      389775 :          idata = idata + 1
   39928      389775 :          data_tmp = full_data(idata)
   39929      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39930      389775 :          data_tmp = IAND(data_tmp, mask_left(12))
   39931      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39932      389775 :          ipack = ipack + 1
   39933      389775 :          packed_data(ipack) = pack_tmp
   39934      389775 :          data_tmp = full_data(idata)
   39935      389775 :          pack_tmp = ISHFT(data_tmp, 26)
   39936      389775 :          pack_tmp = ISHFT(pack_tmp, -26)
   39937      389775 :          idata = idata + 1
   39938      389775 :          data_tmp = full_data(idata)
   39939      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39940      389775 :          data_tmp = IAND(data_tmp, mask_left(26))
   39941      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39942      389775 :          ipack = ipack + 1
   39943      389775 :          packed_data(ipack) = pack_tmp
   39944      389775 :          data_tmp = full_data(idata)
   39945      389775 :          pack_tmp = ISHFT(data_tmp, 40)
   39946      389775 :          pack_tmp = ISHFT(pack_tmp, -40)
   39947      389775 :          idata = idata + 1
   39948      389775 :          data_tmp = full_data(idata)
   39949      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39950      389775 :          data_tmp = IAND(data_tmp, mask_left(40))
   39951      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39952      389775 :          ipack = ipack + 1
   39953      389775 :          packed_data(ipack) = pack_tmp
   39954      389775 :          data_tmp = full_data(idata)
   39955      389775 :          pack_tmp = ISHFT(data_tmp, 54)
   39956      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39957      389775 :          idata = idata + 1
   39958      389775 :          data_tmp = full_data(idata)
   39959      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39960      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39961      389775 :          pack_tmp = ISHFT(pack_tmp, -4)
   39962      389775 :          idata = idata + 1
   39963      389775 :          data_tmp = full_data(idata)
   39964      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39965      389775 :          data_tmp = IAND(data_tmp, mask_left(4))
   39966      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39967      389775 :          ipack = ipack + 1
   39968      389775 :          packed_data(ipack) = pack_tmp
   39969      389775 :          data_tmp = full_data(idata)
   39970      389775 :          pack_tmp = ISHFT(data_tmp, 18)
   39971      389775 :          pack_tmp = ISHFT(pack_tmp, -18)
   39972      389775 :          idata = idata + 1
   39973      389775 :          data_tmp = full_data(idata)
   39974      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39975      389775 :          data_tmp = IAND(data_tmp, mask_left(18))
   39976      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39977      389775 :          ipack = ipack + 1
   39978      389775 :          packed_data(ipack) = pack_tmp
   39979      389775 :          data_tmp = full_data(idata)
   39980      389775 :          pack_tmp = ISHFT(data_tmp, 32)
   39981      389775 :          pack_tmp = ISHFT(pack_tmp, -32)
   39982      389775 :          idata = idata + 1
   39983      389775 :          data_tmp = full_data(idata)
   39984      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39985      389775 :          data_tmp = IAND(data_tmp, mask_left(32))
   39986      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39987      389775 :          ipack = ipack + 1
   39988      389775 :          packed_data(ipack) = pack_tmp
   39989      389775 :          data_tmp = full_data(idata)
   39990      389775 :          pack_tmp = ISHFT(data_tmp, 46)
   39991      389775 :          pack_tmp = ISHFT(pack_tmp, -46)
   39992      389775 :          idata = idata + 1
   39993      389775 :          data_tmp = full_data(idata)
   39994      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39995      389775 :          data_tmp = IAND(data_tmp, mask_left(46))
   39996      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39997      389775 :          ipack = ipack + 1
   39998      389775 :          packed_data(ipack) = pack_tmp
   39999      389775 :          data_tmp = full_data(idata)
   40000      389775 :          pack_tmp = ISHFT(data_tmp, 60)
   40001      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40002      389775 :          idata = idata + 1
   40003      389775 :          data_tmp = full_data(idata)
   40004      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40005      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40006      389775 :          pack_tmp = ISHFT(pack_tmp, -10)
   40007      389775 :          idata = idata + 1
   40008      389775 :          data_tmp = full_data(idata)
   40009      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40010      389775 :          data_tmp = IAND(data_tmp, mask_left(10))
   40011      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40012      389775 :          ipack = ipack + 1
   40013      389775 :          packed_data(ipack) = pack_tmp
   40014      389775 :          data_tmp = full_data(idata)
   40015      389775 :          pack_tmp = ISHFT(data_tmp, 24)
   40016      389775 :          pack_tmp = ISHFT(pack_tmp, -24)
   40017      389775 :          idata = idata + 1
   40018      389775 :          data_tmp = full_data(idata)
   40019      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40020      389775 :          data_tmp = IAND(data_tmp, mask_left(24))
   40021      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40022      389775 :          ipack = ipack + 1
   40023      389775 :          packed_data(ipack) = pack_tmp
   40024      389775 :          data_tmp = full_data(idata)
   40025      389775 :          pack_tmp = ISHFT(data_tmp, 38)
   40026      389775 :          pack_tmp = ISHFT(pack_tmp, -38)
   40027      389775 :          idata = idata + 1
   40028      389775 :          data_tmp = full_data(idata)
   40029      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40030      389775 :          data_tmp = IAND(data_tmp, mask_left(38))
   40031      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40032      389775 :          ipack = ipack + 1
   40033      389775 :          packed_data(ipack) = pack_tmp
   40034      389775 :          data_tmp = full_data(idata)
   40035      389775 :          pack_tmp = ISHFT(data_tmp, 52)
   40036      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40037      389775 :          idata = idata + 1
   40038      389775 :          data_tmp = full_data(idata)
   40039      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40040      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40041      389775 :          pack_tmp = ISHFT(pack_tmp, -2)
   40042      389775 :          idata = idata + 1
   40043      389775 :          data_tmp = full_data(idata)
   40044      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40045      389775 :          data_tmp = IAND(data_tmp, mask_left(2))
   40046      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40047      389775 :          ipack = ipack + 1
   40048      389775 :          packed_data(ipack) = pack_tmp
   40049      389775 :          data_tmp = full_data(idata)
   40050      389775 :          pack_tmp = ISHFT(data_tmp, 16)
   40051      389775 :          pack_tmp = ISHFT(pack_tmp, -16)
   40052      389775 :          idata = idata + 1
   40053      389775 :          data_tmp = full_data(idata)
   40054      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40055      389775 :          data_tmp = IAND(data_tmp, mask_left(16))
   40056      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40057      389775 :          ipack = ipack + 1
   40058      389775 :          packed_data(ipack) = pack_tmp
   40059      389775 :          data_tmp = full_data(idata)
   40060      389775 :          pack_tmp = ISHFT(data_tmp, 30)
   40061      389775 :          pack_tmp = ISHFT(pack_tmp, -30)
   40062      389775 :          idata = idata + 1
   40063      389775 :          data_tmp = full_data(idata)
   40064      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40065      389775 :          data_tmp = IAND(data_tmp, mask_left(30))
   40066      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40067      389775 :          ipack = ipack + 1
   40068      389775 :          packed_data(ipack) = pack_tmp
   40069      389775 :          data_tmp = full_data(idata)
   40070      389775 :          pack_tmp = ISHFT(data_tmp, 44)
   40071      389775 :          pack_tmp = ISHFT(pack_tmp, -44)
   40072      389775 :          idata = idata + 1
   40073      389775 :          data_tmp = full_data(idata)
   40074      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40075      389775 :          data_tmp = IAND(data_tmp, mask_left(44))
   40076      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40077      389775 :          ipack = ipack + 1
   40078      389775 :          packed_data(ipack) = pack_tmp
   40079      389775 :          data_tmp = full_data(idata)
   40080      389775 :          pack_tmp = ISHFT(data_tmp, 58)
   40081      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40082      389775 :          idata = idata + 1
   40083      389775 :          data_tmp = full_data(idata)
   40084      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40085      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40086      389775 :          pack_tmp = ISHFT(pack_tmp, -8)
   40087      389775 :          idata = idata + 1
   40088      389775 :          data_tmp = full_data(idata)
   40089      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40090      389775 :          data_tmp = IAND(data_tmp, mask_left(8))
   40091      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40092      389775 :          ipack = ipack + 1
   40093      389775 :          packed_data(ipack) = pack_tmp
   40094      389775 :          data_tmp = full_data(idata)
   40095      389775 :          pack_tmp = ISHFT(data_tmp, 22)
   40096      389775 :          pack_tmp = ISHFT(pack_tmp, -22)
   40097      389775 :          idata = idata + 1
   40098      389775 :          data_tmp = full_data(idata)
   40099      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40100      389775 :          data_tmp = IAND(data_tmp, mask_left(22))
   40101      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40102      389775 :          ipack = ipack + 1
   40103      389775 :          packed_data(ipack) = pack_tmp
   40104      389775 :          data_tmp = full_data(idata)
   40105      389775 :          pack_tmp = ISHFT(data_tmp, 36)
   40106      389775 :          pack_tmp = ISHFT(pack_tmp, -36)
   40107      389775 :          idata = idata + 1
   40108      389775 :          data_tmp = full_data(idata)
   40109      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40110      389775 :          data_tmp = IAND(data_tmp, mask_left(36))
   40111      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40112      389775 :          ipack = ipack + 1
   40113      389775 :          packed_data(ipack) = pack_tmp
   40114      389775 :          data_tmp = full_data(idata)
   40115      389775 :          pack_tmp = ISHFT(data_tmp, 50)
   40116      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40117      389775 :          idata = idata + 1
   40118      389775 :          data_tmp = full_data(idata)
   40119      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40120      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40121             :          pack_tmp = ISHFT(pack_tmp, 0)
   40122      389775 :          pack_tmp = ISHFT(pack_tmp, 0)
   40123      389775 :          ipack = ipack + 1
   40124      389783 :          packed_data(ipack) = pack_tmp
   40125             :       END DO
   40126       25110 :       IF (Ndata_rep < Ndata) THEN
   40127        1410 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40128             :       END IF
   40129       25110 :    END SUBROUTINE ints2bits_50
   40130             : 
   40131             : ! **************************************************************************************************
   40132             : !> \brief ...
   40133             : !> \param Ndata ...
   40134             : !> \param packed_data ...
   40135             : !> \param full_data ...
   40136             : ! **************************************************************************************************
   40137       99829 :    SUBROUTINE bits2ints_50(Ndata, packed_data, full_data)
   40138             :       INTEGER, INTENT(IN)                                :: Ndata
   40139             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   40140             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   40141             : 
   40142             :       INTEGER, PARAMETER                                 :: Nbits = 50
   40143             : 
   40144             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   40145             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   40146             : 
   40147       99829 :       ipack = 0
   40148       99829 :       idata = 0
   40149       99829 :       pack_tmp = 0
   40150       99829 :       Ndata_rep = (Ndata/64)*64
   40151       99829 :       DO kdata = 1, Ndata_rep, 64
   40152     1560357 :          idata = idata + 1
   40153     1560357 :          data_tmp = ISHFT(pack_tmp, 50)
   40154     1560357 :          ipack = ipack + 1
   40155     1560357 :          pack_tmp = packed_data(ipack)
   40156     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40157     1560357 :          pack_tmp = ISHFT(pack_tmp, -50)
   40158     1560357 :          idata = idata + 1
   40159     1560357 :          data_tmp = ISHFT(pack_tmp, 36)
   40160     1560357 :          ipack = ipack + 1
   40161     1560357 :          pack_tmp = packed_data(ipack)
   40162     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40163     1560357 :          pack_tmp = ISHFT(pack_tmp, -36)
   40164     1560357 :          idata = idata + 1
   40165     1560357 :          data_tmp = ISHFT(pack_tmp, 22)
   40166     1560357 :          ipack = ipack + 1
   40167     1560357 :          pack_tmp = packed_data(ipack)
   40168     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40169     1560357 :          pack_tmp = ISHFT(pack_tmp, -22)
   40170     1560357 :          idata = idata + 1
   40171     1560357 :          data_tmp = ISHFT(pack_tmp, 8)
   40172     1560357 :          ipack = ipack + 1
   40173     1560357 :          pack_tmp = packed_data(ipack)
   40174     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40175     1560357 :          pack_tmp = ISHFT(pack_tmp, -8)
   40176     1560357 :          idata = idata + 1
   40177     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40178     1560357 :          full_data(idata) = data_tmp
   40179     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40180     1560357 :          idata = idata + 1
   40181     1560357 :          data_tmp = ISHFT(pack_tmp, 44)
   40182     1560357 :          ipack = ipack + 1
   40183     1560357 :          pack_tmp = packed_data(ipack)
   40184     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40185     1560357 :          pack_tmp = ISHFT(pack_tmp, -44)
   40186     1560357 :          idata = idata + 1
   40187     1560357 :          data_tmp = ISHFT(pack_tmp, 30)
   40188     1560357 :          ipack = ipack + 1
   40189     1560357 :          pack_tmp = packed_data(ipack)
   40190     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40191     1560357 :          pack_tmp = ISHFT(pack_tmp, -30)
   40192     1560357 :          idata = idata + 1
   40193     1560357 :          data_tmp = ISHFT(pack_tmp, 16)
   40194     1560357 :          ipack = ipack + 1
   40195     1560357 :          pack_tmp = packed_data(ipack)
   40196     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40197     1560357 :          pack_tmp = ISHFT(pack_tmp, -16)
   40198     1560357 :          idata = idata + 1
   40199     1560357 :          data_tmp = ISHFT(pack_tmp, 2)
   40200     1560357 :          ipack = ipack + 1
   40201     1560357 :          pack_tmp = packed_data(ipack)
   40202     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40203     1560357 :          pack_tmp = ISHFT(pack_tmp, -2)
   40204     1560357 :          idata = idata + 1
   40205     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40206     1560357 :          full_data(idata) = data_tmp
   40207     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40208     1560357 :          idata = idata + 1
   40209     1560357 :          data_tmp = ISHFT(pack_tmp, 38)
   40210     1560357 :          ipack = ipack + 1
   40211     1560357 :          pack_tmp = packed_data(ipack)
   40212     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40213     1560357 :          pack_tmp = ISHFT(pack_tmp, -38)
   40214     1560357 :          idata = idata + 1
   40215     1560357 :          data_tmp = ISHFT(pack_tmp, 24)
   40216     1560357 :          ipack = ipack + 1
   40217     1560357 :          pack_tmp = packed_data(ipack)
   40218     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40219     1560357 :          pack_tmp = ISHFT(pack_tmp, -24)
   40220     1560357 :          idata = idata + 1
   40221     1560357 :          data_tmp = ISHFT(pack_tmp, 10)
   40222     1560357 :          ipack = ipack + 1
   40223     1560357 :          pack_tmp = packed_data(ipack)
   40224     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40225     1560357 :          pack_tmp = ISHFT(pack_tmp, -10)
   40226     1560357 :          idata = idata + 1
   40227     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40228     1560357 :          full_data(idata) = data_tmp
   40229     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40230     1560357 :          idata = idata + 1
   40231     1560357 :          data_tmp = ISHFT(pack_tmp, 46)
   40232     1560357 :          ipack = ipack + 1
   40233     1560357 :          pack_tmp = packed_data(ipack)
   40234     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40235     1560357 :          pack_tmp = ISHFT(pack_tmp, -46)
   40236     1560357 :          idata = idata + 1
   40237     1560357 :          data_tmp = ISHFT(pack_tmp, 32)
   40238     1560357 :          ipack = ipack + 1
   40239     1560357 :          pack_tmp = packed_data(ipack)
   40240     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40241     1560357 :          pack_tmp = ISHFT(pack_tmp, -32)
   40242     1560357 :          idata = idata + 1
   40243     1560357 :          data_tmp = ISHFT(pack_tmp, 18)
   40244     1560357 :          ipack = ipack + 1
   40245     1560357 :          pack_tmp = packed_data(ipack)
   40246     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40247     1560357 :          pack_tmp = ISHFT(pack_tmp, -18)
   40248     1560357 :          idata = idata + 1
   40249     1560357 :          data_tmp = ISHFT(pack_tmp, 4)
   40250     1560357 :          ipack = ipack + 1
   40251     1560357 :          pack_tmp = packed_data(ipack)
   40252     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40253     1560357 :          pack_tmp = ISHFT(pack_tmp, -4)
   40254     1560357 :          idata = idata + 1
   40255     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40256     1560357 :          full_data(idata) = data_tmp
   40257     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40258     1560357 :          idata = idata + 1
   40259     1560357 :          data_tmp = ISHFT(pack_tmp, 40)
   40260     1560357 :          ipack = ipack + 1
   40261     1560357 :          pack_tmp = packed_data(ipack)
   40262     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40263     1560357 :          pack_tmp = ISHFT(pack_tmp, -40)
   40264     1560357 :          idata = idata + 1
   40265     1560357 :          data_tmp = ISHFT(pack_tmp, 26)
   40266     1560357 :          ipack = ipack + 1
   40267     1560357 :          pack_tmp = packed_data(ipack)
   40268     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40269     1560357 :          pack_tmp = ISHFT(pack_tmp, -26)
   40270     1560357 :          idata = idata + 1
   40271     1560357 :          data_tmp = ISHFT(pack_tmp, 12)
   40272     1560357 :          ipack = ipack + 1
   40273     1560357 :          pack_tmp = packed_data(ipack)
   40274     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40275     1560357 :          pack_tmp = ISHFT(pack_tmp, -12)
   40276     1560357 :          idata = idata + 1
   40277     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40278     1560357 :          full_data(idata) = data_tmp
   40279     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40280     1560357 :          idata = idata + 1
   40281     1560357 :          data_tmp = ISHFT(pack_tmp, 48)
   40282     1560357 :          ipack = ipack + 1
   40283     1560357 :          pack_tmp = packed_data(ipack)
   40284     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40285     1560357 :          pack_tmp = ISHFT(pack_tmp, -48)
   40286     1560357 :          idata = idata + 1
   40287     1560357 :          data_tmp = ISHFT(pack_tmp, 34)
   40288     1560357 :          ipack = ipack + 1
   40289     1560357 :          pack_tmp = packed_data(ipack)
   40290     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40291     1560357 :          pack_tmp = ISHFT(pack_tmp, -34)
   40292     1560357 :          idata = idata + 1
   40293     1560357 :          data_tmp = ISHFT(pack_tmp, 20)
   40294     1560357 :          ipack = ipack + 1
   40295     1560357 :          pack_tmp = packed_data(ipack)
   40296     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40297     1560357 :          pack_tmp = ISHFT(pack_tmp, -20)
   40298     1560357 :          idata = idata + 1
   40299     1560357 :          data_tmp = ISHFT(pack_tmp, 6)
   40300     1560357 :          ipack = ipack + 1
   40301     1560357 :          pack_tmp = packed_data(ipack)
   40302     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40303     1560357 :          pack_tmp = ISHFT(pack_tmp, -6)
   40304     1560357 :          idata = idata + 1
   40305     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40306     1560357 :          full_data(idata) = data_tmp
   40307     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40308     1560357 :          idata = idata + 1
   40309     1560357 :          data_tmp = ISHFT(pack_tmp, 42)
   40310     1560357 :          ipack = ipack + 1
   40311     1560357 :          pack_tmp = packed_data(ipack)
   40312     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40313     1560357 :          pack_tmp = ISHFT(pack_tmp, -42)
   40314     1560357 :          idata = idata + 1
   40315     1560357 :          data_tmp = ISHFT(pack_tmp, 28)
   40316     1560357 :          ipack = ipack + 1
   40317     1560357 :          pack_tmp = packed_data(ipack)
   40318     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40319     1560357 :          pack_tmp = ISHFT(pack_tmp, -28)
   40320     1560357 :          idata = idata + 1
   40321     1560357 :          data_tmp = ISHFT(pack_tmp, 14)
   40322     1560357 :          ipack = ipack + 1
   40323     1560357 :          pack_tmp = packed_data(ipack)
   40324     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40325     1560357 :          pack_tmp = ISHFT(pack_tmp, -14)
   40326     1560357 :          idata = idata + 1
   40327     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40328     1560357 :          full_data(idata) = data_tmp
   40329     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40330     1560357 :          idata = idata + 1
   40331     1560357 :          data_tmp = ISHFT(pack_tmp, 50)
   40332     1560357 :          ipack = ipack + 1
   40333     1560357 :          pack_tmp = packed_data(ipack)
   40334     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40335     1560357 :          pack_tmp = ISHFT(pack_tmp, -50)
   40336     1560357 :          idata = idata + 1
   40337     1560357 :          data_tmp = ISHFT(pack_tmp, 36)
   40338     1560357 :          ipack = ipack + 1
   40339     1560357 :          pack_tmp = packed_data(ipack)
   40340     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40341     1560357 :          pack_tmp = ISHFT(pack_tmp, -36)
   40342     1560357 :          idata = idata + 1
   40343     1560357 :          data_tmp = ISHFT(pack_tmp, 22)
   40344     1560357 :          ipack = ipack + 1
   40345     1560357 :          pack_tmp = packed_data(ipack)
   40346     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40347     1560357 :          pack_tmp = ISHFT(pack_tmp, -22)
   40348     1560357 :          idata = idata + 1
   40349     1560357 :          data_tmp = ISHFT(pack_tmp, 8)
   40350     1560357 :          ipack = ipack + 1
   40351     1560357 :          pack_tmp = packed_data(ipack)
   40352     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40353     1560357 :          pack_tmp = ISHFT(pack_tmp, -8)
   40354     1560357 :          idata = idata + 1
   40355     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40356     1560357 :          full_data(idata) = data_tmp
   40357     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40358     1560357 :          idata = idata + 1
   40359     1560357 :          data_tmp = ISHFT(pack_tmp, 44)
   40360     1560357 :          ipack = ipack + 1
   40361     1560357 :          pack_tmp = packed_data(ipack)
   40362     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40363     1560357 :          pack_tmp = ISHFT(pack_tmp, -44)
   40364     1560357 :          idata = idata + 1
   40365     1560357 :          data_tmp = ISHFT(pack_tmp, 30)
   40366     1560357 :          ipack = ipack + 1
   40367     1560357 :          pack_tmp = packed_data(ipack)
   40368     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40369     1560357 :          pack_tmp = ISHFT(pack_tmp, -30)
   40370     1560357 :          idata = idata + 1
   40371     1560357 :          data_tmp = ISHFT(pack_tmp, 16)
   40372     1560357 :          ipack = ipack + 1
   40373     1560357 :          pack_tmp = packed_data(ipack)
   40374     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40375     1560357 :          pack_tmp = ISHFT(pack_tmp, -16)
   40376     1560357 :          idata = idata + 1
   40377     1560357 :          data_tmp = ISHFT(pack_tmp, 2)
   40378     1560357 :          ipack = ipack + 1
   40379     1560357 :          pack_tmp = packed_data(ipack)
   40380     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40381     1560357 :          pack_tmp = ISHFT(pack_tmp, -2)
   40382     1560357 :          idata = idata + 1
   40383     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40384     1560357 :          full_data(idata) = data_tmp
   40385     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40386     1560357 :          idata = idata + 1
   40387     1560357 :          data_tmp = ISHFT(pack_tmp, 38)
   40388     1560357 :          ipack = ipack + 1
   40389     1560357 :          pack_tmp = packed_data(ipack)
   40390     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40391     1560357 :          pack_tmp = ISHFT(pack_tmp, -38)
   40392     1560357 :          idata = idata + 1
   40393     1560357 :          data_tmp = ISHFT(pack_tmp, 24)
   40394     1560357 :          ipack = ipack + 1
   40395     1560357 :          pack_tmp = packed_data(ipack)
   40396     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40397     1560357 :          pack_tmp = ISHFT(pack_tmp, -24)
   40398     1560357 :          idata = idata + 1
   40399     1560357 :          data_tmp = ISHFT(pack_tmp, 10)
   40400     1560357 :          ipack = ipack + 1
   40401     1560357 :          pack_tmp = packed_data(ipack)
   40402     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40403     1560357 :          pack_tmp = ISHFT(pack_tmp, -10)
   40404     1560357 :          idata = idata + 1
   40405     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40406     1560357 :          full_data(idata) = data_tmp
   40407     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40408     1560357 :          idata = idata + 1
   40409     1560357 :          data_tmp = ISHFT(pack_tmp, 46)
   40410     1560357 :          ipack = ipack + 1
   40411     1560357 :          pack_tmp = packed_data(ipack)
   40412     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40413     1560357 :          pack_tmp = ISHFT(pack_tmp, -46)
   40414     1560357 :          idata = idata + 1
   40415     1560357 :          data_tmp = ISHFT(pack_tmp, 32)
   40416     1560357 :          ipack = ipack + 1
   40417     1560357 :          pack_tmp = packed_data(ipack)
   40418     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40419     1560357 :          pack_tmp = ISHFT(pack_tmp, -32)
   40420     1560357 :          idata = idata + 1
   40421     1560357 :          data_tmp = ISHFT(pack_tmp, 18)
   40422     1560357 :          ipack = ipack + 1
   40423     1560357 :          pack_tmp = packed_data(ipack)
   40424     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40425     1560357 :          pack_tmp = ISHFT(pack_tmp, -18)
   40426     1560357 :          idata = idata + 1
   40427     1560357 :          data_tmp = ISHFT(pack_tmp, 4)
   40428     1560357 :          ipack = ipack + 1
   40429     1560357 :          pack_tmp = packed_data(ipack)
   40430     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40431     1560357 :          pack_tmp = ISHFT(pack_tmp, -4)
   40432     1560357 :          idata = idata + 1
   40433     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40434     1560357 :          full_data(idata) = data_tmp
   40435     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40436     1560357 :          idata = idata + 1
   40437     1560357 :          data_tmp = ISHFT(pack_tmp, 40)
   40438     1560357 :          ipack = ipack + 1
   40439     1560357 :          pack_tmp = packed_data(ipack)
   40440     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40441     1560357 :          pack_tmp = ISHFT(pack_tmp, -40)
   40442     1560357 :          idata = idata + 1
   40443     1560357 :          data_tmp = ISHFT(pack_tmp, 26)
   40444     1560357 :          ipack = ipack + 1
   40445     1560357 :          pack_tmp = packed_data(ipack)
   40446     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40447     1560357 :          pack_tmp = ISHFT(pack_tmp, -26)
   40448     1560357 :          idata = idata + 1
   40449     1560357 :          data_tmp = ISHFT(pack_tmp, 12)
   40450     1560357 :          ipack = ipack + 1
   40451     1560357 :          pack_tmp = packed_data(ipack)
   40452     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40453     1560357 :          pack_tmp = ISHFT(pack_tmp, -12)
   40454     1560357 :          idata = idata + 1
   40455     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40456     1560357 :          full_data(idata) = data_tmp
   40457     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40458     1560357 :          idata = idata + 1
   40459     1560357 :          data_tmp = ISHFT(pack_tmp, 48)
   40460     1560357 :          ipack = ipack + 1
   40461     1560357 :          pack_tmp = packed_data(ipack)
   40462     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40463     1560357 :          pack_tmp = ISHFT(pack_tmp, -48)
   40464     1560357 :          idata = idata + 1
   40465     1560357 :          data_tmp = ISHFT(pack_tmp, 34)
   40466     1560357 :          ipack = ipack + 1
   40467     1560357 :          pack_tmp = packed_data(ipack)
   40468     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40469     1560357 :          pack_tmp = ISHFT(pack_tmp, -34)
   40470     1560357 :          idata = idata + 1
   40471     1560357 :          data_tmp = ISHFT(pack_tmp, 20)
   40472     1560357 :          ipack = ipack + 1
   40473     1560357 :          pack_tmp = packed_data(ipack)
   40474     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40475     1560357 :          pack_tmp = ISHFT(pack_tmp, -20)
   40476     1560357 :          idata = idata + 1
   40477     1560357 :          data_tmp = ISHFT(pack_tmp, 6)
   40478     1560357 :          ipack = ipack + 1
   40479     1560357 :          pack_tmp = packed_data(ipack)
   40480     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40481     1560357 :          pack_tmp = ISHFT(pack_tmp, -6)
   40482     1560357 :          idata = idata + 1
   40483     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40484     1560357 :          full_data(idata) = data_tmp
   40485     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40486     1560357 :          idata = idata + 1
   40487     1560357 :          data_tmp = ISHFT(pack_tmp, 42)
   40488     1560357 :          ipack = ipack + 1
   40489     1560357 :          pack_tmp = packed_data(ipack)
   40490     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40491     1560357 :          pack_tmp = ISHFT(pack_tmp, -42)
   40492     1560357 :          idata = idata + 1
   40493     1560357 :          data_tmp = ISHFT(pack_tmp, 28)
   40494     1560357 :          ipack = ipack + 1
   40495     1560357 :          pack_tmp = packed_data(ipack)
   40496     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40497     1560357 :          pack_tmp = ISHFT(pack_tmp, -28)
   40498     1560357 :          idata = idata + 1
   40499     1560357 :          data_tmp = ISHFT(pack_tmp, 14)
   40500     1560357 :          ipack = ipack + 1
   40501     1560357 :          pack_tmp = packed_data(ipack)
   40502     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40503     1560357 :          pack_tmp = ISHFT(pack_tmp, -14)
   40504     1560357 :          idata = idata + 1
   40505     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40506     1560357 :          full_data(idata) = data_tmp
   40507     1560373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40508             :       END DO
   40509       99829 :       IF (Ndata_rep < Ndata) THEN
   40510        4342 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40511             :       END IF
   40512       99829 :    END SUBROUTINE bits2ints_50
   40513             : 
   40514             : ! **************************************************************************************************
   40515             : !> \brief ...
   40516             : !> \param Ndata ...
   40517             : !> \param packed_data ...
   40518             : !> \param full_data ...
   40519             : ! **************************************************************************************************
   40520       24160 :    SUBROUTINE ints2bits_51(Ndata, packed_data, full_data)
   40521             :       INTEGER, INTENT(IN)                                :: Ndata
   40522             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   40523             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   40524             : 
   40525             :       INTEGER, PARAMETER                                 :: Nbits = 51
   40526             : 
   40527             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   40528             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   40529             : 
   40530       24160 :       idata = 0
   40531       24160 :       ipack = 0
   40532       24160 :       Ndata_rep = (Ndata/64)*64
   40533       24160 :       DO kdata = 1, Ndata_rep, 64
   40534      382854 :          pack_tmp = 0
   40535      382854 :          idata = idata + 1
   40536      382854 :          data_tmp = full_data(idata)
   40537      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40538      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40539      382854 :          pack_tmp = ISHFT(pack_tmp, -13)
   40540      382854 :          idata = idata + 1
   40541      382854 :          data_tmp = full_data(idata)
   40542      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40543      382854 :          data_tmp = IAND(data_tmp, mask_left(13))
   40544      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40545      382854 :          ipack = ipack + 1
   40546      382854 :          packed_data(ipack) = pack_tmp
   40547      382854 :          data_tmp = full_data(idata)
   40548      382854 :          pack_tmp = ISHFT(data_tmp, 26)
   40549      382854 :          pack_tmp = ISHFT(pack_tmp, -26)
   40550      382854 :          idata = idata + 1
   40551      382854 :          data_tmp = full_data(idata)
   40552      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40553      382854 :          data_tmp = IAND(data_tmp, mask_left(26))
   40554      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40555      382854 :          ipack = ipack + 1
   40556      382854 :          packed_data(ipack) = pack_tmp
   40557      382854 :          data_tmp = full_data(idata)
   40558      382854 :          pack_tmp = ISHFT(data_tmp, 39)
   40559      382854 :          pack_tmp = ISHFT(pack_tmp, -39)
   40560      382854 :          idata = idata + 1
   40561      382854 :          data_tmp = full_data(idata)
   40562      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40563      382854 :          data_tmp = IAND(data_tmp, mask_left(39))
   40564      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40565      382854 :          ipack = ipack + 1
   40566      382854 :          packed_data(ipack) = pack_tmp
   40567      382854 :          data_tmp = full_data(idata)
   40568      382854 :          pack_tmp = ISHFT(data_tmp, 52)
   40569      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40570      382854 :          idata = idata + 1
   40571      382854 :          data_tmp = full_data(idata)
   40572      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40573      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40574      382854 :          pack_tmp = ISHFT(pack_tmp, -1)
   40575      382854 :          idata = idata + 1
   40576      382854 :          data_tmp = full_data(idata)
   40577      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40578      382854 :          data_tmp = IAND(data_tmp, mask_left(1))
   40579      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40580      382854 :          ipack = ipack + 1
   40581      382854 :          packed_data(ipack) = pack_tmp
   40582      382854 :          data_tmp = full_data(idata)
   40583      382854 :          pack_tmp = ISHFT(data_tmp, 14)
   40584      382854 :          pack_tmp = ISHFT(pack_tmp, -14)
   40585      382854 :          idata = idata + 1
   40586      382854 :          data_tmp = full_data(idata)
   40587      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40588      382854 :          data_tmp = IAND(data_tmp, mask_left(14))
   40589      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40590      382854 :          ipack = ipack + 1
   40591      382854 :          packed_data(ipack) = pack_tmp
   40592      382854 :          data_tmp = full_data(idata)
   40593      382854 :          pack_tmp = ISHFT(data_tmp, 27)
   40594      382854 :          pack_tmp = ISHFT(pack_tmp, -27)
   40595      382854 :          idata = idata + 1
   40596      382854 :          data_tmp = full_data(idata)
   40597      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40598      382854 :          data_tmp = IAND(data_tmp, mask_left(27))
   40599      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40600      382854 :          ipack = ipack + 1
   40601      382854 :          packed_data(ipack) = pack_tmp
   40602      382854 :          data_tmp = full_data(idata)
   40603      382854 :          pack_tmp = ISHFT(data_tmp, 40)
   40604      382854 :          pack_tmp = ISHFT(pack_tmp, -40)
   40605      382854 :          idata = idata + 1
   40606      382854 :          data_tmp = full_data(idata)
   40607      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40608      382854 :          data_tmp = IAND(data_tmp, mask_left(40))
   40609      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40610      382854 :          ipack = ipack + 1
   40611      382854 :          packed_data(ipack) = pack_tmp
   40612      382854 :          data_tmp = full_data(idata)
   40613      382854 :          pack_tmp = ISHFT(data_tmp, 53)
   40614      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40615      382854 :          idata = idata + 1
   40616      382854 :          data_tmp = full_data(idata)
   40617      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40618      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40619      382854 :          pack_tmp = ISHFT(pack_tmp, -2)
   40620      382854 :          idata = idata + 1
   40621      382854 :          data_tmp = full_data(idata)
   40622      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40623      382854 :          data_tmp = IAND(data_tmp, mask_left(2))
   40624      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40625      382854 :          ipack = ipack + 1
   40626      382854 :          packed_data(ipack) = pack_tmp
   40627      382854 :          data_tmp = full_data(idata)
   40628      382854 :          pack_tmp = ISHFT(data_tmp, 15)
   40629      382854 :          pack_tmp = ISHFT(pack_tmp, -15)
   40630      382854 :          idata = idata + 1
   40631      382854 :          data_tmp = full_data(idata)
   40632      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40633      382854 :          data_tmp = IAND(data_tmp, mask_left(15))
   40634      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40635      382854 :          ipack = ipack + 1
   40636      382854 :          packed_data(ipack) = pack_tmp
   40637      382854 :          data_tmp = full_data(idata)
   40638      382854 :          pack_tmp = ISHFT(data_tmp, 28)
   40639      382854 :          pack_tmp = ISHFT(pack_tmp, -28)
   40640      382854 :          idata = idata + 1
   40641      382854 :          data_tmp = full_data(idata)
   40642      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40643      382854 :          data_tmp = IAND(data_tmp, mask_left(28))
   40644      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40645      382854 :          ipack = ipack + 1
   40646      382854 :          packed_data(ipack) = pack_tmp
   40647      382854 :          data_tmp = full_data(idata)
   40648      382854 :          pack_tmp = ISHFT(data_tmp, 41)
   40649      382854 :          pack_tmp = ISHFT(pack_tmp, -41)
   40650      382854 :          idata = idata + 1
   40651      382854 :          data_tmp = full_data(idata)
   40652      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40653      382854 :          data_tmp = IAND(data_tmp, mask_left(41))
   40654      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40655      382854 :          ipack = ipack + 1
   40656      382854 :          packed_data(ipack) = pack_tmp
   40657      382854 :          data_tmp = full_data(idata)
   40658      382854 :          pack_tmp = ISHFT(data_tmp, 54)
   40659      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40660      382854 :          idata = idata + 1
   40661      382854 :          data_tmp = full_data(idata)
   40662      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40663      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40664      382854 :          pack_tmp = ISHFT(pack_tmp, -3)
   40665      382854 :          idata = idata + 1
   40666      382854 :          data_tmp = full_data(idata)
   40667      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40668      382854 :          data_tmp = IAND(data_tmp, mask_left(3))
   40669      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40670      382854 :          ipack = ipack + 1
   40671      382854 :          packed_data(ipack) = pack_tmp
   40672      382854 :          data_tmp = full_data(idata)
   40673      382854 :          pack_tmp = ISHFT(data_tmp, 16)
   40674      382854 :          pack_tmp = ISHFT(pack_tmp, -16)
   40675      382854 :          idata = idata + 1
   40676      382854 :          data_tmp = full_data(idata)
   40677      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40678      382854 :          data_tmp = IAND(data_tmp, mask_left(16))
   40679      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40680      382854 :          ipack = ipack + 1
   40681      382854 :          packed_data(ipack) = pack_tmp
   40682      382854 :          data_tmp = full_data(idata)
   40683      382854 :          pack_tmp = ISHFT(data_tmp, 29)
   40684      382854 :          pack_tmp = ISHFT(pack_tmp, -29)
   40685      382854 :          idata = idata + 1
   40686      382854 :          data_tmp = full_data(idata)
   40687      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40688      382854 :          data_tmp = IAND(data_tmp, mask_left(29))
   40689      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40690      382854 :          ipack = ipack + 1
   40691      382854 :          packed_data(ipack) = pack_tmp
   40692      382854 :          data_tmp = full_data(idata)
   40693      382854 :          pack_tmp = ISHFT(data_tmp, 42)
   40694      382854 :          pack_tmp = ISHFT(pack_tmp, -42)
   40695      382854 :          idata = idata + 1
   40696      382854 :          data_tmp = full_data(idata)
   40697      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40698      382854 :          data_tmp = IAND(data_tmp, mask_left(42))
   40699      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40700      382854 :          ipack = ipack + 1
   40701      382854 :          packed_data(ipack) = pack_tmp
   40702      382854 :          data_tmp = full_data(idata)
   40703      382854 :          pack_tmp = ISHFT(data_tmp, 55)
   40704      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40705      382854 :          idata = idata + 1
   40706      382854 :          data_tmp = full_data(idata)
   40707      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40708      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40709      382854 :          pack_tmp = ISHFT(pack_tmp, -4)
   40710      382854 :          idata = idata + 1
   40711      382854 :          data_tmp = full_data(idata)
   40712      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40713      382854 :          data_tmp = IAND(data_tmp, mask_left(4))
   40714      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40715      382854 :          ipack = ipack + 1
   40716      382854 :          packed_data(ipack) = pack_tmp
   40717      382854 :          data_tmp = full_data(idata)
   40718      382854 :          pack_tmp = ISHFT(data_tmp, 17)
   40719      382854 :          pack_tmp = ISHFT(pack_tmp, -17)
   40720      382854 :          idata = idata + 1
   40721      382854 :          data_tmp = full_data(idata)
   40722      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40723      382854 :          data_tmp = IAND(data_tmp, mask_left(17))
   40724      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40725      382854 :          ipack = ipack + 1
   40726      382854 :          packed_data(ipack) = pack_tmp
   40727      382854 :          data_tmp = full_data(idata)
   40728      382854 :          pack_tmp = ISHFT(data_tmp, 30)
   40729      382854 :          pack_tmp = ISHFT(pack_tmp, -30)
   40730      382854 :          idata = idata + 1
   40731      382854 :          data_tmp = full_data(idata)
   40732      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40733      382854 :          data_tmp = IAND(data_tmp, mask_left(30))
   40734      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40735      382854 :          ipack = ipack + 1
   40736      382854 :          packed_data(ipack) = pack_tmp
   40737      382854 :          data_tmp = full_data(idata)
   40738      382854 :          pack_tmp = ISHFT(data_tmp, 43)
   40739      382854 :          pack_tmp = ISHFT(pack_tmp, -43)
   40740      382854 :          idata = idata + 1
   40741      382854 :          data_tmp = full_data(idata)
   40742      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40743      382854 :          data_tmp = IAND(data_tmp, mask_left(43))
   40744      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40745      382854 :          ipack = ipack + 1
   40746      382854 :          packed_data(ipack) = pack_tmp
   40747      382854 :          data_tmp = full_data(idata)
   40748      382854 :          pack_tmp = ISHFT(data_tmp, 56)
   40749      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40750      382854 :          idata = idata + 1
   40751      382854 :          data_tmp = full_data(idata)
   40752      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40753      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40754      382854 :          pack_tmp = ISHFT(pack_tmp, -5)
   40755      382854 :          idata = idata + 1
   40756      382854 :          data_tmp = full_data(idata)
   40757      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40758      382854 :          data_tmp = IAND(data_tmp, mask_left(5))
   40759      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40760      382854 :          ipack = ipack + 1
   40761      382854 :          packed_data(ipack) = pack_tmp
   40762      382854 :          data_tmp = full_data(idata)
   40763      382854 :          pack_tmp = ISHFT(data_tmp, 18)
   40764      382854 :          pack_tmp = ISHFT(pack_tmp, -18)
   40765      382854 :          idata = idata + 1
   40766      382854 :          data_tmp = full_data(idata)
   40767      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40768      382854 :          data_tmp = IAND(data_tmp, mask_left(18))
   40769      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40770      382854 :          ipack = ipack + 1
   40771      382854 :          packed_data(ipack) = pack_tmp
   40772      382854 :          data_tmp = full_data(idata)
   40773      382854 :          pack_tmp = ISHFT(data_tmp, 31)
   40774      382854 :          pack_tmp = ISHFT(pack_tmp, -31)
   40775      382854 :          idata = idata + 1
   40776      382854 :          data_tmp = full_data(idata)
   40777      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40778      382854 :          data_tmp = IAND(data_tmp, mask_left(31))
   40779      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40780      382854 :          ipack = ipack + 1
   40781      382854 :          packed_data(ipack) = pack_tmp
   40782      382854 :          data_tmp = full_data(idata)
   40783      382854 :          pack_tmp = ISHFT(data_tmp, 44)
   40784      382854 :          pack_tmp = ISHFT(pack_tmp, -44)
   40785      382854 :          idata = idata + 1
   40786      382854 :          data_tmp = full_data(idata)
   40787      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40788      382854 :          data_tmp = IAND(data_tmp, mask_left(44))
   40789      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40790      382854 :          ipack = ipack + 1
   40791      382854 :          packed_data(ipack) = pack_tmp
   40792      382854 :          data_tmp = full_data(idata)
   40793      382854 :          pack_tmp = ISHFT(data_tmp, 57)
   40794      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40795      382854 :          idata = idata + 1
   40796      382854 :          data_tmp = full_data(idata)
   40797      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40798      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40799      382854 :          pack_tmp = ISHFT(pack_tmp, -6)
   40800      382854 :          idata = idata + 1
   40801      382854 :          data_tmp = full_data(idata)
   40802      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40803      382854 :          data_tmp = IAND(data_tmp, mask_left(6))
   40804      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40805      382854 :          ipack = ipack + 1
   40806      382854 :          packed_data(ipack) = pack_tmp
   40807      382854 :          data_tmp = full_data(idata)
   40808      382854 :          pack_tmp = ISHFT(data_tmp, 19)
   40809      382854 :          pack_tmp = ISHFT(pack_tmp, -19)
   40810      382854 :          idata = idata + 1
   40811      382854 :          data_tmp = full_data(idata)
   40812      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40813      382854 :          data_tmp = IAND(data_tmp, mask_left(19))
   40814      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40815      382854 :          ipack = ipack + 1
   40816      382854 :          packed_data(ipack) = pack_tmp
   40817      382854 :          data_tmp = full_data(idata)
   40818      382854 :          pack_tmp = ISHFT(data_tmp, 32)
   40819      382854 :          pack_tmp = ISHFT(pack_tmp, -32)
   40820      382854 :          idata = idata + 1
   40821      382854 :          data_tmp = full_data(idata)
   40822      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40823      382854 :          data_tmp = IAND(data_tmp, mask_left(32))
   40824      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40825      382854 :          ipack = ipack + 1
   40826      382854 :          packed_data(ipack) = pack_tmp
   40827      382854 :          data_tmp = full_data(idata)
   40828      382854 :          pack_tmp = ISHFT(data_tmp, 45)
   40829      382854 :          pack_tmp = ISHFT(pack_tmp, -45)
   40830      382854 :          idata = idata + 1
   40831      382854 :          data_tmp = full_data(idata)
   40832      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40833      382854 :          data_tmp = IAND(data_tmp, mask_left(45))
   40834      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40835      382854 :          ipack = ipack + 1
   40836      382854 :          packed_data(ipack) = pack_tmp
   40837      382854 :          data_tmp = full_data(idata)
   40838      382854 :          pack_tmp = ISHFT(data_tmp, 58)
   40839      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40840      382854 :          idata = idata + 1
   40841      382854 :          data_tmp = full_data(idata)
   40842      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40843      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40844      382854 :          pack_tmp = ISHFT(pack_tmp, -7)
   40845      382854 :          idata = idata + 1
   40846      382854 :          data_tmp = full_data(idata)
   40847      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40848      382854 :          data_tmp = IAND(data_tmp, mask_left(7))
   40849      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40850      382854 :          ipack = ipack + 1
   40851      382854 :          packed_data(ipack) = pack_tmp
   40852      382854 :          data_tmp = full_data(idata)
   40853      382854 :          pack_tmp = ISHFT(data_tmp, 20)
   40854      382854 :          pack_tmp = ISHFT(pack_tmp, -20)
   40855      382854 :          idata = idata + 1
   40856      382854 :          data_tmp = full_data(idata)
   40857      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40858      382854 :          data_tmp = IAND(data_tmp, mask_left(20))
   40859      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40860      382854 :          ipack = ipack + 1
   40861      382854 :          packed_data(ipack) = pack_tmp
   40862      382854 :          data_tmp = full_data(idata)
   40863      382854 :          pack_tmp = ISHFT(data_tmp, 33)
   40864      382854 :          pack_tmp = ISHFT(pack_tmp, -33)
   40865      382854 :          idata = idata + 1
   40866      382854 :          data_tmp = full_data(idata)
   40867      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40868      382854 :          data_tmp = IAND(data_tmp, mask_left(33))
   40869      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40870      382854 :          ipack = ipack + 1
   40871      382854 :          packed_data(ipack) = pack_tmp
   40872      382854 :          data_tmp = full_data(idata)
   40873      382854 :          pack_tmp = ISHFT(data_tmp, 46)
   40874      382854 :          pack_tmp = ISHFT(pack_tmp, -46)
   40875      382854 :          idata = idata + 1
   40876      382854 :          data_tmp = full_data(idata)
   40877      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40878      382854 :          data_tmp = IAND(data_tmp, mask_left(46))
   40879      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40880      382854 :          ipack = ipack + 1
   40881      382854 :          packed_data(ipack) = pack_tmp
   40882      382854 :          data_tmp = full_data(idata)
   40883      382854 :          pack_tmp = ISHFT(data_tmp, 59)
   40884      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40885      382854 :          idata = idata + 1
   40886      382854 :          data_tmp = full_data(idata)
   40887      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40888      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40889      382854 :          pack_tmp = ISHFT(pack_tmp, -8)
   40890      382854 :          idata = idata + 1
   40891      382854 :          data_tmp = full_data(idata)
   40892      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40893      382854 :          data_tmp = IAND(data_tmp, mask_left(8))
   40894      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40895      382854 :          ipack = ipack + 1
   40896      382854 :          packed_data(ipack) = pack_tmp
   40897      382854 :          data_tmp = full_data(idata)
   40898      382854 :          pack_tmp = ISHFT(data_tmp, 21)
   40899      382854 :          pack_tmp = ISHFT(pack_tmp, -21)
   40900      382854 :          idata = idata + 1
   40901      382854 :          data_tmp = full_data(idata)
   40902      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40903      382854 :          data_tmp = IAND(data_tmp, mask_left(21))
   40904      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40905      382854 :          ipack = ipack + 1
   40906      382854 :          packed_data(ipack) = pack_tmp
   40907      382854 :          data_tmp = full_data(idata)
   40908      382854 :          pack_tmp = ISHFT(data_tmp, 34)
   40909      382854 :          pack_tmp = ISHFT(pack_tmp, -34)
   40910      382854 :          idata = idata + 1
   40911      382854 :          data_tmp = full_data(idata)
   40912      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40913      382854 :          data_tmp = IAND(data_tmp, mask_left(34))
   40914      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40915      382854 :          ipack = ipack + 1
   40916      382854 :          packed_data(ipack) = pack_tmp
   40917      382854 :          data_tmp = full_data(idata)
   40918      382854 :          pack_tmp = ISHFT(data_tmp, 47)
   40919      382854 :          pack_tmp = ISHFT(pack_tmp, -47)
   40920      382854 :          idata = idata + 1
   40921      382854 :          data_tmp = full_data(idata)
   40922      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40923      382854 :          data_tmp = IAND(data_tmp, mask_left(47))
   40924      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40925      382854 :          ipack = ipack + 1
   40926      382854 :          packed_data(ipack) = pack_tmp
   40927      382854 :          data_tmp = full_data(idata)
   40928      382854 :          pack_tmp = ISHFT(data_tmp, 60)
   40929      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40930      382854 :          idata = idata + 1
   40931      382854 :          data_tmp = full_data(idata)
   40932      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40933      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40934      382854 :          pack_tmp = ISHFT(pack_tmp, -9)
   40935      382854 :          idata = idata + 1
   40936      382854 :          data_tmp = full_data(idata)
   40937      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40938      382854 :          data_tmp = IAND(data_tmp, mask_left(9))
   40939      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40940      382854 :          ipack = ipack + 1
   40941      382854 :          packed_data(ipack) = pack_tmp
   40942      382854 :          data_tmp = full_data(idata)
   40943      382854 :          pack_tmp = ISHFT(data_tmp, 22)
   40944      382854 :          pack_tmp = ISHFT(pack_tmp, -22)
   40945      382854 :          idata = idata + 1
   40946      382854 :          data_tmp = full_data(idata)
   40947      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40948      382854 :          data_tmp = IAND(data_tmp, mask_left(22))
   40949      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40950      382854 :          ipack = ipack + 1
   40951      382854 :          packed_data(ipack) = pack_tmp
   40952      382854 :          data_tmp = full_data(idata)
   40953      382854 :          pack_tmp = ISHFT(data_tmp, 35)
   40954      382854 :          pack_tmp = ISHFT(pack_tmp, -35)
   40955      382854 :          idata = idata + 1
   40956      382854 :          data_tmp = full_data(idata)
   40957      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40958      382854 :          data_tmp = IAND(data_tmp, mask_left(35))
   40959      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40960      382854 :          ipack = ipack + 1
   40961      382854 :          packed_data(ipack) = pack_tmp
   40962      382854 :          data_tmp = full_data(idata)
   40963      382854 :          pack_tmp = ISHFT(data_tmp, 48)
   40964      382854 :          pack_tmp = ISHFT(pack_tmp, -48)
   40965      382854 :          idata = idata + 1
   40966      382854 :          data_tmp = full_data(idata)
   40967      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40968      382854 :          data_tmp = IAND(data_tmp, mask_left(48))
   40969      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40970      382854 :          ipack = ipack + 1
   40971      382854 :          packed_data(ipack) = pack_tmp
   40972      382854 :          data_tmp = full_data(idata)
   40973      382854 :          pack_tmp = ISHFT(data_tmp, 61)
   40974      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40975      382854 :          idata = idata + 1
   40976      382854 :          data_tmp = full_data(idata)
   40977      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40978      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40979      382854 :          pack_tmp = ISHFT(pack_tmp, -10)
   40980      382854 :          idata = idata + 1
   40981      382854 :          data_tmp = full_data(idata)
   40982      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40983      382854 :          data_tmp = IAND(data_tmp, mask_left(10))
   40984      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40985      382854 :          ipack = ipack + 1
   40986      382854 :          packed_data(ipack) = pack_tmp
   40987      382854 :          data_tmp = full_data(idata)
   40988      382854 :          pack_tmp = ISHFT(data_tmp, 23)
   40989      382854 :          pack_tmp = ISHFT(pack_tmp, -23)
   40990      382854 :          idata = idata + 1
   40991      382854 :          data_tmp = full_data(idata)
   40992      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40993      382854 :          data_tmp = IAND(data_tmp, mask_left(23))
   40994      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40995      382854 :          ipack = ipack + 1
   40996      382854 :          packed_data(ipack) = pack_tmp
   40997      382854 :          data_tmp = full_data(idata)
   40998      382854 :          pack_tmp = ISHFT(data_tmp, 36)
   40999      382854 :          pack_tmp = ISHFT(pack_tmp, -36)
   41000      382854 :          idata = idata + 1
   41001      382854 :          data_tmp = full_data(idata)
   41002      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41003      382854 :          data_tmp = IAND(data_tmp, mask_left(36))
   41004      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41005      382854 :          ipack = ipack + 1
   41006      382854 :          packed_data(ipack) = pack_tmp
   41007      382854 :          data_tmp = full_data(idata)
   41008      382854 :          pack_tmp = ISHFT(data_tmp, 49)
   41009      382854 :          pack_tmp = ISHFT(pack_tmp, -49)
   41010      382854 :          idata = idata + 1
   41011      382854 :          data_tmp = full_data(idata)
   41012      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41013      382854 :          data_tmp = IAND(data_tmp, mask_left(49))
   41014      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41015      382854 :          ipack = ipack + 1
   41016      382854 :          packed_data(ipack) = pack_tmp
   41017      382854 :          data_tmp = full_data(idata)
   41018      382854 :          pack_tmp = ISHFT(data_tmp, 62)
   41019      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41020      382854 :          idata = idata + 1
   41021      382854 :          data_tmp = full_data(idata)
   41022      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41023      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41024      382854 :          pack_tmp = ISHFT(pack_tmp, -11)
   41025      382854 :          idata = idata + 1
   41026      382854 :          data_tmp = full_data(idata)
   41027      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41028      382854 :          data_tmp = IAND(data_tmp, mask_left(11))
   41029      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41030      382854 :          ipack = ipack + 1
   41031      382854 :          packed_data(ipack) = pack_tmp
   41032      382854 :          data_tmp = full_data(idata)
   41033      382854 :          pack_tmp = ISHFT(data_tmp, 24)
   41034      382854 :          pack_tmp = ISHFT(pack_tmp, -24)
   41035      382854 :          idata = idata + 1
   41036      382854 :          data_tmp = full_data(idata)
   41037      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41038      382854 :          data_tmp = IAND(data_tmp, mask_left(24))
   41039      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41040      382854 :          ipack = ipack + 1
   41041      382854 :          packed_data(ipack) = pack_tmp
   41042      382854 :          data_tmp = full_data(idata)
   41043      382854 :          pack_tmp = ISHFT(data_tmp, 37)
   41044      382854 :          pack_tmp = ISHFT(pack_tmp, -37)
   41045      382854 :          idata = idata + 1
   41046      382854 :          data_tmp = full_data(idata)
   41047      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41048      382854 :          data_tmp = IAND(data_tmp, mask_left(37))
   41049      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41050      382854 :          ipack = ipack + 1
   41051      382854 :          packed_data(ipack) = pack_tmp
   41052      382854 :          data_tmp = full_data(idata)
   41053      382854 :          pack_tmp = ISHFT(data_tmp, 50)
   41054      382854 :          pack_tmp = ISHFT(pack_tmp, -50)
   41055      382854 :          idata = idata + 1
   41056      382854 :          data_tmp = full_data(idata)
   41057      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41058      382854 :          data_tmp = IAND(data_tmp, mask_left(50))
   41059      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41060      382854 :          ipack = ipack + 1
   41061      382854 :          packed_data(ipack) = pack_tmp
   41062      382854 :          data_tmp = full_data(idata)
   41063      382854 :          pack_tmp = ISHFT(data_tmp, 63)
   41064      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41065      382854 :          idata = idata + 1
   41066      382854 :          data_tmp = full_data(idata)
   41067      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41068      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41069      382854 :          pack_tmp = ISHFT(pack_tmp, -12)
   41070      382854 :          idata = idata + 1
   41071      382854 :          data_tmp = full_data(idata)
   41072      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41073      382854 :          data_tmp = IAND(data_tmp, mask_left(12))
   41074      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41075      382854 :          ipack = ipack + 1
   41076      382854 :          packed_data(ipack) = pack_tmp
   41077      382854 :          data_tmp = full_data(idata)
   41078      382854 :          pack_tmp = ISHFT(data_tmp, 25)
   41079      382854 :          pack_tmp = ISHFT(pack_tmp, -25)
   41080      382854 :          idata = idata + 1
   41081      382854 :          data_tmp = full_data(idata)
   41082      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41083      382854 :          data_tmp = IAND(data_tmp, mask_left(25))
   41084      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41085      382854 :          ipack = ipack + 1
   41086      382854 :          packed_data(ipack) = pack_tmp
   41087      382854 :          data_tmp = full_data(idata)
   41088      382854 :          pack_tmp = ISHFT(data_tmp, 38)
   41089      382854 :          pack_tmp = ISHFT(pack_tmp, -38)
   41090      382854 :          idata = idata + 1
   41091      382854 :          data_tmp = full_data(idata)
   41092      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41093      382854 :          data_tmp = IAND(data_tmp, mask_left(38))
   41094      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41095      382854 :          ipack = ipack + 1
   41096      382854 :          packed_data(ipack) = pack_tmp
   41097      382854 :          data_tmp = full_data(idata)
   41098      382854 :          pack_tmp = ISHFT(data_tmp, 51)
   41099      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41100      382854 :          idata = idata + 1
   41101      382854 :          data_tmp = full_data(idata)
   41102      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41103      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41104             :          pack_tmp = ISHFT(pack_tmp, 0)
   41105      382854 :          pack_tmp = ISHFT(pack_tmp, 0)
   41106      382854 :          ipack = ipack + 1
   41107      382898 :          packed_data(ipack) = pack_tmp
   41108             :       END DO
   41109       24160 :       IF (Ndata_rep < Ndata) THEN
   41110         436 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   41111             :       END IF
   41112       24160 :    END SUBROUTINE ints2bits_51
   41113             : 
   41114             : ! **************************************************************************************************
   41115             : !> \brief ...
   41116             : !> \param Ndata ...
   41117             : !> \param packed_data ...
   41118             : !> \param full_data ...
   41119             : ! **************************************************************************************************
   41120       98507 :    SUBROUTINE bits2ints_51(Ndata, packed_data, full_data)
   41121             :       INTEGER, INTENT(IN)                                :: Ndata
   41122             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   41123             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   41124             : 
   41125             :       INTEGER, PARAMETER                                 :: Nbits = 51
   41126             : 
   41127             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   41128             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   41129             : 
   41130       98507 :       ipack = 0
   41131       98507 :       idata = 0
   41132       98507 :       pack_tmp = 0
   41133       98507 :       Ndata_rep = (Ndata/64)*64
   41134       98507 :       DO kdata = 1, Ndata_rep, 64
   41135     1552754 :          idata = idata + 1
   41136     1552754 :          data_tmp = ISHFT(pack_tmp, 51)
   41137     1552754 :          ipack = ipack + 1
   41138     1552754 :          pack_tmp = packed_data(ipack)
   41139     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   41140     1552754 :          pack_tmp = ISHFT(pack_tmp, -51)
   41141     1552754 :          idata = idata + 1
   41142     1552754 :          data_tmp = ISHFT(pack_tmp, 38)
   41143     1552754 :          ipack = ipack + 1
   41144     1552754 :          pack_tmp = packed_data(ipack)
   41145     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   41146     1552754 :          pack_tmp = ISHFT(pack_tmp, -38)
   41147     1552754 :          idata = idata + 1
   41148     1552754 :          data_tmp = ISHFT(pack_tmp, 25)
   41149     1552754 :          ipack = ipack + 1
   41150     1552754 :          pack_tmp = packed_data(ipack)
   41151     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   41152     1552754 :          pack_tmp = ISHFT(pack_tmp, -25)
   41153     1552754 :          idata = idata + 1
   41154     1552754 :          data_tmp = ISHFT(pack_tmp, 12)
   41155     1552754 :          ipack = ipack + 1
   41156     1552754 :          pack_tmp = packed_data(ipack)
   41157     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   41158     1552754 :          pack_tmp = ISHFT(pack_tmp, -12)
   41159     1552754 :          idata = idata + 1
   41160     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41161     1552754 :          full_data(idata) = data_tmp
   41162     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41163     1552754 :          idata = idata + 1
   41164     1552754 :          data_tmp = ISHFT(pack_tmp, 50)
   41165     1552754 :          ipack = ipack + 1
   41166     1552754 :          pack_tmp = packed_data(ipack)
   41167     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   41168     1552754 :          pack_tmp = ISHFT(pack_tmp, -50)
   41169     1552754 :          idata = idata + 1
   41170     1552754 :          data_tmp = ISHFT(pack_tmp, 37)
   41171     1552754 :          ipack = ipack + 1
   41172     1552754 :          pack_tmp = packed_data(ipack)
   41173     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   41174     1552754 :          pack_tmp = ISHFT(pack_tmp, -37)
   41175     1552754 :          idata = idata + 1
   41176     1552754 :          data_tmp = ISHFT(pack_tmp, 24)
   41177     1552754 :          ipack = ipack + 1
   41178     1552754 :          pack_tmp = packed_data(ipack)
   41179     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   41180     1552754 :          pack_tmp = ISHFT(pack_tmp, -24)
   41181     1552754 :          idata = idata + 1
   41182     1552754 :          data_tmp = ISHFT(pack_tmp, 11)
   41183     1552754 :          ipack = ipack + 1
   41184     1552754 :          pack_tmp = packed_data(ipack)
   41185     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   41186     1552754 :          pack_tmp = ISHFT(pack_tmp, -11)
   41187     1552754 :          idata = idata + 1
   41188     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41189     1552754 :          full_data(idata) = data_tmp
   41190     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41191     1552754 :          idata = idata + 1
   41192     1552754 :          data_tmp = ISHFT(pack_tmp, 49)
   41193     1552754 :          ipack = ipack + 1
   41194     1552754 :          pack_tmp = packed_data(ipack)
   41195     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   41196     1552754 :          pack_tmp = ISHFT(pack_tmp, -49)
   41197     1552754 :          idata = idata + 1
   41198     1552754 :          data_tmp = ISHFT(pack_tmp, 36)
   41199     1552754 :          ipack = ipack + 1
   41200     1552754 :          pack_tmp = packed_data(ipack)
   41201     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   41202     1552754 :          pack_tmp = ISHFT(pack_tmp, -36)
   41203     1552754 :          idata = idata + 1
   41204     1552754 :          data_tmp = ISHFT(pack_tmp, 23)
   41205     1552754 :          ipack = ipack + 1
   41206     1552754 :          pack_tmp = packed_data(ipack)
   41207     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   41208     1552754 :          pack_tmp = ISHFT(pack_tmp, -23)
   41209     1552754 :          idata = idata + 1
   41210     1552754 :          data_tmp = ISHFT(pack_tmp, 10)
   41211     1552754 :          ipack = ipack + 1
   41212     1552754 :          pack_tmp = packed_data(ipack)
   41213     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   41214     1552754 :          pack_tmp = ISHFT(pack_tmp, -10)
   41215     1552754 :          idata = idata + 1
   41216     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41217     1552754 :          full_data(idata) = data_tmp
   41218     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41219     1552754 :          idata = idata + 1
   41220     1552754 :          data_tmp = ISHFT(pack_tmp, 48)
   41221     1552754 :          ipack = ipack + 1
   41222     1552754 :          pack_tmp = packed_data(ipack)
   41223     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   41224     1552754 :          pack_tmp = ISHFT(pack_tmp, -48)
   41225     1552754 :          idata = idata + 1
   41226     1552754 :          data_tmp = ISHFT(pack_tmp, 35)
   41227     1552754 :          ipack = ipack + 1
   41228     1552754 :          pack_tmp = packed_data(ipack)
   41229     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   41230     1552754 :          pack_tmp = ISHFT(pack_tmp, -35)
   41231     1552754 :          idata = idata + 1
   41232     1552754 :          data_tmp = ISHFT(pack_tmp, 22)
   41233     1552754 :          ipack = ipack + 1
   41234     1552754 :          pack_tmp = packed_data(ipack)
   41235     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   41236     1552754 :          pack_tmp = ISHFT(pack_tmp, -22)
   41237     1552754 :          idata = idata + 1
   41238     1552754 :          data_tmp = ISHFT(pack_tmp, 9)
   41239     1552754 :          ipack = ipack + 1
   41240     1552754 :          pack_tmp = packed_data(ipack)
   41241     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   41242     1552754 :          pack_tmp = ISHFT(pack_tmp, -9)
   41243     1552754 :          idata = idata + 1
   41244     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41245     1552754 :          full_data(idata) = data_tmp
   41246     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41247     1552754 :          idata = idata + 1
   41248     1552754 :          data_tmp = ISHFT(pack_tmp, 47)
   41249     1552754 :          ipack = ipack + 1
   41250     1552754 :          pack_tmp = packed_data(ipack)
   41251     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   41252     1552754 :          pack_tmp = ISHFT(pack_tmp, -47)
   41253     1552754 :          idata = idata + 1
   41254     1552754 :          data_tmp = ISHFT(pack_tmp, 34)
   41255     1552754 :          ipack = ipack + 1
   41256     1552754 :          pack_tmp = packed_data(ipack)
   41257     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   41258     1552754 :          pack_tmp = ISHFT(pack_tmp, -34)
   41259     1552754 :          idata = idata + 1
   41260     1552754 :          data_tmp = ISHFT(pack_tmp, 21)
   41261     1552754 :          ipack = ipack + 1
   41262     1552754 :          pack_tmp = packed_data(ipack)
   41263     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   41264     1552754 :          pack_tmp = ISHFT(pack_tmp, -21)
   41265     1552754 :          idata = idata + 1
   41266     1552754 :          data_tmp = ISHFT(pack_tmp, 8)
   41267     1552754 :          ipack = ipack + 1
   41268     1552754 :          pack_tmp = packed_data(ipack)
   41269     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   41270     1552754 :          pack_tmp = ISHFT(pack_tmp, -8)
   41271     1552754 :          idata = idata + 1
   41272     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41273     1552754 :          full_data(idata) = data_tmp
   41274     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41275     1552754 :          idata = idata + 1
   41276     1552754 :          data_tmp = ISHFT(pack_tmp, 46)
   41277     1552754 :          ipack = ipack + 1
   41278     1552754 :          pack_tmp = packed_data(ipack)
   41279     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   41280     1552754 :          pack_tmp = ISHFT(pack_tmp, -46)
   41281     1552754 :          idata = idata + 1
   41282     1552754 :          data_tmp = ISHFT(pack_tmp, 33)
   41283     1552754 :          ipack = ipack + 1
   41284     1552754 :          pack_tmp = packed_data(ipack)
   41285     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   41286     1552754 :          pack_tmp = ISHFT(pack_tmp, -33)
   41287     1552754 :          idata = idata + 1
   41288     1552754 :          data_tmp = ISHFT(pack_tmp, 20)
   41289     1552754 :          ipack = ipack + 1
   41290     1552754 :          pack_tmp = packed_data(ipack)
   41291     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   41292     1552754 :          pack_tmp = ISHFT(pack_tmp, -20)
   41293     1552754 :          idata = idata + 1
   41294     1552754 :          data_tmp = ISHFT(pack_tmp, 7)
   41295     1552754 :          ipack = ipack + 1
   41296     1552754 :          pack_tmp = packed_data(ipack)
   41297     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   41298     1552754 :          pack_tmp = ISHFT(pack_tmp, -7)
   41299     1552754 :          idata = idata + 1
   41300     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41301     1552754 :          full_data(idata) = data_tmp
   41302     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41303     1552754 :          idata = idata + 1
   41304     1552754 :          data_tmp = ISHFT(pack_tmp, 45)
   41305     1552754 :          ipack = ipack + 1
   41306     1552754 :          pack_tmp = packed_data(ipack)
   41307     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   41308     1552754 :          pack_tmp = ISHFT(pack_tmp, -45)
   41309     1552754 :          idata = idata + 1
   41310     1552754 :          data_tmp = ISHFT(pack_tmp, 32)
   41311     1552754 :          ipack = ipack + 1
   41312     1552754 :          pack_tmp = packed_data(ipack)
   41313     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   41314     1552754 :          pack_tmp = ISHFT(pack_tmp, -32)
   41315     1552754 :          idata = idata + 1
   41316     1552754 :          data_tmp = ISHFT(pack_tmp, 19)
   41317     1552754 :          ipack = ipack + 1
   41318     1552754 :          pack_tmp = packed_data(ipack)
   41319     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   41320     1552754 :          pack_tmp = ISHFT(pack_tmp, -19)
   41321     1552754 :          idata = idata + 1
   41322     1552754 :          data_tmp = ISHFT(pack_tmp, 6)
   41323     1552754 :          ipack = ipack + 1
   41324     1552754 :          pack_tmp = packed_data(ipack)
   41325     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   41326     1552754 :          pack_tmp = ISHFT(pack_tmp, -6)
   41327     1552754 :          idata = idata + 1
   41328     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41329     1552754 :          full_data(idata) = data_tmp
   41330     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41331     1552754 :          idata = idata + 1
   41332     1552754 :          data_tmp = ISHFT(pack_tmp, 44)
   41333     1552754 :          ipack = ipack + 1
   41334     1552754 :          pack_tmp = packed_data(ipack)
   41335     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   41336     1552754 :          pack_tmp = ISHFT(pack_tmp, -44)
   41337     1552754 :          idata = idata + 1
   41338     1552754 :          data_tmp = ISHFT(pack_tmp, 31)
   41339     1552754 :          ipack = ipack + 1
   41340     1552754 :          pack_tmp = packed_data(ipack)
   41341     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   41342     1552754 :          pack_tmp = ISHFT(pack_tmp, -31)
   41343     1552754 :          idata = idata + 1
   41344     1552754 :          data_tmp = ISHFT(pack_tmp, 18)
   41345     1552754 :          ipack = ipack + 1
   41346     1552754 :          pack_tmp = packed_data(ipack)
   41347     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   41348     1552754 :          pack_tmp = ISHFT(pack_tmp, -18)
   41349     1552754 :          idata = idata + 1
   41350     1552754 :          data_tmp = ISHFT(pack_tmp, 5)
   41351     1552754 :          ipack = ipack + 1
   41352     1552754 :          pack_tmp = packed_data(ipack)
   41353     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   41354     1552754 :          pack_tmp = ISHFT(pack_tmp, -5)
   41355     1552754 :          idata = idata + 1
   41356     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41357     1552754 :          full_data(idata) = data_tmp
   41358     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41359     1552754 :          idata = idata + 1
   41360     1552754 :          data_tmp = ISHFT(pack_tmp, 43)
   41361     1552754 :          ipack = ipack + 1
   41362     1552754 :          pack_tmp = packed_data(ipack)
   41363     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   41364     1552754 :          pack_tmp = ISHFT(pack_tmp, -43)
   41365     1552754 :          idata = idata + 1
   41366     1552754 :          data_tmp = ISHFT(pack_tmp, 30)
   41367     1552754 :          ipack = ipack + 1
   41368     1552754 :          pack_tmp = packed_data(ipack)
   41369     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   41370     1552754 :          pack_tmp = ISHFT(pack_tmp, -30)
   41371     1552754 :          idata = idata + 1
   41372     1552754 :          data_tmp = ISHFT(pack_tmp, 17)
   41373     1552754 :          ipack = ipack + 1
   41374     1552754 :          pack_tmp = packed_data(ipack)
   41375     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   41376     1552754 :          pack_tmp = ISHFT(pack_tmp, -17)
   41377     1552754 :          idata = idata + 1
   41378     1552754 :          data_tmp = ISHFT(pack_tmp, 4)
   41379     1552754 :          ipack = ipack + 1
   41380     1552754 :          pack_tmp = packed_data(ipack)
   41381     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   41382     1552754 :          pack_tmp = ISHFT(pack_tmp, -4)
   41383     1552754 :          idata = idata + 1
   41384     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41385     1552754 :          full_data(idata) = data_tmp
   41386     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41387     1552754 :          idata = idata + 1
   41388     1552754 :          data_tmp = ISHFT(pack_tmp, 42)
   41389     1552754 :          ipack = ipack + 1
   41390     1552754 :          pack_tmp = packed_data(ipack)
   41391     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   41392     1552754 :          pack_tmp = ISHFT(pack_tmp, -42)
   41393     1552754 :          idata = idata + 1
   41394     1552754 :          data_tmp = ISHFT(pack_tmp, 29)
   41395     1552754 :          ipack = ipack + 1
   41396     1552754 :          pack_tmp = packed_data(ipack)
   41397     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   41398     1552754 :          pack_tmp = ISHFT(pack_tmp, -29)
   41399     1552754 :          idata = idata + 1
   41400     1552754 :          data_tmp = ISHFT(pack_tmp, 16)
   41401     1552754 :          ipack = ipack + 1
   41402     1552754 :          pack_tmp = packed_data(ipack)
   41403     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   41404     1552754 :          pack_tmp = ISHFT(pack_tmp, -16)
   41405     1552754 :          idata = idata + 1
   41406     1552754 :          data_tmp = ISHFT(pack_tmp, 3)
   41407     1552754 :          ipack = ipack + 1
   41408     1552754 :          pack_tmp = packed_data(ipack)
   41409     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   41410     1552754 :          pack_tmp = ISHFT(pack_tmp, -3)
   41411     1552754 :          idata = idata + 1
   41412     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41413     1552754 :          full_data(idata) = data_tmp
   41414     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41415     1552754 :          idata = idata + 1
   41416     1552754 :          data_tmp = ISHFT(pack_tmp, 41)
   41417     1552754 :          ipack = ipack + 1
   41418     1552754 :          pack_tmp = packed_data(ipack)
   41419     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   41420     1552754 :          pack_tmp = ISHFT(pack_tmp, -41)
   41421     1552754 :          idata = idata + 1
   41422     1552754 :          data_tmp = ISHFT(pack_tmp, 28)
   41423     1552754 :          ipack = ipack + 1
   41424     1552754 :          pack_tmp = packed_data(ipack)
   41425     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   41426     1552754 :          pack_tmp = ISHFT(pack_tmp, -28)
   41427     1552754 :          idata = idata + 1
   41428     1552754 :          data_tmp = ISHFT(pack_tmp, 15)
   41429     1552754 :          ipack = ipack + 1
   41430     1552754 :          pack_tmp = packed_data(ipack)
   41431     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   41432     1552754 :          pack_tmp = ISHFT(pack_tmp, -15)
   41433     1552754 :          idata = idata + 1
   41434     1552754 :          data_tmp = ISHFT(pack_tmp, 2)
   41435     1552754 :          ipack = ipack + 1
   41436     1552754 :          pack_tmp = packed_data(ipack)
   41437     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   41438     1552754 :          pack_tmp = ISHFT(pack_tmp, -2)
   41439     1552754 :          idata = idata + 1
   41440     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41441     1552754 :          full_data(idata) = data_tmp
   41442     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41443     1552754 :          idata = idata + 1
   41444     1552754 :          data_tmp = ISHFT(pack_tmp, 40)
   41445     1552754 :          ipack = ipack + 1
   41446     1552754 :          pack_tmp = packed_data(ipack)
   41447     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   41448     1552754 :          pack_tmp = ISHFT(pack_tmp, -40)
   41449     1552754 :          idata = idata + 1
   41450     1552754 :          data_tmp = ISHFT(pack_tmp, 27)
   41451     1552754 :          ipack = ipack + 1
   41452     1552754 :          pack_tmp = packed_data(ipack)
   41453     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   41454     1552754 :          pack_tmp = ISHFT(pack_tmp, -27)
   41455     1552754 :          idata = idata + 1
   41456     1552754 :          data_tmp = ISHFT(pack_tmp, 14)
   41457     1552754 :          ipack = ipack + 1
   41458     1552754 :          pack_tmp = packed_data(ipack)
   41459     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   41460     1552754 :          pack_tmp = ISHFT(pack_tmp, -14)
   41461     1552754 :          idata = idata + 1
   41462     1552754 :          data_tmp = ISHFT(pack_tmp, 1)
   41463     1552754 :          ipack = ipack + 1
   41464     1552754 :          pack_tmp = packed_data(ipack)
   41465     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   41466     1552754 :          pack_tmp = ISHFT(pack_tmp, -1)
   41467     1552754 :          idata = idata + 1
   41468     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41469     1552754 :          full_data(idata) = data_tmp
   41470     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41471     1552754 :          idata = idata + 1
   41472     1552754 :          data_tmp = ISHFT(pack_tmp, 39)
   41473     1552754 :          ipack = ipack + 1
   41474     1552754 :          pack_tmp = packed_data(ipack)
   41475     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   41476     1552754 :          pack_tmp = ISHFT(pack_tmp, -39)
   41477     1552754 :          idata = idata + 1
   41478     1552754 :          data_tmp = ISHFT(pack_tmp, 26)
   41479     1552754 :          ipack = ipack + 1
   41480     1552754 :          pack_tmp = packed_data(ipack)
   41481     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   41482     1552754 :          pack_tmp = ISHFT(pack_tmp, -26)
   41483     1552754 :          idata = idata + 1
   41484     1552754 :          data_tmp = ISHFT(pack_tmp, 13)
   41485     1552754 :          ipack = ipack + 1
   41486     1552754 :          pack_tmp = packed_data(ipack)
   41487     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   41488     1552754 :          pack_tmp = ISHFT(pack_tmp, -13)
   41489     1552754 :          idata = idata + 1
   41490     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41491     1552754 :          full_data(idata) = data_tmp
   41492     1553078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41493             :       END DO
   41494       98507 :       IF (Ndata_rep < Ndata) THEN
   41495        2748 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   41496             :       END IF
   41497       98507 :    END SUBROUTINE bits2ints_51
   41498             : 
   41499             : ! **************************************************************************************************
   41500             : !> \brief ...
   41501             : !> \param Ndata ...
   41502             : !> \param packed_data ...
   41503             : !> \param full_data ...
   41504             : ! **************************************************************************************************
   41505       24186 :    SUBROUTINE ints2bits_52(Ndata, packed_data, full_data)
   41506             :       INTEGER, INTENT(IN)                                :: Ndata
   41507             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   41508             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   41509             : 
   41510             :       INTEGER, PARAMETER                                 :: Nbits = 52
   41511             : 
   41512             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   41513             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   41514             : 
   41515       24186 :       idata = 0
   41516       24186 :       ipack = 0
   41517       24186 :       Ndata_rep = (Ndata/64)*64
   41518       24186 :       DO kdata = 1, Ndata_rep, 64
   41519      383032 :          pack_tmp = 0
   41520      383032 :          idata = idata + 1
   41521      383032 :          data_tmp = full_data(idata)
   41522      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41523      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41524      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41525      383032 :          idata = idata + 1
   41526      383032 :          data_tmp = full_data(idata)
   41527      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41528      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41529      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41530      383032 :          ipack = ipack + 1
   41531      383032 :          packed_data(ipack) = pack_tmp
   41532      383032 :          data_tmp = full_data(idata)
   41533      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41534      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41535      383032 :          idata = idata + 1
   41536      383032 :          data_tmp = full_data(idata)
   41537      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41538      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41539      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41540      383032 :          ipack = ipack + 1
   41541      383032 :          packed_data(ipack) = pack_tmp
   41542      383032 :          data_tmp = full_data(idata)
   41543      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41544      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41545      383032 :          idata = idata + 1
   41546      383032 :          data_tmp = full_data(idata)
   41547      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41548      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41549      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41550      383032 :          ipack = ipack + 1
   41551      383032 :          packed_data(ipack) = pack_tmp
   41552      383032 :          data_tmp = full_data(idata)
   41553      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41554      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41555      383032 :          idata = idata + 1
   41556      383032 :          data_tmp = full_data(idata)
   41557      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41558      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41559      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41560      383032 :          ipack = ipack + 1
   41561      383032 :          packed_data(ipack) = pack_tmp
   41562      383032 :          data_tmp = full_data(idata)
   41563      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41564      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41565      383032 :          idata = idata + 1
   41566      383032 :          data_tmp = full_data(idata)
   41567      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41568      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41569      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41570      383032 :          idata = idata + 1
   41571      383032 :          data_tmp = full_data(idata)
   41572      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41573      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41574      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41575      383032 :          ipack = ipack + 1
   41576      383032 :          packed_data(ipack) = pack_tmp
   41577      383032 :          data_tmp = full_data(idata)
   41578      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41579      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41580      383032 :          idata = idata + 1
   41581      383032 :          data_tmp = full_data(idata)
   41582      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41583      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41584      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41585      383032 :          ipack = ipack + 1
   41586      383032 :          packed_data(ipack) = pack_tmp
   41587      383032 :          data_tmp = full_data(idata)
   41588      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41589      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41590      383032 :          idata = idata + 1
   41591      383032 :          data_tmp = full_data(idata)
   41592      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41593      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41594      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41595      383032 :          ipack = ipack + 1
   41596      383032 :          packed_data(ipack) = pack_tmp
   41597      383032 :          data_tmp = full_data(idata)
   41598      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41599      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41600      383032 :          idata = idata + 1
   41601      383032 :          data_tmp = full_data(idata)
   41602      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41603      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41604      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41605      383032 :          ipack = ipack + 1
   41606      383032 :          packed_data(ipack) = pack_tmp
   41607      383032 :          data_tmp = full_data(idata)
   41608      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41609      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41610      383032 :          idata = idata + 1
   41611      383032 :          data_tmp = full_data(idata)
   41612      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41613      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41614      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41615      383032 :          idata = idata + 1
   41616      383032 :          data_tmp = full_data(idata)
   41617      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41618      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41619      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41620      383032 :          ipack = ipack + 1
   41621      383032 :          packed_data(ipack) = pack_tmp
   41622      383032 :          data_tmp = full_data(idata)
   41623      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41624      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41625      383032 :          idata = idata + 1
   41626      383032 :          data_tmp = full_data(idata)
   41627      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41628      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41629      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41630      383032 :          ipack = ipack + 1
   41631      383032 :          packed_data(ipack) = pack_tmp
   41632      383032 :          data_tmp = full_data(idata)
   41633      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41634      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41635      383032 :          idata = idata + 1
   41636      383032 :          data_tmp = full_data(idata)
   41637      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41638      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41639      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41640      383032 :          ipack = ipack + 1
   41641      383032 :          packed_data(ipack) = pack_tmp
   41642      383032 :          data_tmp = full_data(idata)
   41643      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41644      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41645      383032 :          idata = idata + 1
   41646      383032 :          data_tmp = full_data(idata)
   41647      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41648      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41649      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41650      383032 :          ipack = ipack + 1
   41651      383032 :          packed_data(ipack) = pack_tmp
   41652      383032 :          data_tmp = full_data(idata)
   41653      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41654      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41655      383032 :          idata = idata + 1
   41656      383032 :          data_tmp = full_data(idata)
   41657      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41658      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41659      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41660      383032 :          idata = idata + 1
   41661      383032 :          data_tmp = full_data(idata)
   41662             :          data_tmp = ISHFT(data_tmp, 12)
   41663      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41664      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41665      383032 :          ipack = ipack + 1
   41666      383032 :          packed_data(ipack) = pack_tmp
   41667      383032 :          data_tmp = full_data(idata)
   41668      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41669      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41670      383032 :          idata = idata + 1
   41671      383032 :          data_tmp = full_data(idata)
   41672      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41673      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41674      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41675      383032 :          ipack = ipack + 1
   41676      383032 :          packed_data(ipack) = pack_tmp
   41677      383032 :          data_tmp = full_data(idata)
   41678      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41679      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41680      383032 :          idata = idata + 1
   41681      383032 :          data_tmp = full_data(idata)
   41682      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41683      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41684      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41685      383032 :          ipack = ipack + 1
   41686      383032 :          packed_data(ipack) = pack_tmp
   41687      383032 :          data_tmp = full_data(idata)
   41688      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41689      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41690      383032 :          idata = idata + 1
   41691      383032 :          data_tmp = full_data(idata)
   41692      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41693      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41694      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41695      383032 :          ipack = ipack + 1
   41696      383032 :          packed_data(ipack) = pack_tmp
   41697      383032 :          data_tmp = full_data(idata)
   41698      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41699      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41700      383032 :          idata = idata + 1
   41701      383032 :          data_tmp = full_data(idata)
   41702      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41703      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41704      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41705      383032 :          ipack = ipack + 1
   41706      383032 :          packed_data(ipack) = pack_tmp
   41707      383032 :          data_tmp = full_data(idata)
   41708      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41709      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41710      383032 :          idata = idata + 1
   41711      383032 :          data_tmp = full_data(idata)
   41712      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41713      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41714      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41715      383032 :          idata = idata + 1
   41716      383032 :          data_tmp = full_data(idata)
   41717      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41718      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41719      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41720      383032 :          ipack = ipack + 1
   41721      383032 :          packed_data(ipack) = pack_tmp
   41722      383032 :          data_tmp = full_data(idata)
   41723      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41724      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41725      383032 :          idata = idata + 1
   41726      383032 :          data_tmp = full_data(idata)
   41727      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41728      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41729      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41730      383032 :          ipack = ipack + 1
   41731      383032 :          packed_data(ipack) = pack_tmp
   41732      383032 :          data_tmp = full_data(idata)
   41733      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41734      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41735      383032 :          idata = idata + 1
   41736      383032 :          data_tmp = full_data(idata)
   41737      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41738      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41739      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41740      383032 :          ipack = ipack + 1
   41741      383032 :          packed_data(ipack) = pack_tmp
   41742      383032 :          data_tmp = full_data(idata)
   41743      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41744      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41745      383032 :          idata = idata + 1
   41746      383032 :          data_tmp = full_data(idata)
   41747      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41748      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41749      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41750      383032 :          ipack = ipack + 1
   41751      383032 :          packed_data(ipack) = pack_tmp
   41752      383032 :          data_tmp = full_data(idata)
   41753      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41754      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41755      383032 :          idata = idata + 1
   41756      383032 :          data_tmp = full_data(idata)
   41757      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41758      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41759      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41760      383032 :          idata = idata + 1
   41761      383032 :          data_tmp = full_data(idata)
   41762      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41763      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41764      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41765      383032 :          ipack = ipack + 1
   41766      383032 :          packed_data(ipack) = pack_tmp
   41767      383032 :          data_tmp = full_data(idata)
   41768      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41769      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41770      383032 :          idata = idata + 1
   41771      383032 :          data_tmp = full_data(idata)
   41772      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41773      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41774      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41775      383032 :          ipack = ipack + 1
   41776      383032 :          packed_data(ipack) = pack_tmp
   41777      383032 :          data_tmp = full_data(idata)
   41778      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41779      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41780      383032 :          idata = idata + 1
   41781      383032 :          data_tmp = full_data(idata)
   41782      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41783      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41784      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41785      383032 :          ipack = ipack + 1
   41786      383032 :          packed_data(ipack) = pack_tmp
   41787      383032 :          data_tmp = full_data(idata)
   41788      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41789      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41790      383032 :          idata = idata + 1
   41791      383032 :          data_tmp = full_data(idata)
   41792      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41793      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41794      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41795      383032 :          ipack = ipack + 1
   41796      383032 :          packed_data(ipack) = pack_tmp
   41797      383032 :          data_tmp = full_data(idata)
   41798      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41799      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41800      383032 :          idata = idata + 1
   41801      383032 :          data_tmp = full_data(idata)
   41802      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41803      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41804      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41805      383032 :          idata = idata + 1
   41806      383032 :          data_tmp = full_data(idata)
   41807             :          data_tmp = ISHFT(data_tmp, 12)
   41808      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41809      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41810      383032 :          ipack = ipack + 1
   41811      383032 :          packed_data(ipack) = pack_tmp
   41812      383032 :          data_tmp = full_data(idata)
   41813      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41814      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41815      383032 :          idata = idata + 1
   41816      383032 :          data_tmp = full_data(idata)
   41817      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41818      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41819      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41820      383032 :          ipack = ipack + 1
   41821      383032 :          packed_data(ipack) = pack_tmp
   41822      383032 :          data_tmp = full_data(idata)
   41823      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41824      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41825      383032 :          idata = idata + 1
   41826      383032 :          data_tmp = full_data(idata)
   41827      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41828      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41829      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41830      383032 :          ipack = ipack + 1
   41831      383032 :          packed_data(ipack) = pack_tmp
   41832      383032 :          data_tmp = full_data(idata)
   41833      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41834      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41835      383032 :          idata = idata + 1
   41836      383032 :          data_tmp = full_data(idata)
   41837      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41838      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41839      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41840      383032 :          ipack = ipack + 1
   41841      383032 :          packed_data(ipack) = pack_tmp
   41842      383032 :          data_tmp = full_data(idata)
   41843      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41844      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41845      383032 :          idata = idata + 1
   41846      383032 :          data_tmp = full_data(idata)
   41847      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41848      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41849      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41850      383032 :          ipack = ipack + 1
   41851      383032 :          packed_data(ipack) = pack_tmp
   41852      383032 :          data_tmp = full_data(idata)
   41853      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41854      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41855      383032 :          idata = idata + 1
   41856      383032 :          data_tmp = full_data(idata)
   41857      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41858      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41859      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41860      383032 :          idata = idata + 1
   41861      383032 :          data_tmp = full_data(idata)
   41862      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41863      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41864      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41865      383032 :          ipack = ipack + 1
   41866      383032 :          packed_data(ipack) = pack_tmp
   41867      383032 :          data_tmp = full_data(idata)
   41868      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41869      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41870      383032 :          idata = idata + 1
   41871      383032 :          data_tmp = full_data(idata)
   41872      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41873      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41874      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41875      383032 :          ipack = ipack + 1
   41876      383032 :          packed_data(ipack) = pack_tmp
   41877      383032 :          data_tmp = full_data(idata)
   41878      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41879      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41880      383032 :          idata = idata + 1
   41881      383032 :          data_tmp = full_data(idata)
   41882      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41883      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41884      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41885      383032 :          ipack = ipack + 1
   41886      383032 :          packed_data(ipack) = pack_tmp
   41887      383032 :          data_tmp = full_data(idata)
   41888      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41889      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41890      383032 :          idata = idata + 1
   41891      383032 :          data_tmp = full_data(idata)
   41892      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41893      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41894      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41895      383032 :          ipack = ipack + 1
   41896      383032 :          packed_data(ipack) = pack_tmp
   41897      383032 :          data_tmp = full_data(idata)
   41898      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41899      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41900      383032 :          idata = idata + 1
   41901      383032 :          data_tmp = full_data(idata)
   41902      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41903      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41904      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41905      383032 :          idata = idata + 1
   41906      383032 :          data_tmp = full_data(idata)
   41907      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41908      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41909      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41910      383032 :          ipack = ipack + 1
   41911      383032 :          packed_data(ipack) = pack_tmp
   41912      383032 :          data_tmp = full_data(idata)
   41913      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41914      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41915      383032 :          idata = idata + 1
   41916      383032 :          data_tmp = full_data(idata)
   41917      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41918      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41919      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41920      383032 :          ipack = ipack + 1
   41921      383032 :          packed_data(ipack) = pack_tmp
   41922      383032 :          data_tmp = full_data(idata)
   41923      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41924      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41925      383032 :          idata = idata + 1
   41926      383032 :          data_tmp = full_data(idata)
   41927      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41928      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41929      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41930      383032 :          ipack = ipack + 1
   41931      383032 :          packed_data(ipack) = pack_tmp
   41932      383032 :          data_tmp = full_data(idata)
   41933      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41934      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41935      383032 :          idata = idata + 1
   41936      383032 :          data_tmp = full_data(idata)
   41937      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41938      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41939      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41940      383032 :          ipack = ipack + 1
   41941      383032 :          packed_data(ipack) = pack_tmp
   41942      383032 :          data_tmp = full_data(idata)
   41943      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41944      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41945      383032 :          idata = idata + 1
   41946      383032 :          data_tmp = full_data(idata)
   41947      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41948      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41949      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41950      383032 :          idata = idata + 1
   41951      383032 :          data_tmp = full_data(idata)
   41952             :          data_tmp = ISHFT(data_tmp, 12)
   41953      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41954      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41955      383032 :          ipack = ipack + 1
   41956      383032 :          packed_data(ipack) = pack_tmp
   41957      383032 :          data_tmp = full_data(idata)
   41958      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41959      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41960      383032 :          idata = idata + 1
   41961      383032 :          data_tmp = full_data(idata)
   41962      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41963      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41964      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41965      383032 :          ipack = ipack + 1
   41966      383032 :          packed_data(ipack) = pack_tmp
   41967      383032 :          data_tmp = full_data(idata)
   41968      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41969      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41970      383032 :          idata = idata + 1
   41971      383032 :          data_tmp = full_data(idata)
   41972      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41973      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41974      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41975      383032 :          ipack = ipack + 1
   41976      383032 :          packed_data(ipack) = pack_tmp
   41977      383032 :          data_tmp = full_data(idata)
   41978      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41979      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41980      383032 :          idata = idata + 1
   41981      383032 :          data_tmp = full_data(idata)
   41982      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41983      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41984      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41985      383032 :          ipack = ipack + 1
   41986      383032 :          packed_data(ipack) = pack_tmp
   41987      383032 :          data_tmp = full_data(idata)
   41988      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41989      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41990      383032 :          idata = idata + 1
   41991      383032 :          data_tmp = full_data(idata)
   41992      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41993      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41994      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41995      383032 :          ipack = ipack + 1
   41996      383032 :          packed_data(ipack) = pack_tmp
   41997      383032 :          data_tmp = full_data(idata)
   41998      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41999      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42000      383032 :          idata = idata + 1
   42001      383032 :          data_tmp = full_data(idata)
   42002      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42003      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42004      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   42005      383032 :          idata = idata + 1
   42006      383032 :          data_tmp = full_data(idata)
   42007      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42008      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   42009      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42010      383032 :          ipack = ipack + 1
   42011      383032 :          packed_data(ipack) = pack_tmp
   42012      383032 :          data_tmp = full_data(idata)
   42013      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   42014      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   42015      383032 :          idata = idata + 1
   42016      383032 :          data_tmp = full_data(idata)
   42017      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42018      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   42019      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42020      383032 :          ipack = ipack + 1
   42021      383032 :          packed_data(ipack) = pack_tmp
   42022      383032 :          data_tmp = full_data(idata)
   42023      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   42024      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   42025      383032 :          idata = idata + 1
   42026      383032 :          data_tmp = full_data(idata)
   42027      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42028      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   42029      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42030      383032 :          ipack = ipack + 1
   42031      383032 :          packed_data(ipack) = pack_tmp
   42032      383032 :          data_tmp = full_data(idata)
   42033      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   42034      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   42035      383032 :          idata = idata + 1
   42036      383032 :          data_tmp = full_data(idata)
   42037      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42038      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   42039      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42040      383032 :          ipack = ipack + 1
   42041      383032 :          packed_data(ipack) = pack_tmp
   42042      383032 :          data_tmp = full_data(idata)
   42043      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   42044      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42045      383032 :          idata = idata + 1
   42046      383032 :          data_tmp = full_data(idata)
   42047      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42048      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42049      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   42050      383032 :          idata = idata + 1
   42051      383032 :          data_tmp = full_data(idata)
   42052      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42053      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   42054      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42055      383032 :          ipack = ipack + 1
   42056      383032 :          packed_data(ipack) = pack_tmp
   42057      383032 :          data_tmp = full_data(idata)
   42058      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   42059      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   42060      383032 :          idata = idata + 1
   42061      383032 :          data_tmp = full_data(idata)
   42062      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42063      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   42064      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42065      383032 :          ipack = ipack + 1
   42066      383032 :          packed_data(ipack) = pack_tmp
   42067      383032 :          data_tmp = full_data(idata)
   42068      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   42069      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   42070      383032 :          idata = idata + 1
   42071      383032 :          data_tmp = full_data(idata)
   42072      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42073      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   42074      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42075      383032 :          ipack = ipack + 1
   42076      383032 :          packed_data(ipack) = pack_tmp
   42077      383032 :          data_tmp = full_data(idata)
   42078      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   42079      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   42080      383032 :          idata = idata + 1
   42081      383032 :          data_tmp = full_data(idata)
   42082      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42083      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   42084      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42085      383032 :          ipack = ipack + 1
   42086      383032 :          packed_data(ipack) = pack_tmp
   42087      383032 :          data_tmp = full_data(idata)
   42088      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   42089      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42090      383032 :          idata = idata + 1
   42091      383032 :          data_tmp = full_data(idata)
   42092      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42093      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42094             :          pack_tmp = ISHFT(pack_tmp, 0)
   42095      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   42096      383032 :          ipack = ipack + 1
   42097      383042 :          packed_data(ipack) = pack_tmp
   42098             :       END DO
   42099       24186 :       IF (Ndata_rep < Ndata) THEN
   42100         464 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   42101             :       END IF
   42102       24186 :    END SUBROUTINE ints2bits_52
   42103             : 
   42104             : ! **************************************************************************************************
   42105             : !> \brief ...
   42106             : !> \param Ndata ...
   42107             : !> \param packed_data ...
   42108             : !> \param full_data ...
   42109             : ! **************************************************************************************************
   42110      100439 :    SUBROUTINE bits2ints_52(Ndata, packed_data, full_data)
   42111             :       INTEGER, INTENT(IN)                                :: Ndata
   42112             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   42113             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   42114             : 
   42115             :       INTEGER, PARAMETER                                 :: Nbits = 52
   42116             : 
   42117             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   42118             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   42119             : 
   42120      100439 :       ipack = 0
   42121      100439 :       idata = 0
   42122      100439 :       pack_tmp = 0
   42123      100439 :       Ndata_rep = (Ndata/64)*64
   42124      100439 :       DO kdata = 1, Ndata_rep, 64
   42125     1567176 :          idata = idata + 1
   42126     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42127     1567176 :          ipack = ipack + 1
   42128     1567176 :          pack_tmp = packed_data(ipack)
   42129     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42130     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42131     1567176 :          idata = idata + 1
   42132     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42133     1567176 :          ipack = ipack + 1
   42134     1567176 :          pack_tmp = packed_data(ipack)
   42135     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42136     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42137     1567176 :          idata = idata + 1
   42138     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42139     1567176 :          ipack = ipack + 1
   42140     1567176 :          pack_tmp = packed_data(ipack)
   42141     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42142     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42143     1567176 :          idata = idata + 1
   42144     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42145     1567176 :          ipack = ipack + 1
   42146     1567176 :          pack_tmp = packed_data(ipack)
   42147     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42148     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42149     1567176 :          idata = idata + 1
   42150     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42151     1567176 :          ipack = ipack + 1
   42152     1567176 :          pack_tmp = packed_data(ipack)
   42153     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42154     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42155     1567176 :          idata = idata + 1
   42156     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42157     1567176 :          full_data(idata) = data_tmp
   42158     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42159     1567176 :          idata = idata + 1
   42160     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42161     1567176 :          ipack = ipack + 1
   42162     1567176 :          pack_tmp = packed_data(ipack)
   42163     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42164     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42165     1567176 :          idata = idata + 1
   42166     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42167     1567176 :          ipack = ipack + 1
   42168     1567176 :          pack_tmp = packed_data(ipack)
   42169     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42170     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42171     1567176 :          idata = idata + 1
   42172     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42173     1567176 :          ipack = ipack + 1
   42174     1567176 :          pack_tmp = packed_data(ipack)
   42175     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42176     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42177     1567176 :          idata = idata + 1
   42178     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42179     1567176 :          ipack = ipack + 1
   42180     1567176 :          pack_tmp = packed_data(ipack)
   42181     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42182     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42183     1567176 :          idata = idata + 1
   42184     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42185     1567176 :          full_data(idata) = data_tmp
   42186     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42187     1567176 :          idata = idata + 1
   42188     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42189     1567176 :          ipack = ipack + 1
   42190     1567176 :          pack_tmp = packed_data(ipack)
   42191     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42192     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42193     1567176 :          idata = idata + 1
   42194     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42195     1567176 :          ipack = ipack + 1
   42196     1567176 :          pack_tmp = packed_data(ipack)
   42197     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42198     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42199     1567176 :          idata = idata + 1
   42200     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42201     1567176 :          ipack = ipack + 1
   42202     1567176 :          pack_tmp = packed_data(ipack)
   42203     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42204     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42205     1567176 :          idata = idata + 1
   42206     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42207     1567176 :          ipack = ipack + 1
   42208     1567176 :          pack_tmp = packed_data(ipack)
   42209     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42210     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42211     1567176 :          idata = idata + 1
   42212     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42213     1567176 :          full_data(idata) = data_tmp
   42214     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42215     1567176 :          idata = idata + 1
   42216     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42217     1567176 :          ipack = ipack + 1
   42218     1567176 :          pack_tmp = packed_data(ipack)
   42219     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42220     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42221     1567176 :          idata = idata + 1
   42222     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42223     1567176 :          ipack = ipack + 1
   42224     1567176 :          pack_tmp = packed_data(ipack)
   42225     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42226     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42227     1567176 :          idata = idata + 1
   42228     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42229     1567176 :          ipack = ipack + 1
   42230     1567176 :          pack_tmp = packed_data(ipack)
   42231     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42232     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42233     1567176 :          idata = idata + 1
   42234     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42235     1567176 :          ipack = ipack + 1
   42236     1567176 :          pack_tmp = packed_data(ipack)
   42237     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42238     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42239     1567176 :          idata = idata + 1
   42240     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42241     1567176 :          ipack = ipack + 1
   42242     1567176 :          pack_tmp = packed_data(ipack)
   42243     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42244     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42245     1567176 :          idata = idata + 1
   42246     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42247     1567176 :          full_data(idata) = data_tmp
   42248     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42249     1567176 :          idata = idata + 1
   42250     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42251     1567176 :          ipack = ipack + 1
   42252     1567176 :          pack_tmp = packed_data(ipack)
   42253     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42254     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42255     1567176 :          idata = idata + 1
   42256     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42257     1567176 :          ipack = ipack + 1
   42258     1567176 :          pack_tmp = packed_data(ipack)
   42259     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42260     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42261     1567176 :          idata = idata + 1
   42262     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42263     1567176 :          ipack = ipack + 1
   42264     1567176 :          pack_tmp = packed_data(ipack)
   42265     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42266     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42267     1567176 :          idata = idata + 1
   42268     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42269     1567176 :          ipack = ipack + 1
   42270     1567176 :          pack_tmp = packed_data(ipack)
   42271     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42272     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42273     1567176 :          idata = idata + 1
   42274     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42275     1567176 :          full_data(idata) = data_tmp
   42276     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42277     1567176 :          idata = idata + 1
   42278     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42279     1567176 :          ipack = ipack + 1
   42280     1567176 :          pack_tmp = packed_data(ipack)
   42281     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42282     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42283     1567176 :          idata = idata + 1
   42284     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42285     1567176 :          ipack = ipack + 1
   42286     1567176 :          pack_tmp = packed_data(ipack)
   42287     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42288     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42289     1567176 :          idata = idata + 1
   42290     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42291     1567176 :          ipack = ipack + 1
   42292     1567176 :          pack_tmp = packed_data(ipack)
   42293     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42294     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42295     1567176 :          idata = idata + 1
   42296     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42297     1567176 :          ipack = ipack + 1
   42298     1567176 :          pack_tmp = packed_data(ipack)
   42299     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42300     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42301     1567176 :          idata = idata + 1
   42302     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42303     1567176 :          full_data(idata) = data_tmp
   42304     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42305     1567176 :          idata = idata + 1
   42306     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42307     1567176 :          ipack = ipack + 1
   42308     1567176 :          pack_tmp = packed_data(ipack)
   42309     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42310     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42311     1567176 :          idata = idata + 1
   42312     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42313     1567176 :          ipack = ipack + 1
   42314     1567176 :          pack_tmp = packed_data(ipack)
   42315     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42316     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42317     1567176 :          idata = idata + 1
   42318     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42319     1567176 :          ipack = ipack + 1
   42320     1567176 :          pack_tmp = packed_data(ipack)
   42321     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42322     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42323     1567176 :          idata = idata + 1
   42324     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42325     1567176 :          ipack = ipack + 1
   42326     1567176 :          pack_tmp = packed_data(ipack)
   42327     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42328     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42329     1567176 :          idata = idata + 1
   42330     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42331     1567176 :          ipack = ipack + 1
   42332     1567176 :          pack_tmp = packed_data(ipack)
   42333     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42334     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42335     1567176 :          idata = idata + 1
   42336     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42337     1567176 :          full_data(idata) = data_tmp
   42338     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42339     1567176 :          idata = idata + 1
   42340     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42341     1567176 :          ipack = ipack + 1
   42342     1567176 :          pack_tmp = packed_data(ipack)
   42343     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42344     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42345     1567176 :          idata = idata + 1
   42346     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42347     1567176 :          ipack = ipack + 1
   42348     1567176 :          pack_tmp = packed_data(ipack)
   42349     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42350     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42351     1567176 :          idata = idata + 1
   42352     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42353     1567176 :          ipack = ipack + 1
   42354     1567176 :          pack_tmp = packed_data(ipack)
   42355     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42356     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42357     1567176 :          idata = idata + 1
   42358     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42359     1567176 :          ipack = ipack + 1
   42360     1567176 :          pack_tmp = packed_data(ipack)
   42361     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42362     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42363     1567176 :          idata = idata + 1
   42364     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42365     1567176 :          full_data(idata) = data_tmp
   42366     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42367     1567176 :          idata = idata + 1
   42368     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42369     1567176 :          ipack = ipack + 1
   42370     1567176 :          pack_tmp = packed_data(ipack)
   42371     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42372     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42373     1567176 :          idata = idata + 1
   42374     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42375     1567176 :          ipack = ipack + 1
   42376     1567176 :          pack_tmp = packed_data(ipack)
   42377     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42378     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42379     1567176 :          idata = idata + 1
   42380     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42381     1567176 :          ipack = ipack + 1
   42382     1567176 :          pack_tmp = packed_data(ipack)
   42383     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42384     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42385     1567176 :          idata = idata + 1
   42386     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42387     1567176 :          ipack = ipack + 1
   42388     1567176 :          pack_tmp = packed_data(ipack)
   42389     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42390     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42391     1567176 :          idata = idata + 1
   42392     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42393     1567176 :          full_data(idata) = data_tmp
   42394     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42395     1567176 :          idata = idata + 1
   42396     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42397     1567176 :          ipack = ipack + 1
   42398     1567176 :          pack_tmp = packed_data(ipack)
   42399     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42400     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42401     1567176 :          idata = idata + 1
   42402     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42403     1567176 :          ipack = ipack + 1
   42404     1567176 :          pack_tmp = packed_data(ipack)
   42405     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42406     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42407     1567176 :          idata = idata + 1
   42408     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42409     1567176 :          ipack = ipack + 1
   42410     1567176 :          pack_tmp = packed_data(ipack)
   42411     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42412     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42413     1567176 :          idata = idata + 1
   42414     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42415     1567176 :          ipack = ipack + 1
   42416     1567176 :          pack_tmp = packed_data(ipack)
   42417     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42418     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42419     1567176 :          idata = idata + 1
   42420     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42421     1567176 :          ipack = ipack + 1
   42422     1567176 :          pack_tmp = packed_data(ipack)
   42423     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42424     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42425     1567176 :          idata = idata + 1
   42426     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42427     1567176 :          full_data(idata) = data_tmp
   42428     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42429     1567176 :          idata = idata + 1
   42430     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42431     1567176 :          ipack = ipack + 1
   42432     1567176 :          pack_tmp = packed_data(ipack)
   42433     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42434     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42435     1567176 :          idata = idata + 1
   42436     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42437     1567176 :          ipack = ipack + 1
   42438     1567176 :          pack_tmp = packed_data(ipack)
   42439     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42440     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42441     1567176 :          idata = idata + 1
   42442     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42443     1567176 :          ipack = ipack + 1
   42444     1567176 :          pack_tmp = packed_data(ipack)
   42445     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42446     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42447     1567176 :          idata = idata + 1
   42448     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42449     1567176 :          ipack = ipack + 1
   42450     1567176 :          pack_tmp = packed_data(ipack)
   42451     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42452     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42453     1567176 :          idata = idata + 1
   42454     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42455     1567176 :          full_data(idata) = data_tmp
   42456     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42457     1567176 :          idata = idata + 1
   42458     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42459     1567176 :          ipack = ipack + 1
   42460     1567176 :          pack_tmp = packed_data(ipack)
   42461     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42462     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42463     1567176 :          idata = idata + 1
   42464     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42465     1567176 :          ipack = ipack + 1
   42466     1567176 :          pack_tmp = packed_data(ipack)
   42467     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42468     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42469     1567176 :          idata = idata + 1
   42470     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42471     1567176 :          ipack = ipack + 1
   42472     1567176 :          pack_tmp = packed_data(ipack)
   42473     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42474     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42475     1567176 :          idata = idata + 1
   42476     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42477     1567176 :          ipack = ipack + 1
   42478     1567176 :          pack_tmp = packed_data(ipack)
   42479     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42480     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42481     1567176 :          idata = idata + 1
   42482     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42483     1567176 :          full_data(idata) = data_tmp
   42484     1567196 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42485             :       END DO
   42486      100439 :       IF (Ndata_rep < Ndata) THEN
   42487        4688 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   42488             :       END IF
   42489      100439 :    END SUBROUTINE bits2ints_52
   42490             : 
   42491             : ! **************************************************************************************************
   42492             : !> \brief ...
   42493             : !> \param Ndata ...
   42494             : !> \param packed_data ...
   42495             : !> \param full_data ...
   42496             : ! **************************************************************************************************
   42497       24176 :    SUBROUTINE ints2bits_53(Ndata, packed_data, full_data)
   42498             :       INTEGER, INTENT(IN)                                :: Ndata
   42499             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   42500             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   42501             : 
   42502             :       INTEGER, PARAMETER                                 :: Nbits = 53
   42503             : 
   42504             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   42505             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   42506             : 
   42507       24176 :       idata = 0
   42508       24176 :       ipack = 0
   42509       24176 :       Ndata_rep = (Ndata/64)*64
   42510       24176 :       DO kdata = 1, Ndata_rep, 64
   42511      382872 :          pack_tmp = 0
   42512      382872 :          idata = idata + 1
   42513      382872 :          data_tmp = full_data(idata)
   42514      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42515      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42516      382872 :          pack_tmp = ISHFT(pack_tmp, -11)
   42517      382872 :          idata = idata + 1
   42518      382872 :          data_tmp = full_data(idata)
   42519      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42520      382872 :          data_tmp = IAND(data_tmp, mask_left(11))
   42521      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42522      382872 :          ipack = ipack + 1
   42523      382872 :          packed_data(ipack) = pack_tmp
   42524      382872 :          data_tmp = full_data(idata)
   42525      382872 :          pack_tmp = ISHFT(data_tmp, 22)
   42526      382872 :          pack_tmp = ISHFT(pack_tmp, -22)
   42527      382872 :          idata = idata + 1
   42528      382872 :          data_tmp = full_data(idata)
   42529      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42530      382872 :          data_tmp = IAND(data_tmp, mask_left(22))
   42531      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42532      382872 :          ipack = ipack + 1
   42533      382872 :          packed_data(ipack) = pack_tmp
   42534      382872 :          data_tmp = full_data(idata)
   42535      382872 :          pack_tmp = ISHFT(data_tmp, 33)
   42536      382872 :          pack_tmp = ISHFT(pack_tmp, -33)
   42537      382872 :          idata = idata + 1
   42538      382872 :          data_tmp = full_data(idata)
   42539      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42540      382872 :          data_tmp = IAND(data_tmp, mask_left(33))
   42541      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42542      382872 :          ipack = ipack + 1
   42543      382872 :          packed_data(ipack) = pack_tmp
   42544      382872 :          data_tmp = full_data(idata)
   42545      382872 :          pack_tmp = ISHFT(data_tmp, 44)
   42546      382872 :          pack_tmp = ISHFT(pack_tmp, -44)
   42547      382872 :          idata = idata + 1
   42548      382872 :          data_tmp = full_data(idata)
   42549      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42550      382872 :          data_tmp = IAND(data_tmp, mask_left(44))
   42551      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42552      382872 :          ipack = ipack + 1
   42553      382872 :          packed_data(ipack) = pack_tmp
   42554      382872 :          data_tmp = full_data(idata)
   42555      382872 :          pack_tmp = ISHFT(data_tmp, 55)
   42556      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42557      382872 :          idata = idata + 1
   42558      382872 :          data_tmp = full_data(idata)
   42559      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42560      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42561      382872 :          pack_tmp = ISHFT(pack_tmp, -2)
   42562      382872 :          idata = idata + 1
   42563      382872 :          data_tmp = full_data(idata)
   42564      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42565      382872 :          data_tmp = IAND(data_tmp, mask_left(2))
   42566      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42567      382872 :          ipack = ipack + 1
   42568      382872 :          packed_data(ipack) = pack_tmp
   42569      382872 :          data_tmp = full_data(idata)
   42570      382872 :          pack_tmp = ISHFT(data_tmp, 13)
   42571      382872 :          pack_tmp = ISHFT(pack_tmp, -13)
   42572      382872 :          idata = idata + 1
   42573      382872 :          data_tmp = full_data(idata)
   42574      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42575      382872 :          data_tmp = IAND(data_tmp, mask_left(13))
   42576      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42577      382872 :          ipack = ipack + 1
   42578      382872 :          packed_data(ipack) = pack_tmp
   42579      382872 :          data_tmp = full_data(idata)
   42580      382872 :          pack_tmp = ISHFT(data_tmp, 24)
   42581      382872 :          pack_tmp = ISHFT(pack_tmp, -24)
   42582      382872 :          idata = idata + 1
   42583      382872 :          data_tmp = full_data(idata)
   42584      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42585      382872 :          data_tmp = IAND(data_tmp, mask_left(24))
   42586      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42587      382872 :          ipack = ipack + 1
   42588      382872 :          packed_data(ipack) = pack_tmp
   42589      382872 :          data_tmp = full_data(idata)
   42590      382872 :          pack_tmp = ISHFT(data_tmp, 35)
   42591      382872 :          pack_tmp = ISHFT(pack_tmp, -35)
   42592      382872 :          idata = idata + 1
   42593      382872 :          data_tmp = full_data(idata)
   42594      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42595      382872 :          data_tmp = IAND(data_tmp, mask_left(35))
   42596      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42597      382872 :          ipack = ipack + 1
   42598      382872 :          packed_data(ipack) = pack_tmp
   42599      382872 :          data_tmp = full_data(idata)
   42600      382872 :          pack_tmp = ISHFT(data_tmp, 46)
   42601      382872 :          pack_tmp = ISHFT(pack_tmp, -46)
   42602      382872 :          idata = idata + 1
   42603      382872 :          data_tmp = full_data(idata)
   42604      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42605      382872 :          data_tmp = IAND(data_tmp, mask_left(46))
   42606      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42607      382872 :          ipack = ipack + 1
   42608      382872 :          packed_data(ipack) = pack_tmp
   42609      382872 :          data_tmp = full_data(idata)
   42610      382872 :          pack_tmp = ISHFT(data_tmp, 57)
   42611      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42612      382872 :          idata = idata + 1
   42613      382872 :          data_tmp = full_data(idata)
   42614      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42615      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42616      382872 :          pack_tmp = ISHFT(pack_tmp, -4)
   42617      382872 :          idata = idata + 1
   42618      382872 :          data_tmp = full_data(idata)
   42619      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42620      382872 :          data_tmp = IAND(data_tmp, mask_left(4))
   42621      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42622      382872 :          ipack = ipack + 1
   42623      382872 :          packed_data(ipack) = pack_tmp
   42624      382872 :          data_tmp = full_data(idata)
   42625      382872 :          pack_tmp = ISHFT(data_tmp, 15)
   42626      382872 :          pack_tmp = ISHFT(pack_tmp, -15)
   42627      382872 :          idata = idata + 1
   42628      382872 :          data_tmp = full_data(idata)
   42629      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42630      382872 :          data_tmp = IAND(data_tmp, mask_left(15))
   42631      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42632      382872 :          ipack = ipack + 1
   42633      382872 :          packed_data(ipack) = pack_tmp
   42634      382872 :          data_tmp = full_data(idata)
   42635      382872 :          pack_tmp = ISHFT(data_tmp, 26)
   42636      382872 :          pack_tmp = ISHFT(pack_tmp, -26)
   42637      382872 :          idata = idata + 1
   42638      382872 :          data_tmp = full_data(idata)
   42639      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42640      382872 :          data_tmp = IAND(data_tmp, mask_left(26))
   42641      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42642      382872 :          ipack = ipack + 1
   42643      382872 :          packed_data(ipack) = pack_tmp
   42644      382872 :          data_tmp = full_data(idata)
   42645      382872 :          pack_tmp = ISHFT(data_tmp, 37)
   42646      382872 :          pack_tmp = ISHFT(pack_tmp, -37)
   42647      382872 :          idata = idata + 1
   42648      382872 :          data_tmp = full_data(idata)
   42649      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42650      382872 :          data_tmp = IAND(data_tmp, mask_left(37))
   42651      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42652      382872 :          ipack = ipack + 1
   42653      382872 :          packed_data(ipack) = pack_tmp
   42654      382872 :          data_tmp = full_data(idata)
   42655      382872 :          pack_tmp = ISHFT(data_tmp, 48)
   42656      382872 :          pack_tmp = ISHFT(pack_tmp, -48)
   42657      382872 :          idata = idata + 1
   42658      382872 :          data_tmp = full_data(idata)
   42659      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42660      382872 :          data_tmp = IAND(data_tmp, mask_left(48))
   42661      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42662      382872 :          ipack = ipack + 1
   42663      382872 :          packed_data(ipack) = pack_tmp
   42664      382872 :          data_tmp = full_data(idata)
   42665      382872 :          pack_tmp = ISHFT(data_tmp, 59)
   42666      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42667      382872 :          idata = idata + 1
   42668      382872 :          data_tmp = full_data(idata)
   42669      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42670      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42671      382872 :          pack_tmp = ISHFT(pack_tmp, -6)
   42672      382872 :          idata = idata + 1
   42673      382872 :          data_tmp = full_data(idata)
   42674      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42675      382872 :          data_tmp = IAND(data_tmp, mask_left(6))
   42676      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42677      382872 :          ipack = ipack + 1
   42678      382872 :          packed_data(ipack) = pack_tmp
   42679      382872 :          data_tmp = full_data(idata)
   42680      382872 :          pack_tmp = ISHFT(data_tmp, 17)
   42681      382872 :          pack_tmp = ISHFT(pack_tmp, -17)
   42682      382872 :          idata = idata + 1
   42683      382872 :          data_tmp = full_data(idata)
   42684      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42685      382872 :          data_tmp = IAND(data_tmp, mask_left(17))
   42686      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42687      382872 :          ipack = ipack + 1
   42688      382872 :          packed_data(ipack) = pack_tmp
   42689      382872 :          data_tmp = full_data(idata)
   42690      382872 :          pack_tmp = ISHFT(data_tmp, 28)
   42691      382872 :          pack_tmp = ISHFT(pack_tmp, -28)
   42692      382872 :          idata = idata + 1
   42693      382872 :          data_tmp = full_data(idata)
   42694      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42695      382872 :          data_tmp = IAND(data_tmp, mask_left(28))
   42696      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42697      382872 :          ipack = ipack + 1
   42698      382872 :          packed_data(ipack) = pack_tmp
   42699      382872 :          data_tmp = full_data(idata)
   42700      382872 :          pack_tmp = ISHFT(data_tmp, 39)
   42701      382872 :          pack_tmp = ISHFT(pack_tmp, -39)
   42702      382872 :          idata = idata + 1
   42703      382872 :          data_tmp = full_data(idata)
   42704      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42705      382872 :          data_tmp = IAND(data_tmp, mask_left(39))
   42706      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42707      382872 :          ipack = ipack + 1
   42708      382872 :          packed_data(ipack) = pack_tmp
   42709      382872 :          data_tmp = full_data(idata)
   42710      382872 :          pack_tmp = ISHFT(data_tmp, 50)
   42711      382872 :          pack_tmp = ISHFT(pack_tmp, -50)
   42712      382872 :          idata = idata + 1
   42713      382872 :          data_tmp = full_data(idata)
   42714      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42715      382872 :          data_tmp = IAND(data_tmp, mask_left(50))
   42716      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42717      382872 :          ipack = ipack + 1
   42718      382872 :          packed_data(ipack) = pack_tmp
   42719      382872 :          data_tmp = full_data(idata)
   42720      382872 :          pack_tmp = ISHFT(data_tmp, 61)
   42721      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42722      382872 :          idata = idata + 1
   42723      382872 :          data_tmp = full_data(idata)
   42724      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42725      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42726      382872 :          pack_tmp = ISHFT(pack_tmp, -8)
   42727      382872 :          idata = idata + 1
   42728      382872 :          data_tmp = full_data(idata)
   42729      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42730      382872 :          data_tmp = IAND(data_tmp, mask_left(8))
   42731      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42732      382872 :          ipack = ipack + 1
   42733      382872 :          packed_data(ipack) = pack_tmp
   42734      382872 :          data_tmp = full_data(idata)
   42735      382872 :          pack_tmp = ISHFT(data_tmp, 19)
   42736      382872 :          pack_tmp = ISHFT(pack_tmp, -19)
   42737      382872 :          idata = idata + 1
   42738      382872 :          data_tmp = full_data(idata)
   42739      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42740      382872 :          data_tmp = IAND(data_tmp, mask_left(19))
   42741      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42742      382872 :          ipack = ipack + 1
   42743      382872 :          packed_data(ipack) = pack_tmp
   42744      382872 :          data_tmp = full_data(idata)
   42745      382872 :          pack_tmp = ISHFT(data_tmp, 30)
   42746      382872 :          pack_tmp = ISHFT(pack_tmp, -30)
   42747      382872 :          idata = idata + 1
   42748      382872 :          data_tmp = full_data(idata)
   42749      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42750      382872 :          data_tmp = IAND(data_tmp, mask_left(30))
   42751      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42752      382872 :          ipack = ipack + 1
   42753      382872 :          packed_data(ipack) = pack_tmp
   42754      382872 :          data_tmp = full_data(idata)
   42755      382872 :          pack_tmp = ISHFT(data_tmp, 41)
   42756      382872 :          pack_tmp = ISHFT(pack_tmp, -41)
   42757      382872 :          idata = idata + 1
   42758      382872 :          data_tmp = full_data(idata)
   42759      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42760      382872 :          data_tmp = IAND(data_tmp, mask_left(41))
   42761      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42762      382872 :          ipack = ipack + 1
   42763      382872 :          packed_data(ipack) = pack_tmp
   42764      382872 :          data_tmp = full_data(idata)
   42765      382872 :          pack_tmp = ISHFT(data_tmp, 52)
   42766      382872 :          pack_tmp = ISHFT(pack_tmp, -52)
   42767      382872 :          idata = idata + 1
   42768      382872 :          data_tmp = full_data(idata)
   42769      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42770      382872 :          data_tmp = IAND(data_tmp, mask_left(52))
   42771      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42772      382872 :          ipack = ipack + 1
   42773      382872 :          packed_data(ipack) = pack_tmp
   42774      382872 :          data_tmp = full_data(idata)
   42775      382872 :          pack_tmp = ISHFT(data_tmp, 63)
   42776      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42777      382872 :          idata = idata + 1
   42778      382872 :          data_tmp = full_data(idata)
   42779      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42780      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42781      382872 :          pack_tmp = ISHFT(pack_tmp, -10)
   42782      382872 :          idata = idata + 1
   42783      382872 :          data_tmp = full_data(idata)
   42784      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42785      382872 :          data_tmp = IAND(data_tmp, mask_left(10))
   42786      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42787      382872 :          ipack = ipack + 1
   42788      382872 :          packed_data(ipack) = pack_tmp
   42789      382872 :          data_tmp = full_data(idata)
   42790      382872 :          pack_tmp = ISHFT(data_tmp, 21)
   42791      382872 :          pack_tmp = ISHFT(pack_tmp, -21)
   42792      382872 :          idata = idata + 1
   42793      382872 :          data_tmp = full_data(idata)
   42794      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42795      382872 :          data_tmp = IAND(data_tmp, mask_left(21))
   42796      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42797      382872 :          ipack = ipack + 1
   42798      382872 :          packed_data(ipack) = pack_tmp
   42799      382872 :          data_tmp = full_data(idata)
   42800      382872 :          pack_tmp = ISHFT(data_tmp, 32)
   42801      382872 :          pack_tmp = ISHFT(pack_tmp, -32)
   42802      382872 :          idata = idata + 1
   42803      382872 :          data_tmp = full_data(idata)
   42804      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42805      382872 :          data_tmp = IAND(data_tmp, mask_left(32))
   42806      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42807      382872 :          ipack = ipack + 1
   42808      382872 :          packed_data(ipack) = pack_tmp
   42809      382872 :          data_tmp = full_data(idata)
   42810      382872 :          pack_tmp = ISHFT(data_tmp, 43)
   42811      382872 :          pack_tmp = ISHFT(pack_tmp, -43)
   42812      382872 :          idata = idata + 1
   42813      382872 :          data_tmp = full_data(idata)
   42814      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42815      382872 :          data_tmp = IAND(data_tmp, mask_left(43))
   42816      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42817      382872 :          ipack = ipack + 1
   42818      382872 :          packed_data(ipack) = pack_tmp
   42819      382872 :          data_tmp = full_data(idata)
   42820      382872 :          pack_tmp = ISHFT(data_tmp, 54)
   42821      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42822      382872 :          idata = idata + 1
   42823      382872 :          data_tmp = full_data(idata)
   42824      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42825      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42826      382872 :          pack_tmp = ISHFT(pack_tmp, -1)
   42827      382872 :          idata = idata + 1
   42828      382872 :          data_tmp = full_data(idata)
   42829      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42830      382872 :          data_tmp = IAND(data_tmp, mask_left(1))
   42831      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42832      382872 :          ipack = ipack + 1
   42833      382872 :          packed_data(ipack) = pack_tmp
   42834      382872 :          data_tmp = full_data(idata)
   42835      382872 :          pack_tmp = ISHFT(data_tmp, 12)
   42836      382872 :          pack_tmp = ISHFT(pack_tmp, -12)
   42837      382872 :          idata = idata + 1
   42838      382872 :          data_tmp = full_data(idata)
   42839      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42840      382872 :          data_tmp = IAND(data_tmp, mask_left(12))
   42841      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42842      382872 :          ipack = ipack + 1
   42843      382872 :          packed_data(ipack) = pack_tmp
   42844      382872 :          data_tmp = full_data(idata)
   42845      382872 :          pack_tmp = ISHFT(data_tmp, 23)
   42846      382872 :          pack_tmp = ISHFT(pack_tmp, -23)
   42847      382872 :          idata = idata + 1
   42848      382872 :          data_tmp = full_data(idata)
   42849      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42850      382872 :          data_tmp = IAND(data_tmp, mask_left(23))
   42851      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42852      382872 :          ipack = ipack + 1
   42853      382872 :          packed_data(ipack) = pack_tmp
   42854      382872 :          data_tmp = full_data(idata)
   42855      382872 :          pack_tmp = ISHFT(data_tmp, 34)
   42856      382872 :          pack_tmp = ISHFT(pack_tmp, -34)
   42857      382872 :          idata = idata + 1
   42858      382872 :          data_tmp = full_data(idata)
   42859      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42860      382872 :          data_tmp = IAND(data_tmp, mask_left(34))
   42861      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42862      382872 :          ipack = ipack + 1
   42863      382872 :          packed_data(ipack) = pack_tmp
   42864      382872 :          data_tmp = full_data(idata)
   42865      382872 :          pack_tmp = ISHFT(data_tmp, 45)
   42866      382872 :          pack_tmp = ISHFT(pack_tmp, -45)
   42867      382872 :          idata = idata + 1
   42868      382872 :          data_tmp = full_data(idata)
   42869      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42870      382872 :          data_tmp = IAND(data_tmp, mask_left(45))
   42871      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42872      382872 :          ipack = ipack + 1
   42873      382872 :          packed_data(ipack) = pack_tmp
   42874      382872 :          data_tmp = full_data(idata)
   42875      382872 :          pack_tmp = ISHFT(data_tmp, 56)
   42876      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42877      382872 :          idata = idata + 1
   42878      382872 :          data_tmp = full_data(idata)
   42879      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42880      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42881      382872 :          pack_tmp = ISHFT(pack_tmp, -3)
   42882      382872 :          idata = idata + 1
   42883      382872 :          data_tmp = full_data(idata)
   42884      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42885      382872 :          data_tmp = IAND(data_tmp, mask_left(3))
   42886      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42887      382872 :          ipack = ipack + 1
   42888      382872 :          packed_data(ipack) = pack_tmp
   42889      382872 :          data_tmp = full_data(idata)
   42890      382872 :          pack_tmp = ISHFT(data_tmp, 14)
   42891      382872 :          pack_tmp = ISHFT(pack_tmp, -14)
   42892      382872 :          idata = idata + 1
   42893      382872 :          data_tmp = full_data(idata)
   42894      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42895      382872 :          data_tmp = IAND(data_tmp, mask_left(14))
   42896      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42897      382872 :          ipack = ipack + 1
   42898      382872 :          packed_data(ipack) = pack_tmp
   42899      382872 :          data_tmp = full_data(idata)
   42900      382872 :          pack_tmp = ISHFT(data_tmp, 25)
   42901      382872 :          pack_tmp = ISHFT(pack_tmp, -25)
   42902      382872 :          idata = idata + 1
   42903      382872 :          data_tmp = full_data(idata)
   42904      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42905      382872 :          data_tmp = IAND(data_tmp, mask_left(25))
   42906      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42907      382872 :          ipack = ipack + 1
   42908      382872 :          packed_data(ipack) = pack_tmp
   42909      382872 :          data_tmp = full_data(idata)
   42910      382872 :          pack_tmp = ISHFT(data_tmp, 36)
   42911      382872 :          pack_tmp = ISHFT(pack_tmp, -36)
   42912      382872 :          idata = idata + 1
   42913      382872 :          data_tmp = full_data(idata)
   42914      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42915      382872 :          data_tmp = IAND(data_tmp, mask_left(36))
   42916      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42917      382872 :          ipack = ipack + 1
   42918      382872 :          packed_data(ipack) = pack_tmp
   42919      382872 :          data_tmp = full_data(idata)
   42920      382872 :          pack_tmp = ISHFT(data_tmp, 47)
   42921      382872 :          pack_tmp = ISHFT(pack_tmp, -47)
   42922      382872 :          idata = idata + 1
   42923      382872 :          data_tmp = full_data(idata)
   42924      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42925      382872 :          data_tmp = IAND(data_tmp, mask_left(47))
   42926      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42927      382872 :          ipack = ipack + 1
   42928      382872 :          packed_data(ipack) = pack_tmp
   42929      382872 :          data_tmp = full_data(idata)
   42930      382872 :          pack_tmp = ISHFT(data_tmp, 58)
   42931      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42932      382872 :          idata = idata + 1
   42933      382872 :          data_tmp = full_data(idata)
   42934      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42935      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42936      382872 :          pack_tmp = ISHFT(pack_tmp, -5)
   42937      382872 :          idata = idata + 1
   42938      382872 :          data_tmp = full_data(idata)
   42939      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42940      382872 :          data_tmp = IAND(data_tmp, mask_left(5))
   42941      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42942      382872 :          ipack = ipack + 1
   42943      382872 :          packed_data(ipack) = pack_tmp
   42944      382872 :          data_tmp = full_data(idata)
   42945      382872 :          pack_tmp = ISHFT(data_tmp, 16)
   42946      382872 :          pack_tmp = ISHFT(pack_tmp, -16)
   42947      382872 :          idata = idata + 1
   42948      382872 :          data_tmp = full_data(idata)
   42949      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42950      382872 :          data_tmp = IAND(data_tmp, mask_left(16))
   42951      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42952      382872 :          ipack = ipack + 1
   42953      382872 :          packed_data(ipack) = pack_tmp
   42954      382872 :          data_tmp = full_data(idata)
   42955      382872 :          pack_tmp = ISHFT(data_tmp, 27)
   42956      382872 :          pack_tmp = ISHFT(pack_tmp, -27)
   42957      382872 :          idata = idata + 1
   42958      382872 :          data_tmp = full_data(idata)
   42959      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42960      382872 :          data_tmp = IAND(data_tmp, mask_left(27))
   42961      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42962      382872 :          ipack = ipack + 1
   42963      382872 :          packed_data(ipack) = pack_tmp
   42964      382872 :          data_tmp = full_data(idata)
   42965      382872 :          pack_tmp = ISHFT(data_tmp, 38)
   42966      382872 :          pack_tmp = ISHFT(pack_tmp, -38)
   42967      382872 :          idata = idata + 1
   42968      382872 :          data_tmp = full_data(idata)
   42969      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42970      382872 :          data_tmp = IAND(data_tmp, mask_left(38))
   42971      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42972      382872 :          ipack = ipack + 1
   42973      382872 :          packed_data(ipack) = pack_tmp
   42974      382872 :          data_tmp = full_data(idata)
   42975      382872 :          pack_tmp = ISHFT(data_tmp, 49)
   42976      382872 :          pack_tmp = ISHFT(pack_tmp, -49)
   42977      382872 :          idata = idata + 1
   42978      382872 :          data_tmp = full_data(idata)
   42979      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42980      382872 :          data_tmp = IAND(data_tmp, mask_left(49))
   42981      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42982      382872 :          ipack = ipack + 1
   42983      382872 :          packed_data(ipack) = pack_tmp
   42984      382872 :          data_tmp = full_data(idata)
   42985      382872 :          pack_tmp = ISHFT(data_tmp, 60)
   42986      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42987      382872 :          idata = idata + 1
   42988      382872 :          data_tmp = full_data(idata)
   42989      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42990      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42991      382872 :          pack_tmp = ISHFT(pack_tmp, -7)
   42992      382872 :          idata = idata + 1
   42993      382872 :          data_tmp = full_data(idata)
   42994      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42995      382872 :          data_tmp = IAND(data_tmp, mask_left(7))
   42996      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42997      382872 :          ipack = ipack + 1
   42998      382872 :          packed_data(ipack) = pack_tmp
   42999      382872 :          data_tmp = full_data(idata)
   43000      382872 :          pack_tmp = ISHFT(data_tmp, 18)
   43001      382872 :          pack_tmp = ISHFT(pack_tmp, -18)
   43002      382872 :          idata = idata + 1
   43003      382872 :          data_tmp = full_data(idata)
   43004      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43005      382872 :          data_tmp = IAND(data_tmp, mask_left(18))
   43006      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43007      382872 :          ipack = ipack + 1
   43008      382872 :          packed_data(ipack) = pack_tmp
   43009      382872 :          data_tmp = full_data(idata)
   43010      382872 :          pack_tmp = ISHFT(data_tmp, 29)
   43011      382872 :          pack_tmp = ISHFT(pack_tmp, -29)
   43012      382872 :          idata = idata + 1
   43013      382872 :          data_tmp = full_data(idata)
   43014      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43015      382872 :          data_tmp = IAND(data_tmp, mask_left(29))
   43016      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43017      382872 :          ipack = ipack + 1
   43018      382872 :          packed_data(ipack) = pack_tmp
   43019      382872 :          data_tmp = full_data(idata)
   43020      382872 :          pack_tmp = ISHFT(data_tmp, 40)
   43021      382872 :          pack_tmp = ISHFT(pack_tmp, -40)
   43022      382872 :          idata = idata + 1
   43023      382872 :          data_tmp = full_data(idata)
   43024      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43025      382872 :          data_tmp = IAND(data_tmp, mask_left(40))
   43026      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43027      382872 :          ipack = ipack + 1
   43028      382872 :          packed_data(ipack) = pack_tmp
   43029      382872 :          data_tmp = full_data(idata)
   43030      382872 :          pack_tmp = ISHFT(data_tmp, 51)
   43031      382872 :          pack_tmp = ISHFT(pack_tmp, -51)
   43032      382872 :          idata = idata + 1
   43033      382872 :          data_tmp = full_data(idata)
   43034      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43035      382872 :          data_tmp = IAND(data_tmp, mask_left(51))
   43036      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43037      382872 :          ipack = ipack + 1
   43038      382872 :          packed_data(ipack) = pack_tmp
   43039      382872 :          data_tmp = full_data(idata)
   43040      382872 :          pack_tmp = ISHFT(data_tmp, 62)
   43041      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   43042      382872 :          idata = idata + 1
   43043      382872 :          data_tmp = full_data(idata)
   43044      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43045      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43046      382872 :          pack_tmp = ISHFT(pack_tmp, -9)
   43047      382872 :          idata = idata + 1
   43048      382872 :          data_tmp = full_data(idata)
   43049      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43050      382872 :          data_tmp = IAND(data_tmp, mask_left(9))
   43051      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43052      382872 :          ipack = ipack + 1
   43053      382872 :          packed_data(ipack) = pack_tmp
   43054      382872 :          data_tmp = full_data(idata)
   43055      382872 :          pack_tmp = ISHFT(data_tmp, 20)
   43056      382872 :          pack_tmp = ISHFT(pack_tmp, -20)
   43057      382872 :          idata = idata + 1
   43058      382872 :          data_tmp = full_data(idata)
   43059      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43060      382872 :          data_tmp = IAND(data_tmp, mask_left(20))
   43061      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43062      382872 :          ipack = ipack + 1
   43063      382872 :          packed_data(ipack) = pack_tmp
   43064      382872 :          data_tmp = full_data(idata)
   43065      382872 :          pack_tmp = ISHFT(data_tmp, 31)
   43066      382872 :          pack_tmp = ISHFT(pack_tmp, -31)
   43067      382872 :          idata = idata + 1
   43068      382872 :          data_tmp = full_data(idata)
   43069      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43070      382872 :          data_tmp = IAND(data_tmp, mask_left(31))
   43071      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43072      382872 :          ipack = ipack + 1
   43073      382872 :          packed_data(ipack) = pack_tmp
   43074      382872 :          data_tmp = full_data(idata)
   43075      382872 :          pack_tmp = ISHFT(data_tmp, 42)
   43076      382872 :          pack_tmp = ISHFT(pack_tmp, -42)
   43077      382872 :          idata = idata + 1
   43078      382872 :          data_tmp = full_data(idata)
   43079      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43080      382872 :          data_tmp = IAND(data_tmp, mask_left(42))
   43081      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43082      382872 :          ipack = ipack + 1
   43083      382872 :          packed_data(ipack) = pack_tmp
   43084      382872 :          data_tmp = full_data(idata)
   43085      382872 :          pack_tmp = ISHFT(data_tmp, 53)
   43086      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   43087      382872 :          idata = idata + 1
   43088      382872 :          data_tmp = full_data(idata)
   43089      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43090      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43091             :          pack_tmp = ISHFT(pack_tmp, 0)
   43092      382872 :          pack_tmp = ISHFT(pack_tmp, 0)
   43093      382872 :          ipack = ipack + 1
   43094      382892 :          packed_data(ipack) = pack_tmp
   43095             :       END DO
   43096       24176 :       IF (Ndata_rep < Ndata) THEN
   43097         464 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   43098             :       END IF
   43099       24176 :    END SUBROUTINE ints2bits_53
   43100             : 
   43101             : ! **************************************************************************************************
   43102             : !> \brief ...
   43103             : !> \param Ndata ...
   43104             : !> \param packed_data ...
   43105             : !> \param full_data ...
   43106             : ! **************************************************************************************************
   43107      108085 :    SUBROUTINE bits2ints_53(Ndata, packed_data, full_data)
   43108             :       INTEGER, INTENT(IN)                                :: Ndata
   43109             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   43110             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   43111             : 
   43112             :       INTEGER, PARAMETER                                 :: Nbits = 53
   43113             : 
   43114             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   43115             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   43116             : 
   43117      108085 :       ipack = 0
   43118      108085 :       idata = 0
   43119      108085 :       pack_tmp = 0
   43120      108085 :       Ndata_rep = (Ndata/64)*64
   43121      108085 :       DO kdata = 1, Ndata_rep, 64
   43122     1631372 :          idata = idata + 1
   43123     1631372 :          data_tmp = ISHFT(pack_tmp, 53)
   43124     1631372 :          ipack = ipack + 1
   43125     1631372 :          pack_tmp = packed_data(ipack)
   43126     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   43127     1631372 :          pack_tmp = ISHFT(pack_tmp, -53)
   43128     1631372 :          idata = idata + 1
   43129     1631372 :          data_tmp = ISHFT(pack_tmp, 42)
   43130     1631372 :          ipack = ipack + 1
   43131     1631372 :          pack_tmp = packed_data(ipack)
   43132     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   43133     1631372 :          pack_tmp = ISHFT(pack_tmp, -42)
   43134     1631372 :          idata = idata + 1
   43135     1631372 :          data_tmp = ISHFT(pack_tmp, 31)
   43136     1631372 :          ipack = ipack + 1
   43137     1631372 :          pack_tmp = packed_data(ipack)
   43138     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   43139     1631372 :          pack_tmp = ISHFT(pack_tmp, -31)
   43140     1631372 :          idata = idata + 1
   43141     1631372 :          data_tmp = ISHFT(pack_tmp, 20)
   43142     1631372 :          ipack = ipack + 1
   43143     1631372 :          pack_tmp = packed_data(ipack)
   43144     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   43145     1631372 :          pack_tmp = ISHFT(pack_tmp, -20)
   43146     1631372 :          idata = idata + 1
   43147     1631372 :          data_tmp = ISHFT(pack_tmp, 9)
   43148     1631372 :          ipack = ipack + 1
   43149     1631372 :          pack_tmp = packed_data(ipack)
   43150     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   43151     1631372 :          pack_tmp = ISHFT(pack_tmp, -9)
   43152     1631372 :          idata = idata + 1
   43153     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43154     1631372 :          full_data(idata) = data_tmp
   43155     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43156     1631372 :          idata = idata + 1
   43157     1631372 :          data_tmp = ISHFT(pack_tmp, 51)
   43158     1631372 :          ipack = ipack + 1
   43159     1631372 :          pack_tmp = packed_data(ipack)
   43160     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   43161     1631372 :          pack_tmp = ISHFT(pack_tmp, -51)
   43162     1631372 :          idata = idata + 1
   43163     1631372 :          data_tmp = ISHFT(pack_tmp, 40)
   43164     1631372 :          ipack = ipack + 1
   43165     1631372 :          pack_tmp = packed_data(ipack)
   43166     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   43167     1631372 :          pack_tmp = ISHFT(pack_tmp, -40)
   43168     1631372 :          idata = idata + 1
   43169     1631372 :          data_tmp = ISHFT(pack_tmp, 29)
   43170     1631372 :          ipack = ipack + 1
   43171     1631372 :          pack_tmp = packed_data(ipack)
   43172     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   43173     1631372 :          pack_tmp = ISHFT(pack_tmp, -29)
   43174     1631372 :          idata = idata + 1
   43175     1631372 :          data_tmp = ISHFT(pack_tmp, 18)
   43176     1631372 :          ipack = ipack + 1
   43177     1631372 :          pack_tmp = packed_data(ipack)
   43178     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   43179     1631372 :          pack_tmp = ISHFT(pack_tmp, -18)
   43180     1631372 :          idata = idata + 1
   43181     1631372 :          data_tmp = ISHFT(pack_tmp, 7)
   43182     1631372 :          ipack = ipack + 1
   43183     1631372 :          pack_tmp = packed_data(ipack)
   43184     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   43185     1631372 :          pack_tmp = ISHFT(pack_tmp, -7)
   43186     1631372 :          idata = idata + 1
   43187     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43188     1631372 :          full_data(idata) = data_tmp
   43189     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43190     1631372 :          idata = idata + 1
   43191     1631372 :          data_tmp = ISHFT(pack_tmp, 49)
   43192     1631372 :          ipack = ipack + 1
   43193     1631372 :          pack_tmp = packed_data(ipack)
   43194     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   43195     1631372 :          pack_tmp = ISHFT(pack_tmp, -49)
   43196     1631372 :          idata = idata + 1
   43197     1631372 :          data_tmp = ISHFT(pack_tmp, 38)
   43198     1631372 :          ipack = ipack + 1
   43199     1631372 :          pack_tmp = packed_data(ipack)
   43200     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   43201     1631372 :          pack_tmp = ISHFT(pack_tmp, -38)
   43202     1631372 :          idata = idata + 1
   43203     1631372 :          data_tmp = ISHFT(pack_tmp, 27)
   43204     1631372 :          ipack = ipack + 1
   43205     1631372 :          pack_tmp = packed_data(ipack)
   43206     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   43207     1631372 :          pack_tmp = ISHFT(pack_tmp, -27)
   43208     1631372 :          idata = idata + 1
   43209     1631372 :          data_tmp = ISHFT(pack_tmp, 16)
   43210     1631372 :          ipack = ipack + 1
   43211     1631372 :          pack_tmp = packed_data(ipack)
   43212     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   43213     1631372 :          pack_tmp = ISHFT(pack_tmp, -16)
   43214     1631372 :          idata = idata + 1
   43215     1631372 :          data_tmp = ISHFT(pack_tmp, 5)
   43216     1631372 :          ipack = ipack + 1
   43217     1631372 :          pack_tmp = packed_data(ipack)
   43218     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   43219     1631372 :          pack_tmp = ISHFT(pack_tmp, -5)
   43220     1631372 :          idata = idata + 1
   43221     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43222     1631372 :          full_data(idata) = data_tmp
   43223     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43224     1631372 :          idata = idata + 1
   43225     1631372 :          data_tmp = ISHFT(pack_tmp, 47)
   43226     1631372 :          ipack = ipack + 1
   43227     1631372 :          pack_tmp = packed_data(ipack)
   43228     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   43229     1631372 :          pack_tmp = ISHFT(pack_tmp, -47)
   43230     1631372 :          idata = idata + 1
   43231     1631372 :          data_tmp = ISHFT(pack_tmp, 36)
   43232     1631372 :          ipack = ipack + 1
   43233     1631372 :          pack_tmp = packed_data(ipack)
   43234     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   43235     1631372 :          pack_tmp = ISHFT(pack_tmp, -36)
   43236     1631372 :          idata = idata + 1
   43237     1631372 :          data_tmp = ISHFT(pack_tmp, 25)
   43238     1631372 :          ipack = ipack + 1
   43239     1631372 :          pack_tmp = packed_data(ipack)
   43240     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   43241     1631372 :          pack_tmp = ISHFT(pack_tmp, -25)
   43242     1631372 :          idata = idata + 1
   43243     1631372 :          data_tmp = ISHFT(pack_tmp, 14)
   43244     1631372 :          ipack = ipack + 1
   43245     1631372 :          pack_tmp = packed_data(ipack)
   43246     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   43247     1631372 :          pack_tmp = ISHFT(pack_tmp, -14)
   43248     1631372 :          idata = idata + 1
   43249     1631372 :          data_tmp = ISHFT(pack_tmp, 3)
   43250     1631372 :          ipack = ipack + 1
   43251     1631372 :          pack_tmp = packed_data(ipack)
   43252     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   43253     1631372 :          pack_tmp = ISHFT(pack_tmp, -3)
   43254     1631372 :          idata = idata + 1
   43255     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43256     1631372 :          full_data(idata) = data_tmp
   43257     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43258     1631372 :          idata = idata + 1
   43259     1631372 :          data_tmp = ISHFT(pack_tmp, 45)
   43260     1631372 :          ipack = ipack + 1
   43261     1631372 :          pack_tmp = packed_data(ipack)
   43262     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   43263     1631372 :          pack_tmp = ISHFT(pack_tmp, -45)
   43264     1631372 :          idata = idata + 1
   43265     1631372 :          data_tmp = ISHFT(pack_tmp, 34)
   43266     1631372 :          ipack = ipack + 1
   43267     1631372 :          pack_tmp = packed_data(ipack)
   43268     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   43269     1631372 :          pack_tmp = ISHFT(pack_tmp, -34)
   43270     1631372 :          idata = idata + 1
   43271     1631372 :          data_tmp = ISHFT(pack_tmp, 23)
   43272     1631372 :          ipack = ipack + 1
   43273     1631372 :          pack_tmp = packed_data(ipack)
   43274     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   43275     1631372 :          pack_tmp = ISHFT(pack_tmp, -23)
   43276     1631372 :          idata = idata + 1
   43277     1631372 :          data_tmp = ISHFT(pack_tmp, 12)
   43278     1631372 :          ipack = ipack + 1
   43279     1631372 :          pack_tmp = packed_data(ipack)
   43280     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   43281     1631372 :          pack_tmp = ISHFT(pack_tmp, -12)
   43282     1631372 :          idata = idata + 1
   43283     1631372 :          data_tmp = ISHFT(pack_tmp, 1)
   43284     1631372 :          ipack = ipack + 1
   43285     1631372 :          pack_tmp = packed_data(ipack)
   43286     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   43287     1631372 :          pack_tmp = ISHFT(pack_tmp, -1)
   43288     1631372 :          idata = idata + 1
   43289     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43290     1631372 :          full_data(idata) = data_tmp
   43291     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43292     1631372 :          idata = idata + 1
   43293     1631372 :          data_tmp = ISHFT(pack_tmp, 43)
   43294     1631372 :          ipack = ipack + 1
   43295     1631372 :          pack_tmp = packed_data(ipack)
   43296     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   43297     1631372 :          pack_tmp = ISHFT(pack_tmp, -43)
   43298     1631372 :          idata = idata + 1
   43299     1631372 :          data_tmp = ISHFT(pack_tmp, 32)
   43300     1631372 :          ipack = ipack + 1
   43301     1631372 :          pack_tmp = packed_data(ipack)
   43302     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   43303     1631372 :          pack_tmp = ISHFT(pack_tmp, -32)
   43304     1631372 :          idata = idata + 1
   43305     1631372 :          data_tmp = ISHFT(pack_tmp, 21)
   43306     1631372 :          ipack = ipack + 1
   43307     1631372 :          pack_tmp = packed_data(ipack)
   43308     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   43309     1631372 :          pack_tmp = ISHFT(pack_tmp, -21)
   43310     1631372 :          idata = idata + 1
   43311     1631372 :          data_tmp = ISHFT(pack_tmp, 10)
   43312     1631372 :          ipack = ipack + 1
   43313     1631372 :          pack_tmp = packed_data(ipack)
   43314     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   43315     1631372 :          pack_tmp = ISHFT(pack_tmp, -10)
   43316     1631372 :          idata = idata + 1
   43317     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43318     1631372 :          full_data(idata) = data_tmp
   43319     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43320     1631372 :          idata = idata + 1
   43321     1631372 :          data_tmp = ISHFT(pack_tmp, 52)
   43322     1631372 :          ipack = ipack + 1
   43323     1631372 :          pack_tmp = packed_data(ipack)
   43324     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   43325     1631372 :          pack_tmp = ISHFT(pack_tmp, -52)
   43326     1631372 :          idata = idata + 1
   43327     1631372 :          data_tmp = ISHFT(pack_tmp, 41)
   43328     1631372 :          ipack = ipack + 1
   43329     1631372 :          pack_tmp = packed_data(ipack)
   43330     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   43331     1631372 :          pack_tmp = ISHFT(pack_tmp, -41)
   43332     1631372 :          idata = idata + 1
   43333     1631372 :          data_tmp = ISHFT(pack_tmp, 30)
   43334     1631372 :          ipack = ipack + 1
   43335     1631372 :          pack_tmp = packed_data(ipack)
   43336     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   43337     1631372 :          pack_tmp = ISHFT(pack_tmp, -30)
   43338     1631372 :          idata = idata + 1
   43339     1631372 :          data_tmp = ISHFT(pack_tmp, 19)
   43340     1631372 :          ipack = ipack + 1
   43341     1631372 :          pack_tmp = packed_data(ipack)
   43342     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   43343     1631372 :          pack_tmp = ISHFT(pack_tmp, -19)
   43344     1631372 :          idata = idata + 1
   43345     1631372 :          data_tmp = ISHFT(pack_tmp, 8)
   43346     1631372 :          ipack = ipack + 1
   43347     1631372 :          pack_tmp = packed_data(ipack)
   43348     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   43349     1631372 :          pack_tmp = ISHFT(pack_tmp, -8)
   43350     1631372 :          idata = idata + 1
   43351     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43352     1631372 :          full_data(idata) = data_tmp
   43353     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43354     1631372 :          idata = idata + 1
   43355     1631372 :          data_tmp = ISHFT(pack_tmp, 50)
   43356     1631372 :          ipack = ipack + 1
   43357     1631372 :          pack_tmp = packed_data(ipack)
   43358     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   43359     1631372 :          pack_tmp = ISHFT(pack_tmp, -50)
   43360     1631372 :          idata = idata + 1
   43361     1631372 :          data_tmp = ISHFT(pack_tmp, 39)
   43362     1631372 :          ipack = ipack + 1
   43363     1631372 :          pack_tmp = packed_data(ipack)
   43364     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   43365     1631372 :          pack_tmp = ISHFT(pack_tmp, -39)
   43366     1631372 :          idata = idata + 1
   43367     1631372 :          data_tmp = ISHFT(pack_tmp, 28)
   43368     1631372 :          ipack = ipack + 1
   43369     1631372 :          pack_tmp = packed_data(ipack)
   43370     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   43371     1631372 :          pack_tmp = ISHFT(pack_tmp, -28)
   43372     1631372 :          idata = idata + 1
   43373     1631372 :          data_tmp = ISHFT(pack_tmp, 17)
   43374     1631372 :          ipack = ipack + 1
   43375     1631372 :          pack_tmp = packed_data(ipack)
   43376     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   43377     1631372 :          pack_tmp = ISHFT(pack_tmp, -17)
   43378     1631372 :          idata = idata + 1
   43379     1631372 :          data_tmp = ISHFT(pack_tmp, 6)
   43380     1631372 :          ipack = ipack + 1
   43381     1631372 :          pack_tmp = packed_data(ipack)
   43382     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   43383     1631372 :          pack_tmp = ISHFT(pack_tmp, -6)
   43384     1631372 :          idata = idata + 1
   43385     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43386     1631372 :          full_data(idata) = data_tmp
   43387     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43388     1631372 :          idata = idata + 1
   43389     1631372 :          data_tmp = ISHFT(pack_tmp, 48)
   43390     1631372 :          ipack = ipack + 1
   43391     1631372 :          pack_tmp = packed_data(ipack)
   43392     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   43393     1631372 :          pack_tmp = ISHFT(pack_tmp, -48)
   43394     1631372 :          idata = idata + 1
   43395     1631372 :          data_tmp = ISHFT(pack_tmp, 37)
   43396     1631372 :          ipack = ipack + 1
   43397     1631372 :          pack_tmp = packed_data(ipack)
   43398     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   43399     1631372 :          pack_tmp = ISHFT(pack_tmp, -37)
   43400     1631372 :          idata = idata + 1
   43401     1631372 :          data_tmp = ISHFT(pack_tmp, 26)
   43402     1631372 :          ipack = ipack + 1
   43403     1631372 :          pack_tmp = packed_data(ipack)
   43404     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   43405     1631372 :          pack_tmp = ISHFT(pack_tmp, -26)
   43406     1631372 :          idata = idata + 1
   43407     1631372 :          data_tmp = ISHFT(pack_tmp, 15)
   43408     1631372 :          ipack = ipack + 1
   43409     1631372 :          pack_tmp = packed_data(ipack)
   43410     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   43411     1631372 :          pack_tmp = ISHFT(pack_tmp, -15)
   43412     1631372 :          idata = idata + 1
   43413     1631372 :          data_tmp = ISHFT(pack_tmp, 4)
   43414     1631372 :          ipack = ipack + 1
   43415     1631372 :          pack_tmp = packed_data(ipack)
   43416     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   43417     1631372 :          pack_tmp = ISHFT(pack_tmp, -4)
   43418     1631372 :          idata = idata + 1
   43419     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43420     1631372 :          full_data(idata) = data_tmp
   43421     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43422     1631372 :          idata = idata + 1
   43423     1631372 :          data_tmp = ISHFT(pack_tmp, 46)
   43424     1631372 :          ipack = ipack + 1
   43425     1631372 :          pack_tmp = packed_data(ipack)
   43426     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   43427     1631372 :          pack_tmp = ISHFT(pack_tmp, -46)
   43428     1631372 :          idata = idata + 1
   43429     1631372 :          data_tmp = ISHFT(pack_tmp, 35)
   43430     1631372 :          ipack = ipack + 1
   43431     1631372 :          pack_tmp = packed_data(ipack)
   43432     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   43433     1631372 :          pack_tmp = ISHFT(pack_tmp, -35)
   43434     1631372 :          idata = idata + 1
   43435     1631372 :          data_tmp = ISHFT(pack_tmp, 24)
   43436     1631372 :          ipack = ipack + 1
   43437     1631372 :          pack_tmp = packed_data(ipack)
   43438     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   43439     1631372 :          pack_tmp = ISHFT(pack_tmp, -24)
   43440     1631372 :          idata = idata + 1
   43441     1631372 :          data_tmp = ISHFT(pack_tmp, 13)
   43442     1631372 :          ipack = ipack + 1
   43443     1631372 :          pack_tmp = packed_data(ipack)
   43444     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   43445     1631372 :          pack_tmp = ISHFT(pack_tmp, -13)
   43446     1631372 :          idata = idata + 1
   43447     1631372 :          data_tmp = ISHFT(pack_tmp, 2)
   43448     1631372 :          ipack = ipack + 1
   43449     1631372 :          pack_tmp = packed_data(ipack)
   43450     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   43451     1631372 :          pack_tmp = ISHFT(pack_tmp, -2)
   43452     1631372 :          idata = idata + 1
   43453     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43454     1631372 :          full_data(idata) = data_tmp
   43455     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43456     1631372 :          idata = idata + 1
   43457     1631372 :          data_tmp = ISHFT(pack_tmp, 44)
   43458     1631372 :          ipack = ipack + 1
   43459     1631372 :          pack_tmp = packed_data(ipack)
   43460     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   43461     1631372 :          pack_tmp = ISHFT(pack_tmp, -44)
   43462     1631372 :          idata = idata + 1
   43463     1631372 :          data_tmp = ISHFT(pack_tmp, 33)
   43464     1631372 :          ipack = ipack + 1
   43465     1631372 :          pack_tmp = packed_data(ipack)
   43466     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   43467     1631372 :          pack_tmp = ISHFT(pack_tmp, -33)
   43468     1631372 :          idata = idata + 1
   43469     1631372 :          data_tmp = ISHFT(pack_tmp, 22)
   43470     1631372 :          ipack = ipack + 1
   43471     1631372 :          pack_tmp = packed_data(ipack)
   43472     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   43473     1631372 :          pack_tmp = ISHFT(pack_tmp, -22)
   43474     1631372 :          idata = idata + 1
   43475     1631372 :          data_tmp = ISHFT(pack_tmp, 11)
   43476     1631372 :          ipack = ipack + 1
   43477     1631372 :          pack_tmp = packed_data(ipack)
   43478     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   43479     1631372 :          pack_tmp = ISHFT(pack_tmp, -11)
   43480     1631372 :          idata = idata + 1
   43481     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43482     1631372 :          full_data(idata) = data_tmp
   43483     1631762 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43484             :       END DO
   43485      108085 :       IF (Ndata_rep < Ndata) THEN
   43486       11528 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   43487             :       END IF
   43488      108085 :    END SUBROUTINE bits2ints_53
   43489             : 
   43490             : ! **************************************************************************************************
   43491             : !> \brief ...
   43492             : !> \param Ndata ...
   43493             : !> \param packed_data ...
   43494             : !> \param full_data ...
   43495             : ! **************************************************************************************************
   43496       24054 :    SUBROUTINE ints2bits_54(Ndata, packed_data, full_data)
   43497             :       INTEGER, INTENT(IN)                                :: Ndata
   43498             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   43499             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   43500             : 
   43501             :       INTEGER, PARAMETER                                 :: Nbits = 54
   43502             : 
   43503             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   43504             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   43505             : 
   43506       24054 :       idata = 0
   43507       24054 :       ipack = 0
   43508       24054 :       Ndata_rep = (Ndata/64)*64
   43509       24054 :       DO kdata = 1, Ndata_rep, 64
   43510      381838 :          pack_tmp = 0
   43511      381838 :          idata = idata + 1
   43512      381838 :          data_tmp = full_data(idata)
   43513      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43514      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43515      381838 :          pack_tmp = ISHFT(pack_tmp, -10)
   43516      381838 :          idata = idata + 1
   43517      381838 :          data_tmp = full_data(idata)
   43518      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43519      381838 :          data_tmp = IAND(data_tmp, mask_left(10))
   43520      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43521      381838 :          ipack = ipack + 1
   43522      381838 :          packed_data(ipack) = pack_tmp
   43523      381838 :          data_tmp = full_data(idata)
   43524      381838 :          pack_tmp = ISHFT(data_tmp, 20)
   43525      381838 :          pack_tmp = ISHFT(pack_tmp, -20)
   43526      381838 :          idata = idata + 1
   43527      381838 :          data_tmp = full_data(idata)
   43528      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43529      381838 :          data_tmp = IAND(data_tmp, mask_left(20))
   43530      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43531      381838 :          ipack = ipack + 1
   43532      381838 :          packed_data(ipack) = pack_tmp
   43533      381838 :          data_tmp = full_data(idata)
   43534      381838 :          pack_tmp = ISHFT(data_tmp, 30)
   43535      381838 :          pack_tmp = ISHFT(pack_tmp, -30)
   43536      381838 :          idata = idata + 1
   43537      381838 :          data_tmp = full_data(idata)
   43538      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43539      381838 :          data_tmp = IAND(data_tmp, mask_left(30))
   43540      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43541      381838 :          ipack = ipack + 1
   43542      381838 :          packed_data(ipack) = pack_tmp
   43543      381838 :          data_tmp = full_data(idata)
   43544      381838 :          pack_tmp = ISHFT(data_tmp, 40)
   43545      381838 :          pack_tmp = ISHFT(pack_tmp, -40)
   43546      381838 :          idata = idata + 1
   43547      381838 :          data_tmp = full_data(idata)
   43548      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43549      381838 :          data_tmp = IAND(data_tmp, mask_left(40))
   43550      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43551      381838 :          ipack = ipack + 1
   43552      381838 :          packed_data(ipack) = pack_tmp
   43553      381838 :          data_tmp = full_data(idata)
   43554      381838 :          pack_tmp = ISHFT(data_tmp, 50)
   43555      381838 :          pack_tmp = ISHFT(pack_tmp, -50)
   43556      381838 :          idata = idata + 1
   43557      381838 :          data_tmp = full_data(idata)
   43558      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43559      381838 :          data_tmp = IAND(data_tmp, mask_left(50))
   43560      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43561      381838 :          ipack = ipack + 1
   43562      381838 :          packed_data(ipack) = pack_tmp
   43563      381838 :          data_tmp = full_data(idata)
   43564      381838 :          pack_tmp = ISHFT(data_tmp, 60)
   43565      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43566      381838 :          idata = idata + 1
   43567      381838 :          data_tmp = full_data(idata)
   43568      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43569      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43570      381838 :          pack_tmp = ISHFT(pack_tmp, -6)
   43571      381838 :          idata = idata + 1
   43572      381838 :          data_tmp = full_data(idata)
   43573      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43574      381838 :          data_tmp = IAND(data_tmp, mask_left(6))
   43575      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43576      381838 :          ipack = ipack + 1
   43577      381838 :          packed_data(ipack) = pack_tmp
   43578      381838 :          data_tmp = full_data(idata)
   43579      381838 :          pack_tmp = ISHFT(data_tmp, 16)
   43580      381838 :          pack_tmp = ISHFT(pack_tmp, -16)
   43581      381838 :          idata = idata + 1
   43582      381838 :          data_tmp = full_data(idata)
   43583      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43584      381838 :          data_tmp = IAND(data_tmp, mask_left(16))
   43585      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43586      381838 :          ipack = ipack + 1
   43587      381838 :          packed_data(ipack) = pack_tmp
   43588      381838 :          data_tmp = full_data(idata)
   43589      381838 :          pack_tmp = ISHFT(data_tmp, 26)
   43590      381838 :          pack_tmp = ISHFT(pack_tmp, -26)
   43591      381838 :          idata = idata + 1
   43592      381838 :          data_tmp = full_data(idata)
   43593      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43594      381838 :          data_tmp = IAND(data_tmp, mask_left(26))
   43595      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43596      381838 :          ipack = ipack + 1
   43597      381838 :          packed_data(ipack) = pack_tmp
   43598      381838 :          data_tmp = full_data(idata)
   43599      381838 :          pack_tmp = ISHFT(data_tmp, 36)
   43600      381838 :          pack_tmp = ISHFT(pack_tmp, -36)
   43601      381838 :          idata = idata + 1
   43602      381838 :          data_tmp = full_data(idata)
   43603      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43604      381838 :          data_tmp = IAND(data_tmp, mask_left(36))
   43605      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43606      381838 :          ipack = ipack + 1
   43607      381838 :          packed_data(ipack) = pack_tmp
   43608      381838 :          data_tmp = full_data(idata)
   43609      381838 :          pack_tmp = ISHFT(data_tmp, 46)
   43610      381838 :          pack_tmp = ISHFT(pack_tmp, -46)
   43611      381838 :          idata = idata + 1
   43612      381838 :          data_tmp = full_data(idata)
   43613      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43614      381838 :          data_tmp = IAND(data_tmp, mask_left(46))
   43615      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43616      381838 :          ipack = ipack + 1
   43617      381838 :          packed_data(ipack) = pack_tmp
   43618      381838 :          data_tmp = full_data(idata)
   43619      381838 :          pack_tmp = ISHFT(data_tmp, 56)
   43620      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43621      381838 :          idata = idata + 1
   43622      381838 :          data_tmp = full_data(idata)
   43623      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43624      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43625      381838 :          pack_tmp = ISHFT(pack_tmp, -2)
   43626      381838 :          idata = idata + 1
   43627      381838 :          data_tmp = full_data(idata)
   43628      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43629      381838 :          data_tmp = IAND(data_tmp, mask_left(2))
   43630      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43631      381838 :          ipack = ipack + 1
   43632      381838 :          packed_data(ipack) = pack_tmp
   43633      381838 :          data_tmp = full_data(idata)
   43634      381838 :          pack_tmp = ISHFT(data_tmp, 12)
   43635      381838 :          pack_tmp = ISHFT(pack_tmp, -12)
   43636      381838 :          idata = idata + 1
   43637      381838 :          data_tmp = full_data(idata)
   43638      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43639      381838 :          data_tmp = IAND(data_tmp, mask_left(12))
   43640      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43641      381838 :          ipack = ipack + 1
   43642      381838 :          packed_data(ipack) = pack_tmp
   43643      381838 :          data_tmp = full_data(idata)
   43644      381838 :          pack_tmp = ISHFT(data_tmp, 22)
   43645      381838 :          pack_tmp = ISHFT(pack_tmp, -22)
   43646      381838 :          idata = idata + 1
   43647      381838 :          data_tmp = full_data(idata)
   43648      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43649      381838 :          data_tmp = IAND(data_tmp, mask_left(22))
   43650      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43651      381838 :          ipack = ipack + 1
   43652      381838 :          packed_data(ipack) = pack_tmp
   43653      381838 :          data_tmp = full_data(idata)
   43654      381838 :          pack_tmp = ISHFT(data_tmp, 32)
   43655      381838 :          pack_tmp = ISHFT(pack_tmp, -32)
   43656      381838 :          idata = idata + 1
   43657      381838 :          data_tmp = full_data(idata)
   43658      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43659      381838 :          data_tmp = IAND(data_tmp, mask_left(32))
   43660      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43661      381838 :          ipack = ipack + 1
   43662      381838 :          packed_data(ipack) = pack_tmp
   43663      381838 :          data_tmp = full_data(idata)
   43664      381838 :          pack_tmp = ISHFT(data_tmp, 42)
   43665      381838 :          pack_tmp = ISHFT(pack_tmp, -42)
   43666      381838 :          idata = idata + 1
   43667      381838 :          data_tmp = full_data(idata)
   43668      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43669      381838 :          data_tmp = IAND(data_tmp, mask_left(42))
   43670      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43671      381838 :          ipack = ipack + 1
   43672      381838 :          packed_data(ipack) = pack_tmp
   43673      381838 :          data_tmp = full_data(idata)
   43674      381838 :          pack_tmp = ISHFT(data_tmp, 52)
   43675      381838 :          pack_tmp = ISHFT(pack_tmp, -52)
   43676      381838 :          idata = idata + 1
   43677      381838 :          data_tmp = full_data(idata)
   43678      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43679      381838 :          data_tmp = IAND(data_tmp, mask_left(52))
   43680      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43681      381838 :          ipack = ipack + 1
   43682      381838 :          packed_data(ipack) = pack_tmp
   43683      381838 :          data_tmp = full_data(idata)
   43684      381838 :          pack_tmp = ISHFT(data_tmp, 62)
   43685      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43686      381838 :          idata = idata + 1
   43687      381838 :          data_tmp = full_data(idata)
   43688      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43689      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43690      381838 :          pack_tmp = ISHFT(pack_tmp, -8)
   43691      381838 :          idata = idata + 1
   43692      381838 :          data_tmp = full_data(idata)
   43693      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43694      381838 :          data_tmp = IAND(data_tmp, mask_left(8))
   43695      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43696      381838 :          ipack = ipack + 1
   43697      381838 :          packed_data(ipack) = pack_tmp
   43698      381838 :          data_tmp = full_data(idata)
   43699      381838 :          pack_tmp = ISHFT(data_tmp, 18)
   43700      381838 :          pack_tmp = ISHFT(pack_tmp, -18)
   43701      381838 :          idata = idata + 1
   43702      381838 :          data_tmp = full_data(idata)
   43703      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43704      381838 :          data_tmp = IAND(data_tmp, mask_left(18))
   43705      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43706      381838 :          ipack = ipack + 1
   43707      381838 :          packed_data(ipack) = pack_tmp
   43708      381838 :          data_tmp = full_data(idata)
   43709      381838 :          pack_tmp = ISHFT(data_tmp, 28)
   43710      381838 :          pack_tmp = ISHFT(pack_tmp, -28)
   43711      381838 :          idata = idata + 1
   43712      381838 :          data_tmp = full_data(idata)
   43713      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43714      381838 :          data_tmp = IAND(data_tmp, mask_left(28))
   43715      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43716      381838 :          ipack = ipack + 1
   43717      381838 :          packed_data(ipack) = pack_tmp
   43718      381838 :          data_tmp = full_data(idata)
   43719      381838 :          pack_tmp = ISHFT(data_tmp, 38)
   43720      381838 :          pack_tmp = ISHFT(pack_tmp, -38)
   43721      381838 :          idata = idata + 1
   43722      381838 :          data_tmp = full_data(idata)
   43723      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43724      381838 :          data_tmp = IAND(data_tmp, mask_left(38))
   43725      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43726      381838 :          ipack = ipack + 1
   43727      381838 :          packed_data(ipack) = pack_tmp
   43728      381838 :          data_tmp = full_data(idata)
   43729      381838 :          pack_tmp = ISHFT(data_tmp, 48)
   43730      381838 :          pack_tmp = ISHFT(pack_tmp, -48)
   43731      381838 :          idata = idata + 1
   43732      381838 :          data_tmp = full_data(idata)
   43733      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43734      381838 :          data_tmp = IAND(data_tmp, mask_left(48))
   43735      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43736      381838 :          ipack = ipack + 1
   43737      381838 :          packed_data(ipack) = pack_tmp
   43738      381838 :          data_tmp = full_data(idata)
   43739      381838 :          pack_tmp = ISHFT(data_tmp, 58)
   43740      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43741      381838 :          idata = idata + 1
   43742      381838 :          data_tmp = full_data(idata)
   43743      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43744      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43745      381838 :          pack_tmp = ISHFT(pack_tmp, -4)
   43746      381838 :          idata = idata + 1
   43747      381838 :          data_tmp = full_data(idata)
   43748      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43749      381838 :          data_tmp = IAND(data_tmp, mask_left(4))
   43750      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43751      381838 :          ipack = ipack + 1
   43752      381838 :          packed_data(ipack) = pack_tmp
   43753      381838 :          data_tmp = full_data(idata)
   43754      381838 :          pack_tmp = ISHFT(data_tmp, 14)
   43755      381838 :          pack_tmp = ISHFT(pack_tmp, -14)
   43756      381838 :          idata = idata + 1
   43757      381838 :          data_tmp = full_data(idata)
   43758      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43759      381838 :          data_tmp = IAND(data_tmp, mask_left(14))
   43760      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43761      381838 :          ipack = ipack + 1
   43762      381838 :          packed_data(ipack) = pack_tmp
   43763      381838 :          data_tmp = full_data(idata)
   43764      381838 :          pack_tmp = ISHFT(data_tmp, 24)
   43765      381838 :          pack_tmp = ISHFT(pack_tmp, -24)
   43766      381838 :          idata = idata + 1
   43767      381838 :          data_tmp = full_data(idata)
   43768      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43769      381838 :          data_tmp = IAND(data_tmp, mask_left(24))
   43770      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43771      381838 :          ipack = ipack + 1
   43772      381838 :          packed_data(ipack) = pack_tmp
   43773      381838 :          data_tmp = full_data(idata)
   43774      381838 :          pack_tmp = ISHFT(data_tmp, 34)
   43775      381838 :          pack_tmp = ISHFT(pack_tmp, -34)
   43776      381838 :          idata = idata + 1
   43777      381838 :          data_tmp = full_data(idata)
   43778      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43779      381838 :          data_tmp = IAND(data_tmp, mask_left(34))
   43780      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43781      381838 :          ipack = ipack + 1
   43782      381838 :          packed_data(ipack) = pack_tmp
   43783      381838 :          data_tmp = full_data(idata)
   43784      381838 :          pack_tmp = ISHFT(data_tmp, 44)
   43785      381838 :          pack_tmp = ISHFT(pack_tmp, -44)
   43786      381838 :          idata = idata + 1
   43787      381838 :          data_tmp = full_data(idata)
   43788      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43789      381838 :          data_tmp = IAND(data_tmp, mask_left(44))
   43790      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43791      381838 :          ipack = ipack + 1
   43792      381838 :          packed_data(ipack) = pack_tmp
   43793      381838 :          data_tmp = full_data(idata)
   43794      381838 :          pack_tmp = ISHFT(data_tmp, 54)
   43795      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43796      381838 :          idata = idata + 1
   43797      381838 :          data_tmp = full_data(idata)
   43798      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43799      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43800      381838 :          pack_tmp = ISHFT(pack_tmp, 0)
   43801      381838 :          idata = idata + 1
   43802      381838 :          data_tmp = full_data(idata)
   43803             :          data_tmp = ISHFT(data_tmp, 10)
   43804      381838 :          data_tmp = IAND(data_tmp, mask_left(0))
   43805      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43806      381838 :          ipack = ipack + 1
   43807      381838 :          packed_data(ipack) = pack_tmp
   43808      381838 :          data_tmp = full_data(idata)
   43809      381838 :          pack_tmp = ISHFT(data_tmp, 10)
   43810      381838 :          pack_tmp = ISHFT(pack_tmp, -10)
   43811      381838 :          idata = idata + 1
   43812      381838 :          data_tmp = full_data(idata)
   43813      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43814      381838 :          data_tmp = IAND(data_tmp, mask_left(10))
   43815      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43816      381838 :          ipack = ipack + 1
   43817      381838 :          packed_data(ipack) = pack_tmp
   43818      381838 :          data_tmp = full_data(idata)
   43819      381838 :          pack_tmp = ISHFT(data_tmp, 20)
   43820      381838 :          pack_tmp = ISHFT(pack_tmp, -20)
   43821      381838 :          idata = idata + 1
   43822      381838 :          data_tmp = full_data(idata)
   43823      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43824      381838 :          data_tmp = IAND(data_tmp, mask_left(20))
   43825      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43826      381838 :          ipack = ipack + 1
   43827      381838 :          packed_data(ipack) = pack_tmp
   43828      381838 :          data_tmp = full_data(idata)
   43829      381838 :          pack_tmp = ISHFT(data_tmp, 30)
   43830      381838 :          pack_tmp = ISHFT(pack_tmp, -30)
   43831      381838 :          idata = idata + 1
   43832      381838 :          data_tmp = full_data(idata)
   43833      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43834      381838 :          data_tmp = IAND(data_tmp, mask_left(30))
   43835      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43836      381838 :          ipack = ipack + 1
   43837      381838 :          packed_data(ipack) = pack_tmp
   43838      381838 :          data_tmp = full_data(idata)
   43839      381838 :          pack_tmp = ISHFT(data_tmp, 40)
   43840      381838 :          pack_tmp = ISHFT(pack_tmp, -40)
   43841      381838 :          idata = idata + 1
   43842      381838 :          data_tmp = full_data(idata)
   43843      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43844      381838 :          data_tmp = IAND(data_tmp, mask_left(40))
   43845      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43846      381838 :          ipack = ipack + 1
   43847      381838 :          packed_data(ipack) = pack_tmp
   43848      381838 :          data_tmp = full_data(idata)
   43849      381838 :          pack_tmp = ISHFT(data_tmp, 50)
   43850      381838 :          pack_tmp = ISHFT(pack_tmp, -50)
   43851      381838 :          idata = idata + 1
   43852      381838 :          data_tmp = full_data(idata)
   43853      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43854      381838 :          data_tmp = IAND(data_tmp, mask_left(50))
   43855      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43856      381838 :          ipack = ipack + 1
   43857      381838 :          packed_data(ipack) = pack_tmp
   43858      381838 :          data_tmp = full_data(idata)
   43859      381838 :          pack_tmp = ISHFT(data_tmp, 60)
   43860      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43861      381838 :          idata = idata + 1
   43862      381838 :          data_tmp = full_data(idata)
   43863      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43864      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43865      381838 :          pack_tmp = ISHFT(pack_tmp, -6)
   43866      381838 :          idata = idata + 1
   43867      381838 :          data_tmp = full_data(idata)
   43868      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43869      381838 :          data_tmp = IAND(data_tmp, mask_left(6))
   43870      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43871      381838 :          ipack = ipack + 1
   43872      381838 :          packed_data(ipack) = pack_tmp
   43873      381838 :          data_tmp = full_data(idata)
   43874      381838 :          pack_tmp = ISHFT(data_tmp, 16)
   43875      381838 :          pack_tmp = ISHFT(pack_tmp, -16)
   43876      381838 :          idata = idata + 1
   43877      381838 :          data_tmp = full_data(idata)
   43878      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43879      381838 :          data_tmp = IAND(data_tmp, mask_left(16))
   43880      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43881      381838 :          ipack = ipack + 1
   43882      381838 :          packed_data(ipack) = pack_tmp
   43883      381838 :          data_tmp = full_data(idata)
   43884      381838 :          pack_tmp = ISHFT(data_tmp, 26)
   43885      381838 :          pack_tmp = ISHFT(pack_tmp, -26)
   43886      381838 :          idata = idata + 1
   43887      381838 :          data_tmp = full_data(idata)
   43888      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43889      381838 :          data_tmp = IAND(data_tmp, mask_left(26))
   43890      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43891      381838 :          ipack = ipack + 1
   43892      381838 :          packed_data(ipack) = pack_tmp
   43893      381838 :          data_tmp = full_data(idata)
   43894      381838 :          pack_tmp = ISHFT(data_tmp, 36)
   43895      381838 :          pack_tmp = ISHFT(pack_tmp, -36)
   43896      381838 :          idata = idata + 1
   43897      381838 :          data_tmp = full_data(idata)
   43898      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43899      381838 :          data_tmp = IAND(data_tmp, mask_left(36))
   43900      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43901      381838 :          ipack = ipack + 1
   43902      381838 :          packed_data(ipack) = pack_tmp
   43903      381838 :          data_tmp = full_data(idata)
   43904      381838 :          pack_tmp = ISHFT(data_tmp, 46)
   43905      381838 :          pack_tmp = ISHFT(pack_tmp, -46)
   43906      381838 :          idata = idata + 1
   43907      381838 :          data_tmp = full_data(idata)
   43908      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43909      381838 :          data_tmp = IAND(data_tmp, mask_left(46))
   43910      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43911      381838 :          ipack = ipack + 1
   43912      381838 :          packed_data(ipack) = pack_tmp
   43913      381838 :          data_tmp = full_data(idata)
   43914      381838 :          pack_tmp = ISHFT(data_tmp, 56)
   43915      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43916      381838 :          idata = idata + 1
   43917      381838 :          data_tmp = full_data(idata)
   43918      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43919      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43920      381838 :          pack_tmp = ISHFT(pack_tmp, -2)
   43921      381838 :          idata = idata + 1
   43922      381838 :          data_tmp = full_data(idata)
   43923      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43924      381838 :          data_tmp = IAND(data_tmp, mask_left(2))
   43925      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43926      381838 :          ipack = ipack + 1
   43927      381838 :          packed_data(ipack) = pack_tmp
   43928      381838 :          data_tmp = full_data(idata)
   43929      381838 :          pack_tmp = ISHFT(data_tmp, 12)
   43930      381838 :          pack_tmp = ISHFT(pack_tmp, -12)
   43931      381838 :          idata = idata + 1
   43932      381838 :          data_tmp = full_data(idata)
   43933      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43934      381838 :          data_tmp = IAND(data_tmp, mask_left(12))
   43935      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43936      381838 :          ipack = ipack + 1
   43937      381838 :          packed_data(ipack) = pack_tmp
   43938      381838 :          data_tmp = full_data(idata)
   43939      381838 :          pack_tmp = ISHFT(data_tmp, 22)
   43940      381838 :          pack_tmp = ISHFT(pack_tmp, -22)
   43941      381838 :          idata = idata + 1
   43942      381838 :          data_tmp = full_data(idata)
   43943      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43944      381838 :          data_tmp = IAND(data_tmp, mask_left(22))
   43945      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43946      381838 :          ipack = ipack + 1
   43947      381838 :          packed_data(ipack) = pack_tmp
   43948      381838 :          data_tmp = full_data(idata)
   43949      381838 :          pack_tmp = ISHFT(data_tmp, 32)
   43950      381838 :          pack_tmp = ISHFT(pack_tmp, -32)
   43951      381838 :          idata = idata + 1
   43952      381838 :          data_tmp = full_data(idata)
   43953      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43954      381838 :          data_tmp = IAND(data_tmp, mask_left(32))
   43955      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43956      381838 :          ipack = ipack + 1
   43957      381838 :          packed_data(ipack) = pack_tmp
   43958      381838 :          data_tmp = full_data(idata)
   43959      381838 :          pack_tmp = ISHFT(data_tmp, 42)
   43960      381838 :          pack_tmp = ISHFT(pack_tmp, -42)
   43961      381838 :          idata = idata + 1
   43962      381838 :          data_tmp = full_data(idata)
   43963      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43964      381838 :          data_tmp = IAND(data_tmp, mask_left(42))
   43965      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43966      381838 :          ipack = ipack + 1
   43967      381838 :          packed_data(ipack) = pack_tmp
   43968      381838 :          data_tmp = full_data(idata)
   43969      381838 :          pack_tmp = ISHFT(data_tmp, 52)
   43970      381838 :          pack_tmp = ISHFT(pack_tmp, -52)
   43971      381838 :          idata = idata + 1
   43972      381838 :          data_tmp = full_data(idata)
   43973      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43974      381838 :          data_tmp = IAND(data_tmp, mask_left(52))
   43975      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43976      381838 :          ipack = ipack + 1
   43977      381838 :          packed_data(ipack) = pack_tmp
   43978      381838 :          data_tmp = full_data(idata)
   43979      381838 :          pack_tmp = ISHFT(data_tmp, 62)
   43980      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43981      381838 :          idata = idata + 1
   43982      381838 :          data_tmp = full_data(idata)
   43983      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43984      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43985      381838 :          pack_tmp = ISHFT(pack_tmp, -8)
   43986      381838 :          idata = idata + 1
   43987      381838 :          data_tmp = full_data(idata)
   43988      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43989      381838 :          data_tmp = IAND(data_tmp, mask_left(8))
   43990      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43991      381838 :          ipack = ipack + 1
   43992      381838 :          packed_data(ipack) = pack_tmp
   43993      381838 :          data_tmp = full_data(idata)
   43994      381838 :          pack_tmp = ISHFT(data_tmp, 18)
   43995      381838 :          pack_tmp = ISHFT(pack_tmp, -18)
   43996      381838 :          idata = idata + 1
   43997      381838 :          data_tmp = full_data(idata)
   43998      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43999      381838 :          data_tmp = IAND(data_tmp, mask_left(18))
   44000      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44001      381838 :          ipack = ipack + 1
   44002      381838 :          packed_data(ipack) = pack_tmp
   44003      381838 :          data_tmp = full_data(idata)
   44004      381838 :          pack_tmp = ISHFT(data_tmp, 28)
   44005      381838 :          pack_tmp = ISHFT(pack_tmp, -28)
   44006      381838 :          idata = idata + 1
   44007      381838 :          data_tmp = full_data(idata)
   44008      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44009      381838 :          data_tmp = IAND(data_tmp, mask_left(28))
   44010      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44011      381838 :          ipack = ipack + 1
   44012      381838 :          packed_data(ipack) = pack_tmp
   44013      381838 :          data_tmp = full_data(idata)
   44014      381838 :          pack_tmp = ISHFT(data_tmp, 38)
   44015      381838 :          pack_tmp = ISHFT(pack_tmp, -38)
   44016      381838 :          idata = idata + 1
   44017      381838 :          data_tmp = full_data(idata)
   44018      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44019      381838 :          data_tmp = IAND(data_tmp, mask_left(38))
   44020      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44021      381838 :          ipack = ipack + 1
   44022      381838 :          packed_data(ipack) = pack_tmp
   44023      381838 :          data_tmp = full_data(idata)
   44024      381838 :          pack_tmp = ISHFT(data_tmp, 48)
   44025      381838 :          pack_tmp = ISHFT(pack_tmp, -48)
   44026      381838 :          idata = idata + 1
   44027      381838 :          data_tmp = full_data(idata)
   44028      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44029      381838 :          data_tmp = IAND(data_tmp, mask_left(48))
   44030      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44031      381838 :          ipack = ipack + 1
   44032      381838 :          packed_data(ipack) = pack_tmp
   44033      381838 :          data_tmp = full_data(idata)
   44034      381838 :          pack_tmp = ISHFT(data_tmp, 58)
   44035      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   44036      381838 :          idata = idata + 1
   44037      381838 :          data_tmp = full_data(idata)
   44038      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44039      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44040      381838 :          pack_tmp = ISHFT(pack_tmp, -4)
   44041      381838 :          idata = idata + 1
   44042      381838 :          data_tmp = full_data(idata)
   44043      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44044      381838 :          data_tmp = IAND(data_tmp, mask_left(4))
   44045      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44046      381838 :          ipack = ipack + 1
   44047      381838 :          packed_data(ipack) = pack_tmp
   44048      381838 :          data_tmp = full_data(idata)
   44049      381838 :          pack_tmp = ISHFT(data_tmp, 14)
   44050      381838 :          pack_tmp = ISHFT(pack_tmp, -14)
   44051      381838 :          idata = idata + 1
   44052      381838 :          data_tmp = full_data(idata)
   44053      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44054      381838 :          data_tmp = IAND(data_tmp, mask_left(14))
   44055      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44056      381838 :          ipack = ipack + 1
   44057      381838 :          packed_data(ipack) = pack_tmp
   44058      381838 :          data_tmp = full_data(idata)
   44059      381838 :          pack_tmp = ISHFT(data_tmp, 24)
   44060      381838 :          pack_tmp = ISHFT(pack_tmp, -24)
   44061      381838 :          idata = idata + 1
   44062      381838 :          data_tmp = full_data(idata)
   44063      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44064      381838 :          data_tmp = IAND(data_tmp, mask_left(24))
   44065      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44066      381838 :          ipack = ipack + 1
   44067      381838 :          packed_data(ipack) = pack_tmp
   44068      381838 :          data_tmp = full_data(idata)
   44069      381838 :          pack_tmp = ISHFT(data_tmp, 34)
   44070      381838 :          pack_tmp = ISHFT(pack_tmp, -34)
   44071      381838 :          idata = idata + 1
   44072      381838 :          data_tmp = full_data(idata)
   44073      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44074      381838 :          data_tmp = IAND(data_tmp, mask_left(34))
   44075      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44076      381838 :          ipack = ipack + 1
   44077      381838 :          packed_data(ipack) = pack_tmp
   44078      381838 :          data_tmp = full_data(idata)
   44079      381838 :          pack_tmp = ISHFT(data_tmp, 44)
   44080      381838 :          pack_tmp = ISHFT(pack_tmp, -44)
   44081      381838 :          idata = idata + 1
   44082      381838 :          data_tmp = full_data(idata)
   44083      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44084      381838 :          data_tmp = IAND(data_tmp, mask_left(44))
   44085      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44086      381838 :          ipack = ipack + 1
   44087      381838 :          packed_data(ipack) = pack_tmp
   44088      381838 :          data_tmp = full_data(idata)
   44089      381838 :          pack_tmp = ISHFT(data_tmp, 54)
   44090      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   44091      381838 :          idata = idata + 1
   44092      381838 :          data_tmp = full_data(idata)
   44093      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44094      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44095             :          pack_tmp = ISHFT(pack_tmp, 0)
   44096      381838 :          pack_tmp = ISHFT(pack_tmp, 0)
   44097      381838 :          ipack = ipack + 1
   44098      381852 :          packed_data(ipack) = pack_tmp
   44099             :       END DO
   44100       24054 :       IF (Ndata_rep < Ndata) THEN
   44101         356 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   44102             :       END IF
   44103       24054 :    END SUBROUTINE ints2bits_54
   44104             : 
   44105             : ! **************************************************************************************************
   44106             : !> \brief ...
   44107             : !> \param Ndata ...
   44108             : !> \param packed_data ...
   44109             : !> \param full_data ...
   44110             : ! **************************************************************************************************
   44111      110773 :    SUBROUTINE bits2ints_54(Ndata, packed_data, full_data)
   44112             :       INTEGER, INTENT(IN)                                :: Ndata
   44113             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   44114             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   44115             : 
   44116             :       INTEGER, PARAMETER                                 :: Nbits = 54
   44117             : 
   44118             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   44119             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   44120             : 
   44121      110773 :       ipack = 0
   44122      110773 :       idata = 0
   44123      110773 :       pack_tmp = 0
   44124      110773 :       Ndata_rep = (Ndata/64)*64
   44125      110773 :       DO kdata = 1, Ndata_rep, 64
   44126     1652314 :          idata = idata + 1
   44127     1652314 :          data_tmp = ISHFT(pack_tmp, 54)
   44128     1652314 :          ipack = ipack + 1
   44129     1652314 :          pack_tmp = packed_data(ipack)
   44130     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44131     1652314 :          pack_tmp = ISHFT(pack_tmp, -54)
   44132     1652314 :          idata = idata + 1
   44133     1652314 :          data_tmp = ISHFT(pack_tmp, 44)
   44134     1652314 :          ipack = ipack + 1
   44135     1652314 :          pack_tmp = packed_data(ipack)
   44136     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44137     1652314 :          pack_tmp = ISHFT(pack_tmp, -44)
   44138     1652314 :          idata = idata + 1
   44139     1652314 :          data_tmp = ISHFT(pack_tmp, 34)
   44140     1652314 :          ipack = ipack + 1
   44141     1652314 :          pack_tmp = packed_data(ipack)
   44142     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44143     1652314 :          pack_tmp = ISHFT(pack_tmp, -34)
   44144     1652314 :          idata = idata + 1
   44145     1652314 :          data_tmp = ISHFT(pack_tmp, 24)
   44146     1652314 :          ipack = ipack + 1
   44147     1652314 :          pack_tmp = packed_data(ipack)
   44148     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44149     1652314 :          pack_tmp = ISHFT(pack_tmp, -24)
   44150     1652314 :          idata = idata + 1
   44151     1652314 :          data_tmp = ISHFT(pack_tmp, 14)
   44152     1652314 :          ipack = ipack + 1
   44153     1652314 :          pack_tmp = packed_data(ipack)
   44154     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44155     1652314 :          pack_tmp = ISHFT(pack_tmp, -14)
   44156     1652314 :          idata = idata + 1
   44157     1652314 :          data_tmp = ISHFT(pack_tmp, 4)
   44158     1652314 :          ipack = ipack + 1
   44159     1652314 :          pack_tmp = packed_data(ipack)
   44160     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44161     1652314 :          pack_tmp = ISHFT(pack_tmp, -4)
   44162     1652314 :          idata = idata + 1
   44163     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44164     1652314 :          full_data(idata) = data_tmp
   44165     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44166     1652314 :          idata = idata + 1
   44167     1652314 :          data_tmp = ISHFT(pack_tmp, 48)
   44168     1652314 :          ipack = ipack + 1
   44169     1652314 :          pack_tmp = packed_data(ipack)
   44170     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44171     1652314 :          pack_tmp = ISHFT(pack_tmp, -48)
   44172     1652314 :          idata = idata + 1
   44173     1652314 :          data_tmp = ISHFT(pack_tmp, 38)
   44174     1652314 :          ipack = ipack + 1
   44175     1652314 :          pack_tmp = packed_data(ipack)
   44176     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44177     1652314 :          pack_tmp = ISHFT(pack_tmp, -38)
   44178     1652314 :          idata = idata + 1
   44179     1652314 :          data_tmp = ISHFT(pack_tmp, 28)
   44180     1652314 :          ipack = ipack + 1
   44181     1652314 :          pack_tmp = packed_data(ipack)
   44182     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44183     1652314 :          pack_tmp = ISHFT(pack_tmp, -28)
   44184     1652314 :          idata = idata + 1
   44185     1652314 :          data_tmp = ISHFT(pack_tmp, 18)
   44186     1652314 :          ipack = ipack + 1
   44187     1652314 :          pack_tmp = packed_data(ipack)
   44188     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44189     1652314 :          pack_tmp = ISHFT(pack_tmp, -18)
   44190     1652314 :          idata = idata + 1
   44191     1652314 :          data_tmp = ISHFT(pack_tmp, 8)
   44192     1652314 :          ipack = ipack + 1
   44193     1652314 :          pack_tmp = packed_data(ipack)
   44194     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44195     1652314 :          pack_tmp = ISHFT(pack_tmp, -8)
   44196     1652314 :          idata = idata + 1
   44197     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44198     1652314 :          full_data(idata) = data_tmp
   44199     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44200     1652314 :          idata = idata + 1
   44201     1652314 :          data_tmp = ISHFT(pack_tmp, 52)
   44202     1652314 :          ipack = ipack + 1
   44203     1652314 :          pack_tmp = packed_data(ipack)
   44204     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44205     1652314 :          pack_tmp = ISHFT(pack_tmp, -52)
   44206     1652314 :          idata = idata + 1
   44207     1652314 :          data_tmp = ISHFT(pack_tmp, 42)
   44208     1652314 :          ipack = ipack + 1
   44209     1652314 :          pack_tmp = packed_data(ipack)
   44210     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44211     1652314 :          pack_tmp = ISHFT(pack_tmp, -42)
   44212     1652314 :          idata = idata + 1
   44213     1652314 :          data_tmp = ISHFT(pack_tmp, 32)
   44214     1652314 :          ipack = ipack + 1
   44215     1652314 :          pack_tmp = packed_data(ipack)
   44216     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44217     1652314 :          pack_tmp = ISHFT(pack_tmp, -32)
   44218     1652314 :          idata = idata + 1
   44219     1652314 :          data_tmp = ISHFT(pack_tmp, 22)
   44220     1652314 :          ipack = ipack + 1
   44221     1652314 :          pack_tmp = packed_data(ipack)
   44222     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44223     1652314 :          pack_tmp = ISHFT(pack_tmp, -22)
   44224     1652314 :          idata = idata + 1
   44225     1652314 :          data_tmp = ISHFT(pack_tmp, 12)
   44226     1652314 :          ipack = ipack + 1
   44227     1652314 :          pack_tmp = packed_data(ipack)
   44228     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44229     1652314 :          pack_tmp = ISHFT(pack_tmp, -12)
   44230     1652314 :          idata = idata + 1
   44231     1652314 :          data_tmp = ISHFT(pack_tmp, 2)
   44232     1652314 :          ipack = ipack + 1
   44233     1652314 :          pack_tmp = packed_data(ipack)
   44234     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44235     1652314 :          pack_tmp = ISHFT(pack_tmp, -2)
   44236     1652314 :          idata = idata + 1
   44237     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44238     1652314 :          full_data(idata) = data_tmp
   44239     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44240     1652314 :          idata = idata + 1
   44241     1652314 :          data_tmp = ISHFT(pack_tmp, 46)
   44242     1652314 :          ipack = ipack + 1
   44243     1652314 :          pack_tmp = packed_data(ipack)
   44244     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44245     1652314 :          pack_tmp = ISHFT(pack_tmp, -46)
   44246     1652314 :          idata = idata + 1
   44247     1652314 :          data_tmp = ISHFT(pack_tmp, 36)
   44248     1652314 :          ipack = ipack + 1
   44249     1652314 :          pack_tmp = packed_data(ipack)
   44250     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44251     1652314 :          pack_tmp = ISHFT(pack_tmp, -36)
   44252     1652314 :          idata = idata + 1
   44253     1652314 :          data_tmp = ISHFT(pack_tmp, 26)
   44254     1652314 :          ipack = ipack + 1
   44255     1652314 :          pack_tmp = packed_data(ipack)
   44256     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44257     1652314 :          pack_tmp = ISHFT(pack_tmp, -26)
   44258     1652314 :          idata = idata + 1
   44259     1652314 :          data_tmp = ISHFT(pack_tmp, 16)
   44260     1652314 :          ipack = ipack + 1
   44261     1652314 :          pack_tmp = packed_data(ipack)
   44262     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44263     1652314 :          pack_tmp = ISHFT(pack_tmp, -16)
   44264     1652314 :          idata = idata + 1
   44265     1652314 :          data_tmp = ISHFT(pack_tmp, 6)
   44266     1652314 :          ipack = ipack + 1
   44267     1652314 :          pack_tmp = packed_data(ipack)
   44268     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44269     1652314 :          pack_tmp = ISHFT(pack_tmp, -6)
   44270     1652314 :          idata = idata + 1
   44271     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44272     1652314 :          full_data(idata) = data_tmp
   44273     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44274     1652314 :          idata = idata + 1
   44275     1652314 :          data_tmp = ISHFT(pack_tmp, 50)
   44276     1652314 :          ipack = ipack + 1
   44277     1652314 :          pack_tmp = packed_data(ipack)
   44278     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44279     1652314 :          pack_tmp = ISHFT(pack_tmp, -50)
   44280     1652314 :          idata = idata + 1
   44281     1652314 :          data_tmp = ISHFT(pack_tmp, 40)
   44282     1652314 :          ipack = ipack + 1
   44283     1652314 :          pack_tmp = packed_data(ipack)
   44284     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44285     1652314 :          pack_tmp = ISHFT(pack_tmp, -40)
   44286     1652314 :          idata = idata + 1
   44287     1652314 :          data_tmp = ISHFT(pack_tmp, 30)
   44288     1652314 :          ipack = ipack + 1
   44289     1652314 :          pack_tmp = packed_data(ipack)
   44290     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44291     1652314 :          pack_tmp = ISHFT(pack_tmp, -30)
   44292     1652314 :          idata = idata + 1
   44293     1652314 :          data_tmp = ISHFT(pack_tmp, 20)
   44294     1652314 :          ipack = ipack + 1
   44295     1652314 :          pack_tmp = packed_data(ipack)
   44296     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44297     1652314 :          pack_tmp = ISHFT(pack_tmp, -20)
   44298     1652314 :          idata = idata + 1
   44299     1652314 :          data_tmp = ISHFT(pack_tmp, 10)
   44300     1652314 :          ipack = ipack + 1
   44301     1652314 :          pack_tmp = packed_data(ipack)
   44302     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44303     1652314 :          pack_tmp = ISHFT(pack_tmp, -10)
   44304     1652314 :          idata = idata + 1
   44305     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44306     1652314 :          full_data(idata) = data_tmp
   44307     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44308     1652314 :          idata = idata + 1
   44309     1652314 :          data_tmp = ISHFT(pack_tmp, 54)
   44310     1652314 :          ipack = ipack + 1
   44311     1652314 :          pack_tmp = packed_data(ipack)
   44312     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44313     1652314 :          pack_tmp = ISHFT(pack_tmp, -54)
   44314     1652314 :          idata = idata + 1
   44315     1652314 :          data_tmp = ISHFT(pack_tmp, 44)
   44316     1652314 :          ipack = ipack + 1
   44317     1652314 :          pack_tmp = packed_data(ipack)
   44318     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44319     1652314 :          pack_tmp = ISHFT(pack_tmp, -44)
   44320     1652314 :          idata = idata + 1
   44321     1652314 :          data_tmp = ISHFT(pack_tmp, 34)
   44322     1652314 :          ipack = ipack + 1
   44323     1652314 :          pack_tmp = packed_data(ipack)
   44324     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44325     1652314 :          pack_tmp = ISHFT(pack_tmp, -34)
   44326     1652314 :          idata = idata + 1
   44327     1652314 :          data_tmp = ISHFT(pack_tmp, 24)
   44328     1652314 :          ipack = ipack + 1
   44329     1652314 :          pack_tmp = packed_data(ipack)
   44330     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44331     1652314 :          pack_tmp = ISHFT(pack_tmp, -24)
   44332     1652314 :          idata = idata + 1
   44333     1652314 :          data_tmp = ISHFT(pack_tmp, 14)
   44334     1652314 :          ipack = ipack + 1
   44335     1652314 :          pack_tmp = packed_data(ipack)
   44336     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44337     1652314 :          pack_tmp = ISHFT(pack_tmp, -14)
   44338     1652314 :          idata = idata + 1
   44339     1652314 :          data_tmp = ISHFT(pack_tmp, 4)
   44340     1652314 :          ipack = ipack + 1
   44341     1652314 :          pack_tmp = packed_data(ipack)
   44342     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44343     1652314 :          pack_tmp = ISHFT(pack_tmp, -4)
   44344     1652314 :          idata = idata + 1
   44345     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44346     1652314 :          full_data(idata) = data_tmp
   44347     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44348     1652314 :          idata = idata + 1
   44349     1652314 :          data_tmp = ISHFT(pack_tmp, 48)
   44350     1652314 :          ipack = ipack + 1
   44351     1652314 :          pack_tmp = packed_data(ipack)
   44352     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44353     1652314 :          pack_tmp = ISHFT(pack_tmp, -48)
   44354     1652314 :          idata = idata + 1
   44355     1652314 :          data_tmp = ISHFT(pack_tmp, 38)
   44356     1652314 :          ipack = ipack + 1
   44357     1652314 :          pack_tmp = packed_data(ipack)
   44358     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44359     1652314 :          pack_tmp = ISHFT(pack_tmp, -38)
   44360     1652314 :          idata = idata + 1
   44361     1652314 :          data_tmp = ISHFT(pack_tmp, 28)
   44362     1652314 :          ipack = ipack + 1
   44363     1652314 :          pack_tmp = packed_data(ipack)
   44364     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44365     1652314 :          pack_tmp = ISHFT(pack_tmp, -28)
   44366     1652314 :          idata = idata + 1
   44367     1652314 :          data_tmp = ISHFT(pack_tmp, 18)
   44368     1652314 :          ipack = ipack + 1
   44369     1652314 :          pack_tmp = packed_data(ipack)
   44370     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44371     1652314 :          pack_tmp = ISHFT(pack_tmp, -18)
   44372     1652314 :          idata = idata + 1
   44373     1652314 :          data_tmp = ISHFT(pack_tmp, 8)
   44374     1652314 :          ipack = ipack + 1
   44375     1652314 :          pack_tmp = packed_data(ipack)
   44376     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44377     1652314 :          pack_tmp = ISHFT(pack_tmp, -8)
   44378     1652314 :          idata = idata + 1
   44379     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44380     1652314 :          full_data(idata) = data_tmp
   44381     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44382     1652314 :          idata = idata + 1
   44383     1652314 :          data_tmp = ISHFT(pack_tmp, 52)
   44384     1652314 :          ipack = ipack + 1
   44385     1652314 :          pack_tmp = packed_data(ipack)
   44386     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44387     1652314 :          pack_tmp = ISHFT(pack_tmp, -52)
   44388     1652314 :          idata = idata + 1
   44389     1652314 :          data_tmp = ISHFT(pack_tmp, 42)
   44390     1652314 :          ipack = ipack + 1
   44391     1652314 :          pack_tmp = packed_data(ipack)
   44392     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44393     1652314 :          pack_tmp = ISHFT(pack_tmp, -42)
   44394     1652314 :          idata = idata + 1
   44395     1652314 :          data_tmp = ISHFT(pack_tmp, 32)
   44396     1652314 :          ipack = ipack + 1
   44397     1652314 :          pack_tmp = packed_data(ipack)
   44398     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44399     1652314 :          pack_tmp = ISHFT(pack_tmp, -32)
   44400     1652314 :          idata = idata + 1
   44401     1652314 :          data_tmp = ISHFT(pack_tmp, 22)
   44402     1652314 :          ipack = ipack + 1
   44403     1652314 :          pack_tmp = packed_data(ipack)
   44404     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44405     1652314 :          pack_tmp = ISHFT(pack_tmp, -22)
   44406     1652314 :          idata = idata + 1
   44407     1652314 :          data_tmp = ISHFT(pack_tmp, 12)
   44408     1652314 :          ipack = ipack + 1
   44409     1652314 :          pack_tmp = packed_data(ipack)
   44410     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44411     1652314 :          pack_tmp = ISHFT(pack_tmp, -12)
   44412     1652314 :          idata = idata + 1
   44413     1652314 :          data_tmp = ISHFT(pack_tmp, 2)
   44414     1652314 :          ipack = ipack + 1
   44415     1652314 :          pack_tmp = packed_data(ipack)
   44416     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44417     1652314 :          pack_tmp = ISHFT(pack_tmp, -2)
   44418     1652314 :          idata = idata + 1
   44419     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44420     1652314 :          full_data(idata) = data_tmp
   44421     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44422     1652314 :          idata = idata + 1
   44423     1652314 :          data_tmp = ISHFT(pack_tmp, 46)
   44424     1652314 :          ipack = ipack + 1
   44425     1652314 :          pack_tmp = packed_data(ipack)
   44426     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44427     1652314 :          pack_tmp = ISHFT(pack_tmp, -46)
   44428     1652314 :          idata = idata + 1
   44429     1652314 :          data_tmp = ISHFT(pack_tmp, 36)
   44430     1652314 :          ipack = ipack + 1
   44431     1652314 :          pack_tmp = packed_data(ipack)
   44432     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44433     1652314 :          pack_tmp = ISHFT(pack_tmp, -36)
   44434     1652314 :          idata = idata + 1
   44435     1652314 :          data_tmp = ISHFT(pack_tmp, 26)
   44436     1652314 :          ipack = ipack + 1
   44437     1652314 :          pack_tmp = packed_data(ipack)
   44438     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44439     1652314 :          pack_tmp = ISHFT(pack_tmp, -26)
   44440     1652314 :          idata = idata + 1
   44441     1652314 :          data_tmp = ISHFT(pack_tmp, 16)
   44442     1652314 :          ipack = ipack + 1
   44443     1652314 :          pack_tmp = packed_data(ipack)
   44444     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44445     1652314 :          pack_tmp = ISHFT(pack_tmp, -16)
   44446     1652314 :          idata = idata + 1
   44447     1652314 :          data_tmp = ISHFT(pack_tmp, 6)
   44448     1652314 :          ipack = ipack + 1
   44449     1652314 :          pack_tmp = packed_data(ipack)
   44450     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44451     1652314 :          pack_tmp = ISHFT(pack_tmp, -6)
   44452     1652314 :          idata = idata + 1
   44453     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44454     1652314 :          full_data(idata) = data_tmp
   44455     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44456     1652314 :          idata = idata + 1
   44457     1652314 :          data_tmp = ISHFT(pack_tmp, 50)
   44458     1652314 :          ipack = ipack + 1
   44459     1652314 :          pack_tmp = packed_data(ipack)
   44460     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44461     1652314 :          pack_tmp = ISHFT(pack_tmp, -50)
   44462     1652314 :          idata = idata + 1
   44463     1652314 :          data_tmp = ISHFT(pack_tmp, 40)
   44464     1652314 :          ipack = ipack + 1
   44465     1652314 :          pack_tmp = packed_data(ipack)
   44466     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44467     1652314 :          pack_tmp = ISHFT(pack_tmp, -40)
   44468     1652314 :          idata = idata + 1
   44469     1652314 :          data_tmp = ISHFT(pack_tmp, 30)
   44470     1652314 :          ipack = ipack + 1
   44471     1652314 :          pack_tmp = packed_data(ipack)
   44472     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44473     1652314 :          pack_tmp = ISHFT(pack_tmp, -30)
   44474     1652314 :          idata = idata + 1
   44475     1652314 :          data_tmp = ISHFT(pack_tmp, 20)
   44476     1652314 :          ipack = ipack + 1
   44477     1652314 :          pack_tmp = packed_data(ipack)
   44478     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44479     1652314 :          pack_tmp = ISHFT(pack_tmp, -20)
   44480     1652314 :          idata = idata + 1
   44481     1652314 :          data_tmp = ISHFT(pack_tmp, 10)
   44482     1652314 :          ipack = ipack + 1
   44483     1652314 :          pack_tmp = packed_data(ipack)
   44484     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44485     1652314 :          pack_tmp = ISHFT(pack_tmp, -10)
   44486     1652314 :          idata = idata + 1
   44487     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44488     1652314 :          full_data(idata) = data_tmp
   44489     1653168 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44490             :       END DO
   44491      110773 :       IF (Ndata_rep < Ndata) THEN
   44492       14124 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   44493             :       END IF
   44494      110773 :    END SUBROUTINE bits2ints_54
   44495             : 
   44496             : ! **************************************************************************************************
   44497             : !> \brief ...
   44498             : !> \param Ndata ...
   44499             : !> \param packed_data ...
   44500             : !> \param full_data ...
   44501             : ! **************************************************************************************************
   44502       23972 :    SUBROUTINE ints2bits_55(Ndata, packed_data, full_data)
   44503             :       INTEGER, INTENT(IN)                                :: Ndata
   44504             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   44505             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   44506             : 
   44507             :       INTEGER, PARAMETER                                 :: Nbits = 55
   44508             : 
   44509             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   44510             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   44511             : 
   44512       23972 :       idata = 0
   44513       23972 :       ipack = 0
   44514       23972 :       Ndata_rep = (Ndata/64)*64
   44515       23972 :       DO kdata = 1, Ndata_rep, 64
   44516      381172 :          pack_tmp = 0
   44517      381172 :          idata = idata + 1
   44518      381172 :          data_tmp = full_data(idata)
   44519      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44520      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44521      381172 :          pack_tmp = ISHFT(pack_tmp, -9)
   44522      381172 :          idata = idata + 1
   44523      381172 :          data_tmp = full_data(idata)
   44524      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44525      381172 :          data_tmp = IAND(data_tmp, mask_left(9))
   44526      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44527      381172 :          ipack = ipack + 1
   44528      381172 :          packed_data(ipack) = pack_tmp
   44529      381172 :          data_tmp = full_data(idata)
   44530      381172 :          pack_tmp = ISHFT(data_tmp, 18)
   44531      381172 :          pack_tmp = ISHFT(pack_tmp, -18)
   44532      381172 :          idata = idata + 1
   44533      381172 :          data_tmp = full_data(idata)
   44534      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44535      381172 :          data_tmp = IAND(data_tmp, mask_left(18))
   44536      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44537      381172 :          ipack = ipack + 1
   44538      381172 :          packed_data(ipack) = pack_tmp
   44539      381172 :          data_tmp = full_data(idata)
   44540      381172 :          pack_tmp = ISHFT(data_tmp, 27)
   44541      381172 :          pack_tmp = ISHFT(pack_tmp, -27)
   44542      381172 :          idata = idata + 1
   44543      381172 :          data_tmp = full_data(idata)
   44544      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44545      381172 :          data_tmp = IAND(data_tmp, mask_left(27))
   44546      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44547      381172 :          ipack = ipack + 1
   44548      381172 :          packed_data(ipack) = pack_tmp
   44549      381172 :          data_tmp = full_data(idata)
   44550      381172 :          pack_tmp = ISHFT(data_tmp, 36)
   44551      381172 :          pack_tmp = ISHFT(pack_tmp, -36)
   44552      381172 :          idata = idata + 1
   44553      381172 :          data_tmp = full_data(idata)
   44554      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44555      381172 :          data_tmp = IAND(data_tmp, mask_left(36))
   44556      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44557      381172 :          ipack = ipack + 1
   44558      381172 :          packed_data(ipack) = pack_tmp
   44559      381172 :          data_tmp = full_data(idata)
   44560      381172 :          pack_tmp = ISHFT(data_tmp, 45)
   44561      381172 :          pack_tmp = ISHFT(pack_tmp, -45)
   44562      381172 :          idata = idata + 1
   44563      381172 :          data_tmp = full_data(idata)
   44564      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44565      381172 :          data_tmp = IAND(data_tmp, mask_left(45))
   44566      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44567      381172 :          ipack = ipack + 1
   44568      381172 :          packed_data(ipack) = pack_tmp
   44569      381172 :          data_tmp = full_data(idata)
   44570      381172 :          pack_tmp = ISHFT(data_tmp, 54)
   44571      381172 :          pack_tmp = ISHFT(pack_tmp, -54)
   44572      381172 :          idata = idata + 1
   44573      381172 :          data_tmp = full_data(idata)
   44574      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44575      381172 :          data_tmp = IAND(data_tmp, mask_left(54))
   44576      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44577      381172 :          ipack = ipack + 1
   44578      381172 :          packed_data(ipack) = pack_tmp
   44579      381172 :          data_tmp = full_data(idata)
   44580      381172 :          pack_tmp = ISHFT(data_tmp, 63)
   44581      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44582      381172 :          idata = idata + 1
   44583      381172 :          data_tmp = full_data(idata)
   44584      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44585      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44586      381172 :          pack_tmp = ISHFT(pack_tmp, -8)
   44587      381172 :          idata = idata + 1
   44588      381172 :          data_tmp = full_data(idata)
   44589      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44590      381172 :          data_tmp = IAND(data_tmp, mask_left(8))
   44591      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44592      381172 :          ipack = ipack + 1
   44593      381172 :          packed_data(ipack) = pack_tmp
   44594      381172 :          data_tmp = full_data(idata)
   44595      381172 :          pack_tmp = ISHFT(data_tmp, 17)
   44596      381172 :          pack_tmp = ISHFT(pack_tmp, -17)
   44597      381172 :          idata = idata + 1
   44598      381172 :          data_tmp = full_data(idata)
   44599      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44600      381172 :          data_tmp = IAND(data_tmp, mask_left(17))
   44601      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44602      381172 :          ipack = ipack + 1
   44603      381172 :          packed_data(ipack) = pack_tmp
   44604      381172 :          data_tmp = full_data(idata)
   44605      381172 :          pack_tmp = ISHFT(data_tmp, 26)
   44606      381172 :          pack_tmp = ISHFT(pack_tmp, -26)
   44607      381172 :          idata = idata + 1
   44608      381172 :          data_tmp = full_data(idata)
   44609      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44610      381172 :          data_tmp = IAND(data_tmp, mask_left(26))
   44611      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44612      381172 :          ipack = ipack + 1
   44613      381172 :          packed_data(ipack) = pack_tmp
   44614      381172 :          data_tmp = full_data(idata)
   44615      381172 :          pack_tmp = ISHFT(data_tmp, 35)
   44616      381172 :          pack_tmp = ISHFT(pack_tmp, -35)
   44617      381172 :          idata = idata + 1
   44618      381172 :          data_tmp = full_data(idata)
   44619      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44620      381172 :          data_tmp = IAND(data_tmp, mask_left(35))
   44621      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44622      381172 :          ipack = ipack + 1
   44623      381172 :          packed_data(ipack) = pack_tmp
   44624      381172 :          data_tmp = full_data(idata)
   44625      381172 :          pack_tmp = ISHFT(data_tmp, 44)
   44626      381172 :          pack_tmp = ISHFT(pack_tmp, -44)
   44627      381172 :          idata = idata + 1
   44628      381172 :          data_tmp = full_data(idata)
   44629      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44630      381172 :          data_tmp = IAND(data_tmp, mask_left(44))
   44631      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44632      381172 :          ipack = ipack + 1
   44633      381172 :          packed_data(ipack) = pack_tmp
   44634      381172 :          data_tmp = full_data(idata)
   44635      381172 :          pack_tmp = ISHFT(data_tmp, 53)
   44636      381172 :          pack_tmp = ISHFT(pack_tmp, -53)
   44637      381172 :          idata = idata + 1
   44638      381172 :          data_tmp = full_data(idata)
   44639      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44640      381172 :          data_tmp = IAND(data_tmp, mask_left(53))
   44641      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44642      381172 :          ipack = ipack + 1
   44643      381172 :          packed_data(ipack) = pack_tmp
   44644      381172 :          data_tmp = full_data(idata)
   44645      381172 :          pack_tmp = ISHFT(data_tmp, 62)
   44646      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44647      381172 :          idata = idata + 1
   44648      381172 :          data_tmp = full_data(idata)
   44649      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44650      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44651      381172 :          pack_tmp = ISHFT(pack_tmp, -7)
   44652      381172 :          idata = idata + 1
   44653      381172 :          data_tmp = full_data(idata)
   44654      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44655      381172 :          data_tmp = IAND(data_tmp, mask_left(7))
   44656      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44657      381172 :          ipack = ipack + 1
   44658      381172 :          packed_data(ipack) = pack_tmp
   44659      381172 :          data_tmp = full_data(idata)
   44660      381172 :          pack_tmp = ISHFT(data_tmp, 16)
   44661      381172 :          pack_tmp = ISHFT(pack_tmp, -16)
   44662      381172 :          idata = idata + 1
   44663      381172 :          data_tmp = full_data(idata)
   44664      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44665      381172 :          data_tmp = IAND(data_tmp, mask_left(16))
   44666      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44667      381172 :          ipack = ipack + 1
   44668      381172 :          packed_data(ipack) = pack_tmp
   44669      381172 :          data_tmp = full_data(idata)
   44670      381172 :          pack_tmp = ISHFT(data_tmp, 25)
   44671      381172 :          pack_tmp = ISHFT(pack_tmp, -25)
   44672      381172 :          idata = idata + 1
   44673      381172 :          data_tmp = full_data(idata)
   44674      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44675      381172 :          data_tmp = IAND(data_tmp, mask_left(25))
   44676      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44677      381172 :          ipack = ipack + 1
   44678      381172 :          packed_data(ipack) = pack_tmp
   44679      381172 :          data_tmp = full_data(idata)
   44680      381172 :          pack_tmp = ISHFT(data_tmp, 34)
   44681      381172 :          pack_tmp = ISHFT(pack_tmp, -34)
   44682      381172 :          idata = idata + 1
   44683      381172 :          data_tmp = full_data(idata)
   44684      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44685      381172 :          data_tmp = IAND(data_tmp, mask_left(34))
   44686      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44687      381172 :          ipack = ipack + 1
   44688      381172 :          packed_data(ipack) = pack_tmp
   44689      381172 :          data_tmp = full_data(idata)
   44690      381172 :          pack_tmp = ISHFT(data_tmp, 43)
   44691      381172 :          pack_tmp = ISHFT(pack_tmp, -43)
   44692      381172 :          idata = idata + 1
   44693      381172 :          data_tmp = full_data(idata)
   44694      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44695      381172 :          data_tmp = IAND(data_tmp, mask_left(43))
   44696      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44697      381172 :          ipack = ipack + 1
   44698      381172 :          packed_data(ipack) = pack_tmp
   44699      381172 :          data_tmp = full_data(idata)
   44700      381172 :          pack_tmp = ISHFT(data_tmp, 52)
   44701      381172 :          pack_tmp = ISHFT(pack_tmp, -52)
   44702      381172 :          idata = idata + 1
   44703      381172 :          data_tmp = full_data(idata)
   44704      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44705      381172 :          data_tmp = IAND(data_tmp, mask_left(52))
   44706      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44707      381172 :          ipack = ipack + 1
   44708      381172 :          packed_data(ipack) = pack_tmp
   44709      381172 :          data_tmp = full_data(idata)
   44710      381172 :          pack_tmp = ISHFT(data_tmp, 61)
   44711      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44712      381172 :          idata = idata + 1
   44713      381172 :          data_tmp = full_data(idata)
   44714      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44715      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44716      381172 :          pack_tmp = ISHFT(pack_tmp, -6)
   44717      381172 :          idata = idata + 1
   44718      381172 :          data_tmp = full_data(idata)
   44719      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44720      381172 :          data_tmp = IAND(data_tmp, mask_left(6))
   44721      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44722      381172 :          ipack = ipack + 1
   44723      381172 :          packed_data(ipack) = pack_tmp
   44724      381172 :          data_tmp = full_data(idata)
   44725      381172 :          pack_tmp = ISHFT(data_tmp, 15)
   44726      381172 :          pack_tmp = ISHFT(pack_tmp, -15)
   44727      381172 :          idata = idata + 1
   44728      381172 :          data_tmp = full_data(idata)
   44729      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44730      381172 :          data_tmp = IAND(data_tmp, mask_left(15))
   44731      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44732      381172 :          ipack = ipack + 1
   44733      381172 :          packed_data(ipack) = pack_tmp
   44734      381172 :          data_tmp = full_data(idata)
   44735      381172 :          pack_tmp = ISHFT(data_tmp, 24)
   44736      381172 :          pack_tmp = ISHFT(pack_tmp, -24)
   44737      381172 :          idata = idata + 1
   44738      381172 :          data_tmp = full_data(idata)
   44739      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44740      381172 :          data_tmp = IAND(data_tmp, mask_left(24))
   44741      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44742      381172 :          ipack = ipack + 1
   44743      381172 :          packed_data(ipack) = pack_tmp
   44744      381172 :          data_tmp = full_data(idata)
   44745      381172 :          pack_tmp = ISHFT(data_tmp, 33)
   44746      381172 :          pack_tmp = ISHFT(pack_tmp, -33)
   44747      381172 :          idata = idata + 1
   44748      381172 :          data_tmp = full_data(idata)
   44749      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44750      381172 :          data_tmp = IAND(data_tmp, mask_left(33))
   44751      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44752      381172 :          ipack = ipack + 1
   44753      381172 :          packed_data(ipack) = pack_tmp
   44754      381172 :          data_tmp = full_data(idata)
   44755      381172 :          pack_tmp = ISHFT(data_tmp, 42)
   44756      381172 :          pack_tmp = ISHFT(pack_tmp, -42)
   44757      381172 :          idata = idata + 1
   44758      381172 :          data_tmp = full_data(idata)
   44759      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44760      381172 :          data_tmp = IAND(data_tmp, mask_left(42))
   44761      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44762      381172 :          ipack = ipack + 1
   44763      381172 :          packed_data(ipack) = pack_tmp
   44764      381172 :          data_tmp = full_data(idata)
   44765      381172 :          pack_tmp = ISHFT(data_tmp, 51)
   44766      381172 :          pack_tmp = ISHFT(pack_tmp, -51)
   44767      381172 :          idata = idata + 1
   44768      381172 :          data_tmp = full_data(idata)
   44769      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44770      381172 :          data_tmp = IAND(data_tmp, mask_left(51))
   44771      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44772      381172 :          ipack = ipack + 1
   44773      381172 :          packed_data(ipack) = pack_tmp
   44774      381172 :          data_tmp = full_data(idata)
   44775      381172 :          pack_tmp = ISHFT(data_tmp, 60)
   44776      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44777      381172 :          idata = idata + 1
   44778      381172 :          data_tmp = full_data(idata)
   44779      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44780      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44781      381172 :          pack_tmp = ISHFT(pack_tmp, -5)
   44782      381172 :          idata = idata + 1
   44783      381172 :          data_tmp = full_data(idata)
   44784      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44785      381172 :          data_tmp = IAND(data_tmp, mask_left(5))
   44786      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44787      381172 :          ipack = ipack + 1
   44788      381172 :          packed_data(ipack) = pack_tmp
   44789      381172 :          data_tmp = full_data(idata)
   44790      381172 :          pack_tmp = ISHFT(data_tmp, 14)
   44791      381172 :          pack_tmp = ISHFT(pack_tmp, -14)
   44792      381172 :          idata = idata + 1
   44793      381172 :          data_tmp = full_data(idata)
   44794      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44795      381172 :          data_tmp = IAND(data_tmp, mask_left(14))
   44796      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44797      381172 :          ipack = ipack + 1
   44798      381172 :          packed_data(ipack) = pack_tmp
   44799      381172 :          data_tmp = full_data(idata)
   44800      381172 :          pack_tmp = ISHFT(data_tmp, 23)
   44801      381172 :          pack_tmp = ISHFT(pack_tmp, -23)
   44802      381172 :          idata = idata + 1
   44803      381172 :          data_tmp = full_data(idata)
   44804      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44805      381172 :          data_tmp = IAND(data_tmp, mask_left(23))
   44806      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44807      381172 :          ipack = ipack + 1
   44808      381172 :          packed_data(ipack) = pack_tmp
   44809      381172 :          data_tmp = full_data(idata)
   44810      381172 :          pack_tmp = ISHFT(data_tmp, 32)
   44811      381172 :          pack_tmp = ISHFT(pack_tmp, -32)
   44812      381172 :          idata = idata + 1
   44813      381172 :          data_tmp = full_data(idata)
   44814      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44815      381172 :          data_tmp = IAND(data_tmp, mask_left(32))
   44816      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44817      381172 :          ipack = ipack + 1
   44818      381172 :          packed_data(ipack) = pack_tmp
   44819      381172 :          data_tmp = full_data(idata)
   44820      381172 :          pack_tmp = ISHFT(data_tmp, 41)
   44821      381172 :          pack_tmp = ISHFT(pack_tmp, -41)
   44822      381172 :          idata = idata + 1
   44823      381172 :          data_tmp = full_data(idata)
   44824      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44825      381172 :          data_tmp = IAND(data_tmp, mask_left(41))
   44826      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44827      381172 :          ipack = ipack + 1
   44828      381172 :          packed_data(ipack) = pack_tmp
   44829      381172 :          data_tmp = full_data(idata)
   44830      381172 :          pack_tmp = ISHFT(data_tmp, 50)
   44831      381172 :          pack_tmp = ISHFT(pack_tmp, -50)
   44832      381172 :          idata = idata + 1
   44833      381172 :          data_tmp = full_data(idata)
   44834      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44835      381172 :          data_tmp = IAND(data_tmp, mask_left(50))
   44836      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44837      381172 :          ipack = ipack + 1
   44838      381172 :          packed_data(ipack) = pack_tmp
   44839      381172 :          data_tmp = full_data(idata)
   44840      381172 :          pack_tmp = ISHFT(data_tmp, 59)
   44841      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44842      381172 :          idata = idata + 1
   44843      381172 :          data_tmp = full_data(idata)
   44844      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44845      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44846      381172 :          pack_tmp = ISHFT(pack_tmp, -4)
   44847      381172 :          idata = idata + 1
   44848      381172 :          data_tmp = full_data(idata)
   44849      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44850      381172 :          data_tmp = IAND(data_tmp, mask_left(4))
   44851      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44852      381172 :          ipack = ipack + 1
   44853      381172 :          packed_data(ipack) = pack_tmp
   44854      381172 :          data_tmp = full_data(idata)
   44855      381172 :          pack_tmp = ISHFT(data_tmp, 13)
   44856      381172 :          pack_tmp = ISHFT(pack_tmp, -13)
   44857      381172 :          idata = idata + 1
   44858      381172 :          data_tmp = full_data(idata)
   44859      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44860      381172 :          data_tmp = IAND(data_tmp, mask_left(13))
   44861      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44862      381172 :          ipack = ipack + 1
   44863      381172 :          packed_data(ipack) = pack_tmp
   44864      381172 :          data_tmp = full_data(idata)
   44865      381172 :          pack_tmp = ISHFT(data_tmp, 22)
   44866      381172 :          pack_tmp = ISHFT(pack_tmp, -22)
   44867      381172 :          idata = idata + 1
   44868      381172 :          data_tmp = full_data(idata)
   44869      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44870      381172 :          data_tmp = IAND(data_tmp, mask_left(22))
   44871      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44872      381172 :          ipack = ipack + 1
   44873      381172 :          packed_data(ipack) = pack_tmp
   44874      381172 :          data_tmp = full_data(idata)
   44875      381172 :          pack_tmp = ISHFT(data_tmp, 31)
   44876      381172 :          pack_tmp = ISHFT(pack_tmp, -31)
   44877      381172 :          idata = idata + 1
   44878      381172 :          data_tmp = full_data(idata)
   44879      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44880      381172 :          data_tmp = IAND(data_tmp, mask_left(31))
   44881      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44882      381172 :          ipack = ipack + 1
   44883      381172 :          packed_data(ipack) = pack_tmp
   44884      381172 :          data_tmp = full_data(idata)
   44885      381172 :          pack_tmp = ISHFT(data_tmp, 40)
   44886      381172 :          pack_tmp = ISHFT(pack_tmp, -40)
   44887      381172 :          idata = idata + 1
   44888      381172 :          data_tmp = full_data(idata)
   44889      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44890      381172 :          data_tmp = IAND(data_tmp, mask_left(40))
   44891      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44892      381172 :          ipack = ipack + 1
   44893      381172 :          packed_data(ipack) = pack_tmp
   44894      381172 :          data_tmp = full_data(idata)
   44895      381172 :          pack_tmp = ISHFT(data_tmp, 49)
   44896      381172 :          pack_tmp = ISHFT(pack_tmp, -49)
   44897      381172 :          idata = idata + 1
   44898      381172 :          data_tmp = full_data(idata)
   44899      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44900      381172 :          data_tmp = IAND(data_tmp, mask_left(49))
   44901      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44902      381172 :          ipack = ipack + 1
   44903      381172 :          packed_data(ipack) = pack_tmp
   44904      381172 :          data_tmp = full_data(idata)
   44905      381172 :          pack_tmp = ISHFT(data_tmp, 58)
   44906      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44907      381172 :          idata = idata + 1
   44908      381172 :          data_tmp = full_data(idata)
   44909      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44910      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44911      381172 :          pack_tmp = ISHFT(pack_tmp, -3)
   44912      381172 :          idata = idata + 1
   44913      381172 :          data_tmp = full_data(idata)
   44914      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44915      381172 :          data_tmp = IAND(data_tmp, mask_left(3))
   44916      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44917      381172 :          ipack = ipack + 1
   44918      381172 :          packed_data(ipack) = pack_tmp
   44919      381172 :          data_tmp = full_data(idata)
   44920      381172 :          pack_tmp = ISHFT(data_tmp, 12)
   44921      381172 :          pack_tmp = ISHFT(pack_tmp, -12)
   44922      381172 :          idata = idata + 1
   44923      381172 :          data_tmp = full_data(idata)
   44924      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44925      381172 :          data_tmp = IAND(data_tmp, mask_left(12))
   44926      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44927      381172 :          ipack = ipack + 1
   44928      381172 :          packed_data(ipack) = pack_tmp
   44929      381172 :          data_tmp = full_data(idata)
   44930      381172 :          pack_tmp = ISHFT(data_tmp, 21)
   44931      381172 :          pack_tmp = ISHFT(pack_tmp, -21)
   44932      381172 :          idata = idata + 1
   44933      381172 :          data_tmp = full_data(idata)
   44934      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44935      381172 :          data_tmp = IAND(data_tmp, mask_left(21))
   44936      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44937      381172 :          ipack = ipack + 1
   44938      381172 :          packed_data(ipack) = pack_tmp
   44939      381172 :          data_tmp = full_data(idata)
   44940      381172 :          pack_tmp = ISHFT(data_tmp, 30)
   44941      381172 :          pack_tmp = ISHFT(pack_tmp, -30)
   44942      381172 :          idata = idata + 1
   44943      381172 :          data_tmp = full_data(idata)
   44944      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44945      381172 :          data_tmp = IAND(data_tmp, mask_left(30))
   44946      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44947      381172 :          ipack = ipack + 1
   44948      381172 :          packed_data(ipack) = pack_tmp
   44949      381172 :          data_tmp = full_data(idata)
   44950      381172 :          pack_tmp = ISHFT(data_tmp, 39)
   44951      381172 :          pack_tmp = ISHFT(pack_tmp, -39)
   44952      381172 :          idata = idata + 1
   44953      381172 :          data_tmp = full_data(idata)
   44954      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44955      381172 :          data_tmp = IAND(data_tmp, mask_left(39))
   44956      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44957      381172 :          ipack = ipack + 1
   44958      381172 :          packed_data(ipack) = pack_tmp
   44959      381172 :          data_tmp = full_data(idata)
   44960      381172 :          pack_tmp = ISHFT(data_tmp, 48)
   44961      381172 :          pack_tmp = ISHFT(pack_tmp, -48)
   44962      381172 :          idata = idata + 1
   44963      381172 :          data_tmp = full_data(idata)
   44964      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44965      381172 :          data_tmp = IAND(data_tmp, mask_left(48))
   44966      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44967      381172 :          ipack = ipack + 1
   44968      381172 :          packed_data(ipack) = pack_tmp
   44969      381172 :          data_tmp = full_data(idata)
   44970      381172 :          pack_tmp = ISHFT(data_tmp, 57)
   44971      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44972      381172 :          idata = idata + 1
   44973      381172 :          data_tmp = full_data(idata)
   44974      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44975      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44976      381172 :          pack_tmp = ISHFT(pack_tmp, -2)
   44977      381172 :          idata = idata + 1
   44978      381172 :          data_tmp = full_data(idata)
   44979      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44980      381172 :          data_tmp = IAND(data_tmp, mask_left(2))
   44981      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44982      381172 :          ipack = ipack + 1
   44983      381172 :          packed_data(ipack) = pack_tmp
   44984      381172 :          data_tmp = full_data(idata)
   44985      381172 :          pack_tmp = ISHFT(data_tmp, 11)
   44986      381172 :          pack_tmp = ISHFT(pack_tmp, -11)
   44987      381172 :          idata = idata + 1
   44988      381172 :          data_tmp = full_data(idata)
   44989      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44990      381172 :          data_tmp = IAND(data_tmp, mask_left(11))
   44991      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44992      381172 :          ipack = ipack + 1
   44993      381172 :          packed_data(ipack) = pack_tmp
   44994      381172 :          data_tmp = full_data(idata)
   44995      381172 :          pack_tmp = ISHFT(data_tmp, 20)
   44996      381172 :          pack_tmp = ISHFT(pack_tmp, -20)
   44997      381172 :          idata = idata + 1
   44998      381172 :          data_tmp = full_data(idata)
   44999      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45000      381172 :          data_tmp = IAND(data_tmp, mask_left(20))
   45001      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45002      381172 :          ipack = ipack + 1
   45003      381172 :          packed_data(ipack) = pack_tmp
   45004      381172 :          data_tmp = full_data(idata)
   45005      381172 :          pack_tmp = ISHFT(data_tmp, 29)
   45006      381172 :          pack_tmp = ISHFT(pack_tmp, -29)
   45007      381172 :          idata = idata + 1
   45008      381172 :          data_tmp = full_data(idata)
   45009      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45010      381172 :          data_tmp = IAND(data_tmp, mask_left(29))
   45011      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45012      381172 :          ipack = ipack + 1
   45013      381172 :          packed_data(ipack) = pack_tmp
   45014      381172 :          data_tmp = full_data(idata)
   45015      381172 :          pack_tmp = ISHFT(data_tmp, 38)
   45016      381172 :          pack_tmp = ISHFT(pack_tmp, -38)
   45017      381172 :          idata = idata + 1
   45018      381172 :          data_tmp = full_data(idata)
   45019      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45020      381172 :          data_tmp = IAND(data_tmp, mask_left(38))
   45021      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45022      381172 :          ipack = ipack + 1
   45023      381172 :          packed_data(ipack) = pack_tmp
   45024      381172 :          data_tmp = full_data(idata)
   45025      381172 :          pack_tmp = ISHFT(data_tmp, 47)
   45026      381172 :          pack_tmp = ISHFT(pack_tmp, -47)
   45027      381172 :          idata = idata + 1
   45028      381172 :          data_tmp = full_data(idata)
   45029      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45030      381172 :          data_tmp = IAND(data_tmp, mask_left(47))
   45031      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45032      381172 :          ipack = ipack + 1
   45033      381172 :          packed_data(ipack) = pack_tmp
   45034      381172 :          data_tmp = full_data(idata)
   45035      381172 :          pack_tmp = ISHFT(data_tmp, 56)
   45036      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   45037      381172 :          idata = idata + 1
   45038      381172 :          data_tmp = full_data(idata)
   45039      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45040      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45041      381172 :          pack_tmp = ISHFT(pack_tmp, -1)
   45042      381172 :          idata = idata + 1
   45043      381172 :          data_tmp = full_data(idata)
   45044      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45045      381172 :          data_tmp = IAND(data_tmp, mask_left(1))
   45046      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45047      381172 :          ipack = ipack + 1
   45048      381172 :          packed_data(ipack) = pack_tmp
   45049      381172 :          data_tmp = full_data(idata)
   45050      381172 :          pack_tmp = ISHFT(data_tmp, 10)
   45051      381172 :          pack_tmp = ISHFT(pack_tmp, -10)
   45052      381172 :          idata = idata + 1
   45053      381172 :          data_tmp = full_data(idata)
   45054      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45055      381172 :          data_tmp = IAND(data_tmp, mask_left(10))
   45056      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45057      381172 :          ipack = ipack + 1
   45058      381172 :          packed_data(ipack) = pack_tmp
   45059      381172 :          data_tmp = full_data(idata)
   45060      381172 :          pack_tmp = ISHFT(data_tmp, 19)
   45061      381172 :          pack_tmp = ISHFT(pack_tmp, -19)
   45062      381172 :          idata = idata + 1
   45063      381172 :          data_tmp = full_data(idata)
   45064      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45065      381172 :          data_tmp = IAND(data_tmp, mask_left(19))
   45066      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45067      381172 :          ipack = ipack + 1
   45068      381172 :          packed_data(ipack) = pack_tmp
   45069      381172 :          data_tmp = full_data(idata)
   45070      381172 :          pack_tmp = ISHFT(data_tmp, 28)
   45071      381172 :          pack_tmp = ISHFT(pack_tmp, -28)
   45072      381172 :          idata = idata + 1
   45073      381172 :          data_tmp = full_data(idata)
   45074      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45075      381172 :          data_tmp = IAND(data_tmp, mask_left(28))
   45076      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45077      381172 :          ipack = ipack + 1
   45078      381172 :          packed_data(ipack) = pack_tmp
   45079      381172 :          data_tmp = full_data(idata)
   45080      381172 :          pack_tmp = ISHFT(data_tmp, 37)
   45081      381172 :          pack_tmp = ISHFT(pack_tmp, -37)
   45082      381172 :          idata = idata + 1
   45083      381172 :          data_tmp = full_data(idata)
   45084      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45085      381172 :          data_tmp = IAND(data_tmp, mask_left(37))
   45086      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45087      381172 :          ipack = ipack + 1
   45088      381172 :          packed_data(ipack) = pack_tmp
   45089      381172 :          data_tmp = full_data(idata)
   45090      381172 :          pack_tmp = ISHFT(data_tmp, 46)
   45091      381172 :          pack_tmp = ISHFT(pack_tmp, -46)
   45092      381172 :          idata = idata + 1
   45093      381172 :          data_tmp = full_data(idata)
   45094      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45095      381172 :          data_tmp = IAND(data_tmp, mask_left(46))
   45096      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45097      381172 :          ipack = ipack + 1
   45098      381172 :          packed_data(ipack) = pack_tmp
   45099      381172 :          data_tmp = full_data(idata)
   45100      381172 :          pack_tmp = ISHFT(data_tmp, 55)
   45101      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   45102      381172 :          idata = idata + 1
   45103      381172 :          data_tmp = full_data(idata)
   45104      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45105      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45106             :          pack_tmp = ISHFT(pack_tmp, 0)
   45107      381172 :          pack_tmp = ISHFT(pack_tmp, 0)
   45108      381172 :          ipack = ipack + 1
   45109      381186 :          packed_data(ipack) = pack_tmp
   45110             :       END DO
   45111       23972 :       IF (Ndata_rep < Ndata) THEN
   45112         280 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   45113             :       END IF
   45114       23972 :    END SUBROUTINE ints2bits_55
   45115             : 
   45116             : ! **************************************************************************************************
   45117             : !> \brief ...
   45118             : !> \param Ndata ...
   45119             : !> \param packed_data ...
   45120             : !> \param full_data ...
   45121             : ! **************************************************************************************************
   45122      106721 :    SUBROUTINE bits2ints_55(Ndata, packed_data, full_data)
   45123             :       INTEGER, INTENT(IN)                                :: Ndata
   45124             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   45125             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   45126             : 
   45127             :       INTEGER, PARAMETER                                 :: Nbits = 55
   45128             : 
   45129             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   45130             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   45131             : 
   45132      106721 :       ipack = 0
   45133      106721 :       idata = 0
   45134      106721 :       pack_tmp = 0
   45135      106721 :       Ndata_rep = (Ndata/64)*64
   45136      106721 :       DO kdata = 1, Ndata_rep, 64
   45137     1618830 :          idata = idata + 1
   45138     1618830 :          data_tmp = ISHFT(pack_tmp, 55)
   45139     1618830 :          ipack = ipack + 1
   45140     1618830 :          pack_tmp = packed_data(ipack)
   45141     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   45142     1618830 :          pack_tmp = ISHFT(pack_tmp, -55)
   45143     1618830 :          idata = idata + 1
   45144     1618830 :          data_tmp = ISHFT(pack_tmp, 46)
   45145     1618830 :          ipack = ipack + 1
   45146     1618830 :          pack_tmp = packed_data(ipack)
   45147     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   45148     1618830 :          pack_tmp = ISHFT(pack_tmp, -46)
   45149     1618830 :          idata = idata + 1
   45150     1618830 :          data_tmp = ISHFT(pack_tmp, 37)
   45151     1618830 :          ipack = ipack + 1
   45152     1618830 :          pack_tmp = packed_data(ipack)
   45153     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   45154     1618830 :          pack_tmp = ISHFT(pack_tmp, -37)
   45155     1618830 :          idata = idata + 1
   45156     1618830 :          data_tmp = ISHFT(pack_tmp, 28)
   45157     1618830 :          ipack = ipack + 1
   45158     1618830 :          pack_tmp = packed_data(ipack)
   45159     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   45160     1618830 :          pack_tmp = ISHFT(pack_tmp, -28)
   45161     1618830 :          idata = idata + 1
   45162     1618830 :          data_tmp = ISHFT(pack_tmp, 19)
   45163     1618830 :          ipack = ipack + 1
   45164     1618830 :          pack_tmp = packed_data(ipack)
   45165     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   45166     1618830 :          pack_tmp = ISHFT(pack_tmp, -19)
   45167     1618830 :          idata = idata + 1
   45168     1618830 :          data_tmp = ISHFT(pack_tmp, 10)
   45169     1618830 :          ipack = ipack + 1
   45170     1618830 :          pack_tmp = packed_data(ipack)
   45171     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   45172     1618830 :          pack_tmp = ISHFT(pack_tmp, -10)
   45173     1618830 :          idata = idata + 1
   45174     1618830 :          data_tmp = ISHFT(pack_tmp, 1)
   45175     1618830 :          ipack = ipack + 1
   45176     1618830 :          pack_tmp = packed_data(ipack)
   45177     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   45178     1618830 :          pack_tmp = ISHFT(pack_tmp, -1)
   45179     1618830 :          idata = idata + 1
   45180     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45181     1618830 :          full_data(idata) = data_tmp
   45182     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45183     1618830 :          idata = idata + 1
   45184     1618830 :          data_tmp = ISHFT(pack_tmp, 47)
   45185     1618830 :          ipack = ipack + 1
   45186     1618830 :          pack_tmp = packed_data(ipack)
   45187     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   45188     1618830 :          pack_tmp = ISHFT(pack_tmp, -47)
   45189     1618830 :          idata = idata + 1
   45190     1618830 :          data_tmp = ISHFT(pack_tmp, 38)
   45191     1618830 :          ipack = ipack + 1
   45192     1618830 :          pack_tmp = packed_data(ipack)
   45193     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   45194     1618830 :          pack_tmp = ISHFT(pack_tmp, -38)
   45195     1618830 :          idata = idata + 1
   45196     1618830 :          data_tmp = ISHFT(pack_tmp, 29)
   45197     1618830 :          ipack = ipack + 1
   45198     1618830 :          pack_tmp = packed_data(ipack)
   45199     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   45200     1618830 :          pack_tmp = ISHFT(pack_tmp, -29)
   45201     1618830 :          idata = idata + 1
   45202     1618830 :          data_tmp = ISHFT(pack_tmp, 20)
   45203     1618830 :          ipack = ipack + 1
   45204     1618830 :          pack_tmp = packed_data(ipack)
   45205     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   45206     1618830 :          pack_tmp = ISHFT(pack_tmp, -20)
   45207     1618830 :          idata = idata + 1
   45208     1618830 :          data_tmp = ISHFT(pack_tmp, 11)
   45209     1618830 :          ipack = ipack + 1
   45210     1618830 :          pack_tmp = packed_data(ipack)
   45211     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   45212     1618830 :          pack_tmp = ISHFT(pack_tmp, -11)
   45213     1618830 :          idata = idata + 1
   45214     1618830 :          data_tmp = ISHFT(pack_tmp, 2)
   45215     1618830 :          ipack = ipack + 1
   45216     1618830 :          pack_tmp = packed_data(ipack)
   45217     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   45218     1618830 :          pack_tmp = ISHFT(pack_tmp, -2)
   45219     1618830 :          idata = idata + 1
   45220     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45221     1618830 :          full_data(idata) = data_tmp
   45222     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45223     1618830 :          idata = idata + 1
   45224     1618830 :          data_tmp = ISHFT(pack_tmp, 48)
   45225     1618830 :          ipack = ipack + 1
   45226     1618830 :          pack_tmp = packed_data(ipack)
   45227     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   45228     1618830 :          pack_tmp = ISHFT(pack_tmp, -48)
   45229     1618830 :          idata = idata + 1
   45230     1618830 :          data_tmp = ISHFT(pack_tmp, 39)
   45231     1618830 :          ipack = ipack + 1
   45232     1618830 :          pack_tmp = packed_data(ipack)
   45233     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   45234     1618830 :          pack_tmp = ISHFT(pack_tmp, -39)
   45235     1618830 :          idata = idata + 1
   45236     1618830 :          data_tmp = ISHFT(pack_tmp, 30)
   45237     1618830 :          ipack = ipack + 1
   45238     1618830 :          pack_tmp = packed_data(ipack)
   45239     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   45240     1618830 :          pack_tmp = ISHFT(pack_tmp, -30)
   45241     1618830 :          idata = idata + 1
   45242     1618830 :          data_tmp = ISHFT(pack_tmp, 21)
   45243     1618830 :          ipack = ipack + 1
   45244     1618830 :          pack_tmp = packed_data(ipack)
   45245     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   45246     1618830 :          pack_tmp = ISHFT(pack_tmp, -21)
   45247     1618830 :          idata = idata + 1
   45248     1618830 :          data_tmp = ISHFT(pack_tmp, 12)
   45249     1618830 :          ipack = ipack + 1
   45250     1618830 :          pack_tmp = packed_data(ipack)
   45251     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   45252     1618830 :          pack_tmp = ISHFT(pack_tmp, -12)
   45253     1618830 :          idata = idata + 1
   45254     1618830 :          data_tmp = ISHFT(pack_tmp, 3)
   45255     1618830 :          ipack = ipack + 1
   45256     1618830 :          pack_tmp = packed_data(ipack)
   45257     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   45258     1618830 :          pack_tmp = ISHFT(pack_tmp, -3)
   45259     1618830 :          idata = idata + 1
   45260     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45261     1618830 :          full_data(idata) = data_tmp
   45262     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45263     1618830 :          idata = idata + 1
   45264     1618830 :          data_tmp = ISHFT(pack_tmp, 49)
   45265     1618830 :          ipack = ipack + 1
   45266     1618830 :          pack_tmp = packed_data(ipack)
   45267     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   45268     1618830 :          pack_tmp = ISHFT(pack_tmp, -49)
   45269     1618830 :          idata = idata + 1
   45270     1618830 :          data_tmp = ISHFT(pack_tmp, 40)
   45271     1618830 :          ipack = ipack + 1
   45272     1618830 :          pack_tmp = packed_data(ipack)
   45273     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   45274     1618830 :          pack_tmp = ISHFT(pack_tmp, -40)
   45275     1618830 :          idata = idata + 1
   45276     1618830 :          data_tmp = ISHFT(pack_tmp, 31)
   45277     1618830 :          ipack = ipack + 1
   45278     1618830 :          pack_tmp = packed_data(ipack)
   45279     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   45280     1618830 :          pack_tmp = ISHFT(pack_tmp, -31)
   45281     1618830 :          idata = idata + 1
   45282     1618830 :          data_tmp = ISHFT(pack_tmp, 22)
   45283     1618830 :          ipack = ipack + 1
   45284     1618830 :          pack_tmp = packed_data(ipack)
   45285     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   45286     1618830 :          pack_tmp = ISHFT(pack_tmp, -22)
   45287     1618830 :          idata = idata + 1
   45288     1618830 :          data_tmp = ISHFT(pack_tmp, 13)
   45289     1618830 :          ipack = ipack + 1
   45290     1618830 :          pack_tmp = packed_data(ipack)
   45291     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   45292     1618830 :          pack_tmp = ISHFT(pack_tmp, -13)
   45293     1618830 :          idata = idata + 1
   45294     1618830 :          data_tmp = ISHFT(pack_tmp, 4)
   45295     1618830 :          ipack = ipack + 1
   45296     1618830 :          pack_tmp = packed_data(ipack)
   45297     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   45298     1618830 :          pack_tmp = ISHFT(pack_tmp, -4)
   45299     1618830 :          idata = idata + 1
   45300     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45301     1618830 :          full_data(idata) = data_tmp
   45302     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45303     1618830 :          idata = idata + 1
   45304     1618830 :          data_tmp = ISHFT(pack_tmp, 50)
   45305     1618830 :          ipack = ipack + 1
   45306     1618830 :          pack_tmp = packed_data(ipack)
   45307     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   45308     1618830 :          pack_tmp = ISHFT(pack_tmp, -50)
   45309     1618830 :          idata = idata + 1
   45310     1618830 :          data_tmp = ISHFT(pack_tmp, 41)
   45311     1618830 :          ipack = ipack + 1
   45312     1618830 :          pack_tmp = packed_data(ipack)
   45313     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   45314     1618830 :          pack_tmp = ISHFT(pack_tmp, -41)
   45315     1618830 :          idata = idata + 1
   45316     1618830 :          data_tmp = ISHFT(pack_tmp, 32)
   45317     1618830 :          ipack = ipack + 1
   45318     1618830 :          pack_tmp = packed_data(ipack)
   45319     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   45320     1618830 :          pack_tmp = ISHFT(pack_tmp, -32)
   45321     1618830 :          idata = idata + 1
   45322     1618830 :          data_tmp = ISHFT(pack_tmp, 23)
   45323     1618830 :          ipack = ipack + 1
   45324     1618830 :          pack_tmp = packed_data(ipack)
   45325     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   45326     1618830 :          pack_tmp = ISHFT(pack_tmp, -23)
   45327     1618830 :          idata = idata + 1
   45328     1618830 :          data_tmp = ISHFT(pack_tmp, 14)
   45329     1618830 :          ipack = ipack + 1
   45330     1618830 :          pack_tmp = packed_data(ipack)
   45331     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   45332     1618830 :          pack_tmp = ISHFT(pack_tmp, -14)
   45333     1618830 :          idata = idata + 1
   45334     1618830 :          data_tmp = ISHFT(pack_tmp, 5)
   45335     1618830 :          ipack = ipack + 1
   45336     1618830 :          pack_tmp = packed_data(ipack)
   45337     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   45338     1618830 :          pack_tmp = ISHFT(pack_tmp, -5)
   45339     1618830 :          idata = idata + 1
   45340     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45341     1618830 :          full_data(idata) = data_tmp
   45342     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45343     1618830 :          idata = idata + 1
   45344     1618830 :          data_tmp = ISHFT(pack_tmp, 51)
   45345     1618830 :          ipack = ipack + 1
   45346     1618830 :          pack_tmp = packed_data(ipack)
   45347     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   45348     1618830 :          pack_tmp = ISHFT(pack_tmp, -51)
   45349     1618830 :          idata = idata + 1
   45350     1618830 :          data_tmp = ISHFT(pack_tmp, 42)
   45351     1618830 :          ipack = ipack + 1
   45352     1618830 :          pack_tmp = packed_data(ipack)
   45353     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   45354     1618830 :          pack_tmp = ISHFT(pack_tmp, -42)
   45355     1618830 :          idata = idata + 1
   45356     1618830 :          data_tmp = ISHFT(pack_tmp, 33)
   45357     1618830 :          ipack = ipack + 1
   45358     1618830 :          pack_tmp = packed_data(ipack)
   45359     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   45360     1618830 :          pack_tmp = ISHFT(pack_tmp, -33)
   45361     1618830 :          idata = idata + 1
   45362     1618830 :          data_tmp = ISHFT(pack_tmp, 24)
   45363     1618830 :          ipack = ipack + 1
   45364     1618830 :          pack_tmp = packed_data(ipack)
   45365     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   45366     1618830 :          pack_tmp = ISHFT(pack_tmp, -24)
   45367     1618830 :          idata = idata + 1
   45368     1618830 :          data_tmp = ISHFT(pack_tmp, 15)
   45369     1618830 :          ipack = ipack + 1
   45370     1618830 :          pack_tmp = packed_data(ipack)
   45371     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   45372     1618830 :          pack_tmp = ISHFT(pack_tmp, -15)
   45373     1618830 :          idata = idata + 1
   45374     1618830 :          data_tmp = ISHFT(pack_tmp, 6)
   45375     1618830 :          ipack = ipack + 1
   45376     1618830 :          pack_tmp = packed_data(ipack)
   45377     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   45378     1618830 :          pack_tmp = ISHFT(pack_tmp, -6)
   45379     1618830 :          idata = idata + 1
   45380     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45381     1618830 :          full_data(idata) = data_tmp
   45382     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45383     1618830 :          idata = idata + 1
   45384     1618830 :          data_tmp = ISHFT(pack_tmp, 52)
   45385     1618830 :          ipack = ipack + 1
   45386     1618830 :          pack_tmp = packed_data(ipack)
   45387     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   45388     1618830 :          pack_tmp = ISHFT(pack_tmp, -52)
   45389     1618830 :          idata = idata + 1
   45390     1618830 :          data_tmp = ISHFT(pack_tmp, 43)
   45391     1618830 :          ipack = ipack + 1
   45392     1618830 :          pack_tmp = packed_data(ipack)
   45393     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   45394     1618830 :          pack_tmp = ISHFT(pack_tmp, -43)
   45395     1618830 :          idata = idata + 1
   45396     1618830 :          data_tmp = ISHFT(pack_tmp, 34)
   45397     1618830 :          ipack = ipack + 1
   45398     1618830 :          pack_tmp = packed_data(ipack)
   45399     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   45400     1618830 :          pack_tmp = ISHFT(pack_tmp, -34)
   45401     1618830 :          idata = idata + 1
   45402     1618830 :          data_tmp = ISHFT(pack_tmp, 25)
   45403     1618830 :          ipack = ipack + 1
   45404     1618830 :          pack_tmp = packed_data(ipack)
   45405     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   45406     1618830 :          pack_tmp = ISHFT(pack_tmp, -25)
   45407     1618830 :          idata = idata + 1
   45408     1618830 :          data_tmp = ISHFT(pack_tmp, 16)
   45409     1618830 :          ipack = ipack + 1
   45410     1618830 :          pack_tmp = packed_data(ipack)
   45411     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   45412     1618830 :          pack_tmp = ISHFT(pack_tmp, -16)
   45413     1618830 :          idata = idata + 1
   45414     1618830 :          data_tmp = ISHFT(pack_tmp, 7)
   45415     1618830 :          ipack = ipack + 1
   45416     1618830 :          pack_tmp = packed_data(ipack)
   45417     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   45418     1618830 :          pack_tmp = ISHFT(pack_tmp, -7)
   45419     1618830 :          idata = idata + 1
   45420     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45421     1618830 :          full_data(idata) = data_tmp
   45422     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45423     1618830 :          idata = idata + 1
   45424     1618830 :          data_tmp = ISHFT(pack_tmp, 53)
   45425     1618830 :          ipack = ipack + 1
   45426     1618830 :          pack_tmp = packed_data(ipack)
   45427     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   45428     1618830 :          pack_tmp = ISHFT(pack_tmp, -53)
   45429     1618830 :          idata = idata + 1
   45430     1618830 :          data_tmp = ISHFT(pack_tmp, 44)
   45431     1618830 :          ipack = ipack + 1
   45432     1618830 :          pack_tmp = packed_data(ipack)
   45433     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   45434     1618830 :          pack_tmp = ISHFT(pack_tmp, -44)
   45435     1618830 :          idata = idata + 1
   45436     1618830 :          data_tmp = ISHFT(pack_tmp, 35)
   45437     1618830 :          ipack = ipack + 1
   45438     1618830 :          pack_tmp = packed_data(ipack)
   45439     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   45440     1618830 :          pack_tmp = ISHFT(pack_tmp, -35)
   45441     1618830 :          idata = idata + 1
   45442     1618830 :          data_tmp = ISHFT(pack_tmp, 26)
   45443     1618830 :          ipack = ipack + 1
   45444     1618830 :          pack_tmp = packed_data(ipack)
   45445     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   45446     1618830 :          pack_tmp = ISHFT(pack_tmp, -26)
   45447     1618830 :          idata = idata + 1
   45448     1618830 :          data_tmp = ISHFT(pack_tmp, 17)
   45449     1618830 :          ipack = ipack + 1
   45450     1618830 :          pack_tmp = packed_data(ipack)
   45451     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   45452     1618830 :          pack_tmp = ISHFT(pack_tmp, -17)
   45453     1618830 :          idata = idata + 1
   45454     1618830 :          data_tmp = ISHFT(pack_tmp, 8)
   45455     1618830 :          ipack = ipack + 1
   45456     1618830 :          pack_tmp = packed_data(ipack)
   45457     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   45458     1618830 :          pack_tmp = ISHFT(pack_tmp, -8)
   45459     1618830 :          idata = idata + 1
   45460     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45461     1618830 :          full_data(idata) = data_tmp
   45462     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45463     1618830 :          idata = idata + 1
   45464     1618830 :          data_tmp = ISHFT(pack_tmp, 54)
   45465     1618830 :          ipack = ipack + 1
   45466     1618830 :          pack_tmp = packed_data(ipack)
   45467     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   45468     1618830 :          pack_tmp = ISHFT(pack_tmp, -54)
   45469     1618830 :          idata = idata + 1
   45470     1618830 :          data_tmp = ISHFT(pack_tmp, 45)
   45471     1618830 :          ipack = ipack + 1
   45472     1618830 :          pack_tmp = packed_data(ipack)
   45473     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   45474     1618830 :          pack_tmp = ISHFT(pack_tmp, -45)
   45475     1618830 :          idata = idata + 1
   45476     1618830 :          data_tmp = ISHFT(pack_tmp, 36)
   45477     1618830 :          ipack = ipack + 1
   45478     1618830 :          pack_tmp = packed_data(ipack)
   45479     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   45480     1618830 :          pack_tmp = ISHFT(pack_tmp, -36)
   45481     1618830 :          idata = idata + 1
   45482     1618830 :          data_tmp = ISHFT(pack_tmp, 27)
   45483     1618830 :          ipack = ipack + 1
   45484     1618830 :          pack_tmp = packed_data(ipack)
   45485     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   45486     1618830 :          pack_tmp = ISHFT(pack_tmp, -27)
   45487     1618830 :          idata = idata + 1
   45488     1618830 :          data_tmp = ISHFT(pack_tmp, 18)
   45489     1618830 :          ipack = ipack + 1
   45490     1618830 :          pack_tmp = packed_data(ipack)
   45491     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   45492     1618830 :          pack_tmp = ISHFT(pack_tmp, -18)
   45493     1618830 :          idata = idata + 1
   45494     1618830 :          data_tmp = ISHFT(pack_tmp, 9)
   45495     1618830 :          ipack = ipack + 1
   45496     1618830 :          pack_tmp = packed_data(ipack)
   45497     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   45498     1618830 :          pack_tmp = ISHFT(pack_tmp, -9)
   45499     1618830 :          idata = idata + 1
   45500     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45501     1618830 :          full_data(idata) = data_tmp
   45502     1619330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45503             :       END DO
   45504      106721 :       IF (Ndata_rep < Ndata) THEN
   45505       10436 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   45506             :       END IF
   45507      106721 :    END SUBROUTINE bits2ints_55
   45508             : 
   45509             : ! **************************************************************************************************
   45510             : !> \brief ...
   45511             : !> \param Ndata ...
   45512             : !> \param packed_data ...
   45513             : !> \param full_data ...
   45514             : ! **************************************************************************************************
   45515       23814 :    SUBROUTINE ints2bits_56(Ndata, packed_data, full_data)
   45516             :       INTEGER, INTENT(IN)                                :: Ndata
   45517             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   45518             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   45519             : 
   45520             :       INTEGER, PARAMETER                                 :: Nbits = 56
   45521             : 
   45522             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   45523             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   45524             : 
   45525       23814 :       idata = 0
   45526       23814 :       ipack = 0
   45527       23814 :       Ndata_rep = (Ndata/64)*64
   45528       23814 :       DO kdata = 1, Ndata_rep, 64
   45529      379902 :          pack_tmp = 0
   45530      379902 :          idata = idata + 1
   45531      379902 :          data_tmp = full_data(idata)
   45532      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45533      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45534      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45535      379902 :          idata = idata + 1
   45536      379902 :          data_tmp = full_data(idata)
   45537      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45538      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45539      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45540      379902 :          ipack = ipack + 1
   45541      379902 :          packed_data(ipack) = pack_tmp
   45542      379902 :          data_tmp = full_data(idata)
   45543      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45544      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45545      379902 :          idata = idata + 1
   45546      379902 :          data_tmp = full_data(idata)
   45547      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45548      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45549      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45550      379902 :          ipack = ipack + 1
   45551      379902 :          packed_data(ipack) = pack_tmp
   45552      379902 :          data_tmp = full_data(idata)
   45553      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45554      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45555      379902 :          idata = idata + 1
   45556      379902 :          data_tmp = full_data(idata)
   45557      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45558      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45559      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45560      379902 :          ipack = ipack + 1
   45561      379902 :          packed_data(ipack) = pack_tmp
   45562      379902 :          data_tmp = full_data(idata)
   45563      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45564      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45565      379902 :          idata = idata + 1
   45566      379902 :          data_tmp = full_data(idata)
   45567      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45568      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45569      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45570      379902 :          ipack = ipack + 1
   45571      379902 :          packed_data(ipack) = pack_tmp
   45572      379902 :          data_tmp = full_data(idata)
   45573      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45574      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45575      379902 :          idata = idata + 1
   45576      379902 :          data_tmp = full_data(idata)
   45577      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45578      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45579      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45580      379902 :          ipack = ipack + 1
   45581      379902 :          packed_data(ipack) = pack_tmp
   45582      379902 :          data_tmp = full_data(idata)
   45583      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45584      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45585      379902 :          idata = idata + 1
   45586      379902 :          data_tmp = full_data(idata)
   45587      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45588      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45589      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45590      379902 :          ipack = ipack + 1
   45591      379902 :          packed_data(ipack) = pack_tmp
   45592      379902 :          data_tmp = full_data(idata)
   45593      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45594      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45595      379902 :          idata = idata + 1
   45596      379902 :          data_tmp = full_data(idata)
   45597      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45598      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45599      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45600      379902 :          idata = idata + 1
   45601      379902 :          data_tmp = full_data(idata)
   45602             :          data_tmp = ISHFT(data_tmp, 8)
   45603      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45604      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45605      379902 :          ipack = ipack + 1
   45606      379902 :          packed_data(ipack) = pack_tmp
   45607      379902 :          data_tmp = full_data(idata)
   45608      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45609      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45610      379902 :          idata = idata + 1
   45611      379902 :          data_tmp = full_data(idata)
   45612      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45613      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45614      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45615      379902 :          ipack = ipack + 1
   45616      379902 :          packed_data(ipack) = pack_tmp
   45617      379902 :          data_tmp = full_data(idata)
   45618      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45619      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45620      379902 :          idata = idata + 1
   45621      379902 :          data_tmp = full_data(idata)
   45622      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45623      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45624      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45625      379902 :          ipack = ipack + 1
   45626      379902 :          packed_data(ipack) = pack_tmp
   45627      379902 :          data_tmp = full_data(idata)
   45628      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45629      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45630      379902 :          idata = idata + 1
   45631      379902 :          data_tmp = full_data(idata)
   45632      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45633      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45634      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45635      379902 :          ipack = ipack + 1
   45636      379902 :          packed_data(ipack) = pack_tmp
   45637      379902 :          data_tmp = full_data(idata)
   45638      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45639      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45640      379902 :          idata = idata + 1
   45641      379902 :          data_tmp = full_data(idata)
   45642      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45643      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45644      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45645      379902 :          ipack = ipack + 1
   45646      379902 :          packed_data(ipack) = pack_tmp
   45647      379902 :          data_tmp = full_data(idata)
   45648      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45649      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45650      379902 :          idata = idata + 1
   45651      379902 :          data_tmp = full_data(idata)
   45652      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45653      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45654      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45655      379902 :          ipack = ipack + 1
   45656      379902 :          packed_data(ipack) = pack_tmp
   45657      379902 :          data_tmp = full_data(idata)
   45658      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45659      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45660      379902 :          idata = idata + 1
   45661      379902 :          data_tmp = full_data(idata)
   45662      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45663      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45664      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45665      379902 :          ipack = ipack + 1
   45666      379902 :          packed_data(ipack) = pack_tmp
   45667      379902 :          data_tmp = full_data(idata)
   45668      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45669      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45670      379902 :          idata = idata + 1
   45671      379902 :          data_tmp = full_data(idata)
   45672      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45673      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45674      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45675      379902 :          idata = idata + 1
   45676      379902 :          data_tmp = full_data(idata)
   45677             :          data_tmp = ISHFT(data_tmp, 8)
   45678      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45679      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45680      379902 :          ipack = ipack + 1
   45681      379902 :          packed_data(ipack) = pack_tmp
   45682      379902 :          data_tmp = full_data(idata)
   45683      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45684      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45685      379902 :          idata = idata + 1
   45686      379902 :          data_tmp = full_data(idata)
   45687      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45688      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45689      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45690      379902 :          ipack = ipack + 1
   45691      379902 :          packed_data(ipack) = pack_tmp
   45692      379902 :          data_tmp = full_data(idata)
   45693      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45694      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45695      379902 :          idata = idata + 1
   45696      379902 :          data_tmp = full_data(idata)
   45697      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45698      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45699      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45700      379902 :          ipack = ipack + 1
   45701      379902 :          packed_data(ipack) = pack_tmp
   45702      379902 :          data_tmp = full_data(idata)
   45703      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45704      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45705      379902 :          idata = idata + 1
   45706      379902 :          data_tmp = full_data(idata)
   45707      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45708      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45709      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45710      379902 :          ipack = ipack + 1
   45711      379902 :          packed_data(ipack) = pack_tmp
   45712      379902 :          data_tmp = full_data(idata)
   45713      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45714      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45715      379902 :          idata = idata + 1
   45716      379902 :          data_tmp = full_data(idata)
   45717      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45718      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45719      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45720      379902 :          ipack = ipack + 1
   45721      379902 :          packed_data(ipack) = pack_tmp
   45722      379902 :          data_tmp = full_data(idata)
   45723      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45724      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45725      379902 :          idata = idata + 1
   45726      379902 :          data_tmp = full_data(idata)
   45727      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45728      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45729      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45730      379902 :          ipack = ipack + 1
   45731      379902 :          packed_data(ipack) = pack_tmp
   45732      379902 :          data_tmp = full_data(idata)
   45733      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45734      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45735      379902 :          idata = idata + 1
   45736      379902 :          data_tmp = full_data(idata)
   45737      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45738      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45739      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45740      379902 :          ipack = ipack + 1
   45741      379902 :          packed_data(ipack) = pack_tmp
   45742      379902 :          data_tmp = full_data(idata)
   45743      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45744      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45745      379902 :          idata = idata + 1
   45746      379902 :          data_tmp = full_data(idata)
   45747      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45748      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45749      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45750      379902 :          idata = idata + 1
   45751      379902 :          data_tmp = full_data(idata)
   45752             :          data_tmp = ISHFT(data_tmp, 8)
   45753      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45754      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45755      379902 :          ipack = ipack + 1
   45756      379902 :          packed_data(ipack) = pack_tmp
   45757      379902 :          data_tmp = full_data(idata)
   45758      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45759      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45760      379902 :          idata = idata + 1
   45761      379902 :          data_tmp = full_data(idata)
   45762      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45763      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45764      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45765      379902 :          ipack = ipack + 1
   45766      379902 :          packed_data(ipack) = pack_tmp
   45767      379902 :          data_tmp = full_data(idata)
   45768      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45769      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45770      379902 :          idata = idata + 1
   45771      379902 :          data_tmp = full_data(idata)
   45772      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45773      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45774      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45775      379902 :          ipack = ipack + 1
   45776      379902 :          packed_data(ipack) = pack_tmp
   45777      379902 :          data_tmp = full_data(idata)
   45778      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45779      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45780      379902 :          idata = idata + 1
   45781      379902 :          data_tmp = full_data(idata)
   45782      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45783      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45784      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45785      379902 :          ipack = ipack + 1
   45786      379902 :          packed_data(ipack) = pack_tmp
   45787      379902 :          data_tmp = full_data(idata)
   45788      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45789      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45790      379902 :          idata = idata + 1
   45791      379902 :          data_tmp = full_data(idata)
   45792      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45793      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45794      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45795      379902 :          ipack = ipack + 1
   45796      379902 :          packed_data(ipack) = pack_tmp
   45797      379902 :          data_tmp = full_data(idata)
   45798      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45799      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45800      379902 :          idata = idata + 1
   45801      379902 :          data_tmp = full_data(idata)
   45802      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45803      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45804      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45805      379902 :          ipack = ipack + 1
   45806      379902 :          packed_data(ipack) = pack_tmp
   45807      379902 :          data_tmp = full_data(idata)
   45808      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45809      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45810      379902 :          idata = idata + 1
   45811      379902 :          data_tmp = full_data(idata)
   45812      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45813      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45814      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45815      379902 :          ipack = ipack + 1
   45816      379902 :          packed_data(ipack) = pack_tmp
   45817      379902 :          data_tmp = full_data(idata)
   45818      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45819      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45820      379902 :          idata = idata + 1
   45821      379902 :          data_tmp = full_data(idata)
   45822      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45823      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45824      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45825      379902 :          idata = idata + 1
   45826      379902 :          data_tmp = full_data(idata)
   45827             :          data_tmp = ISHFT(data_tmp, 8)
   45828      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45829      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45830      379902 :          ipack = ipack + 1
   45831      379902 :          packed_data(ipack) = pack_tmp
   45832      379902 :          data_tmp = full_data(idata)
   45833      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45834      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45835      379902 :          idata = idata + 1
   45836      379902 :          data_tmp = full_data(idata)
   45837      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45838      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45839      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45840      379902 :          ipack = ipack + 1
   45841      379902 :          packed_data(ipack) = pack_tmp
   45842      379902 :          data_tmp = full_data(idata)
   45843      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45844      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45845      379902 :          idata = idata + 1
   45846      379902 :          data_tmp = full_data(idata)
   45847      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45848      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45849      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45850      379902 :          ipack = ipack + 1
   45851      379902 :          packed_data(ipack) = pack_tmp
   45852      379902 :          data_tmp = full_data(idata)
   45853      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45854      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45855      379902 :          idata = idata + 1
   45856      379902 :          data_tmp = full_data(idata)
   45857      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45858      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45859      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45860      379902 :          ipack = ipack + 1
   45861      379902 :          packed_data(ipack) = pack_tmp
   45862      379902 :          data_tmp = full_data(idata)
   45863      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45864      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45865      379902 :          idata = idata + 1
   45866      379902 :          data_tmp = full_data(idata)
   45867      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45868      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45869      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45870      379902 :          ipack = ipack + 1
   45871      379902 :          packed_data(ipack) = pack_tmp
   45872      379902 :          data_tmp = full_data(idata)
   45873      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45874      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45875      379902 :          idata = idata + 1
   45876      379902 :          data_tmp = full_data(idata)
   45877      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45878      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45879      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45880      379902 :          ipack = ipack + 1
   45881      379902 :          packed_data(ipack) = pack_tmp
   45882      379902 :          data_tmp = full_data(idata)
   45883      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45884      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45885      379902 :          idata = idata + 1
   45886      379902 :          data_tmp = full_data(idata)
   45887      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45888      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45889      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45890      379902 :          ipack = ipack + 1
   45891      379902 :          packed_data(ipack) = pack_tmp
   45892      379902 :          data_tmp = full_data(idata)
   45893      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45894      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45895      379902 :          idata = idata + 1
   45896      379902 :          data_tmp = full_data(idata)
   45897      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45898      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45899      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45900      379902 :          idata = idata + 1
   45901      379902 :          data_tmp = full_data(idata)
   45902             :          data_tmp = ISHFT(data_tmp, 8)
   45903      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45904      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45905      379902 :          ipack = ipack + 1
   45906      379902 :          packed_data(ipack) = pack_tmp
   45907      379902 :          data_tmp = full_data(idata)
   45908      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45909      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45910      379902 :          idata = idata + 1
   45911      379902 :          data_tmp = full_data(idata)
   45912      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45913      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45914      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45915      379902 :          ipack = ipack + 1
   45916      379902 :          packed_data(ipack) = pack_tmp
   45917      379902 :          data_tmp = full_data(idata)
   45918      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45919      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45920      379902 :          idata = idata + 1
   45921      379902 :          data_tmp = full_data(idata)
   45922      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45923      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45924      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45925      379902 :          ipack = ipack + 1
   45926      379902 :          packed_data(ipack) = pack_tmp
   45927      379902 :          data_tmp = full_data(idata)
   45928      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45929      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45930      379902 :          idata = idata + 1
   45931      379902 :          data_tmp = full_data(idata)
   45932      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45933      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45934      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45935      379902 :          ipack = ipack + 1
   45936      379902 :          packed_data(ipack) = pack_tmp
   45937      379902 :          data_tmp = full_data(idata)
   45938      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45939      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45940      379902 :          idata = idata + 1
   45941      379902 :          data_tmp = full_data(idata)
   45942      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45943      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45944      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45945      379902 :          ipack = ipack + 1
   45946      379902 :          packed_data(ipack) = pack_tmp
   45947      379902 :          data_tmp = full_data(idata)
   45948      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45949      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45950      379902 :          idata = idata + 1
   45951      379902 :          data_tmp = full_data(idata)
   45952      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45953      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45954      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45955      379902 :          ipack = ipack + 1
   45956      379902 :          packed_data(ipack) = pack_tmp
   45957      379902 :          data_tmp = full_data(idata)
   45958      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45959      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45960      379902 :          idata = idata + 1
   45961      379902 :          data_tmp = full_data(idata)
   45962      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45963      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45964      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45965      379902 :          ipack = ipack + 1
   45966      379902 :          packed_data(ipack) = pack_tmp
   45967      379902 :          data_tmp = full_data(idata)
   45968      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45969      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45970      379902 :          idata = idata + 1
   45971      379902 :          data_tmp = full_data(idata)
   45972      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45973      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45974      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45975      379902 :          idata = idata + 1
   45976      379902 :          data_tmp = full_data(idata)
   45977             :          data_tmp = ISHFT(data_tmp, 8)
   45978      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45979      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45980      379902 :          ipack = ipack + 1
   45981      379902 :          packed_data(ipack) = pack_tmp
   45982      379902 :          data_tmp = full_data(idata)
   45983      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45984      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45985      379902 :          idata = idata + 1
   45986      379902 :          data_tmp = full_data(idata)
   45987      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45988      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45989      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45990      379902 :          ipack = ipack + 1
   45991      379902 :          packed_data(ipack) = pack_tmp
   45992      379902 :          data_tmp = full_data(idata)
   45993      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45994      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45995      379902 :          idata = idata + 1
   45996      379902 :          data_tmp = full_data(idata)
   45997      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45998      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45999      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46000      379902 :          ipack = ipack + 1
   46001      379902 :          packed_data(ipack) = pack_tmp
   46002      379902 :          data_tmp = full_data(idata)
   46003      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   46004      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   46005      379902 :          idata = idata + 1
   46006      379902 :          data_tmp = full_data(idata)
   46007      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46008      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   46009      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46010      379902 :          ipack = ipack + 1
   46011      379902 :          packed_data(ipack) = pack_tmp
   46012      379902 :          data_tmp = full_data(idata)
   46013      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   46014      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   46015      379902 :          idata = idata + 1
   46016      379902 :          data_tmp = full_data(idata)
   46017      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46018      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   46019      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46020      379902 :          ipack = ipack + 1
   46021      379902 :          packed_data(ipack) = pack_tmp
   46022      379902 :          data_tmp = full_data(idata)
   46023      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   46024      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   46025      379902 :          idata = idata + 1
   46026      379902 :          data_tmp = full_data(idata)
   46027      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46028      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   46029      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46030      379902 :          ipack = ipack + 1
   46031      379902 :          packed_data(ipack) = pack_tmp
   46032      379902 :          data_tmp = full_data(idata)
   46033      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   46034      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   46035      379902 :          idata = idata + 1
   46036      379902 :          data_tmp = full_data(idata)
   46037      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46038      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   46039      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46040      379902 :          ipack = ipack + 1
   46041      379902 :          packed_data(ipack) = pack_tmp
   46042      379902 :          data_tmp = full_data(idata)
   46043      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   46044      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   46045      379902 :          idata = idata + 1
   46046      379902 :          data_tmp = full_data(idata)
   46047      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46048      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46049      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   46050      379902 :          idata = idata + 1
   46051      379902 :          data_tmp = full_data(idata)
   46052             :          data_tmp = ISHFT(data_tmp, 8)
   46053      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   46054      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46055      379902 :          ipack = ipack + 1
   46056      379902 :          packed_data(ipack) = pack_tmp
   46057      379902 :          data_tmp = full_data(idata)
   46058      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   46059      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   46060      379902 :          idata = idata + 1
   46061      379902 :          data_tmp = full_data(idata)
   46062      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46063      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   46064      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46065      379902 :          ipack = ipack + 1
   46066      379902 :          packed_data(ipack) = pack_tmp
   46067      379902 :          data_tmp = full_data(idata)
   46068      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   46069      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   46070      379902 :          idata = idata + 1
   46071      379902 :          data_tmp = full_data(idata)
   46072      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46073      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   46074      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46075      379902 :          ipack = ipack + 1
   46076      379902 :          packed_data(ipack) = pack_tmp
   46077      379902 :          data_tmp = full_data(idata)
   46078      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   46079      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   46080      379902 :          idata = idata + 1
   46081      379902 :          data_tmp = full_data(idata)
   46082      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46083      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   46084      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46085      379902 :          ipack = ipack + 1
   46086      379902 :          packed_data(ipack) = pack_tmp
   46087      379902 :          data_tmp = full_data(idata)
   46088      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   46089      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   46090      379902 :          idata = idata + 1
   46091      379902 :          data_tmp = full_data(idata)
   46092      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46093      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   46094      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46095      379902 :          ipack = ipack + 1
   46096      379902 :          packed_data(ipack) = pack_tmp
   46097      379902 :          data_tmp = full_data(idata)
   46098      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   46099      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   46100      379902 :          idata = idata + 1
   46101      379902 :          data_tmp = full_data(idata)
   46102      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46103      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   46104      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46105      379902 :          ipack = ipack + 1
   46106      379902 :          packed_data(ipack) = pack_tmp
   46107      379902 :          data_tmp = full_data(idata)
   46108      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   46109      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   46110      379902 :          idata = idata + 1
   46111      379902 :          data_tmp = full_data(idata)
   46112      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46113      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   46114      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46115      379902 :          ipack = ipack + 1
   46116      379902 :          packed_data(ipack) = pack_tmp
   46117      379902 :          data_tmp = full_data(idata)
   46118      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   46119      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   46120      379902 :          idata = idata + 1
   46121      379902 :          data_tmp = full_data(idata)
   46122      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46123      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46124             :          pack_tmp = ISHFT(pack_tmp, 0)
   46125      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   46126      379902 :          ipack = ipack + 1
   46127      379908 :          packed_data(ipack) = pack_tmp
   46128             :       END DO
   46129       23814 :       IF (Ndata_rep < Ndata) THEN
   46130         132 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   46131             :       END IF
   46132       23814 :    END SUBROUTINE ints2bits_56
   46133             : 
   46134             : ! **************************************************************************************************
   46135             : !> \brief ...
   46136             : !> \param Ndata ...
   46137             : !> \param packed_data ...
   46138             : !> \param full_data ...
   46139             : ! **************************************************************************************************
   46140      102645 :    SUBROUTINE bits2ints_56(Ndata, packed_data, full_data)
   46141             :       INTEGER, INTENT(IN)                                :: Ndata
   46142             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   46143             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   46144             : 
   46145             :       INTEGER, PARAMETER                                 :: Nbits = 56
   46146             : 
   46147             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   46148             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   46149             : 
   46150      102645 :       ipack = 0
   46151      102645 :       idata = 0
   46152      102645 :       pack_tmp = 0
   46153      102645 :       Ndata_rep = (Ndata/64)*64
   46154      102645 :       DO kdata = 1, Ndata_rep, 64
   46155     1584078 :          idata = idata + 1
   46156     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46157     1584078 :          ipack = ipack + 1
   46158     1584078 :          pack_tmp = packed_data(ipack)
   46159     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46160     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46161     1584078 :          idata = idata + 1
   46162     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46163     1584078 :          ipack = ipack + 1
   46164     1584078 :          pack_tmp = packed_data(ipack)
   46165     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46166     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46167     1584078 :          idata = idata + 1
   46168     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46169     1584078 :          ipack = ipack + 1
   46170     1584078 :          pack_tmp = packed_data(ipack)
   46171     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46172     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46173     1584078 :          idata = idata + 1
   46174     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46175     1584078 :          ipack = ipack + 1
   46176     1584078 :          pack_tmp = packed_data(ipack)
   46177     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46178     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46179     1584078 :          idata = idata + 1
   46180     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46181     1584078 :          ipack = ipack + 1
   46182     1584078 :          pack_tmp = packed_data(ipack)
   46183     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46184     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46185     1584078 :          idata = idata + 1
   46186     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46187     1584078 :          ipack = ipack + 1
   46188     1584078 :          pack_tmp = packed_data(ipack)
   46189     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46190     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46191     1584078 :          idata = idata + 1
   46192     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46193     1584078 :          ipack = ipack + 1
   46194     1584078 :          pack_tmp = packed_data(ipack)
   46195     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46196     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46197     1584078 :          idata = idata + 1
   46198     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46199     1584078 :          full_data(idata) = data_tmp
   46200     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46201     1584078 :          idata = idata + 1
   46202     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46203     1584078 :          ipack = ipack + 1
   46204     1584078 :          pack_tmp = packed_data(ipack)
   46205     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46206     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46207     1584078 :          idata = idata + 1
   46208     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46209     1584078 :          ipack = ipack + 1
   46210     1584078 :          pack_tmp = packed_data(ipack)
   46211     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46212     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46213     1584078 :          idata = idata + 1
   46214     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46215     1584078 :          ipack = ipack + 1
   46216     1584078 :          pack_tmp = packed_data(ipack)
   46217     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46218     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46219     1584078 :          idata = idata + 1
   46220     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46221     1584078 :          ipack = ipack + 1
   46222     1584078 :          pack_tmp = packed_data(ipack)
   46223     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46224     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46225     1584078 :          idata = idata + 1
   46226     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46227     1584078 :          ipack = ipack + 1
   46228     1584078 :          pack_tmp = packed_data(ipack)
   46229     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46230     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46231     1584078 :          idata = idata + 1
   46232     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46233     1584078 :          ipack = ipack + 1
   46234     1584078 :          pack_tmp = packed_data(ipack)
   46235     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46236     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46237     1584078 :          idata = idata + 1
   46238     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46239     1584078 :          ipack = ipack + 1
   46240     1584078 :          pack_tmp = packed_data(ipack)
   46241     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46242     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46243     1584078 :          idata = idata + 1
   46244     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46245     1584078 :          full_data(idata) = data_tmp
   46246     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46247     1584078 :          idata = idata + 1
   46248     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46249     1584078 :          ipack = ipack + 1
   46250     1584078 :          pack_tmp = packed_data(ipack)
   46251     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46252     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46253     1584078 :          idata = idata + 1
   46254     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46255     1584078 :          ipack = ipack + 1
   46256     1584078 :          pack_tmp = packed_data(ipack)
   46257     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46258     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46259     1584078 :          idata = idata + 1
   46260     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46261     1584078 :          ipack = ipack + 1
   46262     1584078 :          pack_tmp = packed_data(ipack)
   46263     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46264     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46265     1584078 :          idata = idata + 1
   46266     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46267     1584078 :          ipack = ipack + 1
   46268     1584078 :          pack_tmp = packed_data(ipack)
   46269     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46270     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46271     1584078 :          idata = idata + 1
   46272     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46273     1584078 :          ipack = ipack + 1
   46274     1584078 :          pack_tmp = packed_data(ipack)
   46275     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46276     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46277     1584078 :          idata = idata + 1
   46278     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46279     1584078 :          ipack = ipack + 1
   46280     1584078 :          pack_tmp = packed_data(ipack)
   46281     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46282     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46283     1584078 :          idata = idata + 1
   46284     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46285     1584078 :          ipack = ipack + 1
   46286     1584078 :          pack_tmp = packed_data(ipack)
   46287     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46288     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46289     1584078 :          idata = idata + 1
   46290     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46291     1584078 :          full_data(idata) = data_tmp
   46292     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46293     1584078 :          idata = idata + 1
   46294     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46295     1584078 :          ipack = ipack + 1
   46296     1584078 :          pack_tmp = packed_data(ipack)
   46297     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46298     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46299     1584078 :          idata = idata + 1
   46300     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46301     1584078 :          ipack = ipack + 1
   46302     1584078 :          pack_tmp = packed_data(ipack)
   46303     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46304     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46305     1584078 :          idata = idata + 1
   46306     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46307     1584078 :          ipack = ipack + 1
   46308     1584078 :          pack_tmp = packed_data(ipack)
   46309     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46310     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46311     1584078 :          idata = idata + 1
   46312     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46313     1584078 :          ipack = ipack + 1
   46314     1584078 :          pack_tmp = packed_data(ipack)
   46315     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46316     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46317     1584078 :          idata = idata + 1
   46318     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46319     1584078 :          ipack = ipack + 1
   46320     1584078 :          pack_tmp = packed_data(ipack)
   46321     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46322     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46323     1584078 :          idata = idata + 1
   46324     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46325     1584078 :          ipack = ipack + 1
   46326     1584078 :          pack_tmp = packed_data(ipack)
   46327     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46328     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46329     1584078 :          idata = idata + 1
   46330     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46331     1584078 :          ipack = ipack + 1
   46332     1584078 :          pack_tmp = packed_data(ipack)
   46333     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46334     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46335     1584078 :          idata = idata + 1
   46336     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46337     1584078 :          full_data(idata) = data_tmp
   46338     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46339     1584078 :          idata = idata + 1
   46340     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46341     1584078 :          ipack = ipack + 1
   46342     1584078 :          pack_tmp = packed_data(ipack)
   46343     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46344     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46345     1584078 :          idata = idata + 1
   46346     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46347     1584078 :          ipack = ipack + 1
   46348     1584078 :          pack_tmp = packed_data(ipack)
   46349     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46350     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46351     1584078 :          idata = idata + 1
   46352     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46353     1584078 :          ipack = ipack + 1
   46354     1584078 :          pack_tmp = packed_data(ipack)
   46355     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46356     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46357     1584078 :          idata = idata + 1
   46358     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46359     1584078 :          ipack = ipack + 1
   46360     1584078 :          pack_tmp = packed_data(ipack)
   46361     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46362     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46363     1584078 :          idata = idata + 1
   46364     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46365     1584078 :          ipack = ipack + 1
   46366     1584078 :          pack_tmp = packed_data(ipack)
   46367     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46368     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46369     1584078 :          idata = idata + 1
   46370     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46371     1584078 :          ipack = ipack + 1
   46372     1584078 :          pack_tmp = packed_data(ipack)
   46373     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46374     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46375     1584078 :          idata = idata + 1
   46376     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46377     1584078 :          ipack = ipack + 1
   46378     1584078 :          pack_tmp = packed_data(ipack)
   46379     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46380     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46381     1584078 :          idata = idata + 1
   46382     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46383     1584078 :          full_data(idata) = data_tmp
   46384     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46385     1584078 :          idata = idata + 1
   46386     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46387     1584078 :          ipack = ipack + 1
   46388     1584078 :          pack_tmp = packed_data(ipack)
   46389     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46390     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46391     1584078 :          idata = idata + 1
   46392     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46393     1584078 :          ipack = ipack + 1
   46394     1584078 :          pack_tmp = packed_data(ipack)
   46395     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46396     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46397     1584078 :          idata = idata + 1
   46398     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46399     1584078 :          ipack = ipack + 1
   46400     1584078 :          pack_tmp = packed_data(ipack)
   46401     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46402     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46403     1584078 :          idata = idata + 1
   46404     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46405     1584078 :          ipack = ipack + 1
   46406     1584078 :          pack_tmp = packed_data(ipack)
   46407     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46408     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46409     1584078 :          idata = idata + 1
   46410     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46411     1584078 :          ipack = ipack + 1
   46412     1584078 :          pack_tmp = packed_data(ipack)
   46413     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46414     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46415     1584078 :          idata = idata + 1
   46416     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46417     1584078 :          ipack = ipack + 1
   46418     1584078 :          pack_tmp = packed_data(ipack)
   46419     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46420     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46421     1584078 :          idata = idata + 1
   46422     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46423     1584078 :          ipack = ipack + 1
   46424     1584078 :          pack_tmp = packed_data(ipack)
   46425     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46426     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46427     1584078 :          idata = idata + 1
   46428     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46429     1584078 :          full_data(idata) = data_tmp
   46430     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46431     1584078 :          idata = idata + 1
   46432     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46433     1584078 :          ipack = ipack + 1
   46434     1584078 :          pack_tmp = packed_data(ipack)
   46435     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46436     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46437     1584078 :          idata = idata + 1
   46438     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46439     1584078 :          ipack = ipack + 1
   46440     1584078 :          pack_tmp = packed_data(ipack)
   46441     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46442     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46443     1584078 :          idata = idata + 1
   46444     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46445     1584078 :          ipack = ipack + 1
   46446     1584078 :          pack_tmp = packed_data(ipack)
   46447     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46448     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46449     1584078 :          idata = idata + 1
   46450     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46451     1584078 :          ipack = ipack + 1
   46452     1584078 :          pack_tmp = packed_data(ipack)
   46453     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46454     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46455     1584078 :          idata = idata + 1
   46456     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46457     1584078 :          ipack = ipack + 1
   46458     1584078 :          pack_tmp = packed_data(ipack)
   46459     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46460     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46461     1584078 :          idata = idata + 1
   46462     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46463     1584078 :          ipack = ipack + 1
   46464     1584078 :          pack_tmp = packed_data(ipack)
   46465     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46466     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46467     1584078 :          idata = idata + 1
   46468     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46469     1584078 :          ipack = ipack + 1
   46470     1584078 :          pack_tmp = packed_data(ipack)
   46471     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46472     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46473     1584078 :          idata = idata + 1
   46474     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46475     1584078 :          full_data(idata) = data_tmp
   46476     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46477     1584078 :          idata = idata + 1
   46478     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46479     1584078 :          ipack = ipack + 1
   46480     1584078 :          pack_tmp = packed_data(ipack)
   46481     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46482     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46483     1584078 :          idata = idata + 1
   46484     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46485     1584078 :          ipack = ipack + 1
   46486     1584078 :          pack_tmp = packed_data(ipack)
   46487     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46488     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46489     1584078 :          idata = idata + 1
   46490     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46491     1584078 :          ipack = ipack + 1
   46492     1584078 :          pack_tmp = packed_data(ipack)
   46493     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46494     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46495     1584078 :          idata = idata + 1
   46496     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46497     1584078 :          ipack = ipack + 1
   46498     1584078 :          pack_tmp = packed_data(ipack)
   46499     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46500     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46501     1584078 :          idata = idata + 1
   46502     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46503     1584078 :          ipack = ipack + 1
   46504     1584078 :          pack_tmp = packed_data(ipack)
   46505     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46506     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46507     1584078 :          idata = idata + 1
   46508     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46509     1584078 :          ipack = ipack + 1
   46510     1584078 :          pack_tmp = packed_data(ipack)
   46511     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46512     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46513     1584078 :          idata = idata + 1
   46514     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46515     1584078 :          ipack = ipack + 1
   46516     1584078 :          pack_tmp = packed_data(ipack)
   46517     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46518     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46519     1584078 :          idata = idata + 1
   46520     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46521     1584078 :          full_data(idata) = data_tmp
   46522     1584444 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46523             :       END DO
   46524      102645 :       IF (Ndata_rep < Ndata) THEN
   46525        6852 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   46526             :       END IF
   46527      102645 :    END SUBROUTINE bits2ints_56
   46528             : 
   46529             : ! **************************************************************************************************
   46530             : !> \brief ...
   46531             : !> \param Ndata ...
   46532             : !> \param packed_data ...
   46533             : !> \param full_data ...
   46534             : ! **************************************************************************************************
   46535       23738 :    SUBROUTINE ints2bits_57(Ndata, packed_data, full_data)
   46536             :       INTEGER, INTENT(IN)                                :: Ndata
   46537             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   46538             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   46539             : 
   46540             :       INTEGER, PARAMETER                                 :: Nbits = 57
   46541             : 
   46542             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   46543             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   46544             : 
   46545       23738 :       idata = 0
   46546       23738 :       ipack = 0
   46547       23738 :       Ndata_rep = (Ndata/64)*64
   46548       23738 :       DO kdata = 1, Ndata_rep, 64
   46549      379298 :          pack_tmp = 0
   46550      379298 :          idata = idata + 1
   46551      379298 :          data_tmp = full_data(idata)
   46552      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46553      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46554      379298 :          pack_tmp = ISHFT(pack_tmp, -7)
   46555      379298 :          idata = idata + 1
   46556      379298 :          data_tmp = full_data(idata)
   46557      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46558      379298 :          data_tmp = IAND(data_tmp, mask_left(7))
   46559      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46560      379298 :          ipack = ipack + 1
   46561      379298 :          packed_data(ipack) = pack_tmp
   46562      379298 :          data_tmp = full_data(idata)
   46563      379298 :          pack_tmp = ISHFT(data_tmp, 14)
   46564      379298 :          pack_tmp = ISHFT(pack_tmp, -14)
   46565      379298 :          idata = idata + 1
   46566      379298 :          data_tmp = full_data(idata)
   46567      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46568      379298 :          data_tmp = IAND(data_tmp, mask_left(14))
   46569      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46570      379298 :          ipack = ipack + 1
   46571      379298 :          packed_data(ipack) = pack_tmp
   46572      379298 :          data_tmp = full_data(idata)
   46573      379298 :          pack_tmp = ISHFT(data_tmp, 21)
   46574      379298 :          pack_tmp = ISHFT(pack_tmp, -21)
   46575      379298 :          idata = idata + 1
   46576      379298 :          data_tmp = full_data(idata)
   46577      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46578      379298 :          data_tmp = IAND(data_tmp, mask_left(21))
   46579      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46580      379298 :          ipack = ipack + 1
   46581      379298 :          packed_data(ipack) = pack_tmp
   46582      379298 :          data_tmp = full_data(idata)
   46583      379298 :          pack_tmp = ISHFT(data_tmp, 28)
   46584      379298 :          pack_tmp = ISHFT(pack_tmp, -28)
   46585      379298 :          idata = idata + 1
   46586      379298 :          data_tmp = full_data(idata)
   46587      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46588      379298 :          data_tmp = IAND(data_tmp, mask_left(28))
   46589      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46590      379298 :          ipack = ipack + 1
   46591      379298 :          packed_data(ipack) = pack_tmp
   46592      379298 :          data_tmp = full_data(idata)
   46593      379298 :          pack_tmp = ISHFT(data_tmp, 35)
   46594      379298 :          pack_tmp = ISHFT(pack_tmp, -35)
   46595      379298 :          idata = idata + 1
   46596      379298 :          data_tmp = full_data(idata)
   46597      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46598      379298 :          data_tmp = IAND(data_tmp, mask_left(35))
   46599      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46600      379298 :          ipack = ipack + 1
   46601      379298 :          packed_data(ipack) = pack_tmp
   46602      379298 :          data_tmp = full_data(idata)
   46603      379298 :          pack_tmp = ISHFT(data_tmp, 42)
   46604      379298 :          pack_tmp = ISHFT(pack_tmp, -42)
   46605      379298 :          idata = idata + 1
   46606      379298 :          data_tmp = full_data(idata)
   46607      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46608      379298 :          data_tmp = IAND(data_tmp, mask_left(42))
   46609      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46610      379298 :          ipack = ipack + 1
   46611      379298 :          packed_data(ipack) = pack_tmp
   46612      379298 :          data_tmp = full_data(idata)
   46613      379298 :          pack_tmp = ISHFT(data_tmp, 49)
   46614      379298 :          pack_tmp = ISHFT(pack_tmp, -49)
   46615      379298 :          idata = idata + 1
   46616      379298 :          data_tmp = full_data(idata)
   46617      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46618      379298 :          data_tmp = IAND(data_tmp, mask_left(49))
   46619      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46620      379298 :          ipack = ipack + 1
   46621      379298 :          packed_data(ipack) = pack_tmp
   46622      379298 :          data_tmp = full_data(idata)
   46623      379298 :          pack_tmp = ISHFT(data_tmp, 56)
   46624      379298 :          pack_tmp = ISHFT(pack_tmp, -56)
   46625      379298 :          idata = idata + 1
   46626      379298 :          data_tmp = full_data(idata)
   46627      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46628      379298 :          data_tmp = IAND(data_tmp, mask_left(56))
   46629      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46630      379298 :          ipack = ipack + 1
   46631      379298 :          packed_data(ipack) = pack_tmp
   46632      379298 :          data_tmp = full_data(idata)
   46633      379298 :          pack_tmp = ISHFT(data_tmp, 63)
   46634      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46635      379298 :          idata = idata + 1
   46636      379298 :          data_tmp = full_data(idata)
   46637      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46638      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46639      379298 :          pack_tmp = ISHFT(pack_tmp, -6)
   46640      379298 :          idata = idata + 1
   46641      379298 :          data_tmp = full_data(idata)
   46642      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46643      379298 :          data_tmp = IAND(data_tmp, mask_left(6))
   46644      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46645      379298 :          ipack = ipack + 1
   46646      379298 :          packed_data(ipack) = pack_tmp
   46647      379298 :          data_tmp = full_data(idata)
   46648      379298 :          pack_tmp = ISHFT(data_tmp, 13)
   46649      379298 :          pack_tmp = ISHFT(pack_tmp, -13)
   46650      379298 :          idata = idata + 1
   46651      379298 :          data_tmp = full_data(idata)
   46652      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46653      379298 :          data_tmp = IAND(data_tmp, mask_left(13))
   46654      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46655      379298 :          ipack = ipack + 1
   46656      379298 :          packed_data(ipack) = pack_tmp
   46657      379298 :          data_tmp = full_data(idata)
   46658      379298 :          pack_tmp = ISHFT(data_tmp, 20)
   46659      379298 :          pack_tmp = ISHFT(pack_tmp, -20)
   46660      379298 :          idata = idata + 1
   46661      379298 :          data_tmp = full_data(idata)
   46662      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46663      379298 :          data_tmp = IAND(data_tmp, mask_left(20))
   46664      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46665      379298 :          ipack = ipack + 1
   46666      379298 :          packed_data(ipack) = pack_tmp
   46667      379298 :          data_tmp = full_data(idata)
   46668      379298 :          pack_tmp = ISHFT(data_tmp, 27)
   46669      379298 :          pack_tmp = ISHFT(pack_tmp, -27)
   46670      379298 :          idata = idata + 1
   46671      379298 :          data_tmp = full_data(idata)
   46672      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46673      379298 :          data_tmp = IAND(data_tmp, mask_left(27))
   46674      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46675      379298 :          ipack = ipack + 1
   46676      379298 :          packed_data(ipack) = pack_tmp
   46677      379298 :          data_tmp = full_data(idata)
   46678      379298 :          pack_tmp = ISHFT(data_tmp, 34)
   46679      379298 :          pack_tmp = ISHFT(pack_tmp, -34)
   46680      379298 :          idata = idata + 1
   46681      379298 :          data_tmp = full_data(idata)
   46682      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46683      379298 :          data_tmp = IAND(data_tmp, mask_left(34))
   46684      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46685      379298 :          ipack = ipack + 1
   46686      379298 :          packed_data(ipack) = pack_tmp
   46687      379298 :          data_tmp = full_data(idata)
   46688      379298 :          pack_tmp = ISHFT(data_tmp, 41)
   46689      379298 :          pack_tmp = ISHFT(pack_tmp, -41)
   46690      379298 :          idata = idata + 1
   46691      379298 :          data_tmp = full_data(idata)
   46692      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46693      379298 :          data_tmp = IAND(data_tmp, mask_left(41))
   46694      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46695      379298 :          ipack = ipack + 1
   46696      379298 :          packed_data(ipack) = pack_tmp
   46697      379298 :          data_tmp = full_data(idata)
   46698      379298 :          pack_tmp = ISHFT(data_tmp, 48)
   46699      379298 :          pack_tmp = ISHFT(pack_tmp, -48)
   46700      379298 :          idata = idata + 1
   46701      379298 :          data_tmp = full_data(idata)
   46702      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46703      379298 :          data_tmp = IAND(data_tmp, mask_left(48))
   46704      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46705      379298 :          ipack = ipack + 1
   46706      379298 :          packed_data(ipack) = pack_tmp
   46707      379298 :          data_tmp = full_data(idata)
   46708      379298 :          pack_tmp = ISHFT(data_tmp, 55)
   46709      379298 :          pack_tmp = ISHFT(pack_tmp, -55)
   46710      379298 :          idata = idata + 1
   46711      379298 :          data_tmp = full_data(idata)
   46712      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46713      379298 :          data_tmp = IAND(data_tmp, mask_left(55))
   46714      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46715      379298 :          ipack = ipack + 1
   46716      379298 :          packed_data(ipack) = pack_tmp
   46717      379298 :          data_tmp = full_data(idata)
   46718      379298 :          pack_tmp = ISHFT(data_tmp, 62)
   46719      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46720      379298 :          idata = idata + 1
   46721      379298 :          data_tmp = full_data(idata)
   46722      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46723      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46724      379298 :          pack_tmp = ISHFT(pack_tmp, -5)
   46725      379298 :          idata = idata + 1
   46726      379298 :          data_tmp = full_data(idata)
   46727      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46728      379298 :          data_tmp = IAND(data_tmp, mask_left(5))
   46729      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46730      379298 :          ipack = ipack + 1
   46731      379298 :          packed_data(ipack) = pack_tmp
   46732      379298 :          data_tmp = full_data(idata)
   46733      379298 :          pack_tmp = ISHFT(data_tmp, 12)
   46734      379298 :          pack_tmp = ISHFT(pack_tmp, -12)
   46735      379298 :          idata = idata + 1
   46736      379298 :          data_tmp = full_data(idata)
   46737      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46738      379298 :          data_tmp = IAND(data_tmp, mask_left(12))
   46739      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46740      379298 :          ipack = ipack + 1
   46741      379298 :          packed_data(ipack) = pack_tmp
   46742      379298 :          data_tmp = full_data(idata)
   46743      379298 :          pack_tmp = ISHFT(data_tmp, 19)
   46744      379298 :          pack_tmp = ISHFT(pack_tmp, -19)
   46745      379298 :          idata = idata + 1
   46746      379298 :          data_tmp = full_data(idata)
   46747      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46748      379298 :          data_tmp = IAND(data_tmp, mask_left(19))
   46749      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46750      379298 :          ipack = ipack + 1
   46751      379298 :          packed_data(ipack) = pack_tmp
   46752      379298 :          data_tmp = full_data(idata)
   46753      379298 :          pack_tmp = ISHFT(data_tmp, 26)
   46754      379298 :          pack_tmp = ISHFT(pack_tmp, -26)
   46755      379298 :          idata = idata + 1
   46756      379298 :          data_tmp = full_data(idata)
   46757      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46758      379298 :          data_tmp = IAND(data_tmp, mask_left(26))
   46759      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46760      379298 :          ipack = ipack + 1
   46761      379298 :          packed_data(ipack) = pack_tmp
   46762      379298 :          data_tmp = full_data(idata)
   46763      379298 :          pack_tmp = ISHFT(data_tmp, 33)
   46764      379298 :          pack_tmp = ISHFT(pack_tmp, -33)
   46765      379298 :          idata = idata + 1
   46766      379298 :          data_tmp = full_data(idata)
   46767      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46768      379298 :          data_tmp = IAND(data_tmp, mask_left(33))
   46769      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46770      379298 :          ipack = ipack + 1
   46771      379298 :          packed_data(ipack) = pack_tmp
   46772      379298 :          data_tmp = full_data(idata)
   46773      379298 :          pack_tmp = ISHFT(data_tmp, 40)
   46774      379298 :          pack_tmp = ISHFT(pack_tmp, -40)
   46775      379298 :          idata = idata + 1
   46776      379298 :          data_tmp = full_data(idata)
   46777      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46778      379298 :          data_tmp = IAND(data_tmp, mask_left(40))
   46779      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46780      379298 :          ipack = ipack + 1
   46781      379298 :          packed_data(ipack) = pack_tmp
   46782      379298 :          data_tmp = full_data(idata)
   46783      379298 :          pack_tmp = ISHFT(data_tmp, 47)
   46784      379298 :          pack_tmp = ISHFT(pack_tmp, -47)
   46785      379298 :          idata = idata + 1
   46786      379298 :          data_tmp = full_data(idata)
   46787      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46788      379298 :          data_tmp = IAND(data_tmp, mask_left(47))
   46789      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46790      379298 :          ipack = ipack + 1
   46791      379298 :          packed_data(ipack) = pack_tmp
   46792      379298 :          data_tmp = full_data(idata)
   46793      379298 :          pack_tmp = ISHFT(data_tmp, 54)
   46794      379298 :          pack_tmp = ISHFT(pack_tmp, -54)
   46795      379298 :          idata = idata + 1
   46796      379298 :          data_tmp = full_data(idata)
   46797      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46798      379298 :          data_tmp = IAND(data_tmp, mask_left(54))
   46799      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46800      379298 :          ipack = ipack + 1
   46801      379298 :          packed_data(ipack) = pack_tmp
   46802      379298 :          data_tmp = full_data(idata)
   46803      379298 :          pack_tmp = ISHFT(data_tmp, 61)
   46804      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46805      379298 :          idata = idata + 1
   46806      379298 :          data_tmp = full_data(idata)
   46807      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46808      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46809      379298 :          pack_tmp = ISHFT(pack_tmp, -4)
   46810      379298 :          idata = idata + 1
   46811      379298 :          data_tmp = full_data(idata)
   46812      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46813      379298 :          data_tmp = IAND(data_tmp, mask_left(4))
   46814      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46815      379298 :          ipack = ipack + 1
   46816      379298 :          packed_data(ipack) = pack_tmp
   46817      379298 :          data_tmp = full_data(idata)
   46818      379298 :          pack_tmp = ISHFT(data_tmp, 11)
   46819      379298 :          pack_tmp = ISHFT(pack_tmp, -11)
   46820      379298 :          idata = idata + 1
   46821      379298 :          data_tmp = full_data(idata)
   46822      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46823      379298 :          data_tmp = IAND(data_tmp, mask_left(11))
   46824      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46825      379298 :          ipack = ipack + 1
   46826      379298 :          packed_data(ipack) = pack_tmp
   46827      379298 :          data_tmp = full_data(idata)
   46828      379298 :          pack_tmp = ISHFT(data_tmp, 18)
   46829      379298 :          pack_tmp = ISHFT(pack_tmp, -18)
   46830      379298 :          idata = idata + 1
   46831      379298 :          data_tmp = full_data(idata)
   46832      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46833      379298 :          data_tmp = IAND(data_tmp, mask_left(18))
   46834      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46835      379298 :          ipack = ipack + 1
   46836      379298 :          packed_data(ipack) = pack_tmp
   46837      379298 :          data_tmp = full_data(idata)
   46838      379298 :          pack_tmp = ISHFT(data_tmp, 25)
   46839      379298 :          pack_tmp = ISHFT(pack_tmp, -25)
   46840      379298 :          idata = idata + 1
   46841      379298 :          data_tmp = full_data(idata)
   46842      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46843      379298 :          data_tmp = IAND(data_tmp, mask_left(25))
   46844      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46845      379298 :          ipack = ipack + 1
   46846      379298 :          packed_data(ipack) = pack_tmp
   46847      379298 :          data_tmp = full_data(idata)
   46848      379298 :          pack_tmp = ISHFT(data_tmp, 32)
   46849      379298 :          pack_tmp = ISHFT(pack_tmp, -32)
   46850      379298 :          idata = idata + 1
   46851      379298 :          data_tmp = full_data(idata)
   46852      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46853      379298 :          data_tmp = IAND(data_tmp, mask_left(32))
   46854      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46855      379298 :          ipack = ipack + 1
   46856      379298 :          packed_data(ipack) = pack_tmp
   46857      379298 :          data_tmp = full_data(idata)
   46858      379298 :          pack_tmp = ISHFT(data_tmp, 39)
   46859      379298 :          pack_tmp = ISHFT(pack_tmp, -39)
   46860      379298 :          idata = idata + 1
   46861      379298 :          data_tmp = full_data(idata)
   46862      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46863      379298 :          data_tmp = IAND(data_tmp, mask_left(39))
   46864      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46865      379298 :          ipack = ipack + 1
   46866      379298 :          packed_data(ipack) = pack_tmp
   46867      379298 :          data_tmp = full_data(idata)
   46868      379298 :          pack_tmp = ISHFT(data_tmp, 46)
   46869      379298 :          pack_tmp = ISHFT(pack_tmp, -46)
   46870      379298 :          idata = idata + 1
   46871      379298 :          data_tmp = full_data(idata)
   46872      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46873      379298 :          data_tmp = IAND(data_tmp, mask_left(46))
   46874      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46875      379298 :          ipack = ipack + 1
   46876      379298 :          packed_data(ipack) = pack_tmp
   46877      379298 :          data_tmp = full_data(idata)
   46878      379298 :          pack_tmp = ISHFT(data_tmp, 53)
   46879      379298 :          pack_tmp = ISHFT(pack_tmp, -53)
   46880      379298 :          idata = idata + 1
   46881      379298 :          data_tmp = full_data(idata)
   46882      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46883      379298 :          data_tmp = IAND(data_tmp, mask_left(53))
   46884      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46885      379298 :          ipack = ipack + 1
   46886      379298 :          packed_data(ipack) = pack_tmp
   46887      379298 :          data_tmp = full_data(idata)
   46888      379298 :          pack_tmp = ISHFT(data_tmp, 60)
   46889      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46890      379298 :          idata = idata + 1
   46891      379298 :          data_tmp = full_data(idata)
   46892      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46893      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46894      379298 :          pack_tmp = ISHFT(pack_tmp, -3)
   46895      379298 :          idata = idata + 1
   46896      379298 :          data_tmp = full_data(idata)
   46897      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46898      379298 :          data_tmp = IAND(data_tmp, mask_left(3))
   46899      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46900      379298 :          ipack = ipack + 1
   46901      379298 :          packed_data(ipack) = pack_tmp
   46902      379298 :          data_tmp = full_data(idata)
   46903      379298 :          pack_tmp = ISHFT(data_tmp, 10)
   46904      379298 :          pack_tmp = ISHFT(pack_tmp, -10)
   46905      379298 :          idata = idata + 1
   46906      379298 :          data_tmp = full_data(idata)
   46907      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46908      379298 :          data_tmp = IAND(data_tmp, mask_left(10))
   46909      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46910      379298 :          ipack = ipack + 1
   46911      379298 :          packed_data(ipack) = pack_tmp
   46912      379298 :          data_tmp = full_data(idata)
   46913      379298 :          pack_tmp = ISHFT(data_tmp, 17)
   46914      379298 :          pack_tmp = ISHFT(pack_tmp, -17)
   46915      379298 :          idata = idata + 1
   46916      379298 :          data_tmp = full_data(idata)
   46917      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46918      379298 :          data_tmp = IAND(data_tmp, mask_left(17))
   46919      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46920      379298 :          ipack = ipack + 1
   46921      379298 :          packed_data(ipack) = pack_tmp
   46922      379298 :          data_tmp = full_data(idata)
   46923      379298 :          pack_tmp = ISHFT(data_tmp, 24)
   46924      379298 :          pack_tmp = ISHFT(pack_tmp, -24)
   46925      379298 :          idata = idata + 1
   46926      379298 :          data_tmp = full_data(idata)
   46927      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46928      379298 :          data_tmp = IAND(data_tmp, mask_left(24))
   46929      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46930      379298 :          ipack = ipack + 1
   46931      379298 :          packed_data(ipack) = pack_tmp
   46932      379298 :          data_tmp = full_data(idata)
   46933      379298 :          pack_tmp = ISHFT(data_tmp, 31)
   46934      379298 :          pack_tmp = ISHFT(pack_tmp, -31)
   46935      379298 :          idata = idata + 1
   46936      379298 :          data_tmp = full_data(idata)
   46937      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46938      379298 :          data_tmp = IAND(data_tmp, mask_left(31))
   46939      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46940      379298 :          ipack = ipack + 1
   46941      379298 :          packed_data(ipack) = pack_tmp
   46942      379298 :          data_tmp = full_data(idata)
   46943      379298 :          pack_tmp = ISHFT(data_tmp, 38)
   46944      379298 :          pack_tmp = ISHFT(pack_tmp, -38)
   46945      379298 :          idata = idata + 1
   46946      379298 :          data_tmp = full_data(idata)
   46947      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46948      379298 :          data_tmp = IAND(data_tmp, mask_left(38))
   46949      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46950      379298 :          ipack = ipack + 1
   46951      379298 :          packed_data(ipack) = pack_tmp
   46952      379298 :          data_tmp = full_data(idata)
   46953      379298 :          pack_tmp = ISHFT(data_tmp, 45)
   46954      379298 :          pack_tmp = ISHFT(pack_tmp, -45)
   46955      379298 :          idata = idata + 1
   46956      379298 :          data_tmp = full_data(idata)
   46957      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46958      379298 :          data_tmp = IAND(data_tmp, mask_left(45))
   46959      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46960      379298 :          ipack = ipack + 1
   46961      379298 :          packed_data(ipack) = pack_tmp
   46962      379298 :          data_tmp = full_data(idata)
   46963      379298 :          pack_tmp = ISHFT(data_tmp, 52)
   46964      379298 :          pack_tmp = ISHFT(pack_tmp, -52)
   46965      379298 :          idata = idata + 1
   46966      379298 :          data_tmp = full_data(idata)
   46967      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46968      379298 :          data_tmp = IAND(data_tmp, mask_left(52))
   46969      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46970      379298 :          ipack = ipack + 1
   46971      379298 :          packed_data(ipack) = pack_tmp
   46972      379298 :          data_tmp = full_data(idata)
   46973      379298 :          pack_tmp = ISHFT(data_tmp, 59)
   46974      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46975      379298 :          idata = idata + 1
   46976      379298 :          data_tmp = full_data(idata)
   46977      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46978      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46979      379298 :          pack_tmp = ISHFT(pack_tmp, -2)
   46980      379298 :          idata = idata + 1
   46981      379298 :          data_tmp = full_data(idata)
   46982      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46983      379298 :          data_tmp = IAND(data_tmp, mask_left(2))
   46984      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46985      379298 :          ipack = ipack + 1
   46986      379298 :          packed_data(ipack) = pack_tmp
   46987      379298 :          data_tmp = full_data(idata)
   46988      379298 :          pack_tmp = ISHFT(data_tmp, 9)
   46989      379298 :          pack_tmp = ISHFT(pack_tmp, -9)
   46990      379298 :          idata = idata + 1
   46991      379298 :          data_tmp = full_data(idata)
   46992      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46993      379298 :          data_tmp = IAND(data_tmp, mask_left(9))
   46994      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46995      379298 :          ipack = ipack + 1
   46996      379298 :          packed_data(ipack) = pack_tmp
   46997      379298 :          data_tmp = full_data(idata)
   46998      379298 :          pack_tmp = ISHFT(data_tmp, 16)
   46999      379298 :          pack_tmp = ISHFT(pack_tmp, -16)
   47000      379298 :          idata = idata + 1
   47001      379298 :          data_tmp = full_data(idata)
   47002      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47003      379298 :          data_tmp = IAND(data_tmp, mask_left(16))
   47004      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47005      379298 :          ipack = ipack + 1
   47006      379298 :          packed_data(ipack) = pack_tmp
   47007      379298 :          data_tmp = full_data(idata)
   47008      379298 :          pack_tmp = ISHFT(data_tmp, 23)
   47009      379298 :          pack_tmp = ISHFT(pack_tmp, -23)
   47010      379298 :          idata = idata + 1
   47011      379298 :          data_tmp = full_data(idata)
   47012      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47013      379298 :          data_tmp = IAND(data_tmp, mask_left(23))
   47014      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47015      379298 :          ipack = ipack + 1
   47016      379298 :          packed_data(ipack) = pack_tmp
   47017      379298 :          data_tmp = full_data(idata)
   47018      379298 :          pack_tmp = ISHFT(data_tmp, 30)
   47019      379298 :          pack_tmp = ISHFT(pack_tmp, -30)
   47020      379298 :          idata = idata + 1
   47021      379298 :          data_tmp = full_data(idata)
   47022      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47023      379298 :          data_tmp = IAND(data_tmp, mask_left(30))
   47024      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47025      379298 :          ipack = ipack + 1
   47026      379298 :          packed_data(ipack) = pack_tmp
   47027      379298 :          data_tmp = full_data(idata)
   47028      379298 :          pack_tmp = ISHFT(data_tmp, 37)
   47029      379298 :          pack_tmp = ISHFT(pack_tmp, -37)
   47030      379298 :          idata = idata + 1
   47031      379298 :          data_tmp = full_data(idata)
   47032      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47033      379298 :          data_tmp = IAND(data_tmp, mask_left(37))
   47034      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47035      379298 :          ipack = ipack + 1
   47036      379298 :          packed_data(ipack) = pack_tmp
   47037      379298 :          data_tmp = full_data(idata)
   47038      379298 :          pack_tmp = ISHFT(data_tmp, 44)
   47039      379298 :          pack_tmp = ISHFT(pack_tmp, -44)
   47040      379298 :          idata = idata + 1
   47041      379298 :          data_tmp = full_data(idata)
   47042      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47043      379298 :          data_tmp = IAND(data_tmp, mask_left(44))
   47044      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47045      379298 :          ipack = ipack + 1
   47046      379298 :          packed_data(ipack) = pack_tmp
   47047      379298 :          data_tmp = full_data(idata)
   47048      379298 :          pack_tmp = ISHFT(data_tmp, 51)
   47049      379298 :          pack_tmp = ISHFT(pack_tmp, -51)
   47050      379298 :          idata = idata + 1
   47051      379298 :          data_tmp = full_data(idata)
   47052      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47053      379298 :          data_tmp = IAND(data_tmp, mask_left(51))
   47054      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47055      379298 :          ipack = ipack + 1
   47056      379298 :          packed_data(ipack) = pack_tmp
   47057      379298 :          data_tmp = full_data(idata)
   47058      379298 :          pack_tmp = ISHFT(data_tmp, 58)
   47059      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   47060      379298 :          idata = idata + 1
   47061      379298 :          data_tmp = full_data(idata)
   47062      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47063      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47064      379298 :          pack_tmp = ISHFT(pack_tmp, -1)
   47065      379298 :          idata = idata + 1
   47066      379298 :          data_tmp = full_data(idata)
   47067      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47068      379298 :          data_tmp = IAND(data_tmp, mask_left(1))
   47069      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47070      379298 :          ipack = ipack + 1
   47071      379298 :          packed_data(ipack) = pack_tmp
   47072      379298 :          data_tmp = full_data(idata)
   47073      379298 :          pack_tmp = ISHFT(data_tmp, 8)
   47074      379298 :          pack_tmp = ISHFT(pack_tmp, -8)
   47075      379298 :          idata = idata + 1
   47076      379298 :          data_tmp = full_data(idata)
   47077      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47078      379298 :          data_tmp = IAND(data_tmp, mask_left(8))
   47079      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47080      379298 :          ipack = ipack + 1
   47081      379298 :          packed_data(ipack) = pack_tmp
   47082      379298 :          data_tmp = full_data(idata)
   47083      379298 :          pack_tmp = ISHFT(data_tmp, 15)
   47084      379298 :          pack_tmp = ISHFT(pack_tmp, -15)
   47085      379298 :          idata = idata + 1
   47086      379298 :          data_tmp = full_data(idata)
   47087      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47088      379298 :          data_tmp = IAND(data_tmp, mask_left(15))
   47089      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47090      379298 :          ipack = ipack + 1
   47091      379298 :          packed_data(ipack) = pack_tmp
   47092      379298 :          data_tmp = full_data(idata)
   47093      379298 :          pack_tmp = ISHFT(data_tmp, 22)
   47094      379298 :          pack_tmp = ISHFT(pack_tmp, -22)
   47095      379298 :          idata = idata + 1
   47096      379298 :          data_tmp = full_data(idata)
   47097      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47098      379298 :          data_tmp = IAND(data_tmp, mask_left(22))
   47099      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47100      379298 :          ipack = ipack + 1
   47101      379298 :          packed_data(ipack) = pack_tmp
   47102      379298 :          data_tmp = full_data(idata)
   47103      379298 :          pack_tmp = ISHFT(data_tmp, 29)
   47104      379298 :          pack_tmp = ISHFT(pack_tmp, -29)
   47105      379298 :          idata = idata + 1
   47106      379298 :          data_tmp = full_data(idata)
   47107      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47108      379298 :          data_tmp = IAND(data_tmp, mask_left(29))
   47109      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47110      379298 :          ipack = ipack + 1
   47111      379298 :          packed_data(ipack) = pack_tmp
   47112      379298 :          data_tmp = full_data(idata)
   47113      379298 :          pack_tmp = ISHFT(data_tmp, 36)
   47114      379298 :          pack_tmp = ISHFT(pack_tmp, -36)
   47115      379298 :          idata = idata + 1
   47116      379298 :          data_tmp = full_data(idata)
   47117      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47118      379298 :          data_tmp = IAND(data_tmp, mask_left(36))
   47119      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47120      379298 :          ipack = ipack + 1
   47121      379298 :          packed_data(ipack) = pack_tmp
   47122      379298 :          data_tmp = full_data(idata)
   47123      379298 :          pack_tmp = ISHFT(data_tmp, 43)
   47124      379298 :          pack_tmp = ISHFT(pack_tmp, -43)
   47125      379298 :          idata = idata + 1
   47126      379298 :          data_tmp = full_data(idata)
   47127      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47128      379298 :          data_tmp = IAND(data_tmp, mask_left(43))
   47129      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47130      379298 :          ipack = ipack + 1
   47131      379298 :          packed_data(ipack) = pack_tmp
   47132      379298 :          data_tmp = full_data(idata)
   47133      379298 :          pack_tmp = ISHFT(data_tmp, 50)
   47134      379298 :          pack_tmp = ISHFT(pack_tmp, -50)
   47135      379298 :          idata = idata + 1
   47136      379298 :          data_tmp = full_data(idata)
   47137      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47138      379298 :          data_tmp = IAND(data_tmp, mask_left(50))
   47139      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47140      379298 :          ipack = ipack + 1
   47141      379298 :          packed_data(ipack) = pack_tmp
   47142      379298 :          data_tmp = full_data(idata)
   47143      379298 :          pack_tmp = ISHFT(data_tmp, 57)
   47144      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   47145      379298 :          idata = idata + 1
   47146      379298 :          data_tmp = full_data(idata)
   47147      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47148      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47149             :          pack_tmp = ISHFT(pack_tmp, 0)
   47150      379298 :          pack_tmp = ISHFT(pack_tmp, 0)
   47151      379298 :          ipack = ipack + 1
   47152      379300 :          packed_data(ipack) = pack_tmp
   47153             :       END DO
   47154       23738 :       IF (Ndata_rep < Ndata) THEN
   47155          60 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   47156             :       END IF
   47157       23738 :    END SUBROUTINE ints2bits_57
   47158             : 
   47159             : ! **************************************************************************************************
   47160             : !> \brief ...
   47161             : !> \param Ndata ...
   47162             : !> \param packed_data ...
   47163             : !> \param full_data ...
   47164             : ! **************************************************************************************************
   47165       98969 :    SUBROUTINE bits2ints_57(Ndata, packed_data, full_data)
   47166             :       INTEGER, INTENT(IN)                                :: Ndata
   47167             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   47168             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   47169             : 
   47170             :       INTEGER, PARAMETER                                 :: Nbits = 57
   47171             : 
   47172             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   47173             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   47174             : 
   47175       98969 :       ipack = 0
   47176       98969 :       idata = 0
   47177       98969 :       pack_tmp = 0
   47178       98969 :       Ndata_rep = (Ndata/64)*64
   47179       98969 :       DO kdata = 1, Ndata_rep, 64
   47180     1554434 :          idata = idata + 1
   47181     1554434 :          data_tmp = ISHFT(pack_tmp, 57)
   47182     1554434 :          ipack = ipack + 1
   47183     1554434 :          pack_tmp = packed_data(ipack)
   47184     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   47185     1554434 :          pack_tmp = ISHFT(pack_tmp, -57)
   47186     1554434 :          idata = idata + 1
   47187     1554434 :          data_tmp = ISHFT(pack_tmp, 50)
   47188     1554434 :          ipack = ipack + 1
   47189     1554434 :          pack_tmp = packed_data(ipack)
   47190     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   47191     1554434 :          pack_tmp = ISHFT(pack_tmp, -50)
   47192     1554434 :          idata = idata + 1
   47193     1554434 :          data_tmp = ISHFT(pack_tmp, 43)
   47194     1554434 :          ipack = ipack + 1
   47195     1554434 :          pack_tmp = packed_data(ipack)
   47196     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   47197     1554434 :          pack_tmp = ISHFT(pack_tmp, -43)
   47198     1554434 :          idata = idata + 1
   47199     1554434 :          data_tmp = ISHFT(pack_tmp, 36)
   47200     1554434 :          ipack = ipack + 1
   47201     1554434 :          pack_tmp = packed_data(ipack)
   47202     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   47203     1554434 :          pack_tmp = ISHFT(pack_tmp, -36)
   47204     1554434 :          idata = idata + 1
   47205     1554434 :          data_tmp = ISHFT(pack_tmp, 29)
   47206     1554434 :          ipack = ipack + 1
   47207     1554434 :          pack_tmp = packed_data(ipack)
   47208     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   47209     1554434 :          pack_tmp = ISHFT(pack_tmp, -29)
   47210     1554434 :          idata = idata + 1
   47211     1554434 :          data_tmp = ISHFT(pack_tmp, 22)
   47212     1554434 :          ipack = ipack + 1
   47213     1554434 :          pack_tmp = packed_data(ipack)
   47214     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   47215     1554434 :          pack_tmp = ISHFT(pack_tmp, -22)
   47216     1554434 :          idata = idata + 1
   47217     1554434 :          data_tmp = ISHFT(pack_tmp, 15)
   47218     1554434 :          ipack = ipack + 1
   47219     1554434 :          pack_tmp = packed_data(ipack)
   47220     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   47221     1554434 :          pack_tmp = ISHFT(pack_tmp, -15)
   47222     1554434 :          idata = idata + 1
   47223     1554434 :          data_tmp = ISHFT(pack_tmp, 8)
   47224     1554434 :          ipack = ipack + 1
   47225     1554434 :          pack_tmp = packed_data(ipack)
   47226     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   47227     1554434 :          pack_tmp = ISHFT(pack_tmp, -8)
   47228     1554434 :          idata = idata + 1
   47229     1554434 :          data_tmp = ISHFT(pack_tmp, 1)
   47230     1554434 :          ipack = ipack + 1
   47231     1554434 :          pack_tmp = packed_data(ipack)
   47232     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   47233     1554434 :          pack_tmp = ISHFT(pack_tmp, -1)
   47234     1554434 :          idata = idata + 1
   47235     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47236     1554434 :          full_data(idata) = data_tmp
   47237     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47238     1554434 :          idata = idata + 1
   47239     1554434 :          data_tmp = ISHFT(pack_tmp, 51)
   47240     1554434 :          ipack = ipack + 1
   47241     1554434 :          pack_tmp = packed_data(ipack)
   47242     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   47243     1554434 :          pack_tmp = ISHFT(pack_tmp, -51)
   47244     1554434 :          idata = idata + 1
   47245     1554434 :          data_tmp = ISHFT(pack_tmp, 44)
   47246     1554434 :          ipack = ipack + 1
   47247     1554434 :          pack_tmp = packed_data(ipack)
   47248     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   47249     1554434 :          pack_tmp = ISHFT(pack_tmp, -44)
   47250     1554434 :          idata = idata + 1
   47251     1554434 :          data_tmp = ISHFT(pack_tmp, 37)
   47252     1554434 :          ipack = ipack + 1
   47253     1554434 :          pack_tmp = packed_data(ipack)
   47254     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   47255     1554434 :          pack_tmp = ISHFT(pack_tmp, -37)
   47256     1554434 :          idata = idata + 1
   47257     1554434 :          data_tmp = ISHFT(pack_tmp, 30)
   47258     1554434 :          ipack = ipack + 1
   47259     1554434 :          pack_tmp = packed_data(ipack)
   47260     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   47261     1554434 :          pack_tmp = ISHFT(pack_tmp, -30)
   47262     1554434 :          idata = idata + 1
   47263     1554434 :          data_tmp = ISHFT(pack_tmp, 23)
   47264     1554434 :          ipack = ipack + 1
   47265     1554434 :          pack_tmp = packed_data(ipack)
   47266     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   47267     1554434 :          pack_tmp = ISHFT(pack_tmp, -23)
   47268     1554434 :          idata = idata + 1
   47269     1554434 :          data_tmp = ISHFT(pack_tmp, 16)
   47270     1554434 :          ipack = ipack + 1
   47271     1554434 :          pack_tmp = packed_data(ipack)
   47272     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   47273     1554434 :          pack_tmp = ISHFT(pack_tmp, -16)
   47274     1554434 :          idata = idata + 1
   47275     1554434 :          data_tmp = ISHFT(pack_tmp, 9)
   47276     1554434 :          ipack = ipack + 1
   47277     1554434 :          pack_tmp = packed_data(ipack)
   47278     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   47279     1554434 :          pack_tmp = ISHFT(pack_tmp, -9)
   47280     1554434 :          idata = idata + 1
   47281     1554434 :          data_tmp = ISHFT(pack_tmp, 2)
   47282     1554434 :          ipack = ipack + 1
   47283     1554434 :          pack_tmp = packed_data(ipack)
   47284     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   47285     1554434 :          pack_tmp = ISHFT(pack_tmp, -2)
   47286     1554434 :          idata = idata + 1
   47287     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47288     1554434 :          full_data(idata) = data_tmp
   47289     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47290     1554434 :          idata = idata + 1
   47291     1554434 :          data_tmp = ISHFT(pack_tmp, 52)
   47292     1554434 :          ipack = ipack + 1
   47293     1554434 :          pack_tmp = packed_data(ipack)
   47294     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   47295     1554434 :          pack_tmp = ISHFT(pack_tmp, -52)
   47296     1554434 :          idata = idata + 1
   47297     1554434 :          data_tmp = ISHFT(pack_tmp, 45)
   47298     1554434 :          ipack = ipack + 1
   47299     1554434 :          pack_tmp = packed_data(ipack)
   47300     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   47301     1554434 :          pack_tmp = ISHFT(pack_tmp, -45)
   47302     1554434 :          idata = idata + 1
   47303     1554434 :          data_tmp = ISHFT(pack_tmp, 38)
   47304     1554434 :          ipack = ipack + 1
   47305     1554434 :          pack_tmp = packed_data(ipack)
   47306     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   47307     1554434 :          pack_tmp = ISHFT(pack_tmp, -38)
   47308     1554434 :          idata = idata + 1
   47309     1554434 :          data_tmp = ISHFT(pack_tmp, 31)
   47310     1554434 :          ipack = ipack + 1
   47311     1554434 :          pack_tmp = packed_data(ipack)
   47312     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   47313     1554434 :          pack_tmp = ISHFT(pack_tmp, -31)
   47314     1554434 :          idata = idata + 1
   47315     1554434 :          data_tmp = ISHFT(pack_tmp, 24)
   47316     1554434 :          ipack = ipack + 1
   47317     1554434 :          pack_tmp = packed_data(ipack)
   47318     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   47319     1554434 :          pack_tmp = ISHFT(pack_tmp, -24)
   47320     1554434 :          idata = idata + 1
   47321     1554434 :          data_tmp = ISHFT(pack_tmp, 17)
   47322     1554434 :          ipack = ipack + 1
   47323     1554434 :          pack_tmp = packed_data(ipack)
   47324     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   47325     1554434 :          pack_tmp = ISHFT(pack_tmp, -17)
   47326     1554434 :          idata = idata + 1
   47327     1554434 :          data_tmp = ISHFT(pack_tmp, 10)
   47328     1554434 :          ipack = ipack + 1
   47329     1554434 :          pack_tmp = packed_data(ipack)
   47330     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   47331     1554434 :          pack_tmp = ISHFT(pack_tmp, -10)
   47332     1554434 :          idata = idata + 1
   47333     1554434 :          data_tmp = ISHFT(pack_tmp, 3)
   47334     1554434 :          ipack = ipack + 1
   47335     1554434 :          pack_tmp = packed_data(ipack)
   47336     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   47337     1554434 :          pack_tmp = ISHFT(pack_tmp, -3)
   47338     1554434 :          idata = idata + 1
   47339     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47340     1554434 :          full_data(idata) = data_tmp
   47341     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47342     1554434 :          idata = idata + 1
   47343     1554434 :          data_tmp = ISHFT(pack_tmp, 53)
   47344     1554434 :          ipack = ipack + 1
   47345     1554434 :          pack_tmp = packed_data(ipack)
   47346     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   47347     1554434 :          pack_tmp = ISHFT(pack_tmp, -53)
   47348     1554434 :          idata = idata + 1
   47349     1554434 :          data_tmp = ISHFT(pack_tmp, 46)
   47350     1554434 :          ipack = ipack + 1
   47351     1554434 :          pack_tmp = packed_data(ipack)
   47352     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   47353     1554434 :          pack_tmp = ISHFT(pack_tmp, -46)
   47354     1554434 :          idata = idata + 1
   47355     1554434 :          data_tmp = ISHFT(pack_tmp, 39)
   47356     1554434 :          ipack = ipack + 1
   47357     1554434 :          pack_tmp = packed_data(ipack)
   47358     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   47359     1554434 :          pack_tmp = ISHFT(pack_tmp, -39)
   47360     1554434 :          idata = idata + 1
   47361     1554434 :          data_tmp = ISHFT(pack_tmp, 32)
   47362     1554434 :          ipack = ipack + 1
   47363     1554434 :          pack_tmp = packed_data(ipack)
   47364     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   47365     1554434 :          pack_tmp = ISHFT(pack_tmp, -32)
   47366     1554434 :          idata = idata + 1
   47367     1554434 :          data_tmp = ISHFT(pack_tmp, 25)
   47368     1554434 :          ipack = ipack + 1
   47369     1554434 :          pack_tmp = packed_data(ipack)
   47370     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   47371     1554434 :          pack_tmp = ISHFT(pack_tmp, -25)
   47372     1554434 :          idata = idata + 1
   47373     1554434 :          data_tmp = ISHFT(pack_tmp, 18)
   47374     1554434 :          ipack = ipack + 1
   47375     1554434 :          pack_tmp = packed_data(ipack)
   47376     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   47377     1554434 :          pack_tmp = ISHFT(pack_tmp, -18)
   47378     1554434 :          idata = idata + 1
   47379     1554434 :          data_tmp = ISHFT(pack_tmp, 11)
   47380     1554434 :          ipack = ipack + 1
   47381     1554434 :          pack_tmp = packed_data(ipack)
   47382     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   47383     1554434 :          pack_tmp = ISHFT(pack_tmp, -11)
   47384     1554434 :          idata = idata + 1
   47385     1554434 :          data_tmp = ISHFT(pack_tmp, 4)
   47386     1554434 :          ipack = ipack + 1
   47387     1554434 :          pack_tmp = packed_data(ipack)
   47388     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   47389     1554434 :          pack_tmp = ISHFT(pack_tmp, -4)
   47390     1554434 :          idata = idata + 1
   47391     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47392     1554434 :          full_data(idata) = data_tmp
   47393     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47394     1554434 :          idata = idata + 1
   47395     1554434 :          data_tmp = ISHFT(pack_tmp, 54)
   47396     1554434 :          ipack = ipack + 1
   47397     1554434 :          pack_tmp = packed_data(ipack)
   47398     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   47399     1554434 :          pack_tmp = ISHFT(pack_tmp, -54)
   47400     1554434 :          idata = idata + 1
   47401     1554434 :          data_tmp = ISHFT(pack_tmp, 47)
   47402     1554434 :          ipack = ipack + 1
   47403     1554434 :          pack_tmp = packed_data(ipack)
   47404     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   47405     1554434 :          pack_tmp = ISHFT(pack_tmp, -47)
   47406     1554434 :          idata = idata + 1
   47407     1554434 :          data_tmp = ISHFT(pack_tmp, 40)
   47408     1554434 :          ipack = ipack + 1
   47409     1554434 :          pack_tmp = packed_data(ipack)
   47410     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   47411     1554434 :          pack_tmp = ISHFT(pack_tmp, -40)
   47412     1554434 :          idata = idata + 1
   47413     1554434 :          data_tmp = ISHFT(pack_tmp, 33)
   47414     1554434 :          ipack = ipack + 1
   47415     1554434 :          pack_tmp = packed_data(ipack)
   47416     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   47417     1554434 :          pack_tmp = ISHFT(pack_tmp, -33)
   47418     1554434 :          idata = idata + 1
   47419     1554434 :          data_tmp = ISHFT(pack_tmp, 26)
   47420     1554434 :          ipack = ipack + 1
   47421     1554434 :          pack_tmp = packed_data(ipack)
   47422     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   47423     1554434 :          pack_tmp = ISHFT(pack_tmp, -26)
   47424     1554434 :          idata = idata + 1
   47425     1554434 :          data_tmp = ISHFT(pack_tmp, 19)
   47426     1554434 :          ipack = ipack + 1
   47427     1554434 :          pack_tmp = packed_data(ipack)
   47428     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   47429     1554434 :          pack_tmp = ISHFT(pack_tmp, -19)
   47430     1554434 :          idata = idata + 1
   47431     1554434 :          data_tmp = ISHFT(pack_tmp, 12)
   47432     1554434 :          ipack = ipack + 1
   47433     1554434 :          pack_tmp = packed_data(ipack)
   47434     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   47435     1554434 :          pack_tmp = ISHFT(pack_tmp, -12)
   47436     1554434 :          idata = idata + 1
   47437     1554434 :          data_tmp = ISHFT(pack_tmp, 5)
   47438     1554434 :          ipack = ipack + 1
   47439     1554434 :          pack_tmp = packed_data(ipack)
   47440     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   47441     1554434 :          pack_tmp = ISHFT(pack_tmp, -5)
   47442     1554434 :          idata = idata + 1
   47443     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47444     1554434 :          full_data(idata) = data_tmp
   47445     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47446     1554434 :          idata = idata + 1
   47447     1554434 :          data_tmp = ISHFT(pack_tmp, 55)
   47448     1554434 :          ipack = ipack + 1
   47449     1554434 :          pack_tmp = packed_data(ipack)
   47450     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   47451     1554434 :          pack_tmp = ISHFT(pack_tmp, -55)
   47452     1554434 :          idata = idata + 1
   47453     1554434 :          data_tmp = ISHFT(pack_tmp, 48)
   47454     1554434 :          ipack = ipack + 1
   47455     1554434 :          pack_tmp = packed_data(ipack)
   47456     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   47457     1554434 :          pack_tmp = ISHFT(pack_tmp, -48)
   47458     1554434 :          idata = idata + 1
   47459     1554434 :          data_tmp = ISHFT(pack_tmp, 41)
   47460     1554434 :          ipack = ipack + 1
   47461     1554434 :          pack_tmp = packed_data(ipack)
   47462     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   47463     1554434 :          pack_tmp = ISHFT(pack_tmp, -41)
   47464     1554434 :          idata = idata + 1
   47465     1554434 :          data_tmp = ISHFT(pack_tmp, 34)
   47466     1554434 :          ipack = ipack + 1
   47467     1554434 :          pack_tmp = packed_data(ipack)
   47468     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   47469     1554434 :          pack_tmp = ISHFT(pack_tmp, -34)
   47470     1554434 :          idata = idata + 1
   47471     1554434 :          data_tmp = ISHFT(pack_tmp, 27)
   47472     1554434 :          ipack = ipack + 1
   47473     1554434 :          pack_tmp = packed_data(ipack)
   47474     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   47475     1554434 :          pack_tmp = ISHFT(pack_tmp, -27)
   47476     1554434 :          idata = idata + 1
   47477     1554434 :          data_tmp = ISHFT(pack_tmp, 20)
   47478     1554434 :          ipack = ipack + 1
   47479     1554434 :          pack_tmp = packed_data(ipack)
   47480     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   47481     1554434 :          pack_tmp = ISHFT(pack_tmp, -20)
   47482     1554434 :          idata = idata + 1
   47483     1554434 :          data_tmp = ISHFT(pack_tmp, 13)
   47484     1554434 :          ipack = ipack + 1
   47485     1554434 :          pack_tmp = packed_data(ipack)
   47486     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   47487     1554434 :          pack_tmp = ISHFT(pack_tmp, -13)
   47488     1554434 :          idata = idata + 1
   47489     1554434 :          data_tmp = ISHFT(pack_tmp, 6)
   47490     1554434 :          ipack = ipack + 1
   47491     1554434 :          pack_tmp = packed_data(ipack)
   47492     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   47493     1554434 :          pack_tmp = ISHFT(pack_tmp, -6)
   47494     1554434 :          idata = idata + 1
   47495     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47496     1554434 :          full_data(idata) = data_tmp
   47497     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47498     1554434 :          idata = idata + 1
   47499     1554434 :          data_tmp = ISHFT(pack_tmp, 56)
   47500     1554434 :          ipack = ipack + 1
   47501     1554434 :          pack_tmp = packed_data(ipack)
   47502     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   47503     1554434 :          pack_tmp = ISHFT(pack_tmp, -56)
   47504     1554434 :          idata = idata + 1
   47505     1554434 :          data_tmp = ISHFT(pack_tmp, 49)
   47506     1554434 :          ipack = ipack + 1
   47507     1554434 :          pack_tmp = packed_data(ipack)
   47508     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   47509     1554434 :          pack_tmp = ISHFT(pack_tmp, -49)
   47510     1554434 :          idata = idata + 1
   47511     1554434 :          data_tmp = ISHFT(pack_tmp, 42)
   47512     1554434 :          ipack = ipack + 1
   47513     1554434 :          pack_tmp = packed_data(ipack)
   47514     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   47515     1554434 :          pack_tmp = ISHFT(pack_tmp, -42)
   47516     1554434 :          idata = idata + 1
   47517     1554434 :          data_tmp = ISHFT(pack_tmp, 35)
   47518     1554434 :          ipack = ipack + 1
   47519     1554434 :          pack_tmp = packed_data(ipack)
   47520     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   47521     1554434 :          pack_tmp = ISHFT(pack_tmp, -35)
   47522     1554434 :          idata = idata + 1
   47523     1554434 :          data_tmp = ISHFT(pack_tmp, 28)
   47524     1554434 :          ipack = ipack + 1
   47525     1554434 :          pack_tmp = packed_data(ipack)
   47526     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   47527     1554434 :          pack_tmp = ISHFT(pack_tmp, -28)
   47528     1554434 :          idata = idata + 1
   47529     1554434 :          data_tmp = ISHFT(pack_tmp, 21)
   47530     1554434 :          ipack = ipack + 1
   47531     1554434 :          pack_tmp = packed_data(ipack)
   47532     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   47533     1554434 :          pack_tmp = ISHFT(pack_tmp, -21)
   47534     1554434 :          idata = idata + 1
   47535     1554434 :          data_tmp = ISHFT(pack_tmp, 14)
   47536     1554434 :          ipack = ipack + 1
   47537     1554434 :          pack_tmp = packed_data(ipack)
   47538     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   47539     1554434 :          pack_tmp = ISHFT(pack_tmp, -14)
   47540     1554434 :          idata = idata + 1
   47541     1554434 :          data_tmp = ISHFT(pack_tmp, 7)
   47542     1554434 :          ipack = ipack + 1
   47543     1554434 :          pack_tmp = packed_data(ipack)
   47544     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   47545     1554434 :          pack_tmp = ISHFT(pack_tmp, -7)
   47546     1554434 :          idata = idata + 1
   47547     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47548     1554434 :          full_data(idata) = data_tmp
   47549     1554556 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47550             :       END DO
   47551       98969 :       IF (Ndata_rep < Ndata) THEN
   47552        3420 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   47553             :       END IF
   47554       98969 :    END SUBROUTINE bits2ints_57
   47555             : 
   47556             : ! **************************************************************************************************
   47557             : !> \brief ...
   47558             : !> \param Ndata ...
   47559             : !> \param packed_data ...
   47560             : !> \param full_data ...
   47561             : ! **************************************************************************************************
   47562       23700 :    SUBROUTINE ints2bits_58(Ndata, packed_data, full_data)
   47563             :       INTEGER, INTENT(IN)                                :: Ndata
   47564             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   47565             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   47566             : 
   47567             :       INTEGER, PARAMETER                                 :: Nbits = 58
   47568             : 
   47569             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   47570             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   47571             : 
   47572       23700 :       idata = 0
   47573       23700 :       ipack = 0
   47574       23700 :       Ndata_rep = (Ndata/64)*64
   47575       23700 :       DO kdata = 1, Ndata_rep, 64
   47576      378996 :          pack_tmp = 0
   47577      378996 :          idata = idata + 1
   47578      378996 :          data_tmp = full_data(idata)
   47579      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47580      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47581      378996 :          pack_tmp = ISHFT(pack_tmp, -6)
   47582      378996 :          idata = idata + 1
   47583      378996 :          data_tmp = full_data(idata)
   47584      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47585      378996 :          data_tmp = IAND(data_tmp, mask_left(6))
   47586      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47587      378996 :          ipack = ipack + 1
   47588      378996 :          packed_data(ipack) = pack_tmp
   47589      378996 :          data_tmp = full_data(idata)
   47590      378996 :          pack_tmp = ISHFT(data_tmp, 12)
   47591      378996 :          pack_tmp = ISHFT(pack_tmp, -12)
   47592      378996 :          idata = idata + 1
   47593      378996 :          data_tmp = full_data(idata)
   47594      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47595      378996 :          data_tmp = IAND(data_tmp, mask_left(12))
   47596      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47597      378996 :          ipack = ipack + 1
   47598      378996 :          packed_data(ipack) = pack_tmp
   47599      378996 :          data_tmp = full_data(idata)
   47600      378996 :          pack_tmp = ISHFT(data_tmp, 18)
   47601      378996 :          pack_tmp = ISHFT(pack_tmp, -18)
   47602      378996 :          idata = idata + 1
   47603      378996 :          data_tmp = full_data(idata)
   47604      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47605      378996 :          data_tmp = IAND(data_tmp, mask_left(18))
   47606      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47607      378996 :          ipack = ipack + 1
   47608      378996 :          packed_data(ipack) = pack_tmp
   47609      378996 :          data_tmp = full_data(idata)
   47610      378996 :          pack_tmp = ISHFT(data_tmp, 24)
   47611      378996 :          pack_tmp = ISHFT(pack_tmp, -24)
   47612      378996 :          idata = idata + 1
   47613      378996 :          data_tmp = full_data(idata)
   47614      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47615      378996 :          data_tmp = IAND(data_tmp, mask_left(24))
   47616      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47617      378996 :          ipack = ipack + 1
   47618      378996 :          packed_data(ipack) = pack_tmp
   47619      378996 :          data_tmp = full_data(idata)
   47620      378996 :          pack_tmp = ISHFT(data_tmp, 30)
   47621      378996 :          pack_tmp = ISHFT(pack_tmp, -30)
   47622      378996 :          idata = idata + 1
   47623      378996 :          data_tmp = full_data(idata)
   47624      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47625      378996 :          data_tmp = IAND(data_tmp, mask_left(30))
   47626      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47627      378996 :          ipack = ipack + 1
   47628      378996 :          packed_data(ipack) = pack_tmp
   47629      378996 :          data_tmp = full_data(idata)
   47630      378996 :          pack_tmp = ISHFT(data_tmp, 36)
   47631      378996 :          pack_tmp = ISHFT(pack_tmp, -36)
   47632      378996 :          idata = idata + 1
   47633      378996 :          data_tmp = full_data(idata)
   47634      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47635      378996 :          data_tmp = IAND(data_tmp, mask_left(36))
   47636      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47637      378996 :          ipack = ipack + 1
   47638      378996 :          packed_data(ipack) = pack_tmp
   47639      378996 :          data_tmp = full_data(idata)
   47640      378996 :          pack_tmp = ISHFT(data_tmp, 42)
   47641      378996 :          pack_tmp = ISHFT(pack_tmp, -42)
   47642      378996 :          idata = idata + 1
   47643      378996 :          data_tmp = full_data(idata)
   47644      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47645      378996 :          data_tmp = IAND(data_tmp, mask_left(42))
   47646      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47647      378996 :          ipack = ipack + 1
   47648      378996 :          packed_data(ipack) = pack_tmp
   47649      378996 :          data_tmp = full_data(idata)
   47650      378996 :          pack_tmp = ISHFT(data_tmp, 48)
   47651      378996 :          pack_tmp = ISHFT(pack_tmp, -48)
   47652      378996 :          idata = idata + 1
   47653      378996 :          data_tmp = full_data(idata)
   47654      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47655      378996 :          data_tmp = IAND(data_tmp, mask_left(48))
   47656      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47657      378996 :          ipack = ipack + 1
   47658      378996 :          packed_data(ipack) = pack_tmp
   47659      378996 :          data_tmp = full_data(idata)
   47660      378996 :          pack_tmp = ISHFT(data_tmp, 54)
   47661      378996 :          pack_tmp = ISHFT(pack_tmp, -54)
   47662      378996 :          idata = idata + 1
   47663      378996 :          data_tmp = full_data(idata)
   47664      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47665      378996 :          data_tmp = IAND(data_tmp, mask_left(54))
   47666      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47667      378996 :          ipack = ipack + 1
   47668      378996 :          packed_data(ipack) = pack_tmp
   47669      378996 :          data_tmp = full_data(idata)
   47670      378996 :          pack_tmp = ISHFT(data_tmp, 60)
   47671      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47672      378996 :          idata = idata + 1
   47673      378996 :          data_tmp = full_data(idata)
   47674      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47675      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47676      378996 :          pack_tmp = ISHFT(pack_tmp, -2)
   47677      378996 :          idata = idata + 1
   47678      378996 :          data_tmp = full_data(idata)
   47679      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47680      378996 :          data_tmp = IAND(data_tmp, mask_left(2))
   47681      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47682      378996 :          ipack = ipack + 1
   47683      378996 :          packed_data(ipack) = pack_tmp
   47684      378996 :          data_tmp = full_data(idata)
   47685      378996 :          pack_tmp = ISHFT(data_tmp, 8)
   47686      378996 :          pack_tmp = ISHFT(pack_tmp, -8)
   47687      378996 :          idata = idata + 1
   47688      378996 :          data_tmp = full_data(idata)
   47689      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47690      378996 :          data_tmp = IAND(data_tmp, mask_left(8))
   47691      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47692      378996 :          ipack = ipack + 1
   47693      378996 :          packed_data(ipack) = pack_tmp
   47694      378996 :          data_tmp = full_data(idata)
   47695      378996 :          pack_tmp = ISHFT(data_tmp, 14)
   47696      378996 :          pack_tmp = ISHFT(pack_tmp, -14)
   47697      378996 :          idata = idata + 1
   47698      378996 :          data_tmp = full_data(idata)
   47699      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47700      378996 :          data_tmp = IAND(data_tmp, mask_left(14))
   47701      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47702      378996 :          ipack = ipack + 1
   47703      378996 :          packed_data(ipack) = pack_tmp
   47704      378996 :          data_tmp = full_data(idata)
   47705      378996 :          pack_tmp = ISHFT(data_tmp, 20)
   47706      378996 :          pack_tmp = ISHFT(pack_tmp, -20)
   47707      378996 :          idata = idata + 1
   47708      378996 :          data_tmp = full_data(idata)
   47709      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47710      378996 :          data_tmp = IAND(data_tmp, mask_left(20))
   47711      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47712      378996 :          ipack = ipack + 1
   47713      378996 :          packed_data(ipack) = pack_tmp
   47714      378996 :          data_tmp = full_data(idata)
   47715      378996 :          pack_tmp = ISHFT(data_tmp, 26)
   47716      378996 :          pack_tmp = ISHFT(pack_tmp, -26)
   47717      378996 :          idata = idata + 1
   47718      378996 :          data_tmp = full_data(idata)
   47719      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47720      378996 :          data_tmp = IAND(data_tmp, mask_left(26))
   47721      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47722      378996 :          ipack = ipack + 1
   47723      378996 :          packed_data(ipack) = pack_tmp
   47724      378996 :          data_tmp = full_data(idata)
   47725      378996 :          pack_tmp = ISHFT(data_tmp, 32)
   47726      378996 :          pack_tmp = ISHFT(pack_tmp, -32)
   47727      378996 :          idata = idata + 1
   47728      378996 :          data_tmp = full_data(idata)
   47729      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47730      378996 :          data_tmp = IAND(data_tmp, mask_left(32))
   47731      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47732      378996 :          ipack = ipack + 1
   47733      378996 :          packed_data(ipack) = pack_tmp
   47734      378996 :          data_tmp = full_data(idata)
   47735      378996 :          pack_tmp = ISHFT(data_tmp, 38)
   47736      378996 :          pack_tmp = ISHFT(pack_tmp, -38)
   47737      378996 :          idata = idata + 1
   47738      378996 :          data_tmp = full_data(idata)
   47739      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47740      378996 :          data_tmp = IAND(data_tmp, mask_left(38))
   47741      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47742      378996 :          ipack = ipack + 1
   47743      378996 :          packed_data(ipack) = pack_tmp
   47744      378996 :          data_tmp = full_data(idata)
   47745      378996 :          pack_tmp = ISHFT(data_tmp, 44)
   47746      378996 :          pack_tmp = ISHFT(pack_tmp, -44)
   47747      378996 :          idata = idata + 1
   47748      378996 :          data_tmp = full_data(idata)
   47749      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47750      378996 :          data_tmp = IAND(data_tmp, mask_left(44))
   47751      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47752      378996 :          ipack = ipack + 1
   47753      378996 :          packed_data(ipack) = pack_tmp
   47754      378996 :          data_tmp = full_data(idata)
   47755      378996 :          pack_tmp = ISHFT(data_tmp, 50)
   47756      378996 :          pack_tmp = ISHFT(pack_tmp, -50)
   47757      378996 :          idata = idata + 1
   47758      378996 :          data_tmp = full_data(idata)
   47759      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47760      378996 :          data_tmp = IAND(data_tmp, mask_left(50))
   47761      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47762      378996 :          ipack = ipack + 1
   47763      378996 :          packed_data(ipack) = pack_tmp
   47764      378996 :          data_tmp = full_data(idata)
   47765      378996 :          pack_tmp = ISHFT(data_tmp, 56)
   47766      378996 :          pack_tmp = ISHFT(pack_tmp, -56)
   47767      378996 :          idata = idata + 1
   47768      378996 :          data_tmp = full_data(idata)
   47769      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47770      378996 :          data_tmp = IAND(data_tmp, mask_left(56))
   47771      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47772      378996 :          ipack = ipack + 1
   47773      378996 :          packed_data(ipack) = pack_tmp
   47774      378996 :          data_tmp = full_data(idata)
   47775      378996 :          pack_tmp = ISHFT(data_tmp, 62)
   47776      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47777      378996 :          idata = idata + 1
   47778      378996 :          data_tmp = full_data(idata)
   47779      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47780      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47781      378996 :          pack_tmp = ISHFT(pack_tmp, -4)
   47782      378996 :          idata = idata + 1
   47783      378996 :          data_tmp = full_data(idata)
   47784      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47785      378996 :          data_tmp = IAND(data_tmp, mask_left(4))
   47786      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47787      378996 :          ipack = ipack + 1
   47788      378996 :          packed_data(ipack) = pack_tmp
   47789      378996 :          data_tmp = full_data(idata)
   47790      378996 :          pack_tmp = ISHFT(data_tmp, 10)
   47791      378996 :          pack_tmp = ISHFT(pack_tmp, -10)
   47792      378996 :          idata = idata + 1
   47793      378996 :          data_tmp = full_data(idata)
   47794      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47795      378996 :          data_tmp = IAND(data_tmp, mask_left(10))
   47796      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47797      378996 :          ipack = ipack + 1
   47798      378996 :          packed_data(ipack) = pack_tmp
   47799      378996 :          data_tmp = full_data(idata)
   47800      378996 :          pack_tmp = ISHFT(data_tmp, 16)
   47801      378996 :          pack_tmp = ISHFT(pack_tmp, -16)
   47802      378996 :          idata = idata + 1
   47803      378996 :          data_tmp = full_data(idata)
   47804      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47805      378996 :          data_tmp = IAND(data_tmp, mask_left(16))
   47806      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47807      378996 :          ipack = ipack + 1
   47808      378996 :          packed_data(ipack) = pack_tmp
   47809      378996 :          data_tmp = full_data(idata)
   47810      378996 :          pack_tmp = ISHFT(data_tmp, 22)
   47811      378996 :          pack_tmp = ISHFT(pack_tmp, -22)
   47812      378996 :          idata = idata + 1
   47813      378996 :          data_tmp = full_data(idata)
   47814      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47815      378996 :          data_tmp = IAND(data_tmp, mask_left(22))
   47816      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47817      378996 :          ipack = ipack + 1
   47818      378996 :          packed_data(ipack) = pack_tmp
   47819      378996 :          data_tmp = full_data(idata)
   47820      378996 :          pack_tmp = ISHFT(data_tmp, 28)
   47821      378996 :          pack_tmp = ISHFT(pack_tmp, -28)
   47822      378996 :          idata = idata + 1
   47823      378996 :          data_tmp = full_data(idata)
   47824      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47825      378996 :          data_tmp = IAND(data_tmp, mask_left(28))
   47826      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47827      378996 :          ipack = ipack + 1
   47828      378996 :          packed_data(ipack) = pack_tmp
   47829      378996 :          data_tmp = full_data(idata)
   47830      378996 :          pack_tmp = ISHFT(data_tmp, 34)
   47831      378996 :          pack_tmp = ISHFT(pack_tmp, -34)
   47832      378996 :          idata = idata + 1
   47833      378996 :          data_tmp = full_data(idata)
   47834      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47835      378996 :          data_tmp = IAND(data_tmp, mask_left(34))
   47836      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47837      378996 :          ipack = ipack + 1
   47838      378996 :          packed_data(ipack) = pack_tmp
   47839      378996 :          data_tmp = full_data(idata)
   47840      378996 :          pack_tmp = ISHFT(data_tmp, 40)
   47841      378996 :          pack_tmp = ISHFT(pack_tmp, -40)
   47842      378996 :          idata = idata + 1
   47843      378996 :          data_tmp = full_data(idata)
   47844      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47845      378996 :          data_tmp = IAND(data_tmp, mask_left(40))
   47846      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47847      378996 :          ipack = ipack + 1
   47848      378996 :          packed_data(ipack) = pack_tmp
   47849      378996 :          data_tmp = full_data(idata)
   47850      378996 :          pack_tmp = ISHFT(data_tmp, 46)
   47851      378996 :          pack_tmp = ISHFT(pack_tmp, -46)
   47852      378996 :          idata = idata + 1
   47853      378996 :          data_tmp = full_data(idata)
   47854      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47855      378996 :          data_tmp = IAND(data_tmp, mask_left(46))
   47856      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47857      378996 :          ipack = ipack + 1
   47858      378996 :          packed_data(ipack) = pack_tmp
   47859      378996 :          data_tmp = full_data(idata)
   47860      378996 :          pack_tmp = ISHFT(data_tmp, 52)
   47861      378996 :          pack_tmp = ISHFT(pack_tmp, -52)
   47862      378996 :          idata = idata + 1
   47863      378996 :          data_tmp = full_data(idata)
   47864      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47865      378996 :          data_tmp = IAND(data_tmp, mask_left(52))
   47866      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47867      378996 :          ipack = ipack + 1
   47868      378996 :          packed_data(ipack) = pack_tmp
   47869      378996 :          data_tmp = full_data(idata)
   47870      378996 :          pack_tmp = ISHFT(data_tmp, 58)
   47871      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47872      378996 :          idata = idata + 1
   47873      378996 :          data_tmp = full_data(idata)
   47874      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47875      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47876      378996 :          pack_tmp = ISHFT(pack_tmp, 0)
   47877      378996 :          idata = idata + 1
   47878      378996 :          data_tmp = full_data(idata)
   47879             :          data_tmp = ISHFT(data_tmp, 6)
   47880      378996 :          data_tmp = IAND(data_tmp, mask_left(0))
   47881      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47882      378996 :          ipack = ipack + 1
   47883      378996 :          packed_data(ipack) = pack_tmp
   47884      378996 :          data_tmp = full_data(idata)
   47885      378996 :          pack_tmp = ISHFT(data_tmp, 6)
   47886      378996 :          pack_tmp = ISHFT(pack_tmp, -6)
   47887      378996 :          idata = idata + 1
   47888      378996 :          data_tmp = full_data(idata)
   47889      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47890      378996 :          data_tmp = IAND(data_tmp, mask_left(6))
   47891      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47892      378996 :          ipack = ipack + 1
   47893      378996 :          packed_data(ipack) = pack_tmp
   47894      378996 :          data_tmp = full_data(idata)
   47895      378996 :          pack_tmp = ISHFT(data_tmp, 12)
   47896      378996 :          pack_tmp = ISHFT(pack_tmp, -12)
   47897      378996 :          idata = idata + 1
   47898      378996 :          data_tmp = full_data(idata)
   47899      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47900      378996 :          data_tmp = IAND(data_tmp, mask_left(12))
   47901      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47902      378996 :          ipack = ipack + 1
   47903      378996 :          packed_data(ipack) = pack_tmp
   47904      378996 :          data_tmp = full_data(idata)
   47905      378996 :          pack_tmp = ISHFT(data_tmp, 18)
   47906      378996 :          pack_tmp = ISHFT(pack_tmp, -18)
   47907      378996 :          idata = idata + 1
   47908      378996 :          data_tmp = full_data(idata)
   47909      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47910      378996 :          data_tmp = IAND(data_tmp, mask_left(18))
   47911      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47912      378996 :          ipack = ipack + 1
   47913      378996 :          packed_data(ipack) = pack_tmp
   47914      378996 :          data_tmp = full_data(idata)
   47915      378996 :          pack_tmp = ISHFT(data_tmp, 24)
   47916      378996 :          pack_tmp = ISHFT(pack_tmp, -24)
   47917      378996 :          idata = idata + 1
   47918      378996 :          data_tmp = full_data(idata)
   47919      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47920      378996 :          data_tmp = IAND(data_tmp, mask_left(24))
   47921      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47922      378996 :          ipack = ipack + 1
   47923      378996 :          packed_data(ipack) = pack_tmp
   47924      378996 :          data_tmp = full_data(idata)
   47925      378996 :          pack_tmp = ISHFT(data_tmp, 30)
   47926      378996 :          pack_tmp = ISHFT(pack_tmp, -30)
   47927      378996 :          idata = idata + 1
   47928      378996 :          data_tmp = full_data(idata)
   47929      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47930      378996 :          data_tmp = IAND(data_tmp, mask_left(30))
   47931      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47932      378996 :          ipack = ipack + 1
   47933      378996 :          packed_data(ipack) = pack_tmp
   47934      378996 :          data_tmp = full_data(idata)
   47935      378996 :          pack_tmp = ISHFT(data_tmp, 36)
   47936      378996 :          pack_tmp = ISHFT(pack_tmp, -36)
   47937      378996 :          idata = idata + 1
   47938      378996 :          data_tmp = full_data(idata)
   47939      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47940      378996 :          data_tmp = IAND(data_tmp, mask_left(36))
   47941      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47942      378996 :          ipack = ipack + 1
   47943      378996 :          packed_data(ipack) = pack_tmp
   47944      378996 :          data_tmp = full_data(idata)
   47945      378996 :          pack_tmp = ISHFT(data_tmp, 42)
   47946      378996 :          pack_tmp = ISHFT(pack_tmp, -42)
   47947      378996 :          idata = idata + 1
   47948      378996 :          data_tmp = full_data(idata)
   47949      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47950      378996 :          data_tmp = IAND(data_tmp, mask_left(42))
   47951      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47952      378996 :          ipack = ipack + 1
   47953      378996 :          packed_data(ipack) = pack_tmp
   47954      378996 :          data_tmp = full_data(idata)
   47955      378996 :          pack_tmp = ISHFT(data_tmp, 48)
   47956      378996 :          pack_tmp = ISHFT(pack_tmp, -48)
   47957      378996 :          idata = idata + 1
   47958      378996 :          data_tmp = full_data(idata)
   47959      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47960      378996 :          data_tmp = IAND(data_tmp, mask_left(48))
   47961      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47962      378996 :          ipack = ipack + 1
   47963      378996 :          packed_data(ipack) = pack_tmp
   47964      378996 :          data_tmp = full_data(idata)
   47965      378996 :          pack_tmp = ISHFT(data_tmp, 54)
   47966      378996 :          pack_tmp = ISHFT(pack_tmp, -54)
   47967      378996 :          idata = idata + 1
   47968      378996 :          data_tmp = full_data(idata)
   47969      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47970      378996 :          data_tmp = IAND(data_tmp, mask_left(54))
   47971      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47972      378996 :          ipack = ipack + 1
   47973      378996 :          packed_data(ipack) = pack_tmp
   47974      378996 :          data_tmp = full_data(idata)
   47975      378996 :          pack_tmp = ISHFT(data_tmp, 60)
   47976      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47977      378996 :          idata = idata + 1
   47978      378996 :          data_tmp = full_data(idata)
   47979      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47980      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47981      378996 :          pack_tmp = ISHFT(pack_tmp, -2)
   47982      378996 :          idata = idata + 1
   47983      378996 :          data_tmp = full_data(idata)
   47984      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47985      378996 :          data_tmp = IAND(data_tmp, mask_left(2))
   47986      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47987      378996 :          ipack = ipack + 1
   47988      378996 :          packed_data(ipack) = pack_tmp
   47989      378996 :          data_tmp = full_data(idata)
   47990      378996 :          pack_tmp = ISHFT(data_tmp, 8)
   47991      378996 :          pack_tmp = ISHFT(pack_tmp, -8)
   47992      378996 :          idata = idata + 1
   47993      378996 :          data_tmp = full_data(idata)
   47994      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47995      378996 :          data_tmp = IAND(data_tmp, mask_left(8))
   47996      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47997      378996 :          ipack = ipack + 1
   47998      378996 :          packed_data(ipack) = pack_tmp
   47999      378996 :          data_tmp = full_data(idata)
   48000      378996 :          pack_tmp = ISHFT(data_tmp, 14)
   48001      378996 :          pack_tmp = ISHFT(pack_tmp, -14)
   48002      378996 :          idata = idata + 1
   48003      378996 :          data_tmp = full_data(idata)
   48004      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48005      378996 :          data_tmp = IAND(data_tmp, mask_left(14))
   48006      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48007      378996 :          ipack = ipack + 1
   48008      378996 :          packed_data(ipack) = pack_tmp
   48009      378996 :          data_tmp = full_data(idata)
   48010      378996 :          pack_tmp = ISHFT(data_tmp, 20)
   48011      378996 :          pack_tmp = ISHFT(pack_tmp, -20)
   48012      378996 :          idata = idata + 1
   48013      378996 :          data_tmp = full_data(idata)
   48014      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48015      378996 :          data_tmp = IAND(data_tmp, mask_left(20))
   48016      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48017      378996 :          ipack = ipack + 1
   48018      378996 :          packed_data(ipack) = pack_tmp
   48019      378996 :          data_tmp = full_data(idata)
   48020      378996 :          pack_tmp = ISHFT(data_tmp, 26)
   48021      378996 :          pack_tmp = ISHFT(pack_tmp, -26)
   48022      378996 :          idata = idata + 1
   48023      378996 :          data_tmp = full_data(idata)
   48024      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48025      378996 :          data_tmp = IAND(data_tmp, mask_left(26))
   48026      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48027      378996 :          ipack = ipack + 1
   48028      378996 :          packed_data(ipack) = pack_tmp
   48029      378996 :          data_tmp = full_data(idata)
   48030      378996 :          pack_tmp = ISHFT(data_tmp, 32)
   48031      378996 :          pack_tmp = ISHFT(pack_tmp, -32)
   48032      378996 :          idata = idata + 1
   48033      378996 :          data_tmp = full_data(idata)
   48034      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48035      378996 :          data_tmp = IAND(data_tmp, mask_left(32))
   48036      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48037      378996 :          ipack = ipack + 1
   48038      378996 :          packed_data(ipack) = pack_tmp
   48039      378996 :          data_tmp = full_data(idata)
   48040      378996 :          pack_tmp = ISHFT(data_tmp, 38)
   48041      378996 :          pack_tmp = ISHFT(pack_tmp, -38)
   48042      378996 :          idata = idata + 1
   48043      378996 :          data_tmp = full_data(idata)
   48044      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48045      378996 :          data_tmp = IAND(data_tmp, mask_left(38))
   48046      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48047      378996 :          ipack = ipack + 1
   48048      378996 :          packed_data(ipack) = pack_tmp
   48049      378996 :          data_tmp = full_data(idata)
   48050      378996 :          pack_tmp = ISHFT(data_tmp, 44)
   48051      378996 :          pack_tmp = ISHFT(pack_tmp, -44)
   48052      378996 :          idata = idata + 1
   48053      378996 :          data_tmp = full_data(idata)
   48054      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48055      378996 :          data_tmp = IAND(data_tmp, mask_left(44))
   48056      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48057      378996 :          ipack = ipack + 1
   48058      378996 :          packed_data(ipack) = pack_tmp
   48059      378996 :          data_tmp = full_data(idata)
   48060      378996 :          pack_tmp = ISHFT(data_tmp, 50)
   48061      378996 :          pack_tmp = ISHFT(pack_tmp, -50)
   48062      378996 :          idata = idata + 1
   48063      378996 :          data_tmp = full_data(idata)
   48064      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48065      378996 :          data_tmp = IAND(data_tmp, mask_left(50))
   48066      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48067      378996 :          ipack = ipack + 1
   48068      378996 :          packed_data(ipack) = pack_tmp
   48069      378996 :          data_tmp = full_data(idata)
   48070      378996 :          pack_tmp = ISHFT(data_tmp, 56)
   48071      378996 :          pack_tmp = ISHFT(pack_tmp, -56)
   48072      378996 :          idata = idata + 1
   48073      378996 :          data_tmp = full_data(idata)
   48074      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48075      378996 :          data_tmp = IAND(data_tmp, mask_left(56))
   48076      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48077      378996 :          ipack = ipack + 1
   48078      378996 :          packed_data(ipack) = pack_tmp
   48079      378996 :          data_tmp = full_data(idata)
   48080      378996 :          pack_tmp = ISHFT(data_tmp, 62)
   48081      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   48082      378996 :          idata = idata + 1
   48083      378996 :          data_tmp = full_data(idata)
   48084      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48085      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48086      378996 :          pack_tmp = ISHFT(pack_tmp, -4)
   48087      378996 :          idata = idata + 1
   48088      378996 :          data_tmp = full_data(idata)
   48089      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48090      378996 :          data_tmp = IAND(data_tmp, mask_left(4))
   48091      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48092      378996 :          ipack = ipack + 1
   48093      378996 :          packed_data(ipack) = pack_tmp
   48094      378996 :          data_tmp = full_data(idata)
   48095      378996 :          pack_tmp = ISHFT(data_tmp, 10)
   48096      378996 :          pack_tmp = ISHFT(pack_tmp, -10)
   48097      378996 :          idata = idata + 1
   48098      378996 :          data_tmp = full_data(idata)
   48099      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48100      378996 :          data_tmp = IAND(data_tmp, mask_left(10))
   48101      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48102      378996 :          ipack = ipack + 1
   48103      378996 :          packed_data(ipack) = pack_tmp
   48104      378996 :          data_tmp = full_data(idata)
   48105      378996 :          pack_tmp = ISHFT(data_tmp, 16)
   48106      378996 :          pack_tmp = ISHFT(pack_tmp, -16)
   48107      378996 :          idata = idata + 1
   48108      378996 :          data_tmp = full_data(idata)
   48109      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48110      378996 :          data_tmp = IAND(data_tmp, mask_left(16))
   48111      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48112      378996 :          ipack = ipack + 1
   48113      378996 :          packed_data(ipack) = pack_tmp
   48114      378996 :          data_tmp = full_data(idata)
   48115      378996 :          pack_tmp = ISHFT(data_tmp, 22)
   48116      378996 :          pack_tmp = ISHFT(pack_tmp, -22)
   48117      378996 :          idata = idata + 1
   48118      378996 :          data_tmp = full_data(idata)
   48119      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48120      378996 :          data_tmp = IAND(data_tmp, mask_left(22))
   48121      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48122      378996 :          ipack = ipack + 1
   48123      378996 :          packed_data(ipack) = pack_tmp
   48124      378996 :          data_tmp = full_data(idata)
   48125      378996 :          pack_tmp = ISHFT(data_tmp, 28)
   48126      378996 :          pack_tmp = ISHFT(pack_tmp, -28)
   48127      378996 :          idata = idata + 1
   48128      378996 :          data_tmp = full_data(idata)
   48129      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48130      378996 :          data_tmp = IAND(data_tmp, mask_left(28))
   48131      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48132      378996 :          ipack = ipack + 1
   48133      378996 :          packed_data(ipack) = pack_tmp
   48134      378996 :          data_tmp = full_data(idata)
   48135      378996 :          pack_tmp = ISHFT(data_tmp, 34)
   48136      378996 :          pack_tmp = ISHFT(pack_tmp, -34)
   48137      378996 :          idata = idata + 1
   48138      378996 :          data_tmp = full_data(idata)
   48139      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48140      378996 :          data_tmp = IAND(data_tmp, mask_left(34))
   48141      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48142      378996 :          ipack = ipack + 1
   48143      378996 :          packed_data(ipack) = pack_tmp
   48144      378996 :          data_tmp = full_data(idata)
   48145      378996 :          pack_tmp = ISHFT(data_tmp, 40)
   48146      378996 :          pack_tmp = ISHFT(pack_tmp, -40)
   48147      378996 :          idata = idata + 1
   48148      378996 :          data_tmp = full_data(idata)
   48149      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48150      378996 :          data_tmp = IAND(data_tmp, mask_left(40))
   48151      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48152      378996 :          ipack = ipack + 1
   48153      378996 :          packed_data(ipack) = pack_tmp
   48154      378996 :          data_tmp = full_data(idata)
   48155      378996 :          pack_tmp = ISHFT(data_tmp, 46)
   48156      378996 :          pack_tmp = ISHFT(pack_tmp, -46)
   48157      378996 :          idata = idata + 1
   48158      378996 :          data_tmp = full_data(idata)
   48159      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48160      378996 :          data_tmp = IAND(data_tmp, mask_left(46))
   48161      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48162      378996 :          ipack = ipack + 1
   48163      378996 :          packed_data(ipack) = pack_tmp
   48164      378996 :          data_tmp = full_data(idata)
   48165      378996 :          pack_tmp = ISHFT(data_tmp, 52)
   48166      378996 :          pack_tmp = ISHFT(pack_tmp, -52)
   48167      378996 :          idata = idata + 1
   48168      378996 :          data_tmp = full_data(idata)
   48169      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48170      378996 :          data_tmp = IAND(data_tmp, mask_left(52))
   48171      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48172      378996 :          ipack = ipack + 1
   48173      378996 :          packed_data(ipack) = pack_tmp
   48174      378996 :          data_tmp = full_data(idata)
   48175      378996 :          pack_tmp = ISHFT(data_tmp, 58)
   48176      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   48177      378996 :          idata = idata + 1
   48178      378996 :          data_tmp = full_data(idata)
   48179      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48180      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48181             :          pack_tmp = ISHFT(pack_tmp, 0)
   48182      378996 :          pack_tmp = ISHFT(pack_tmp, 0)
   48183      378996 :          ipack = ipack + 1
   48184      378996 :          packed_data(ipack) = pack_tmp
   48185             :       END DO
   48186       23700 :       IF (Ndata_rep < Ndata) THEN
   48187          24 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   48188             :       END IF
   48189       23700 :    END SUBROUTINE ints2bits_58
   48190             : 
   48191             : ! **************************************************************************************************
   48192             : !> \brief ...
   48193             : !> \param Ndata ...
   48194             : !> \param packed_data ...
   48195             : !> \param full_data ...
   48196             : ! **************************************************************************************************
   48197       96891 :    SUBROUTINE bits2ints_58(Ndata, packed_data, full_data)
   48198             :       INTEGER, INTENT(IN)                                :: Ndata
   48199             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   48200             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   48201             : 
   48202             :       INTEGER, PARAMETER                                 :: Nbits = 58
   48203             : 
   48204             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   48205             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   48206             : 
   48207       96891 :       ipack = 0
   48208       96891 :       idata = 0
   48209       96891 :       pack_tmp = 0
   48210       96891 :       Ndata_rep = (Ndata/64)*64
   48211       96891 :       DO kdata = 1, Ndata_rep, 64
   48212     1537812 :          idata = idata + 1
   48213     1537812 :          data_tmp = ISHFT(pack_tmp, 58)
   48214     1537812 :          ipack = ipack + 1
   48215     1537812 :          pack_tmp = packed_data(ipack)
   48216     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48217     1537812 :          pack_tmp = ISHFT(pack_tmp, -58)
   48218     1537812 :          idata = idata + 1
   48219     1537812 :          data_tmp = ISHFT(pack_tmp, 52)
   48220     1537812 :          ipack = ipack + 1
   48221     1537812 :          pack_tmp = packed_data(ipack)
   48222     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48223     1537812 :          pack_tmp = ISHFT(pack_tmp, -52)
   48224     1537812 :          idata = idata + 1
   48225     1537812 :          data_tmp = ISHFT(pack_tmp, 46)
   48226     1537812 :          ipack = ipack + 1
   48227     1537812 :          pack_tmp = packed_data(ipack)
   48228     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48229     1537812 :          pack_tmp = ISHFT(pack_tmp, -46)
   48230     1537812 :          idata = idata + 1
   48231     1537812 :          data_tmp = ISHFT(pack_tmp, 40)
   48232     1537812 :          ipack = ipack + 1
   48233     1537812 :          pack_tmp = packed_data(ipack)
   48234     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48235     1537812 :          pack_tmp = ISHFT(pack_tmp, -40)
   48236     1537812 :          idata = idata + 1
   48237     1537812 :          data_tmp = ISHFT(pack_tmp, 34)
   48238     1537812 :          ipack = ipack + 1
   48239     1537812 :          pack_tmp = packed_data(ipack)
   48240     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48241     1537812 :          pack_tmp = ISHFT(pack_tmp, -34)
   48242     1537812 :          idata = idata + 1
   48243     1537812 :          data_tmp = ISHFT(pack_tmp, 28)
   48244     1537812 :          ipack = ipack + 1
   48245     1537812 :          pack_tmp = packed_data(ipack)
   48246     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48247     1537812 :          pack_tmp = ISHFT(pack_tmp, -28)
   48248     1537812 :          idata = idata + 1
   48249     1537812 :          data_tmp = ISHFT(pack_tmp, 22)
   48250     1537812 :          ipack = ipack + 1
   48251     1537812 :          pack_tmp = packed_data(ipack)
   48252     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48253     1537812 :          pack_tmp = ISHFT(pack_tmp, -22)
   48254     1537812 :          idata = idata + 1
   48255     1537812 :          data_tmp = ISHFT(pack_tmp, 16)
   48256     1537812 :          ipack = ipack + 1
   48257     1537812 :          pack_tmp = packed_data(ipack)
   48258     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48259     1537812 :          pack_tmp = ISHFT(pack_tmp, -16)
   48260     1537812 :          idata = idata + 1
   48261     1537812 :          data_tmp = ISHFT(pack_tmp, 10)
   48262     1537812 :          ipack = ipack + 1
   48263     1537812 :          pack_tmp = packed_data(ipack)
   48264     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48265     1537812 :          pack_tmp = ISHFT(pack_tmp, -10)
   48266     1537812 :          idata = idata + 1
   48267     1537812 :          data_tmp = ISHFT(pack_tmp, 4)
   48268     1537812 :          ipack = ipack + 1
   48269     1537812 :          pack_tmp = packed_data(ipack)
   48270     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48271     1537812 :          pack_tmp = ISHFT(pack_tmp, -4)
   48272     1537812 :          idata = idata + 1
   48273     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48274     1537812 :          full_data(idata) = data_tmp
   48275     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48276     1537812 :          idata = idata + 1
   48277     1537812 :          data_tmp = ISHFT(pack_tmp, 56)
   48278     1537812 :          ipack = ipack + 1
   48279     1537812 :          pack_tmp = packed_data(ipack)
   48280     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48281     1537812 :          pack_tmp = ISHFT(pack_tmp, -56)
   48282     1537812 :          idata = idata + 1
   48283     1537812 :          data_tmp = ISHFT(pack_tmp, 50)
   48284     1537812 :          ipack = ipack + 1
   48285     1537812 :          pack_tmp = packed_data(ipack)
   48286     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48287     1537812 :          pack_tmp = ISHFT(pack_tmp, -50)
   48288     1537812 :          idata = idata + 1
   48289     1537812 :          data_tmp = ISHFT(pack_tmp, 44)
   48290     1537812 :          ipack = ipack + 1
   48291     1537812 :          pack_tmp = packed_data(ipack)
   48292     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48293     1537812 :          pack_tmp = ISHFT(pack_tmp, -44)
   48294     1537812 :          idata = idata + 1
   48295     1537812 :          data_tmp = ISHFT(pack_tmp, 38)
   48296     1537812 :          ipack = ipack + 1
   48297     1537812 :          pack_tmp = packed_data(ipack)
   48298     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48299     1537812 :          pack_tmp = ISHFT(pack_tmp, -38)
   48300     1537812 :          idata = idata + 1
   48301     1537812 :          data_tmp = ISHFT(pack_tmp, 32)
   48302     1537812 :          ipack = ipack + 1
   48303     1537812 :          pack_tmp = packed_data(ipack)
   48304     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48305     1537812 :          pack_tmp = ISHFT(pack_tmp, -32)
   48306     1537812 :          idata = idata + 1
   48307     1537812 :          data_tmp = ISHFT(pack_tmp, 26)
   48308     1537812 :          ipack = ipack + 1
   48309     1537812 :          pack_tmp = packed_data(ipack)
   48310     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48311     1537812 :          pack_tmp = ISHFT(pack_tmp, -26)
   48312     1537812 :          idata = idata + 1
   48313     1537812 :          data_tmp = ISHFT(pack_tmp, 20)
   48314     1537812 :          ipack = ipack + 1
   48315     1537812 :          pack_tmp = packed_data(ipack)
   48316     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48317     1537812 :          pack_tmp = ISHFT(pack_tmp, -20)
   48318     1537812 :          idata = idata + 1
   48319     1537812 :          data_tmp = ISHFT(pack_tmp, 14)
   48320     1537812 :          ipack = ipack + 1
   48321     1537812 :          pack_tmp = packed_data(ipack)
   48322     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48323     1537812 :          pack_tmp = ISHFT(pack_tmp, -14)
   48324     1537812 :          idata = idata + 1
   48325     1537812 :          data_tmp = ISHFT(pack_tmp, 8)
   48326     1537812 :          ipack = ipack + 1
   48327     1537812 :          pack_tmp = packed_data(ipack)
   48328     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48329     1537812 :          pack_tmp = ISHFT(pack_tmp, -8)
   48330     1537812 :          idata = idata + 1
   48331     1537812 :          data_tmp = ISHFT(pack_tmp, 2)
   48332     1537812 :          ipack = ipack + 1
   48333     1537812 :          pack_tmp = packed_data(ipack)
   48334     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48335     1537812 :          pack_tmp = ISHFT(pack_tmp, -2)
   48336     1537812 :          idata = idata + 1
   48337     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48338     1537812 :          full_data(idata) = data_tmp
   48339     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48340     1537812 :          idata = idata + 1
   48341     1537812 :          data_tmp = ISHFT(pack_tmp, 54)
   48342     1537812 :          ipack = ipack + 1
   48343     1537812 :          pack_tmp = packed_data(ipack)
   48344     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48345     1537812 :          pack_tmp = ISHFT(pack_tmp, -54)
   48346     1537812 :          idata = idata + 1
   48347     1537812 :          data_tmp = ISHFT(pack_tmp, 48)
   48348     1537812 :          ipack = ipack + 1
   48349     1537812 :          pack_tmp = packed_data(ipack)
   48350     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48351     1537812 :          pack_tmp = ISHFT(pack_tmp, -48)
   48352     1537812 :          idata = idata + 1
   48353     1537812 :          data_tmp = ISHFT(pack_tmp, 42)
   48354     1537812 :          ipack = ipack + 1
   48355     1537812 :          pack_tmp = packed_data(ipack)
   48356     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48357     1537812 :          pack_tmp = ISHFT(pack_tmp, -42)
   48358     1537812 :          idata = idata + 1
   48359     1537812 :          data_tmp = ISHFT(pack_tmp, 36)
   48360     1537812 :          ipack = ipack + 1
   48361     1537812 :          pack_tmp = packed_data(ipack)
   48362     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48363     1537812 :          pack_tmp = ISHFT(pack_tmp, -36)
   48364     1537812 :          idata = idata + 1
   48365     1537812 :          data_tmp = ISHFT(pack_tmp, 30)
   48366     1537812 :          ipack = ipack + 1
   48367     1537812 :          pack_tmp = packed_data(ipack)
   48368     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48369     1537812 :          pack_tmp = ISHFT(pack_tmp, -30)
   48370     1537812 :          idata = idata + 1
   48371     1537812 :          data_tmp = ISHFT(pack_tmp, 24)
   48372     1537812 :          ipack = ipack + 1
   48373     1537812 :          pack_tmp = packed_data(ipack)
   48374     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48375     1537812 :          pack_tmp = ISHFT(pack_tmp, -24)
   48376     1537812 :          idata = idata + 1
   48377     1537812 :          data_tmp = ISHFT(pack_tmp, 18)
   48378     1537812 :          ipack = ipack + 1
   48379     1537812 :          pack_tmp = packed_data(ipack)
   48380     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48381     1537812 :          pack_tmp = ISHFT(pack_tmp, -18)
   48382     1537812 :          idata = idata + 1
   48383     1537812 :          data_tmp = ISHFT(pack_tmp, 12)
   48384     1537812 :          ipack = ipack + 1
   48385     1537812 :          pack_tmp = packed_data(ipack)
   48386     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48387     1537812 :          pack_tmp = ISHFT(pack_tmp, -12)
   48388     1537812 :          idata = idata + 1
   48389     1537812 :          data_tmp = ISHFT(pack_tmp, 6)
   48390     1537812 :          ipack = ipack + 1
   48391     1537812 :          pack_tmp = packed_data(ipack)
   48392     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48393     1537812 :          pack_tmp = ISHFT(pack_tmp, -6)
   48394     1537812 :          idata = idata + 1
   48395     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48396     1537812 :          full_data(idata) = data_tmp
   48397     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48398     1537812 :          idata = idata + 1
   48399     1537812 :          data_tmp = ISHFT(pack_tmp, 58)
   48400     1537812 :          ipack = ipack + 1
   48401     1537812 :          pack_tmp = packed_data(ipack)
   48402     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48403     1537812 :          pack_tmp = ISHFT(pack_tmp, -58)
   48404     1537812 :          idata = idata + 1
   48405     1537812 :          data_tmp = ISHFT(pack_tmp, 52)
   48406     1537812 :          ipack = ipack + 1
   48407     1537812 :          pack_tmp = packed_data(ipack)
   48408     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48409     1537812 :          pack_tmp = ISHFT(pack_tmp, -52)
   48410     1537812 :          idata = idata + 1
   48411     1537812 :          data_tmp = ISHFT(pack_tmp, 46)
   48412     1537812 :          ipack = ipack + 1
   48413     1537812 :          pack_tmp = packed_data(ipack)
   48414     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48415     1537812 :          pack_tmp = ISHFT(pack_tmp, -46)
   48416     1537812 :          idata = idata + 1
   48417     1537812 :          data_tmp = ISHFT(pack_tmp, 40)
   48418     1537812 :          ipack = ipack + 1
   48419     1537812 :          pack_tmp = packed_data(ipack)
   48420     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48421     1537812 :          pack_tmp = ISHFT(pack_tmp, -40)
   48422     1537812 :          idata = idata + 1
   48423     1537812 :          data_tmp = ISHFT(pack_tmp, 34)
   48424     1537812 :          ipack = ipack + 1
   48425     1537812 :          pack_tmp = packed_data(ipack)
   48426     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48427     1537812 :          pack_tmp = ISHFT(pack_tmp, -34)
   48428     1537812 :          idata = idata + 1
   48429     1537812 :          data_tmp = ISHFT(pack_tmp, 28)
   48430     1537812 :          ipack = ipack + 1
   48431     1537812 :          pack_tmp = packed_data(ipack)
   48432     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48433     1537812 :          pack_tmp = ISHFT(pack_tmp, -28)
   48434     1537812 :          idata = idata + 1
   48435     1537812 :          data_tmp = ISHFT(pack_tmp, 22)
   48436     1537812 :          ipack = ipack + 1
   48437     1537812 :          pack_tmp = packed_data(ipack)
   48438     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48439     1537812 :          pack_tmp = ISHFT(pack_tmp, -22)
   48440     1537812 :          idata = idata + 1
   48441     1537812 :          data_tmp = ISHFT(pack_tmp, 16)
   48442     1537812 :          ipack = ipack + 1
   48443     1537812 :          pack_tmp = packed_data(ipack)
   48444     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48445     1537812 :          pack_tmp = ISHFT(pack_tmp, -16)
   48446     1537812 :          idata = idata + 1
   48447     1537812 :          data_tmp = ISHFT(pack_tmp, 10)
   48448     1537812 :          ipack = ipack + 1
   48449     1537812 :          pack_tmp = packed_data(ipack)
   48450     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48451     1537812 :          pack_tmp = ISHFT(pack_tmp, -10)
   48452     1537812 :          idata = idata + 1
   48453     1537812 :          data_tmp = ISHFT(pack_tmp, 4)
   48454     1537812 :          ipack = ipack + 1
   48455     1537812 :          pack_tmp = packed_data(ipack)
   48456     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48457     1537812 :          pack_tmp = ISHFT(pack_tmp, -4)
   48458     1537812 :          idata = idata + 1
   48459     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48460     1537812 :          full_data(idata) = data_tmp
   48461     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48462     1537812 :          idata = idata + 1
   48463     1537812 :          data_tmp = ISHFT(pack_tmp, 56)
   48464     1537812 :          ipack = ipack + 1
   48465     1537812 :          pack_tmp = packed_data(ipack)
   48466     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48467     1537812 :          pack_tmp = ISHFT(pack_tmp, -56)
   48468     1537812 :          idata = idata + 1
   48469     1537812 :          data_tmp = ISHFT(pack_tmp, 50)
   48470     1537812 :          ipack = ipack + 1
   48471     1537812 :          pack_tmp = packed_data(ipack)
   48472     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48473     1537812 :          pack_tmp = ISHFT(pack_tmp, -50)
   48474     1537812 :          idata = idata + 1
   48475     1537812 :          data_tmp = ISHFT(pack_tmp, 44)
   48476     1537812 :          ipack = ipack + 1
   48477     1537812 :          pack_tmp = packed_data(ipack)
   48478     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48479     1537812 :          pack_tmp = ISHFT(pack_tmp, -44)
   48480     1537812 :          idata = idata + 1
   48481     1537812 :          data_tmp = ISHFT(pack_tmp, 38)
   48482     1537812 :          ipack = ipack + 1
   48483     1537812 :          pack_tmp = packed_data(ipack)
   48484     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48485     1537812 :          pack_tmp = ISHFT(pack_tmp, -38)
   48486     1537812 :          idata = idata + 1
   48487     1537812 :          data_tmp = ISHFT(pack_tmp, 32)
   48488     1537812 :          ipack = ipack + 1
   48489     1537812 :          pack_tmp = packed_data(ipack)
   48490     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48491     1537812 :          pack_tmp = ISHFT(pack_tmp, -32)
   48492     1537812 :          idata = idata + 1
   48493     1537812 :          data_tmp = ISHFT(pack_tmp, 26)
   48494     1537812 :          ipack = ipack + 1
   48495     1537812 :          pack_tmp = packed_data(ipack)
   48496     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48497     1537812 :          pack_tmp = ISHFT(pack_tmp, -26)
   48498     1537812 :          idata = idata + 1
   48499     1537812 :          data_tmp = ISHFT(pack_tmp, 20)
   48500     1537812 :          ipack = ipack + 1
   48501     1537812 :          pack_tmp = packed_data(ipack)
   48502     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48503     1537812 :          pack_tmp = ISHFT(pack_tmp, -20)
   48504     1537812 :          idata = idata + 1
   48505     1537812 :          data_tmp = ISHFT(pack_tmp, 14)
   48506     1537812 :          ipack = ipack + 1
   48507     1537812 :          pack_tmp = packed_data(ipack)
   48508     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48509     1537812 :          pack_tmp = ISHFT(pack_tmp, -14)
   48510     1537812 :          idata = idata + 1
   48511     1537812 :          data_tmp = ISHFT(pack_tmp, 8)
   48512     1537812 :          ipack = ipack + 1
   48513     1537812 :          pack_tmp = packed_data(ipack)
   48514     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48515     1537812 :          pack_tmp = ISHFT(pack_tmp, -8)
   48516     1537812 :          idata = idata + 1
   48517     1537812 :          data_tmp = ISHFT(pack_tmp, 2)
   48518     1537812 :          ipack = ipack + 1
   48519     1537812 :          pack_tmp = packed_data(ipack)
   48520     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48521     1537812 :          pack_tmp = ISHFT(pack_tmp, -2)
   48522     1537812 :          idata = idata + 1
   48523     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48524     1537812 :          full_data(idata) = data_tmp
   48525     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48526     1537812 :          idata = idata + 1
   48527     1537812 :          data_tmp = ISHFT(pack_tmp, 54)
   48528     1537812 :          ipack = ipack + 1
   48529     1537812 :          pack_tmp = packed_data(ipack)
   48530     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48531     1537812 :          pack_tmp = ISHFT(pack_tmp, -54)
   48532     1537812 :          idata = idata + 1
   48533     1537812 :          data_tmp = ISHFT(pack_tmp, 48)
   48534     1537812 :          ipack = ipack + 1
   48535     1537812 :          pack_tmp = packed_data(ipack)
   48536     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48537     1537812 :          pack_tmp = ISHFT(pack_tmp, -48)
   48538     1537812 :          idata = idata + 1
   48539     1537812 :          data_tmp = ISHFT(pack_tmp, 42)
   48540     1537812 :          ipack = ipack + 1
   48541     1537812 :          pack_tmp = packed_data(ipack)
   48542     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48543     1537812 :          pack_tmp = ISHFT(pack_tmp, -42)
   48544     1537812 :          idata = idata + 1
   48545     1537812 :          data_tmp = ISHFT(pack_tmp, 36)
   48546     1537812 :          ipack = ipack + 1
   48547     1537812 :          pack_tmp = packed_data(ipack)
   48548     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48549     1537812 :          pack_tmp = ISHFT(pack_tmp, -36)
   48550     1537812 :          idata = idata + 1
   48551     1537812 :          data_tmp = ISHFT(pack_tmp, 30)
   48552     1537812 :          ipack = ipack + 1
   48553     1537812 :          pack_tmp = packed_data(ipack)
   48554     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48555     1537812 :          pack_tmp = ISHFT(pack_tmp, -30)
   48556     1537812 :          idata = idata + 1
   48557     1537812 :          data_tmp = ISHFT(pack_tmp, 24)
   48558     1537812 :          ipack = ipack + 1
   48559     1537812 :          pack_tmp = packed_data(ipack)
   48560     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48561     1537812 :          pack_tmp = ISHFT(pack_tmp, -24)
   48562     1537812 :          idata = idata + 1
   48563     1537812 :          data_tmp = ISHFT(pack_tmp, 18)
   48564     1537812 :          ipack = ipack + 1
   48565     1537812 :          pack_tmp = packed_data(ipack)
   48566     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48567     1537812 :          pack_tmp = ISHFT(pack_tmp, -18)
   48568     1537812 :          idata = idata + 1
   48569     1537812 :          data_tmp = ISHFT(pack_tmp, 12)
   48570     1537812 :          ipack = ipack + 1
   48571     1537812 :          pack_tmp = packed_data(ipack)
   48572     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48573     1537812 :          pack_tmp = ISHFT(pack_tmp, -12)
   48574     1537812 :          idata = idata + 1
   48575     1537812 :          data_tmp = ISHFT(pack_tmp, 6)
   48576     1537812 :          ipack = ipack + 1
   48577     1537812 :          pack_tmp = packed_data(ipack)
   48578     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48579     1537812 :          pack_tmp = ISHFT(pack_tmp, -6)
   48580     1537812 :          idata = idata + 1
   48581     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48582     1537812 :          full_data(idata) = data_tmp
   48583     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48584             :       END DO
   48585       96891 :       IF (Ndata_rep < Ndata) THEN
   48586        1464 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   48587             :       END IF
   48588       96891 :    END SUBROUTINE bits2ints_58
   48589             : 
   48590             : ! **************************************************************************************************
   48591             : !> \brief ...
   48592             : !> \param Ndata ...
   48593             : !> \param packed_data ...
   48594             : !> \param full_data ...
   48595             : ! **************************************************************************************************
   48596       23676 :    SUBROUTINE ints2bits_59(Ndata, packed_data, full_data)
   48597             :       INTEGER, INTENT(IN)                                :: Ndata
   48598             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   48599             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   48600             : 
   48601             :       INTEGER, PARAMETER                                 :: Nbits = 59
   48602             : 
   48603             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   48604             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   48605             : 
   48606       23676 :       idata = 0
   48607       23676 :       ipack = 0
   48608       23676 :       Ndata_rep = (Ndata/64)*64
   48609       23676 :       DO kdata = 1, Ndata_rep, 64
   48610      378816 :          pack_tmp = 0
   48611      378816 :          idata = idata + 1
   48612      378816 :          data_tmp = full_data(idata)
   48613      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48614      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48615      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   48616      378816 :          idata = idata + 1
   48617      378816 :          data_tmp = full_data(idata)
   48618      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48619      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   48620      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48621      378816 :          ipack = ipack + 1
   48622      378816 :          packed_data(ipack) = pack_tmp
   48623      378816 :          data_tmp = full_data(idata)
   48624      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   48625      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   48626      378816 :          idata = idata + 1
   48627      378816 :          data_tmp = full_data(idata)
   48628      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48629      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   48630      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48631      378816 :          ipack = ipack + 1
   48632      378816 :          packed_data(ipack) = pack_tmp
   48633      378816 :          data_tmp = full_data(idata)
   48634      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   48635      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   48636      378816 :          idata = idata + 1
   48637      378816 :          data_tmp = full_data(idata)
   48638      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48639      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   48640      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48641      378816 :          ipack = ipack + 1
   48642      378816 :          packed_data(ipack) = pack_tmp
   48643      378816 :          data_tmp = full_data(idata)
   48644      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   48645      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   48646      378816 :          idata = idata + 1
   48647      378816 :          data_tmp = full_data(idata)
   48648      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48649      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   48650      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48651      378816 :          ipack = ipack + 1
   48652      378816 :          packed_data(ipack) = pack_tmp
   48653      378816 :          data_tmp = full_data(idata)
   48654      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   48655      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   48656      378816 :          idata = idata + 1
   48657      378816 :          data_tmp = full_data(idata)
   48658      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48659      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   48660      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48661      378816 :          ipack = ipack + 1
   48662      378816 :          packed_data(ipack) = pack_tmp
   48663      378816 :          data_tmp = full_data(idata)
   48664      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   48665      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   48666      378816 :          idata = idata + 1
   48667      378816 :          data_tmp = full_data(idata)
   48668      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48669      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   48670      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48671      378816 :          ipack = ipack + 1
   48672      378816 :          packed_data(ipack) = pack_tmp
   48673      378816 :          data_tmp = full_data(idata)
   48674      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   48675      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   48676      378816 :          idata = idata + 1
   48677      378816 :          data_tmp = full_data(idata)
   48678      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48679      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   48680      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48681      378816 :          ipack = ipack + 1
   48682      378816 :          packed_data(ipack) = pack_tmp
   48683      378816 :          data_tmp = full_data(idata)
   48684      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   48685      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   48686      378816 :          idata = idata + 1
   48687      378816 :          data_tmp = full_data(idata)
   48688      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48689      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   48690      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48691      378816 :          ipack = ipack + 1
   48692      378816 :          packed_data(ipack) = pack_tmp
   48693      378816 :          data_tmp = full_data(idata)
   48694      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   48695      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   48696      378816 :          idata = idata + 1
   48697      378816 :          data_tmp = full_data(idata)
   48698      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48699      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   48700      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48701      378816 :          ipack = ipack + 1
   48702      378816 :          packed_data(ipack) = pack_tmp
   48703      378816 :          data_tmp = full_data(idata)
   48704      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   48705      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   48706      378816 :          idata = idata + 1
   48707      378816 :          data_tmp = full_data(idata)
   48708      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48709      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   48710      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48711      378816 :          ipack = ipack + 1
   48712      378816 :          packed_data(ipack) = pack_tmp
   48713      378816 :          data_tmp = full_data(idata)
   48714      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   48715      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   48716      378816 :          idata = idata + 1
   48717      378816 :          data_tmp = full_data(idata)
   48718      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48719      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   48720      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48721      378816 :          ipack = ipack + 1
   48722      378816 :          packed_data(ipack) = pack_tmp
   48723      378816 :          data_tmp = full_data(idata)
   48724      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   48725      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48726      378816 :          idata = idata + 1
   48727      378816 :          data_tmp = full_data(idata)
   48728      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48729      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48730      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   48731      378816 :          idata = idata + 1
   48732      378816 :          data_tmp = full_data(idata)
   48733      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48734      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   48735      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48736      378816 :          ipack = ipack + 1
   48737      378816 :          packed_data(ipack) = pack_tmp
   48738      378816 :          data_tmp = full_data(idata)
   48739      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   48740      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   48741      378816 :          idata = idata + 1
   48742      378816 :          data_tmp = full_data(idata)
   48743      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48744      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   48745      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48746      378816 :          ipack = ipack + 1
   48747      378816 :          packed_data(ipack) = pack_tmp
   48748      378816 :          data_tmp = full_data(idata)
   48749      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   48750      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   48751      378816 :          idata = idata + 1
   48752      378816 :          data_tmp = full_data(idata)
   48753      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48754      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   48755      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48756      378816 :          ipack = ipack + 1
   48757      378816 :          packed_data(ipack) = pack_tmp
   48758      378816 :          data_tmp = full_data(idata)
   48759      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   48760      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   48761      378816 :          idata = idata + 1
   48762      378816 :          data_tmp = full_data(idata)
   48763      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48764      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   48765      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48766      378816 :          ipack = ipack + 1
   48767      378816 :          packed_data(ipack) = pack_tmp
   48768      378816 :          data_tmp = full_data(idata)
   48769      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   48770      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   48771      378816 :          idata = idata + 1
   48772      378816 :          data_tmp = full_data(idata)
   48773      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48774      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   48775      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48776      378816 :          ipack = ipack + 1
   48777      378816 :          packed_data(ipack) = pack_tmp
   48778      378816 :          data_tmp = full_data(idata)
   48779      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   48780      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   48781      378816 :          idata = idata + 1
   48782      378816 :          data_tmp = full_data(idata)
   48783      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48784      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   48785      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48786      378816 :          ipack = ipack + 1
   48787      378816 :          packed_data(ipack) = pack_tmp
   48788      378816 :          data_tmp = full_data(idata)
   48789      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   48790      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   48791      378816 :          idata = idata + 1
   48792      378816 :          data_tmp = full_data(idata)
   48793      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48794      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   48795      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48796      378816 :          ipack = ipack + 1
   48797      378816 :          packed_data(ipack) = pack_tmp
   48798      378816 :          data_tmp = full_data(idata)
   48799      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   48800      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   48801      378816 :          idata = idata + 1
   48802      378816 :          data_tmp = full_data(idata)
   48803      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48804      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   48805      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48806      378816 :          ipack = ipack + 1
   48807      378816 :          packed_data(ipack) = pack_tmp
   48808      378816 :          data_tmp = full_data(idata)
   48809      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   48810      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   48811      378816 :          idata = idata + 1
   48812      378816 :          data_tmp = full_data(idata)
   48813      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48814      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   48815      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48816      378816 :          ipack = ipack + 1
   48817      378816 :          packed_data(ipack) = pack_tmp
   48818      378816 :          data_tmp = full_data(idata)
   48819      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   48820      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   48821      378816 :          idata = idata + 1
   48822      378816 :          data_tmp = full_data(idata)
   48823      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48824      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   48825      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48826      378816 :          ipack = ipack + 1
   48827      378816 :          packed_data(ipack) = pack_tmp
   48828      378816 :          data_tmp = full_data(idata)
   48829      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   48830      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   48831      378816 :          idata = idata + 1
   48832      378816 :          data_tmp = full_data(idata)
   48833      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48834      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   48835      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48836      378816 :          ipack = ipack + 1
   48837      378816 :          packed_data(ipack) = pack_tmp
   48838      378816 :          data_tmp = full_data(idata)
   48839      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   48840      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   48841      378816 :          idata = idata + 1
   48842      378816 :          data_tmp = full_data(idata)
   48843      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48844      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   48845      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48846      378816 :          ipack = ipack + 1
   48847      378816 :          packed_data(ipack) = pack_tmp
   48848      378816 :          data_tmp = full_data(idata)
   48849      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   48850      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48851      378816 :          idata = idata + 1
   48852      378816 :          data_tmp = full_data(idata)
   48853      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48854      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48855      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   48856      378816 :          idata = idata + 1
   48857      378816 :          data_tmp = full_data(idata)
   48858      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48859      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   48860      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48861      378816 :          ipack = ipack + 1
   48862      378816 :          packed_data(ipack) = pack_tmp
   48863      378816 :          data_tmp = full_data(idata)
   48864      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   48865      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   48866      378816 :          idata = idata + 1
   48867      378816 :          data_tmp = full_data(idata)
   48868      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48869      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   48870      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48871      378816 :          ipack = ipack + 1
   48872      378816 :          packed_data(ipack) = pack_tmp
   48873      378816 :          data_tmp = full_data(idata)
   48874      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   48875      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   48876      378816 :          idata = idata + 1
   48877      378816 :          data_tmp = full_data(idata)
   48878      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48879      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   48880      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48881      378816 :          ipack = ipack + 1
   48882      378816 :          packed_data(ipack) = pack_tmp
   48883      378816 :          data_tmp = full_data(idata)
   48884      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   48885      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   48886      378816 :          idata = idata + 1
   48887      378816 :          data_tmp = full_data(idata)
   48888      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48889      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   48890      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48891      378816 :          ipack = ipack + 1
   48892      378816 :          packed_data(ipack) = pack_tmp
   48893      378816 :          data_tmp = full_data(idata)
   48894      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   48895      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   48896      378816 :          idata = idata + 1
   48897      378816 :          data_tmp = full_data(idata)
   48898      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48899      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   48900      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48901      378816 :          ipack = ipack + 1
   48902      378816 :          packed_data(ipack) = pack_tmp
   48903      378816 :          data_tmp = full_data(idata)
   48904      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   48905      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   48906      378816 :          idata = idata + 1
   48907      378816 :          data_tmp = full_data(idata)
   48908      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48909      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   48910      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48911      378816 :          ipack = ipack + 1
   48912      378816 :          packed_data(ipack) = pack_tmp
   48913      378816 :          data_tmp = full_data(idata)
   48914      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   48915      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   48916      378816 :          idata = idata + 1
   48917      378816 :          data_tmp = full_data(idata)
   48918      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48919      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   48920      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48921      378816 :          ipack = ipack + 1
   48922      378816 :          packed_data(ipack) = pack_tmp
   48923      378816 :          data_tmp = full_data(idata)
   48924      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   48925      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   48926      378816 :          idata = idata + 1
   48927      378816 :          data_tmp = full_data(idata)
   48928      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48929      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   48930      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48931      378816 :          ipack = ipack + 1
   48932      378816 :          packed_data(ipack) = pack_tmp
   48933      378816 :          data_tmp = full_data(idata)
   48934      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   48935      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   48936      378816 :          idata = idata + 1
   48937      378816 :          data_tmp = full_data(idata)
   48938      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48939      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   48940      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48941      378816 :          ipack = ipack + 1
   48942      378816 :          packed_data(ipack) = pack_tmp
   48943      378816 :          data_tmp = full_data(idata)
   48944      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   48945      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   48946      378816 :          idata = idata + 1
   48947      378816 :          data_tmp = full_data(idata)
   48948      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48949      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   48950      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48951      378816 :          ipack = ipack + 1
   48952      378816 :          packed_data(ipack) = pack_tmp
   48953      378816 :          data_tmp = full_data(idata)
   48954      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   48955      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   48956      378816 :          idata = idata + 1
   48957      378816 :          data_tmp = full_data(idata)
   48958      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48959      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   48960      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48961      378816 :          ipack = ipack + 1
   48962      378816 :          packed_data(ipack) = pack_tmp
   48963      378816 :          data_tmp = full_data(idata)
   48964      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   48965      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   48966      378816 :          idata = idata + 1
   48967      378816 :          data_tmp = full_data(idata)
   48968      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48969      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   48970      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48971      378816 :          ipack = ipack + 1
   48972      378816 :          packed_data(ipack) = pack_tmp
   48973      378816 :          data_tmp = full_data(idata)
   48974      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   48975      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48976      378816 :          idata = idata + 1
   48977      378816 :          data_tmp = full_data(idata)
   48978      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48979      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48980      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   48981      378816 :          idata = idata + 1
   48982      378816 :          data_tmp = full_data(idata)
   48983      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48984      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   48985      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48986      378816 :          ipack = ipack + 1
   48987      378816 :          packed_data(ipack) = pack_tmp
   48988      378816 :          data_tmp = full_data(idata)
   48989      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   48990      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   48991      378816 :          idata = idata + 1
   48992      378816 :          data_tmp = full_data(idata)
   48993      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48994      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   48995      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48996      378816 :          ipack = ipack + 1
   48997      378816 :          packed_data(ipack) = pack_tmp
   48998      378816 :          data_tmp = full_data(idata)
   48999      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   49000      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   49001      378816 :          idata = idata + 1
   49002      378816 :          data_tmp = full_data(idata)
   49003      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49004      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   49005      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49006      378816 :          ipack = ipack + 1
   49007      378816 :          packed_data(ipack) = pack_tmp
   49008      378816 :          data_tmp = full_data(idata)
   49009      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   49010      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   49011      378816 :          idata = idata + 1
   49012      378816 :          data_tmp = full_data(idata)
   49013      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49014      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   49015      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49016      378816 :          ipack = ipack + 1
   49017      378816 :          packed_data(ipack) = pack_tmp
   49018      378816 :          data_tmp = full_data(idata)
   49019      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   49020      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   49021      378816 :          idata = idata + 1
   49022      378816 :          data_tmp = full_data(idata)
   49023      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49024      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   49025      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49026      378816 :          ipack = ipack + 1
   49027      378816 :          packed_data(ipack) = pack_tmp
   49028      378816 :          data_tmp = full_data(idata)
   49029      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49030      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49031      378816 :          idata = idata + 1
   49032      378816 :          data_tmp = full_data(idata)
   49033      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49034      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49035      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49036      378816 :          ipack = ipack + 1
   49037      378816 :          packed_data(ipack) = pack_tmp
   49038      378816 :          data_tmp = full_data(idata)
   49039      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   49040      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   49041      378816 :          idata = idata + 1
   49042      378816 :          data_tmp = full_data(idata)
   49043      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49044      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   49045      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49046      378816 :          ipack = ipack + 1
   49047      378816 :          packed_data(ipack) = pack_tmp
   49048      378816 :          data_tmp = full_data(idata)
   49049      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   49050      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   49051      378816 :          idata = idata + 1
   49052      378816 :          data_tmp = full_data(idata)
   49053      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49054      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   49055      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49056      378816 :          ipack = ipack + 1
   49057      378816 :          packed_data(ipack) = pack_tmp
   49058      378816 :          data_tmp = full_data(idata)
   49059      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   49060      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   49061      378816 :          idata = idata + 1
   49062      378816 :          data_tmp = full_data(idata)
   49063      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49064      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   49065      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49066      378816 :          ipack = ipack + 1
   49067      378816 :          packed_data(ipack) = pack_tmp
   49068      378816 :          data_tmp = full_data(idata)
   49069      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49070      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49071      378816 :          idata = idata + 1
   49072      378816 :          data_tmp = full_data(idata)
   49073      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49074      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49075      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49076      378816 :          ipack = ipack + 1
   49077      378816 :          packed_data(ipack) = pack_tmp
   49078      378816 :          data_tmp = full_data(idata)
   49079      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   49080      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   49081      378816 :          idata = idata + 1
   49082      378816 :          data_tmp = full_data(idata)
   49083      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49084      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   49085      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49086      378816 :          ipack = ipack + 1
   49087      378816 :          packed_data(ipack) = pack_tmp
   49088      378816 :          data_tmp = full_data(idata)
   49089      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   49090      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   49091      378816 :          idata = idata + 1
   49092      378816 :          data_tmp = full_data(idata)
   49093      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49094      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   49095      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49096      378816 :          ipack = ipack + 1
   49097      378816 :          packed_data(ipack) = pack_tmp
   49098      378816 :          data_tmp = full_data(idata)
   49099      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   49100      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   49101      378816 :          idata = idata + 1
   49102      378816 :          data_tmp = full_data(idata)
   49103      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49104      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49105      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49106      378816 :          idata = idata + 1
   49107      378816 :          data_tmp = full_data(idata)
   49108      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49109      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49110      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49111      378816 :          ipack = ipack + 1
   49112      378816 :          packed_data(ipack) = pack_tmp
   49113      378816 :          data_tmp = full_data(idata)
   49114      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   49115      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   49116      378816 :          idata = idata + 1
   49117      378816 :          data_tmp = full_data(idata)
   49118      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49119      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   49120      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49121      378816 :          ipack = ipack + 1
   49122      378816 :          packed_data(ipack) = pack_tmp
   49123      378816 :          data_tmp = full_data(idata)
   49124      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   49125      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   49126      378816 :          idata = idata + 1
   49127      378816 :          data_tmp = full_data(idata)
   49128      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49129      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   49130      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49131      378816 :          ipack = ipack + 1
   49132      378816 :          packed_data(ipack) = pack_tmp
   49133      378816 :          data_tmp = full_data(idata)
   49134      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   49135      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   49136      378816 :          idata = idata + 1
   49137      378816 :          data_tmp = full_data(idata)
   49138      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49139      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   49140      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49141      378816 :          ipack = ipack + 1
   49142      378816 :          packed_data(ipack) = pack_tmp
   49143      378816 :          data_tmp = full_data(idata)
   49144      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49145      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49146      378816 :          idata = idata + 1
   49147      378816 :          data_tmp = full_data(idata)
   49148      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49149      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49150      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49151      378816 :          ipack = ipack + 1
   49152      378816 :          packed_data(ipack) = pack_tmp
   49153      378816 :          data_tmp = full_data(idata)
   49154      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   49155      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   49156      378816 :          idata = idata + 1
   49157      378816 :          data_tmp = full_data(idata)
   49158      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49159      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   49160      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49161      378816 :          ipack = ipack + 1
   49162      378816 :          packed_data(ipack) = pack_tmp
   49163      378816 :          data_tmp = full_data(idata)
   49164      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   49165      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   49166      378816 :          idata = idata + 1
   49167      378816 :          data_tmp = full_data(idata)
   49168      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49169      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   49170      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49171      378816 :          ipack = ipack + 1
   49172      378816 :          packed_data(ipack) = pack_tmp
   49173      378816 :          data_tmp = full_data(idata)
   49174      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   49175      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   49176      378816 :          idata = idata + 1
   49177      378816 :          data_tmp = full_data(idata)
   49178      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49179      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   49180      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49181      378816 :          ipack = ipack + 1
   49182      378816 :          packed_data(ipack) = pack_tmp
   49183      378816 :          data_tmp = full_data(idata)
   49184      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49185      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49186      378816 :          idata = idata + 1
   49187      378816 :          data_tmp = full_data(idata)
   49188      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49189      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49190      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49191      378816 :          ipack = ipack + 1
   49192      378816 :          packed_data(ipack) = pack_tmp
   49193      378816 :          data_tmp = full_data(idata)
   49194      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   49195      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   49196      378816 :          idata = idata + 1
   49197      378816 :          data_tmp = full_data(idata)
   49198      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49199      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   49200      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49201      378816 :          ipack = ipack + 1
   49202      378816 :          packed_data(ipack) = pack_tmp
   49203      378816 :          data_tmp = full_data(idata)
   49204      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   49205      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   49206      378816 :          idata = idata + 1
   49207      378816 :          data_tmp = full_data(idata)
   49208      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49209      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   49210      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49211      378816 :          ipack = ipack + 1
   49212      378816 :          packed_data(ipack) = pack_tmp
   49213      378816 :          data_tmp = full_data(idata)
   49214      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   49215      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   49216      378816 :          idata = idata + 1
   49217      378816 :          data_tmp = full_data(idata)
   49218      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49220             :          pack_tmp = ISHFT(pack_tmp, 0)
   49221      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49222      378816 :          ipack = ipack + 1
   49223      378816 :          packed_data(ipack) = pack_tmp
   49224             :       END DO
   49225       23676 :       IF (Ndata_rep < Ndata) THEN
   49226           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   49227             :       END IF
   49228       23676 :    END SUBROUTINE ints2bits_59
   49229             : 
   49230             : ! **************************************************************************************************
   49231             : !> \brief ...
   49232             : !> \param Ndata ...
   49233             : !> \param packed_data ...
   49234             : !> \param full_data ...
   49235             : ! **************************************************************************************************
   49236       95427 :    SUBROUTINE bits2ints_59(Ndata, packed_data, full_data)
   49237             :       INTEGER, INTENT(IN)                                :: Ndata
   49238             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   49239             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   49240             : 
   49241             :       INTEGER, PARAMETER                                 :: Nbits = 59
   49242             : 
   49243             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   49244             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   49245             : 
   49246       95427 :       ipack = 0
   49247       95427 :       idata = 0
   49248       95427 :       pack_tmp = 0
   49249       95427 :       Ndata_rep = (Ndata/64)*64
   49250       95427 :       DO kdata = 1, Ndata_rep, 64
   49251     1526832 :          idata = idata + 1
   49252     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   49253     1526832 :          ipack = ipack + 1
   49254     1526832 :          pack_tmp = packed_data(ipack)
   49255     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   49256     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   49257     1526832 :          idata = idata + 1
   49258     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   49259     1526832 :          ipack = ipack + 1
   49260     1526832 :          pack_tmp = packed_data(ipack)
   49261     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   49262     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   49263     1526832 :          idata = idata + 1
   49264     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   49265     1526832 :          ipack = ipack + 1
   49266     1526832 :          pack_tmp = packed_data(ipack)
   49267     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   49268     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   49269     1526832 :          idata = idata + 1
   49270     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   49271     1526832 :          ipack = ipack + 1
   49272     1526832 :          pack_tmp = packed_data(ipack)
   49273     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   49274     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   49275     1526832 :          idata = idata + 1
   49276     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   49277     1526832 :          ipack = ipack + 1
   49278     1526832 :          pack_tmp = packed_data(ipack)
   49279     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   49280     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   49281     1526832 :          idata = idata + 1
   49282     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   49283     1526832 :          ipack = ipack + 1
   49284     1526832 :          pack_tmp = packed_data(ipack)
   49285     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   49286     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   49287     1526832 :          idata = idata + 1
   49288     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   49289     1526832 :          ipack = ipack + 1
   49290     1526832 :          pack_tmp = packed_data(ipack)
   49291     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   49292     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   49293     1526832 :          idata = idata + 1
   49294     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   49295     1526832 :          ipack = ipack + 1
   49296     1526832 :          pack_tmp = packed_data(ipack)
   49297     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   49298     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   49299     1526832 :          idata = idata + 1
   49300     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   49301     1526832 :          ipack = ipack + 1
   49302     1526832 :          pack_tmp = packed_data(ipack)
   49303     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   49304     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   49305     1526832 :          idata = idata + 1
   49306     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   49307     1526832 :          ipack = ipack + 1
   49308     1526832 :          pack_tmp = packed_data(ipack)
   49309     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   49310     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   49311     1526832 :          idata = idata + 1
   49312     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   49313     1526832 :          ipack = ipack + 1
   49314     1526832 :          pack_tmp = packed_data(ipack)
   49315     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   49316     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   49317     1526832 :          idata = idata + 1
   49318     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   49319     1526832 :          ipack = ipack + 1
   49320     1526832 :          pack_tmp = packed_data(ipack)
   49321     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   49322     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   49323     1526832 :          idata = idata + 1
   49324     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49325     1526832 :          full_data(idata) = data_tmp
   49326     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49327     1526832 :          idata = idata + 1
   49328     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   49329     1526832 :          ipack = ipack + 1
   49330     1526832 :          pack_tmp = packed_data(ipack)
   49331     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   49332     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   49333     1526832 :          idata = idata + 1
   49334     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   49335     1526832 :          ipack = ipack + 1
   49336     1526832 :          pack_tmp = packed_data(ipack)
   49337     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   49338     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   49339     1526832 :          idata = idata + 1
   49340     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   49341     1526832 :          ipack = ipack + 1
   49342     1526832 :          pack_tmp = packed_data(ipack)
   49343     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   49344     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   49345     1526832 :          idata = idata + 1
   49346     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   49347     1526832 :          ipack = ipack + 1
   49348     1526832 :          pack_tmp = packed_data(ipack)
   49349     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   49350     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   49351     1526832 :          idata = idata + 1
   49352     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   49353     1526832 :          ipack = ipack + 1
   49354     1526832 :          pack_tmp = packed_data(ipack)
   49355     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   49356     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   49357     1526832 :          idata = idata + 1
   49358     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   49359     1526832 :          ipack = ipack + 1
   49360     1526832 :          pack_tmp = packed_data(ipack)
   49361     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   49362     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   49363     1526832 :          idata = idata + 1
   49364     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   49365     1526832 :          ipack = ipack + 1
   49366     1526832 :          pack_tmp = packed_data(ipack)
   49367     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   49368     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   49369     1526832 :          idata = idata + 1
   49370     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   49371     1526832 :          ipack = ipack + 1
   49372     1526832 :          pack_tmp = packed_data(ipack)
   49373     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   49374     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   49375     1526832 :          idata = idata + 1
   49376     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   49377     1526832 :          ipack = ipack + 1
   49378     1526832 :          pack_tmp = packed_data(ipack)
   49379     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   49380     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   49381     1526832 :          idata = idata + 1
   49382     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   49383     1526832 :          ipack = ipack + 1
   49384     1526832 :          pack_tmp = packed_data(ipack)
   49385     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   49386     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   49387     1526832 :          idata = idata + 1
   49388     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   49389     1526832 :          ipack = ipack + 1
   49390     1526832 :          pack_tmp = packed_data(ipack)
   49391     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   49392     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   49393     1526832 :          idata = idata + 1
   49394     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   49395     1526832 :          ipack = ipack + 1
   49396     1526832 :          pack_tmp = packed_data(ipack)
   49397     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   49398     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   49399     1526832 :          idata = idata + 1
   49400     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49401     1526832 :          full_data(idata) = data_tmp
   49402     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49403     1526832 :          idata = idata + 1
   49404     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   49405     1526832 :          ipack = ipack + 1
   49406     1526832 :          pack_tmp = packed_data(ipack)
   49407     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   49408     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   49409     1526832 :          idata = idata + 1
   49410     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   49411     1526832 :          ipack = ipack + 1
   49412     1526832 :          pack_tmp = packed_data(ipack)
   49413     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   49414     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   49415     1526832 :          idata = idata + 1
   49416     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   49417     1526832 :          ipack = ipack + 1
   49418     1526832 :          pack_tmp = packed_data(ipack)
   49419     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   49420     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   49421     1526832 :          idata = idata + 1
   49422     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   49423     1526832 :          ipack = ipack + 1
   49424     1526832 :          pack_tmp = packed_data(ipack)
   49425     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   49426     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   49427     1526832 :          idata = idata + 1
   49428     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   49429     1526832 :          ipack = ipack + 1
   49430     1526832 :          pack_tmp = packed_data(ipack)
   49431     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   49432     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   49433     1526832 :          idata = idata + 1
   49434     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   49435     1526832 :          ipack = ipack + 1
   49436     1526832 :          pack_tmp = packed_data(ipack)
   49437     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   49438     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   49439     1526832 :          idata = idata + 1
   49440     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   49441     1526832 :          ipack = ipack + 1
   49442     1526832 :          pack_tmp = packed_data(ipack)
   49443     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   49444     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   49445     1526832 :          idata = idata + 1
   49446     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   49447     1526832 :          ipack = ipack + 1
   49448     1526832 :          pack_tmp = packed_data(ipack)
   49449     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   49450     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   49451     1526832 :          idata = idata + 1
   49452     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   49453     1526832 :          ipack = ipack + 1
   49454     1526832 :          pack_tmp = packed_data(ipack)
   49455     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   49456     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   49457     1526832 :          idata = idata + 1
   49458     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   49459     1526832 :          ipack = ipack + 1
   49460     1526832 :          pack_tmp = packed_data(ipack)
   49461     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   49462     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   49463     1526832 :          idata = idata + 1
   49464     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   49465     1526832 :          ipack = ipack + 1
   49466     1526832 :          pack_tmp = packed_data(ipack)
   49467     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   49468     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   49469     1526832 :          idata = idata + 1
   49470     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   49471     1526832 :          ipack = ipack + 1
   49472     1526832 :          pack_tmp = packed_data(ipack)
   49473     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   49474     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   49475     1526832 :          idata = idata + 1
   49476     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49477     1526832 :          full_data(idata) = data_tmp
   49478     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49479     1526832 :          idata = idata + 1
   49480     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   49481     1526832 :          ipack = ipack + 1
   49482     1526832 :          pack_tmp = packed_data(ipack)
   49483     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   49484     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   49485     1526832 :          idata = idata + 1
   49486     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   49487     1526832 :          ipack = ipack + 1
   49488     1526832 :          pack_tmp = packed_data(ipack)
   49489     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   49490     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   49491     1526832 :          idata = idata + 1
   49492     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   49493     1526832 :          ipack = ipack + 1
   49494     1526832 :          pack_tmp = packed_data(ipack)
   49495     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   49496     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   49497     1526832 :          idata = idata + 1
   49498     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   49499     1526832 :          ipack = ipack + 1
   49500     1526832 :          pack_tmp = packed_data(ipack)
   49501     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   49502     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   49503     1526832 :          idata = idata + 1
   49504     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   49505     1526832 :          ipack = ipack + 1
   49506     1526832 :          pack_tmp = packed_data(ipack)
   49507     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   49508     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   49509     1526832 :          idata = idata + 1
   49510     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   49511     1526832 :          ipack = ipack + 1
   49512     1526832 :          pack_tmp = packed_data(ipack)
   49513     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   49514     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   49515     1526832 :          idata = idata + 1
   49516     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   49517     1526832 :          ipack = ipack + 1
   49518     1526832 :          pack_tmp = packed_data(ipack)
   49519     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   49520     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   49521     1526832 :          idata = idata + 1
   49522     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   49523     1526832 :          ipack = ipack + 1
   49524     1526832 :          pack_tmp = packed_data(ipack)
   49525     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   49526     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   49527     1526832 :          idata = idata + 1
   49528     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   49529     1526832 :          ipack = ipack + 1
   49530     1526832 :          pack_tmp = packed_data(ipack)
   49531     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   49532     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   49533     1526832 :          idata = idata + 1
   49534     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   49535     1526832 :          ipack = ipack + 1
   49536     1526832 :          pack_tmp = packed_data(ipack)
   49537     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   49538     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   49539     1526832 :          idata = idata + 1
   49540     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   49541     1526832 :          ipack = ipack + 1
   49542     1526832 :          pack_tmp = packed_data(ipack)
   49543     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   49544     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   49545     1526832 :          idata = idata + 1
   49546     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   49547     1526832 :          ipack = ipack + 1
   49548     1526832 :          pack_tmp = packed_data(ipack)
   49549     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   49550     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   49551     1526832 :          idata = idata + 1
   49552     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49553     1526832 :          full_data(idata) = data_tmp
   49554     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49555     1526832 :          idata = idata + 1
   49556     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   49557     1526832 :          ipack = ipack + 1
   49558     1526832 :          pack_tmp = packed_data(ipack)
   49559     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   49560     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   49561     1526832 :          idata = idata + 1
   49562     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   49563     1526832 :          ipack = ipack + 1
   49564     1526832 :          pack_tmp = packed_data(ipack)
   49565     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   49566     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   49567     1526832 :          idata = idata + 1
   49568     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   49569     1526832 :          ipack = ipack + 1
   49570     1526832 :          pack_tmp = packed_data(ipack)
   49571     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   49572     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   49573     1526832 :          idata = idata + 1
   49574     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   49575     1526832 :          ipack = ipack + 1
   49576     1526832 :          pack_tmp = packed_data(ipack)
   49577     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   49578     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   49579     1526832 :          idata = idata + 1
   49580     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   49581     1526832 :          ipack = ipack + 1
   49582     1526832 :          pack_tmp = packed_data(ipack)
   49583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   49584     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   49585     1526832 :          idata = idata + 1
   49586     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   49587     1526832 :          ipack = ipack + 1
   49588     1526832 :          pack_tmp = packed_data(ipack)
   49589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   49590     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   49591     1526832 :          idata = idata + 1
   49592     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   49593     1526832 :          ipack = ipack + 1
   49594     1526832 :          pack_tmp = packed_data(ipack)
   49595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   49596     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   49597     1526832 :          idata = idata + 1
   49598     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   49599     1526832 :          ipack = ipack + 1
   49600     1526832 :          pack_tmp = packed_data(ipack)
   49601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   49602     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   49603     1526832 :          idata = idata + 1
   49604     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   49605     1526832 :          ipack = ipack + 1
   49606     1526832 :          pack_tmp = packed_data(ipack)
   49607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   49608     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   49609     1526832 :          idata = idata + 1
   49610     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   49611     1526832 :          ipack = ipack + 1
   49612     1526832 :          pack_tmp = packed_data(ipack)
   49613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   49614     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   49615     1526832 :          idata = idata + 1
   49616     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   49617     1526832 :          ipack = ipack + 1
   49618     1526832 :          pack_tmp = packed_data(ipack)
   49619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   49620     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   49621     1526832 :          idata = idata + 1
   49622     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49623     1526832 :          full_data(idata) = data_tmp
   49624     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49625             :       END DO
   49626       95427 :       IF (Ndata_rep < Ndata) THEN
   49627           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   49628             :       END IF
   49629       95427 :    END SUBROUTINE bits2ints_59
   49630             : 
   49631             : ! **************************************************************************************************
   49632             : !> \brief ...
   49633             : !> \param Ndata ...
   49634             : !> \param packed_data ...
   49635             : !> \param full_data ...
   49636             : ! **************************************************************************************************
   49637       23676 :    SUBROUTINE ints2bits_60(Ndata, packed_data, full_data)
   49638             :       INTEGER, INTENT(IN)                                :: Ndata
   49639             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   49640             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   49641             : 
   49642             :       INTEGER, PARAMETER                                 :: Nbits = 60
   49643             : 
   49644             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   49645             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   49646             : 
   49647       23676 :       idata = 0
   49648       23676 :       ipack = 0
   49649       23676 :       Ndata_rep = (Ndata/64)*64
   49650       23676 :       DO kdata = 1, Ndata_rep, 64
   49651      378816 :          pack_tmp = 0
   49652      378816 :          idata = idata + 1
   49653      378816 :          data_tmp = full_data(idata)
   49654      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49655      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49656      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49657      378816 :          idata = idata + 1
   49658      378816 :          data_tmp = full_data(idata)
   49659      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49660      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49661      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49662      378816 :          ipack = ipack + 1
   49663      378816 :          packed_data(ipack) = pack_tmp
   49664      378816 :          data_tmp = full_data(idata)
   49665      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49666      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49667      378816 :          idata = idata + 1
   49668      378816 :          data_tmp = full_data(idata)
   49669      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49670      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49671      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49672      378816 :          ipack = ipack + 1
   49673      378816 :          packed_data(ipack) = pack_tmp
   49674      378816 :          data_tmp = full_data(idata)
   49675      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49676      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49677      378816 :          idata = idata + 1
   49678      378816 :          data_tmp = full_data(idata)
   49679      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49680      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49681      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49682      378816 :          ipack = ipack + 1
   49683      378816 :          packed_data(ipack) = pack_tmp
   49684      378816 :          data_tmp = full_data(idata)
   49685      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49686      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49687      378816 :          idata = idata + 1
   49688      378816 :          data_tmp = full_data(idata)
   49689      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49690      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   49691      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49692      378816 :          ipack = ipack + 1
   49693      378816 :          packed_data(ipack) = pack_tmp
   49694      378816 :          data_tmp = full_data(idata)
   49695      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   49696      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   49697      378816 :          idata = idata + 1
   49698      378816 :          data_tmp = full_data(idata)
   49699      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49700      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   49701      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49702      378816 :          ipack = ipack + 1
   49703      378816 :          packed_data(ipack) = pack_tmp
   49704      378816 :          data_tmp = full_data(idata)
   49705      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49706      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49707      378816 :          idata = idata + 1
   49708      378816 :          data_tmp = full_data(idata)
   49709      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49710      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49711      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49712      378816 :          ipack = ipack + 1
   49713      378816 :          packed_data(ipack) = pack_tmp
   49714      378816 :          data_tmp = full_data(idata)
   49715      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49716      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49717      378816 :          idata = idata + 1
   49718      378816 :          data_tmp = full_data(idata)
   49719      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49720      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49721      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49722      378816 :          ipack = ipack + 1
   49723      378816 :          packed_data(ipack) = pack_tmp
   49724      378816 :          data_tmp = full_data(idata)
   49725      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   49726      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   49727      378816 :          idata = idata + 1
   49728      378816 :          data_tmp = full_data(idata)
   49729      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49730      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   49731      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49732      378816 :          ipack = ipack + 1
   49733      378816 :          packed_data(ipack) = pack_tmp
   49734      378816 :          data_tmp = full_data(idata)
   49735      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   49736      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   49737      378816 :          idata = idata + 1
   49738      378816 :          data_tmp = full_data(idata)
   49739      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49740      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   49741      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49742      378816 :          ipack = ipack + 1
   49743      378816 :          packed_data(ipack) = pack_tmp
   49744      378816 :          data_tmp = full_data(idata)
   49745      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   49746      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   49747      378816 :          idata = idata + 1
   49748      378816 :          data_tmp = full_data(idata)
   49749      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49750      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   49751      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49752      378816 :          ipack = ipack + 1
   49753      378816 :          packed_data(ipack) = pack_tmp
   49754      378816 :          data_tmp = full_data(idata)
   49755      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49756      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49757      378816 :          idata = idata + 1
   49758      378816 :          data_tmp = full_data(idata)
   49759      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49760      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49761      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49762      378816 :          ipack = ipack + 1
   49763      378816 :          packed_data(ipack) = pack_tmp
   49764      378816 :          data_tmp = full_data(idata)
   49765      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49766      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49767      378816 :          idata = idata + 1
   49768      378816 :          data_tmp = full_data(idata)
   49769      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49770      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49771      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49772      378816 :          ipack = ipack + 1
   49773      378816 :          packed_data(ipack) = pack_tmp
   49774      378816 :          data_tmp = full_data(idata)
   49775      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   49776      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   49777      378816 :          idata = idata + 1
   49778      378816 :          data_tmp = full_data(idata)
   49779      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49780      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   49781      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49782      378816 :          ipack = ipack + 1
   49783      378816 :          packed_data(ipack) = pack_tmp
   49784      378816 :          data_tmp = full_data(idata)
   49785      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   49786      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   49787      378816 :          idata = idata + 1
   49788      378816 :          data_tmp = full_data(idata)
   49789      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49790      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   49791      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49792      378816 :          ipack = ipack + 1
   49793      378816 :          packed_data(ipack) = pack_tmp
   49794      378816 :          data_tmp = full_data(idata)
   49795      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   49796      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   49797      378816 :          idata = idata + 1
   49798      378816 :          data_tmp = full_data(idata)
   49799      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49800      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49801      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49802      378816 :          idata = idata + 1
   49803      378816 :          data_tmp = full_data(idata)
   49804             :          data_tmp = ISHFT(data_tmp, 4)
   49805      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   49806      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49807      378816 :          ipack = ipack + 1
   49808      378816 :          packed_data(ipack) = pack_tmp
   49809      378816 :          data_tmp = full_data(idata)
   49810      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   49811      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49812      378816 :          idata = idata + 1
   49813      378816 :          data_tmp = full_data(idata)
   49814      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49815      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49816      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49817      378816 :          ipack = ipack + 1
   49818      378816 :          packed_data(ipack) = pack_tmp
   49819      378816 :          data_tmp = full_data(idata)
   49820      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49821      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49822      378816 :          idata = idata + 1
   49823      378816 :          data_tmp = full_data(idata)
   49824      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49825      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49826      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49827      378816 :          ipack = ipack + 1
   49828      378816 :          packed_data(ipack) = pack_tmp
   49829      378816 :          data_tmp = full_data(idata)
   49830      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49831      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49832      378816 :          idata = idata + 1
   49833      378816 :          data_tmp = full_data(idata)
   49834      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49835      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49836      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49837      378816 :          ipack = ipack + 1
   49838      378816 :          packed_data(ipack) = pack_tmp
   49839      378816 :          data_tmp = full_data(idata)
   49840      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49841      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49842      378816 :          idata = idata + 1
   49843      378816 :          data_tmp = full_data(idata)
   49844      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49845      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   49846      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49847      378816 :          ipack = ipack + 1
   49848      378816 :          packed_data(ipack) = pack_tmp
   49849      378816 :          data_tmp = full_data(idata)
   49850      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   49851      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   49852      378816 :          idata = idata + 1
   49853      378816 :          data_tmp = full_data(idata)
   49854      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49855      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   49856      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49857      378816 :          ipack = ipack + 1
   49858      378816 :          packed_data(ipack) = pack_tmp
   49859      378816 :          data_tmp = full_data(idata)
   49860      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49861      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49862      378816 :          idata = idata + 1
   49863      378816 :          data_tmp = full_data(idata)
   49864      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49865      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49866      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49867      378816 :          ipack = ipack + 1
   49868      378816 :          packed_data(ipack) = pack_tmp
   49869      378816 :          data_tmp = full_data(idata)
   49870      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49871      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49872      378816 :          idata = idata + 1
   49873      378816 :          data_tmp = full_data(idata)
   49874      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49875      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49876      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49877      378816 :          ipack = ipack + 1
   49878      378816 :          packed_data(ipack) = pack_tmp
   49879      378816 :          data_tmp = full_data(idata)
   49880      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   49881      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   49882      378816 :          idata = idata + 1
   49883      378816 :          data_tmp = full_data(idata)
   49884      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49885      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   49886      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49887      378816 :          ipack = ipack + 1
   49888      378816 :          packed_data(ipack) = pack_tmp
   49889      378816 :          data_tmp = full_data(idata)
   49890      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   49891      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   49892      378816 :          idata = idata + 1
   49893      378816 :          data_tmp = full_data(idata)
   49894      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49895      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   49896      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49897      378816 :          ipack = ipack + 1
   49898      378816 :          packed_data(ipack) = pack_tmp
   49899      378816 :          data_tmp = full_data(idata)
   49900      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   49901      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   49902      378816 :          idata = idata + 1
   49903      378816 :          data_tmp = full_data(idata)
   49904      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49905      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   49906      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49907      378816 :          ipack = ipack + 1
   49908      378816 :          packed_data(ipack) = pack_tmp
   49909      378816 :          data_tmp = full_data(idata)
   49910      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49911      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49912      378816 :          idata = idata + 1
   49913      378816 :          data_tmp = full_data(idata)
   49914      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49915      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49916      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49917      378816 :          ipack = ipack + 1
   49918      378816 :          packed_data(ipack) = pack_tmp
   49919      378816 :          data_tmp = full_data(idata)
   49920      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49921      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49922      378816 :          idata = idata + 1
   49923      378816 :          data_tmp = full_data(idata)
   49924      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49925      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49926      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49927      378816 :          ipack = ipack + 1
   49928      378816 :          packed_data(ipack) = pack_tmp
   49929      378816 :          data_tmp = full_data(idata)
   49930      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   49931      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   49932      378816 :          idata = idata + 1
   49933      378816 :          data_tmp = full_data(idata)
   49934      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49935      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   49936      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49937      378816 :          ipack = ipack + 1
   49938      378816 :          packed_data(ipack) = pack_tmp
   49939      378816 :          data_tmp = full_data(idata)
   49940      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   49941      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   49942      378816 :          idata = idata + 1
   49943      378816 :          data_tmp = full_data(idata)
   49944      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49945      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   49946      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49947      378816 :          ipack = ipack + 1
   49948      378816 :          packed_data(ipack) = pack_tmp
   49949      378816 :          data_tmp = full_data(idata)
   49950      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   49951      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   49952      378816 :          idata = idata + 1
   49953      378816 :          data_tmp = full_data(idata)
   49954      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49955      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49956      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49957      378816 :          idata = idata + 1
   49958      378816 :          data_tmp = full_data(idata)
   49959             :          data_tmp = ISHFT(data_tmp, 4)
   49960      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   49961      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49962      378816 :          ipack = ipack + 1
   49963      378816 :          packed_data(ipack) = pack_tmp
   49964      378816 :          data_tmp = full_data(idata)
   49965      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   49966      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49967      378816 :          idata = idata + 1
   49968      378816 :          data_tmp = full_data(idata)
   49969      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49970      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49971      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49972      378816 :          ipack = ipack + 1
   49973      378816 :          packed_data(ipack) = pack_tmp
   49974      378816 :          data_tmp = full_data(idata)
   49975      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49976      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49977      378816 :          idata = idata + 1
   49978      378816 :          data_tmp = full_data(idata)
   49979      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49980      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49981      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49982      378816 :          ipack = ipack + 1
   49983      378816 :          packed_data(ipack) = pack_tmp
   49984      378816 :          data_tmp = full_data(idata)
   49985      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49986      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49987      378816 :          idata = idata + 1
   49988      378816 :          data_tmp = full_data(idata)
   49989      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49990      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49991      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49992      378816 :          ipack = ipack + 1
   49993      378816 :          packed_data(ipack) = pack_tmp
   49994      378816 :          data_tmp = full_data(idata)
   49995      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49996      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49997      378816 :          idata = idata + 1
   49998      378816 :          data_tmp = full_data(idata)
   49999      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50000      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   50001      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50002      378816 :          ipack = ipack + 1
   50003      378816 :          packed_data(ipack) = pack_tmp
   50004      378816 :          data_tmp = full_data(idata)
   50005      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50006      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50007      378816 :          idata = idata + 1
   50008      378816 :          data_tmp = full_data(idata)
   50009      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50010      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50011      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50012      378816 :          ipack = ipack + 1
   50013      378816 :          packed_data(ipack) = pack_tmp
   50014      378816 :          data_tmp = full_data(idata)
   50015      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50016      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50017      378816 :          idata = idata + 1
   50018      378816 :          data_tmp = full_data(idata)
   50019      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50020      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50021      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50022      378816 :          ipack = ipack + 1
   50023      378816 :          packed_data(ipack) = pack_tmp
   50024      378816 :          data_tmp = full_data(idata)
   50025      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   50026      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   50027      378816 :          idata = idata + 1
   50028      378816 :          data_tmp = full_data(idata)
   50029      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50030      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   50031      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50032      378816 :          ipack = ipack + 1
   50033      378816 :          packed_data(ipack) = pack_tmp
   50034      378816 :          data_tmp = full_data(idata)
   50035      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   50036      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   50037      378816 :          idata = idata + 1
   50038      378816 :          data_tmp = full_data(idata)
   50039      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50040      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   50041      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50042      378816 :          ipack = ipack + 1
   50043      378816 :          packed_data(ipack) = pack_tmp
   50044      378816 :          data_tmp = full_data(idata)
   50045      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50046      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50047      378816 :          idata = idata + 1
   50048      378816 :          data_tmp = full_data(idata)
   50049      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50050      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50051      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50052      378816 :          ipack = ipack + 1
   50053      378816 :          packed_data(ipack) = pack_tmp
   50054      378816 :          data_tmp = full_data(idata)
   50055      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   50056      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   50057      378816 :          idata = idata + 1
   50058      378816 :          data_tmp = full_data(idata)
   50059      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50060      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   50061      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50062      378816 :          ipack = ipack + 1
   50063      378816 :          packed_data(ipack) = pack_tmp
   50064      378816 :          data_tmp = full_data(idata)
   50065      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   50066      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   50067      378816 :          idata = idata + 1
   50068      378816 :          data_tmp = full_data(idata)
   50069      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50070      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   50071      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50072      378816 :          ipack = ipack + 1
   50073      378816 :          packed_data(ipack) = pack_tmp
   50074      378816 :          data_tmp = full_data(idata)
   50075      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50076      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50077      378816 :          idata = idata + 1
   50078      378816 :          data_tmp = full_data(idata)
   50079      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50080      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50081      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50082      378816 :          ipack = ipack + 1
   50083      378816 :          packed_data(ipack) = pack_tmp
   50084      378816 :          data_tmp = full_data(idata)
   50085      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   50086      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   50087      378816 :          idata = idata + 1
   50088      378816 :          data_tmp = full_data(idata)
   50089      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50090      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   50091      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50092      378816 :          ipack = ipack + 1
   50093      378816 :          packed_data(ipack) = pack_tmp
   50094      378816 :          data_tmp = full_data(idata)
   50095      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   50096      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   50097      378816 :          idata = idata + 1
   50098      378816 :          data_tmp = full_data(idata)
   50099      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50100      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   50101      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50102      378816 :          ipack = ipack + 1
   50103      378816 :          packed_data(ipack) = pack_tmp
   50104      378816 :          data_tmp = full_data(idata)
   50105      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50106      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50107      378816 :          idata = idata + 1
   50108      378816 :          data_tmp = full_data(idata)
   50109      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50110      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50111      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   50112      378816 :          idata = idata + 1
   50113      378816 :          data_tmp = full_data(idata)
   50114             :          data_tmp = ISHFT(data_tmp, 4)
   50115      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   50116      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50117      378816 :          ipack = ipack + 1
   50118      378816 :          packed_data(ipack) = pack_tmp
   50119      378816 :          data_tmp = full_data(idata)
   50120      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   50121      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   50122      378816 :          idata = idata + 1
   50123      378816 :          data_tmp = full_data(idata)
   50124      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50125      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   50126      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50127      378816 :          ipack = ipack + 1
   50128      378816 :          packed_data(ipack) = pack_tmp
   50129      378816 :          data_tmp = full_data(idata)
   50130      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   50131      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   50132      378816 :          idata = idata + 1
   50133      378816 :          data_tmp = full_data(idata)
   50134      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50135      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   50136      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50137      378816 :          ipack = ipack + 1
   50138      378816 :          packed_data(ipack) = pack_tmp
   50139      378816 :          data_tmp = full_data(idata)
   50140      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   50141      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   50142      378816 :          idata = idata + 1
   50143      378816 :          data_tmp = full_data(idata)
   50144      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50145      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   50146      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50147      378816 :          ipack = ipack + 1
   50148      378816 :          packed_data(ipack) = pack_tmp
   50149      378816 :          data_tmp = full_data(idata)
   50150      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   50151      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   50152      378816 :          idata = idata + 1
   50153      378816 :          data_tmp = full_data(idata)
   50154      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50155      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   50156      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50157      378816 :          ipack = ipack + 1
   50158      378816 :          packed_data(ipack) = pack_tmp
   50159      378816 :          data_tmp = full_data(idata)
   50160      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50161      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50162      378816 :          idata = idata + 1
   50163      378816 :          data_tmp = full_data(idata)
   50164      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50165      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50166      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50167      378816 :          ipack = ipack + 1
   50168      378816 :          packed_data(ipack) = pack_tmp
   50169      378816 :          data_tmp = full_data(idata)
   50170      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50171      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50172      378816 :          idata = idata + 1
   50173      378816 :          data_tmp = full_data(idata)
   50174      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50175      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50176      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50177      378816 :          ipack = ipack + 1
   50178      378816 :          packed_data(ipack) = pack_tmp
   50179      378816 :          data_tmp = full_data(idata)
   50180      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   50181      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   50182      378816 :          idata = idata + 1
   50183      378816 :          data_tmp = full_data(idata)
   50184      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50185      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   50186      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50187      378816 :          ipack = ipack + 1
   50188      378816 :          packed_data(ipack) = pack_tmp
   50189      378816 :          data_tmp = full_data(idata)
   50190      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   50191      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   50192      378816 :          idata = idata + 1
   50193      378816 :          data_tmp = full_data(idata)
   50194      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50195      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   50196      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50197      378816 :          ipack = ipack + 1
   50198      378816 :          packed_data(ipack) = pack_tmp
   50199      378816 :          data_tmp = full_data(idata)
   50200      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50201      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50202      378816 :          idata = idata + 1
   50203      378816 :          data_tmp = full_data(idata)
   50204      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50205      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50206      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50207      378816 :          ipack = ipack + 1
   50208      378816 :          packed_data(ipack) = pack_tmp
   50209      378816 :          data_tmp = full_data(idata)
   50210      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   50211      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   50212      378816 :          idata = idata + 1
   50213      378816 :          data_tmp = full_data(idata)
   50214      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50215      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   50216      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50217      378816 :          ipack = ipack + 1
   50218      378816 :          packed_data(ipack) = pack_tmp
   50219      378816 :          data_tmp = full_data(idata)
   50220      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   50221      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   50222      378816 :          idata = idata + 1
   50223      378816 :          data_tmp = full_data(idata)
   50224      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50225      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   50226      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50227      378816 :          ipack = ipack + 1
   50228      378816 :          packed_data(ipack) = pack_tmp
   50229      378816 :          data_tmp = full_data(idata)
   50230      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50231      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50232      378816 :          idata = idata + 1
   50233      378816 :          data_tmp = full_data(idata)
   50234      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50235      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50236      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50237      378816 :          ipack = ipack + 1
   50238      378816 :          packed_data(ipack) = pack_tmp
   50239      378816 :          data_tmp = full_data(idata)
   50240      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   50241      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   50242      378816 :          idata = idata + 1
   50243      378816 :          data_tmp = full_data(idata)
   50244      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50245      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   50246      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50247      378816 :          ipack = ipack + 1
   50248      378816 :          packed_data(ipack) = pack_tmp
   50249      378816 :          data_tmp = full_data(idata)
   50250      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   50251      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   50252      378816 :          idata = idata + 1
   50253      378816 :          data_tmp = full_data(idata)
   50254      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50255      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   50256      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50257      378816 :          ipack = ipack + 1
   50258      378816 :          packed_data(ipack) = pack_tmp
   50259      378816 :          data_tmp = full_data(idata)
   50260      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50261      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50262      378816 :          idata = idata + 1
   50263      378816 :          data_tmp = full_data(idata)
   50264      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50265      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50266             :          pack_tmp = ISHFT(pack_tmp, 0)
   50267      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   50268      378816 :          ipack = ipack + 1
   50269      378816 :          packed_data(ipack) = pack_tmp
   50270             :       END DO
   50271       23676 :       IF (Ndata_rep < Ndata) THEN
   50272           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   50273             :       END IF
   50274       23676 :    END SUBROUTINE ints2bits_60
   50275             : 
   50276             : ! **************************************************************************************************
   50277             : !> \brief ...
   50278             : !> \param Ndata ...
   50279             : !> \param packed_data ...
   50280             : !> \param full_data ...
   50281             : ! **************************************************************************************************
   50282       95427 :    SUBROUTINE bits2ints_60(Ndata, packed_data, full_data)
   50283             :       INTEGER, INTENT(IN)                                :: Ndata
   50284             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   50285             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   50286             : 
   50287             :       INTEGER, PARAMETER                                 :: Nbits = 60
   50288             : 
   50289             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   50290             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   50291             : 
   50292       95427 :       ipack = 0
   50293       95427 :       idata = 0
   50294       95427 :       pack_tmp = 0
   50295       95427 :       Ndata_rep = (Ndata/64)*64
   50296       95427 :       DO kdata = 1, Ndata_rep, 64
   50297     1526832 :          idata = idata + 1
   50298     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50299     1526832 :          ipack = ipack + 1
   50300     1526832 :          pack_tmp = packed_data(ipack)
   50301     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50302     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50303     1526832 :          idata = idata + 1
   50304     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50305     1526832 :          ipack = ipack + 1
   50306     1526832 :          pack_tmp = packed_data(ipack)
   50307     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50308     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50309     1526832 :          idata = idata + 1
   50310     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50311     1526832 :          ipack = ipack + 1
   50312     1526832 :          pack_tmp = packed_data(ipack)
   50313     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50314     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50315     1526832 :          idata = idata + 1
   50316     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50317     1526832 :          ipack = ipack + 1
   50318     1526832 :          pack_tmp = packed_data(ipack)
   50319     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50320     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50321     1526832 :          idata = idata + 1
   50322     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50323     1526832 :          ipack = ipack + 1
   50324     1526832 :          pack_tmp = packed_data(ipack)
   50325     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50326     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50327     1526832 :          idata = idata + 1
   50328     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50329     1526832 :          ipack = ipack + 1
   50330     1526832 :          pack_tmp = packed_data(ipack)
   50331     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50332     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50333     1526832 :          idata = idata + 1
   50334     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50335     1526832 :          ipack = ipack + 1
   50336     1526832 :          pack_tmp = packed_data(ipack)
   50337     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50338     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50339     1526832 :          idata = idata + 1
   50340     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50341     1526832 :          ipack = ipack + 1
   50342     1526832 :          pack_tmp = packed_data(ipack)
   50343     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50344     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50345     1526832 :          idata = idata + 1
   50346     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50347     1526832 :          ipack = ipack + 1
   50348     1526832 :          pack_tmp = packed_data(ipack)
   50349     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50350     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50351     1526832 :          idata = idata + 1
   50352     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50353     1526832 :          ipack = ipack + 1
   50354     1526832 :          pack_tmp = packed_data(ipack)
   50355     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50356     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50357     1526832 :          idata = idata + 1
   50358     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50359     1526832 :          ipack = ipack + 1
   50360     1526832 :          pack_tmp = packed_data(ipack)
   50361     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50362     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50363     1526832 :          idata = idata + 1
   50364     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50365     1526832 :          ipack = ipack + 1
   50366     1526832 :          pack_tmp = packed_data(ipack)
   50367     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50368     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50369     1526832 :          idata = idata + 1
   50370     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50371     1526832 :          ipack = ipack + 1
   50372     1526832 :          pack_tmp = packed_data(ipack)
   50373     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50374     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50375     1526832 :          idata = idata + 1
   50376     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50377     1526832 :          ipack = ipack + 1
   50378     1526832 :          pack_tmp = packed_data(ipack)
   50379     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50380     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50381     1526832 :          idata = idata + 1
   50382     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50383     1526832 :          ipack = ipack + 1
   50384     1526832 :          pack_tmp = packed_data(ipack)
   50385     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50386     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50387     1526832 :          idata = idata + 1
   50388     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50389     1526832 :          full_data(idata) = data_tmp
   50390     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50391     1526832 :          idata = idata + 1
   50392     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50393     1526832 :          ipack = ipack + 1
   50394     1526832 :          pack_tmp = packed_data(ipack)
   50395     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50396     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50397     1526832 :          idata = idata + 1
   50398     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50399     1526832 :          ipack = ipack + 1
   50400     1526832 :          pack_tmp = packed_data(ipack)
   50401     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50402     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50403     1526832 :          idata = idata + 1
   50404     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50405     1526832 :          ipack = ipack + 1
   50406     1526832 :          pack_tmp = packed_data(ipack)
   50407     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50408     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50409     1526832 :          idata = idata + 1
   50410     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50411     1526832 :          ipack = ipack + 1
   50412     1526832 :          pack_tmp = packed_data(ipack)
   50413     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50414     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50415     1526832 :          idata = idata + 1
   50416     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50417     1526832 :          ipack = ipack + 1
   50418     1526832 :          pack_tmp = packed_data(ipack)
   50419     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50420     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50421     1526832 :          idata = idata + 1
   50422     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50423     1526832 :          ipack = ipack + 1
   50424     1526832 :          pack_tmp = packed_data(ipack)
   50425     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50426     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50427     1526832 :          idata = idata + 1
   50428     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50429     1526832 :          ipack = ipack + 1
   50430     1526832 :          pack_tmp = packed_data(ipack)
   50431     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50432     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50433     1526832 :          idata = idata + 1
   50434     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50435     1526832 :          ipack = ipack + 1
   50436     1526832 :          pack_tmp = packed_data(ipack)
   50437     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50438     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50439     1526832 :          idata = idata + 1
   50440     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50441     1526832 :          ipack = ipack + 1
   50442     1526832 :          pack_tmp = packed_data(ipack)
   50443     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50444     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50445     1526832 :          idata = idata + 1
   50446     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50447     1526832 :          ipack = ipack + 1
   50448     1526832 :          pack_tmp = packed_data(ipack)
   50449     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50450     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50451     1526832 :          idata = idata + 1
   50452     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50453     1526832 :          ipack = ipack + 1
   50454     1526832 :          pack_tmp = packed_data(ipack)
   50455     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50456     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50457     1526832 :          idata = idata + 1
   50458     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50459     1526832 :          ipack = ipack + 1
   50460     1526832 :          pack_tmp = packed_data(ipack)
   50461     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50462     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50463     1526832 :          idata = idata + 1
   50464     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50465     1526832 :          ipack = ipack + 1
   50466     1526832 :          pack_tmp = packed_data(ipack)
   50467     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50468     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50469     1526832 :          idata = idata + 1
   50470     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50471     1526832 :          ipack = ipack + 1
   50472     1526832 :          pack_tmp = packed_data(ipack)
   50473     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50474     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50475     1526832 :          idata = idata + 1
   50476     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50477     1526832 :          ipack = ipack + 1
   50478     1526832 :          pack_tmp = packed_data(ipack)
   50479     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50480     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50481     1526832 :          idata = idata + 1
   50482     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50483     1526832 :          full_data(idata) = data_tmp
   50484     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50485     1526832 :          idata = idata + 1
   50486     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50487     1526832 :          ipack = ipack + 1
   50488     1526832 :          pack_tmp = packed_data(ipack)
   50489     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50490     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50491     1526832 :          idata = idata + 1
   50492     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50493     1526832 :          ipack = ipack + 1
   50494     1526832 :          pack_tmp = packed_data(ipack)
   50495     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50496     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50497     1526832 :          idata = idata + 1
   50498     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50499     1526832 :          ipack = ipack + 1
   50500     1526832 :          pack_tmp = packed_data(ipack)
   50501     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50502     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50503     1526832 :          idata = idata + 1
   50504     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50505     1526832 :          ipack = ipack + 1
   50506     1526832 :          pack_tmp = packed_data(ipack)
   50507     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50508     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50509     1526832 :          idata = idata + 1
   50510     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50511     1526832 :          ipack = ipack + 1
   50512     1526832 :          pack_tmp = packed_data(ipack)
   50513     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50514     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50515     1526832 :          idata = idata + 1
   50516     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50517     1526832 :          ipack = ipack + 1
   50518     1526832 :          pack_tmp = packed_data(ipack)
   50519     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50520     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50521     1526832 :          idata = idata + 1
   50522     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50523     1526832 :          ipack = ipack + 1
   50524     1526832 :          pack_tmp = packed_data(ipack)
   50525     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50526     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50527     1526832 :          idata = idata + 1
   50528     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50529     1526832 :          ipack = ipack + 1
   50530     1526832 :          pack_tmp = packed_data(ipack)
   50531     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50532     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50533     1526832 :          idata = idata + 1
   50534     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50535     1526832 :          ipack = ipack + 1
   50536     1526832 :          pack_tmp = packed_data(ipack)
   50537     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50538     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50539     1526832 :          idata = idata + 1
   50540     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50541     1526832 :          ipack = ipack + 1
   50542     1526832 :          pack_tmp = packed_data(ipack)
   50543     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50544     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50545     1526832 :          idata = idata + 1
   50546     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50547     1526832 :          ipack = ipack + 1
   50548     1526832 :          pack_tmp = packed_data(ipack)
   50549     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50550     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50551     1526832 :          idata = idata + 1
   50552     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50553     1526832 :          ipack = ipack + 1
   50554     1526832 :          pack_tmp = packed_data(ipack)
   50555     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50556     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50557     1526832 :          idata = idata + 1
   50558     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50559     1526832 :          ipack = ipack + 1
   50560     1526832 :          pack_tmp = packed_data(ipack)
   50561     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50562     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50563     1526832 :          idata = idata + 1
   50564     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50565     1526832 :          ipack = ipack + 1
   50566     1526832 :          pack_tmp = packed_data(ipack)
   50567     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50568     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50569     1526832 :          idata = idata + 1
   50570     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50571     1526832 :          ipack = ipack + 1
   50572     1526832 :          pack_tmp = packed_data(ipack)
   50573     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50574     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50575     1526832 :          idata = idata + 1
   50576     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50577     1526832 :          full_data(idata) = data_tmp
   50578     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50579     1526832 :          idata = idata + 1
   50580     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50581     1526832 :          ipack = ipack + 1
   50582     1526832 :          pack_tmp = packed_data(ipack)
   50583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50584     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50585     1526832 :          idata = idata + 1
   50586     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50587     1526832 :          ipack = ipack + 1
   50588     1526832 :          pack_tmp = packed_data(ipack)
   50589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50590     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50591     1526832 :          idata = idata + 1
   50592     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50593     1526832 :          ipack = ipack + 1
   50594     1526832 :          pack_tmp = packed_data(ipack)
   50595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50596     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50597     1526832 :          idata = idata + 1
   50598     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50599     1526832 :          ipack = ipack + 1
   50600     1526832 :          pack_tmp = packed_data(ipack)
   50601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50602     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50603     1526832 :          idata = idata + 1
   50604     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50605     1526832 :          ipack = ipack + 1
   50606     1526832 :          pack_tmp = packed_data(ipack)
   50607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50608     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50609     1526832 :          idata = idata + 1
   50610     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50611     1526832 :          ipack = ipack + 1
   50612     1526832 :          pack_tmp = packed_data(ipack)
   50613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50614     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50615     1526832 :          idata = idata + 1
   50616     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50617     1526832 :          ipack = ipack + 1
   50618     1526832 :          pack_tmp = packed_data(ipack)
   50619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50620     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50621     1526832 :          idata = idata + 1
   50622     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50623     1526832 :          ipack = ipack + 1
   50624     1526832 :          pack_tmp = packed_data(ipack)
   50625     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50626     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50627     1526832 :          idata = idata + 1
   50628     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50629     1526832 :          ipack = ipack + 1
   50630     1526832 :          pack_tmp = packed_data(ipack)
   50631     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50632     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50633     1526832 :          idata = idata + 1
   50634     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50635     1526832 :          ipack = ipack + 1
   50636     1526832 :          pack_tmp = packed_data(ipack)
   50637     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50638     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50639     1526832 :          idata = idata + 1
   50640     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50641     1526832 :          ipack = ipack + 1
   50642     1526832 :          pack_tmp = packed_data(ipack)
   50643     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50644     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50645     1526832 :          idata = idata + 1
   50646     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50647     1526832 :          ipack = ipack + 1
   50648     1526832 :          pack_tmp = packed_data(ipack)
   50649     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50650     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50651     1526832 :          idata = idata + 1
   50652     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50653     1526832 :          ipack = ipack + 1
   50654     1526832 :          pack_tmp = packed_data(ipack)
   50655     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50656     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50657     1526832 :          idata = idata + 1
   50658     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50659     1526832 :          ipack = ipack + 1
   50660     1526832 :          pack_tmp = packed_data(ipack)
   50661     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50662     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50663     1526832 :          idata = idata + 1
   50664     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50665     1526832 :          ipack = ipack + 1
   50666     1526832 :          pack_tmp = packed_data(ipack)
   50667     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50668     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50669     1526832 :          idata = idata + 1
   50670     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50671     1526832 :          full_data(idata) = data_tmp
   50672     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50673             :       END DO
   50674       95427 :       IF (Ndata_rep < Ndata) THEN
   50675           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   50676             :       END IF
   50677       95427 :    END SUBROUTINE bits2ints_60
   50678             : 
   50679             : ! **************************************************************************************************
   50680             : !> \brief ...
   50681             : !> \param Ndata ...
   50682             : !> \param packed_data ...
   50683             : !> \param full_data ...
   50684             : ! **************************************************************************************************
   50685       23676 :    SUBROUTINE ints2bits_61(Ndata, packed_data, full_data)
   50686             :       INTEGER, INTENT(IN)                                :: Ndata
   50687             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   50688             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   50689             : 
   50690             :       INTEGER, PARAMETER                                 :: Nbits = 61
   50691             : 
   50692             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   50693             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   50694             : 
   50695       23676 :       idata = 0
   50696       23676 :       ipack = 0
   50697       23676 :       Ndata_rep = (Ndata/64)*64
   50698       23676 :       DO kdata = 1, Ndata_rep, 64
   50699      378816 :          pack_tmp = 0
   50700      378816 :          idata = idata + 1
   50701      378816 :          data_tmp = full_data(idata)
   50702      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50703      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50704      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   50705      378816 :          idata = idata + 1
   50706      378816 :          data_tmp = full_data(idata)
   50707      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50708      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   50709      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50710      378816 :          ipack = ipack + 1
   50711      378816 :          packed_data(ipack) = pack_tmp
   50712      378816 :          data_tmp = full_data(idata)
   50713      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   50714      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   50715      378816 :          idata = idata + 1
   50716      378816 :          data_tmp = full_data(idata)
   50717      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50718      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   50719      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50720      378816 :          ipack = ipack + 1
   50721      378816 :          packed_data(ipack) = pack_tmp
   50722      378816 :          data_tmp = full_data(idata)
   50723      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   50724      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   50725      378816 :          idata = idata + 1
   50726      378816 :          data_tmp = full_data(idata)
   50727      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50728      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   50729      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50730      378816 :          ipack = ipack + 1
   50731      378816 :          packed_data(ipack) = pack_tmp
   50732      378816 :          data_tmp = full_data(idata)
   50733      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   50734      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   50735      378816 :          idata = idata + 1
   50736      378816 :          data_tmp = full_data(idata)
   50737      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50738      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   50739      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50740      378816 :          ipack = ipack + 1
   50741      378816 :          packed_data(ipack) = pack_tmp
   50742      378816 :          data_tmp = full_data(idata)
   50743      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   50744      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   50745      378816 :          idata = idata + 1
   50746      378816 :          data_tmp = full_data(idata)
   50747      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50748      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   50749      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50750      378816 :          ipack = ipack + 1
   50751      378816 :          packed_data(ipack) = pack_tmp
   50752      378816 :          data_tmp = full_data(idata)
   50753      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   50754      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   50755      378816 :          idata = idata + 1
   50756      378816 :          data_tmp = full_data(idata)
   50757      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50758      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   50759      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50760      378816 :          ipack = ipack + 1
   50761      378816 :          packed_data(ipack) = pack_tmp
   50762      378816 :          data_tmp = full_data(idata)
   50763      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   50764      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   50765      378816 :          idata = idata + 1
   50766      378816 :          data_tmp = full_data(idata)
   50767      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50768      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   50769      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50770      378816 :          ipack = ipack + 1
   50771      378816 :          packed_data(ipack) = pack_tmp
   50772      378816 :          data_tmp = full_data(idata)
   50773      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50774      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50775      378816 :          idata = idata + 1
   50776      378816 :          data_tmp = full_data(idata)
   50777      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50778      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50779      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50780      378816 :          ipack = ipack + 1
   50781      378816 :          packed_data(ipack) = pack_tmp
   50782      378816 :          data_tmp = full_data(idata)
   50783      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   50784      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   50785      378816 :          idata = idata + 1
   50786      378816 :          data_tmp = full_data(idata)
   50787      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50788      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   50789      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50790      378816 :          ipack = ipack + 1
   50791      378816 :          packed_data(ipack) = pack_tmp
   50792      378816 :          data_tmp = full_data(idata)
   50793      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   50794      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   50795      378816 :          idata = idata + 1
   50796      378816 :          data_tmp = full_data(idata)
   50797      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50798      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   50799      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50800      378816 :          ipack = ipack + 1
   50801      378816 :          packed_data(ipack) = pack_tmp
   50802      378816 :          data_tmp = full_data(idata)
   50803      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   50804      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   50805      378816 :          idata = idata + 1
   50806      378816 :          data_tmp = full_data(idata)
   50807      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50808      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   50809      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50810      378816 :          ipack = ipack + 1
   50811      378816 :          packed_data(ipack) = pack_tmp
   50812      378816 :          data_tmp = full_data(idata)
   50813      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50814      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50815      378816 :          idata = idata + 1
   50816      378816 :          data_tmp = full_data(idata)
   50817      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50818      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50819      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50820      378816 :          ipack = ipack + 1
   50821      378816 :          packed_data(ipack) = pack_tmp
   50822      378816 :          data_tmp = full_data(idata)
   50823      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   50824      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   50825      378816 :          idata = idata + 1
   50826      378816 :          data_tmp = full_data(idata)
   50827      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50828      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   50829      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50830      378816 :          ipack = ipack + 1
   50831      378816 :          packed_data(ipack) = pack_tmp
   50832      378816 :          data_tmp = full_data(idata)
   50833      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   50834      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   50835      378816 :          idata = idata + 1
   50836      378816 :          data_tmp = full_data(idata)
   50837      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50838      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   50839      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50840      378816 :          ipack = ipack + 1
   50841      378816 :          packed_data(ipack) = pack_tmp
   50842      378816 :          data_tmp = full_data(idata)
   50843      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   50844      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   50845      378816 :          idata = idata + 1
   50846      378816 :          data_tmp = full_data(idata)
   50847      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50848      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   50849      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50850      378816 :          ipack = ipack + 1
   50851      378816 :          packed_data(ipack) = pack_tmp
   50852      378816 :          data_tmp = full_data(idata)
   50853      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50854      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50855      378816 :          idata = idata + 1
   50856      378816 :          data_tmp = full_data(idata)
   50857      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50858      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50859      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50860      378816 :          ipack = ipack + 1
   50861      378816 :          packed_data(ipack) = pack_tmp
   50862      378816 :          data_tmp = full_data(idata)
   50863      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   50864      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   50865      378816 :          idata = idata + 1
   50866      378816 :          data_tmp = full_data(idata)
   50867      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50868      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   50869      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50870      378816 :          ipack = ipack + 1
   50871      378816 :          packed_data(ipack) = pack_tmp
   50872      378816 :          data_tmp = full_data(idata)
   50873      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   50874      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   50875      378816 :          idata = idata + 1
   50876      378816 :          data_tmp = full_data(idata)
   50877      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50878      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   50879      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50880      378816 :          ipack = ipack + 1
   50881      378816 :          packed_data(ipack) = pack_tmp
   50882      378816 :          data_tmp = full_data(idata)
   50883      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   50884      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   50885      378816 :          idata = idata + 1
   50886      378816 :          data_tmp = full_data(idata)
   50887      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50888      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   50889      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50890      378816 :          ipack = ipack + 1
   50891      378816 :          packed_data(ipack) = pack_tmp
   50892      378816 :          data_tmp = full_data(idata)
   50893      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50894      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50895      378816 :          idata = idata + 1
   50896      378816 :          data_tmp = full_data(idata)
   50897      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50898      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   50899      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50900      378816 :          ipack = ipack + 1
   50901      378816 :          packed_data(ipack) = pack_tmp
   50902      378816 :          data_tmp = full_data(idata)
   50903      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   50904      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   50905      378816 :          idata = idata + 1
   50906      378816 :          data_tmp = full_data(idata)
   50907      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50908      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50909      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   50910      378816 :          idata = idata + 1
   50911      378816 :          data_tmp = full_data(idata)
   50912      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50913      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   50914      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50915      378816 :          ipack = ipack + 1
   50916      378816 :          packed_data(ipack) = pack_tmp
   50917      378816 :          data_tmp = full_data(idata)
   50918      378816 :          pack_tmp = ISHFT(data_tmp, 5)
   50919      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   50920      378816 :          idata = idata + 1
   50921      378816 :          data_tmp = full_data(idata)
   50922      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50923      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   50924      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50925      378816 :          ipack = ipack + 1
   50926      378816 :          packed_data(ipack) = pack_tmp
   50927      378816 :          data_tmp = full_data(idata)
   50928      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   50929      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   50930      378816 :          idata = idata + 1
   50931      378816 :          data_tmp = full_data(idata)
   50932      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50933      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   50934      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50935      378816 :          ipack = ipack + 1
   50936      378816 :          packed_data(ipack) = pack_tmp
   50937      378816 :          data_tmp = full_data(idata)
   50938      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   50939      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   50940      378816 :          idata = idata + 1
   50941      378816 :          data_tmp = full_data(idata)
   50942      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50943      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   50944      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50945      378816 :          ipack = ipack + 1
   50946      378816 :          packed_data(ipack) = pack_tmp
   50947      378816 :          data_tmp = full_data(idata)
   50948      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   50949      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   50950      378816 :          idata = idata + 1
   50951      378816 :          data_tmp = full_data(idata)
   50952      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50953      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   50954      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50955      378816 :          ipack = ipack + 1
   50956      378816 :          packed_data(ipack) = pack_tmp
   50957      378816 :          data_tmp = full_data(idata)
   50958      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   50959      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   50960      378816 :          idata = idata + 1
   50961      378816 :          data_tmp = full_data(idata)
   50962      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50963      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   50964      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50965      378816 :          ipack = ipack + 1
   50966      378816 :          packed_data(ipack) = pack_tmp
   50967      378816 :          data_tmp = full_data(idata)
   50968      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50969      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50970      378816 :          idata = idata + 1
   50971      378816 :          data_tmp = full_data(idata)
   50972      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50973      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50974      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50975      378816 :          ipack = ipack + 1
   50976      378816 :          packed_data(ipack) = pack_tmp
   50977      378816 :          data_tmp = full_data(idata)
   50978      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   50979      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   50980      378816 :          idata = idata + 1
   50981      378816 :          data_tmp = full_data(idata)
   50982      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50983      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   50984      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50985      378816 :          ipack = ipack + 1
   50986      378816 :          packed_data(ipack) = pack_tmp
   50987      378816 :          data_tmp = full_data(idata)
   50988      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   50989      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   50990      378816 :          idata = idata + 1
   50991      378816 :          data_tmp = full_data(idata)
   50992      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50993      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   50994      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50995      378816 :          ipack = ipack + 1
   50996      378816 :          packed_data(ipack) = pack_tmp
   50997      378816 :          data_tmp = full_data(idata)
   50998      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   50999      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   51000      378816 :          idata = idata + 1
   51001      378816 :          data_tmp = full_data(idata)
   51002      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51003      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   51004      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51005      378816 :          ipack = ipack + 1
   51006      378816 :          packed_data(ipack) = pack_tmp
   51007      378816 :          data_tmp = full_data(idata)
   51008      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   51009      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   51010      378816 :          idata = idata + 1
   51011      378816 :          data_tmp = full_data(idata)
   51012      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51013      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   51014      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51015      378816 :          ipack = ipack + 1
   51016      378816 :          packed_data(ipack) = pack_tmp
   51017      378816 :          data_tmp = full_data(idata)
   51018      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   51019      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   51020      378816 :          idata = idata + 1
   51021      378816 :          data_tmp = full_data(idata)
   51022      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51023      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   51024      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51025      378816 :          ipack = ipack + 1
   51026      378816 :          packed_data(ipack) = pack_tmp
   51027      378816 :          data_tmp = full_data(idata)
   51028      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   51029      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   51030      378816 :          idata = idata + 1
   51031      378816 :          data_tmp = full_data(idata)
   51032      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51033      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   51034      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51035      378816 :          ipack = ipack + 1
   51036      378816 :          packed_data(ipack) = pack_tmp
   51037      378816 :          data_tmp = full_data(idata)
   51038      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   51039      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   51040      378816 :          idata = idata + 1
   51041      378816 :          data_tmp = full_data(idata)
   51042      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51043      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   51044      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51045      378816 :          ipack = ipack + 1
   51046      378816 :          packed_data(ipack) = pack_tmp
   51047      378816 :          data_tmp = full_data(idata)
   51048      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   51049      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   51050      378816 :          idata = idata + 1
   51051      378816 :          data_tmp = full_data(idata)
   51052      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51053      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   51054      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51055      378816 :          ipack = ipack + 1
   51056      378816 :          packed_data(ipack) = pack_tmp
   51057      378816 :          data_tmp = full_data(idata)
   51058      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   51059      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   51060      378816 :          idata = idata + 1
   51061      378816 :          data_tmp = full_data(idata)
   51062      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51063      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   51064      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51065      378816 :          ipack = ipack + 1
   51066      378816 :          packed_data(ipack) = pack_tmp
   51067      378816 :          data_tmp = full_data(idata)
   51068      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   51069      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   51070      378816 :          idata = idata + 1
   51071      378816 :          data_tmp = full_data(idata)
   51072      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51073      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   51074      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51075      378816 :          ipack = ipack + 1
   51076      378816 :          packed_data(ipack) = pack_tmp
   51077      378816 :          data_tmp = full_data(idata)
   51078      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   51079      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   51080      378816 :          idata = idata + 1
   51081      378816 :          data_tmp = full_data(idata)
   51082      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51083      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   51084      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51085      378816 :          ipack = ipack + 1
   51086      378816 :          packed_data(ipack) = pack_tmp
   51087      378816 :          data_tmp = full_data(idata)
   51088      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   51089      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   51090      378816 :          idata = idata + 1
   51091      378816 :          data_tmp = full_data(idata)
   51092      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51093      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   51094      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51095      378816 :          ipack = ipack + 1
   51096      378816 :          packed_data(ipack) = pack_tmp
   51097      378816 :          data_tmp = full_data(idata)
   51098      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   51099      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   51100      378816 :          idata = idata + 1
   51101      378816 :          data_tmp = full_data(idata)
   51102      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51103      378816 :          data_tmp = IAND(data_tmp, mask_left(59))
   51104      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51105      378816 :          ipack = ipack + 1
   51106      378816 :          packed_data(ipack) = pack_tmp
   51107      378816 :          data_tmp = full_data(idata)
   51108      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   51109      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   51110      378816 :          idata = idata + 1
   51111      378816 :          data_tmp = full_data(idata)
   51112      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51113      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51114      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   51115      378816 :          idata = idata + 1
   51116      378816 :          data_tmp = full_data(idata)
   51117      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51118      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   51119      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51120      378816 :          ipack = ipack + 1
   51121      378816 :          packed_data(ipack) = pack_tmp
   51122      378816 :          data_tmp = full_data(idata)
   51123      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   51124      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   51125      378816 :          idata = idata + 1
   51126      378816 :          data_tmp = full_data(idata)
   51127      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51128      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   51129      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51130      378816 :          ipack = ipack + 1
   51131      378816 :          packed_data(ipack) = pack_tmp
   51132      378816 :          data_tmp = full_data(idata)
   51133      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   51134      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   51135      378816 :          idata = idata + 1
   51136      378816 :          data_tmp = full_data(idata)
   51137      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51138      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   51139      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51140      378816 :          ipack = ipack + 1
   51141      378816 :          packed_data(ipack) = pack_tmp
   51142      378816 :          data_tmp = full_data(idata)
   51143      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   51144      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   51145      378816 :          idata = idata + 1
   51146      378816 :          data_tmp = full_data(idata)
   51147      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51148      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   51149      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51150      378816 :          ipack = ipack + 1
   51151      378816 :          packed_data(ipack) = pack_tmp
   51152      378816 :          data_tmp = full_data(idata)
   51153      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   51154      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   51155      378816 :          idata = idata + 1
   51156      378816 :          data_tmp = full_data(idata)
   51157      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51158      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   51159      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51160      378816 :          ipack = ipack + 1
   51161      378816 :          packed_data(ipack) = pack_tmp
   51162      378816 :          data_tmp = full_data(idata)
   51163      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   51164      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   51165      378816 :          idata = idata + 1
   51166      378816 :          data_tmp = full_data(idata)
   51167      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51168      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   51169      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51170      378816 :          ipack = ipack + 1
   51171      378816 :          packed_data(ipack) = pack_tmp
   51172      378816 :          data_tmp = full_data(idata)
   51173      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   51174      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   51175      378816 :          idata = idata + 1
   51176      378816 :          data_tmp = full_data(idata)
   51177      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51178      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   51179      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51180      378816 :          ipack = ipack + 1
   51181      378816 :          packed_data(ipack) = pack_tmp
   51182      378816 :          data_tmp = full_data(idata)
   51183      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   51184      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   51185      378816 :          idata = idata + 1
   51186      378816 :          data_tmp = full_data(idata)
   51187      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51188      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   51189      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51190      378816 :          ipack = ipack + 1
   51191      378816 :          packed_data(ipack) = pack_tmp
   51192      378816 :          data_tmp = full_data(idata)
   51193      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   51194      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   51195      378816 :          idata = idata + 1
   51196      378816 :          data_tmp = full_data(idata)
   51197      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51198      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   51199      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51200      378816 :          ipack = ipack + 1
   51201      378816 :          packed_data(ipack) = pack_tmp
   51202      378816 :          data_tmp = full_data(idata)
   51203      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   51204      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   51205      378816 :          idata = idata + 1
   51206      378816 :          data_tmp = full_data(idata)
   51207      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51208      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   51209      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51210      378816 :          ipack = ipack + 1
   51211      378816 :          packed_data(ipack) = pack_tmp
   51212      378816 :          data_tmp = full_data(idata)
   51213      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   51214      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   51215      378816 :          idata = idata + 1
   51216      378816 :          data_tmp = full_data(idata)
   51217      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51218      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   51219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51220      378816 :          ipack = ipack + 1
   51221      378816 :          packed_data(ipack) = pack_tmp
   51222      378816 :          data_tmp = full_data(idata)
   51223      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   51224      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   51225      378816 :          idata = idata + 1
   51226      378816 :          data_tmp = full_data(idata)
   51227      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51228      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   51229      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51230      378816 :          ipack = ipack + 1
   51231      378816 :          packed_data(ipack) = pack_tmp
   51232      378816 :          data_tmp = full_data(idata)
   51233      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   51234      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   51235      378816 :          idata = idata + 1
   51236      378816 :          data_tmp = full_data(idata)
   51237      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51238      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   51239      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51240      378816 :          ipack = ipack + 1
   51241      378816 :          packed_data(ipack) = pack_tmp
   51242      378816 :          data_tmp = full_data(idata)
   51243      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   51244      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   51245      378816 :          idata = idata + 1
   51246      378816 :          data_tmp = full_data(idata)
   51247      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51248      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   51249      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51250      378816 :          ipack = ipack + 1
   51251      378816 :          packed_data(ipack) = pack_tmp
   51252      378816 :          data_tmp = full_data(idata)
   51253      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   51254      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   51255      378816 :          idata = idata + 1
   51256      378816 :          data_tmp = full_data(idata)
   51257      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51258      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   51259      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51260      378816 :          ipack = ipack + 1
   51261      378816 :          packed_data(ipack) = pack_tmp
   51262      378816 :          data_tmp = full_data(idata)
   51263      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   51264      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   51265      378816 :          idata = idata + 1
   51266      378816 :          data_tmp = full_data(idata)
   51267      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51268      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   51269      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51270      378816 :          ipack = ipack + 1
   51271      378816 :          packed_data(ipack) = pack_tmp
   51272      378816 :          data_tmp = full_data(idata)
   51273      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   51274      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   51275      378816 :          idata = idata + 1
   51276      378816 :          data_tmp = full_data(idata)
   51277      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51278      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   51279      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51280      378816 :          ipack = ipack + 1
   51281      378816 :          packed_data(ipack) = pack_tmp
   51282      378816 :          data_tmp = full_data(idata)
   51283      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   51284      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   51285      378816 :          idata = idata + 1
   51286      378816 :          data_tmp = full_data(idata)
   51287      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51288      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   51289      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51290      378816 :          ipack = ipack + 1
   51291      378816 :          packed_data(ipack) = pack_tmp
   51292      378816 :          data_tmp = full_data(idata)
   51293      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   51294      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   51295      378816 :          idata = idata + 1
   51296      378816 :          data_tmp = full_data(idata)
   51297      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51298      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   51299      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51300      378816 :          ipack = ipack + 1
   51301      378816 :          packed_data(ipack) = pack_tmp
   51302      378816 :          data_tmp = full_data(idata)
   51303      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   51304      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   51305      378816 :          idata = idata + 1
   51306      378816 :          data_tmp = full_data(idata)
   51307      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51308      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   51309      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51310      378816 :          ipack = ipack + 1
   51311      378816 :          packed_data(ipack) = pack_tmp
   51312      378816 :          data_tmp = full_data(idata)
   51313      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   51314      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   51315      378816 :          idata = idata + 1
   51316      378816 :          data_tmp = full_data(idata)
   51317      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51318      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51319             :          pack_tmp = ISHFT(pack_tmp, 0)
   51320      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   51321      378816 :          ipack = ipack + 1
   51322      378816 :          packed_data(ipack) = pack_tmp
   51323             :       END DO
   51324       23676 :       IF (Ndata_rep < Ndata) THEN
   51325           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   51326             :       END IF
   51327       23676 :    END SUBROUTINE ints2bits_61
   51328             : 
   51329             : ! **************************************************************************************************
   51330             : !> \brief ...
   51331             : !> \param Ndata ...
   51332             : !> \param packed_data ...
   51333             : !> \param full_data ...
   51334             : ! **************************************************************************************************
   51335       95427 :    SUBROUTINE bits2ints_61(Ndata, packed_data, full_data)
   51336             :       INTEGER, INTENT(IN)                                :: Ndata
   51337             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   51338             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   51339             : 
   51340             :       INTEGER, PARAMETER                                 :: Nbits = 61
   51341             : 
   51342             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   51343             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   51344             : 
   51345       95427 :       ipack = 0
   51346       95427 :       idata = 0
   51347       95427 :       pack_tmp = 0
   51348       95427 :       Ndata_rep = (Ndata/64)*64
   51349       95427 :       DO kdata = 1, Ndata_rep, 64
   51350     1526832 :          idata = idata + 1
   51351     1526832 :          data_tmp = ISHFT(pack_tmp, 61)
   51352     1526832 :          ipack = ipack + 1
   51353     1526832 :          pack_tmp = packed_data(ipack)
   51354     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   51355     1526832 :          pack_tmp = ISHFT(pack_tmp, -61)
   51356     1526832 :          idata = idata + 1
   51357     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   51358     1526832 :          ipack = ipack + 1
   51359     1526832 :          pack_tmp = packed_data(ipack)
   51360     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   51361     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   51362     1526832 :          idata = idata + 1
   51363     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   51364     1526832 :          ipack = ipack + 1
   51365     1526832 :          pack_tmp = packed_data(ipack)
   51366     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   51367     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   51368     1526832 :          idata = idata + 1
   51369     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   51370     1526832 :          ipack = ipack + 1
   51371     1526832 :          pack_tmp = packed_data(ipack)
   51372     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   51373     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   51374     1526832 :          idata = idata + 1
   51375     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   51376     1526832 :          ipack = ipack + 1
   51377     1526832 :          pack_tmp = packed_data(ipack)
   51378     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   51379     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   51380     1526832 :          idata = idata + 1
   51381     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   51382     1526832 :          ipack = ipack + 1
   51383     1526832 :          pack_tmp = packed_data(ipack)
   51384     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   51385     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   51386     1526832 :          idata = idata + 1
   51387     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   51388     1526832 :          ipack = ipack + 1
   51389     1526832 :          pack_tmp = packed_data(ipack)
   51390     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   51391     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   51392     1526832 :          idata = idata + 1
   51393     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   51394     1526832 :          ipack = ipack + 1
   51395     1526832 :          pack_tmp = packed_data(ipack)
   51396     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   51397     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   51398     1526832 :          idata = idata + 1
   51399     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   51400     1526832 :          ipack = ipack + 1
   51401     1526832 :          pack_tmp = packed_data(ipack)
   51402     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   51403     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   51404     1526832 :          idata = idata + 1
   51405     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   51406     1526832 :          ipack = ipack + 1
   51407     1526832 :          pack_tmp = packed_data(ipack)
   51408     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   51409     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   51410     1526832 :          idata = idata + 1
   51411     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   51412     1526832 :          ipack = ipack + 1
   51413     1526832 :          pack_tmp = packed_data(ipack)
   51414     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   51415     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   51416     1526832 :          idata = idata + 1
   51417     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   51418     1526832 :          ipack = ipack + 1
   51419     1526832 :          pack_tmp = packed_data(ipack)
   51420     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   51421     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   51422     1526832 :          idata = idata + 1
   51423     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   51424     1526832 :          ipack = ipack + 1
   51425     1526832 :          pack_tmp = packed_data(ipack)
   51426     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   51427     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   51428     1526832 :          idata = idata + 1
   51429     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   51430     1526832 :          ipack = ipack + 1
   51431     1526832 :          pack_tmp = packed_data(ipack)
   51432     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   51433     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   51434     1526832 :          idata = idata + 1
   51435     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   51436     1526832 :          ipack = ipack + 1
   51437     1526832 :          pack_tmp = packed_data(ipack)
   51438     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   51439     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   51440     1526832 :          idata = idata + 1
   51441     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   51442     1526832 :          ipack = ipack + 1
   51443     1526832 :          pack_tmp = packed_data(ipack)
   51444     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   51445     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   51446     1526832 :          idata = idata + 1
   51447     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   51448     1526832 :          ipack = ipack + 1
   51449     1526832 :          pack_tmp = packed_data(ipack)
   51450     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   51451     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   51452     1526832 :          idata = idata + 1
   51453     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   51454     1526832 :          ipack = ipack + 1
   51455     1526832 :          pack_tmp = packed_data(ipack)
   51456     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   51457     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   51458     1526832 :          idata = idata + 1
   51459     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   51460     1526832 :          ipack = ipack + 1
   51461     1526832 :          pack_tmp = packed_data(ipack)
   51462     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   51463     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   51464     1526832 :          idata = idata + 1
   51465     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   51466     1526832 :          ipack = ipack + 1
   51467     1526832 :          pack_tmp = packed_data(ipack)
   51468     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   51469     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   51470     1526832 :          idata = idata + 1
   51471     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   51472     1526832 :          ipack = ipack + 1
   51473     1526832 :          pack_tmp = packed_data(ipack)
   51474     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   51475     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   51476     1526832 :          idata = idata + 1
   51477     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51478     1526832 :          full_data(idata) = data_tmp
   51479     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51480     1526832 :          idata = idata + 1
   51481     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   51482     1526832 :          ipack = ipack + 1
   51483     1526832 :          pack_tmp = packed_data(ipack)
   51484     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   51485     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   51486     1526832 :          idata = idata + 1
   51487     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   51488     1526832 :          ipack = ipack + 1
   51489     1526832 :          pack_tmp = packed_data(ipack)
   51490     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   51491     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   51492     1526832 :          idata = idata + 1
   51493     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   51494     1526832 :          ipack = ipack + 1
   51495     1526832 :          pack_tmp = packed_data(ipack)
   51496     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   51497     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   51498     1526832 :          idata = idata + 1
   51499     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   51500     1526832 :          ipack = ipack + 1
   51501     1526832 :          pack_tmp = packed_data(ipack)
   51502     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   51503     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   51504     1526832 :          idata = idata + 1
   51505     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   51506     1526832 :          ipack = ipack + 1
   51507     1526832 :          pack_tmp = packed_data(ipack)
   51508     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   51509     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   51510     1526832 :          idata = idata + 1
   51511     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   51512     1526832 :          ipack = ipack + 1
   51513     1526832 :          pack_tmp = packed_data(ipack)
   51514     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   51515     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   51516     1526832 :          idata = idata + 1
   51517     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   51518     1526832 :          ipack = ipack + 1
   51519     1526832 :          pack_tmp = packed_data(ipack)
   51520     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   51521     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   51522     1526832 :          idata = idata + 1
   51523     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   51524     1526832 :          ipack = ipack + 1
   51525     1526832 :          pack_tmp = packed_data(ipack)
   51526     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   51527     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   51528     1526832 :          idata = idata + 1
   51529     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   51530     1526832 :          ipack = ipack + 1
   51531     1526832 :          pack_tmp = packed_data(ipack)
   51532     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   51533     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   51534     1526832 :          idata = idata + 1
   51535     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   51536     1526832 :          ipack = ipack + 1
   51537     1526832 :          pack_tmp = packed_data(ipack)
   51538     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   51539     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   51540     1526832 :          idata = idata + 1
   51541     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   51542     1526832 :          ipack = ipack + 1
   51543     1526832 :          pack_tmp = packed_data(ipack)
   51544     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   51545     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   51546     1526832 :          idata = idata + 1
   51547     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   51548     1526832 :          ipack = ipack + 1
   51549     1526832 :          pack_tmp = packed_data(ipack)
   51550     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   51551     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   51552     1526832 :          idata = idata + 1
   51553     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   51554     1526832 :          ipack = ipack + 1
   51555     1526832 :          pack_tmp = packed_data(ipack)
   51556     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   51557     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   51558     1526832 :          idata = idata + 1
   51559     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   51560     1526832 :          ipack = ipack + 1
   51561     1526832 :          pack_tmp = packed_data(ipack)
   51562     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   51563     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   51564     1526832 :          idata = idata + 1
   51565     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   51566     1526832 :          ipack = ipack + 1
   51567     1526832 :          pack_tmp = packed_data(ipack)
   51568     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   51569     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   51570     1526832 :          idata = idata + 1
   51571     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   51572     1526832 :          ipack = ipack + 1
   51573     1526832 :          pack_tmp = packed_data(ipack)
   51574     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   51575     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   51576     1526832 :          idata = idata + 1
   51577     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   51578     1526832 :          ipack = ipack + 1
   51579     1526832 :          pack_tmp = packed_data(ipack)
   51580     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   51581     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   51582     1526832 :          idata = idata + 1
   51583     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   51584     1526832 :          ipack = ipack + 1
   51585     1526832 :          pack_tmp = packed_data(ipack)
   51586     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   51587     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   51588     1526832 :          idata = idata + 1
   51589     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   51590     1526832 :          ipack = ipack + 1
   51591     1526832 :          pack_tmp = packed_data(ipack)
   51592     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   51593     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   51594     1526832 :          idata = idata + 1
   51595     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   51596     1526832 :          ipack = ipack + 1
   51597     1526832 :          pack_tmp = packed_data(ipack)
   51598     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   51599     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   51600     1526832 :          idata = idata + 1
   51601     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51602     1526832 :          full_data(idata) = data_tmp
   51603     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51604     1526832 :          idata = idata + 1
   51605     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   51606     1526832 :          ipack = ipack + 1
   51607     1526832 :          pack_tmp = packed_data(ipack)
   51608     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   51609     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   51610     1526832 :          idata = idata + 1
   51611     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   51612     1526832 :          ipack = ipack + 1
   51613     1526832 :          pack_tmp = packed_data(ipack)
   51614     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   51615     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   51616     1526832 :          idata = idata + 1
   51617     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   51618     1526832 :          ipack = ipack + 1
   51619     1526832 :          pack_tmp = packed_data(ipack)
   51620     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   51621     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   51622     1526832 :          idata = idata + 1
   51623     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   51624     1526832 :          ipack = ipack + 1
   51625     1526832 :          pack_tmp = packed_data(ipack)
   51626     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   51627     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   51628     1526832 :          idata = idata + 1
   51629     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   51630     1526832 :          ipack = ipack + 1
   51631     1526832 :          pack_tmp = packed_data(ipack)
   51632     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   51633     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   51634     1526832 :          idata = idata + 1
   51635     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   51636     1526832 :          ipack = ipack + 1
   51637     1526832 :          pack_tmp = packed_data(ipack)
   51638     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   51639     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   51640     1526832 :          idata = idata + 1
   51641     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   51642     1526832 :          ipack = ipack + 1
   51643     1526832 :          pack_tmp = packed_data(ipack)
   51644     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   51645     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   51646     1526832 :          idata = idata + 1
   51647     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   51648     1526832 :          ipack = ipack + 1
   51649     1526832 :          pack_tmp = packed_data(ipack)
   51650     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   51651     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   51652     1526832 :          idata = idata + 1
   51653     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   51654     1526832 :          ipack = ipack + 1
   51655     1526832 :          pack_tmp = packed_data(ipack)
   51656     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   51657     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   51658     1526832 :          idata = idata + 1
   51659     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   51660     1526832 :          ipack = ipack + 1
   51661     1526832 :          pack_tmp = packed_data(ipack)
   51662     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   51663     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   51664     1526832 :          idata = idata + 1
   51665     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   51666     1526832 :          ipack = ipack + 1
   51667     1526832 :          pack_tmp = packed_data(ipack)
   51668     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   51669     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   51670     1526832 :          idata = idata + 1
   51671     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   51672     1526832 :          ipack = ipack + 1
   51673     1526832 :          pack_tmp = packed_data(ipack)
   51674     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   51675     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   51676     1526832 :          idata = idata + 1
   51677     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   51678     1526832 :          ipack = ipack + 1
   51679     1526832 :          pack_tmp = packed_data(ipack)
   51680     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   51681     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   51682     1526832 :          idata = idata + 1
   51683     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   51684     1526832 :          ipack = ipack + 1
   51685     1526832 :          pack_tmp = packed_data(ipack)
   51686     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   51687     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   51688     1526832 :          idata = idata + 1
   51689     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   51690     1526832 :          ipack = ipack + 1
   51691     1526832 :          pack_tmp = packed_data(ipack)
   51692     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   51693     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   51694     1526832 :          idata = idata + 1
   51695     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   51696     1526832 :          ipack = ipack + 1
   51697     1526832 :          pack_tmp = packed_data(ipack)
   51698     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   51699     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   51700     1526832 :          idata = idata + 1
   51701     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   51702     1526832 :          ipack = ipack + 1
   51703     1526832 :          pack_tmp = packed_data(ipack)
   51704     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   51705     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   51706     1526832 :          idata = idata + 1
   51707     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   51708     1526832 :          ipack = ipack + 1
   51709     1526832 :          pack_tmp = packed_data(ipack)
   51710     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   51711     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   51712     1526832 :          idata = idata + 1
   51713     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   51714     1526832 :          ipack = ipack + 1
   51715     1526832 :          pack_tmp = packed_data(ipack)
   51716     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   51717     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   51718     1526832 :          idata = idata + 1
   51719     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   51720     1526832 :          ipack = ipack + 1
   51721     1526832 :          pack_tmp = packed_data(ipack)
   51722     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   51723     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   51724     1526832 :          idata = idata + 1
   51725     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51726     1526832 :          full_data(idata) = data_tmp
   51727     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51728             :       END DO
   51729       95427 :       IF (Ndata_rep < Ndata) THEN
   51730           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   51731             :       END IF
   51732       95427 :    END SUBROUTINE bits2ints_61
   51733             : 
   51734             : ! **************************************************************************************************
   51735             : !> \brief ...
   51736             : !> \param Ndata ...
   51737             : !> \param packed_data ...
   51738             : !> \param full_data ...
   51739             : ! **************************************************************************************************
   51740       23676 :    SUBROUTINE ints2bits_62(Ndata, packed_data, full_data)
   51741             :       INTEGER, INTENT(IN)                                :: Ndata
   51742             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   51743             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   51744             : 
   51745             :       INTEGER, PARAMETER                                 :: Nbits = 62
   51746             : 
   51747             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   51748             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   51749             : 
   51750       23676 :       idata = 0
   51751       23676 :       ipack = 0
   51752       23676 :       Ndata_rep = (Ndata/64)*64
   51753       23676 :       DO kdata = 1, Ndata_rep, 64
   51754      378816 :          pack_tmp = 0
   51755      378816 :          idata = idata + 1
   51756      378816 :          data_tmp = full_data(idata)
   51757      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51758      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51759      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   51760      378816 :          idata = idata + 1
   51761      378816 :          data_tmp = full_data(idata)
   51762      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51763      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   51764      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51765      378816 :          ipack = ipack + 1
   51766      378816 :          packed_data(ipack) = pack_tmp
   51767      378816 :          data_tmp = full_data(idata)
   51768      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   51769      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   51770      378816 :          idata = idata + 1
   51771      378816 :          data_tmp = full_data(idata)
   51772      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51773      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   51774      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51775      378816 :          ipack = ipack + 1
   51776      378816 :          packed_data(ipack) = pack_tmp
   51777      378816 :          data_tmp = full_data(idata)
   51778      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   51779      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   51780      378816 :          idata = idata + 1
   51781      378816 :          data_tmp = full_data(idata)
   51782      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51783      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   51784      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51785      378816 :          ipack = ipack + 1
   51786      378816 :          packed_data(ipack) = pack_tmp
   51787      378816 :          data_tmp = full_data(idata)
   51788      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   51789      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   51790      378816 :          idata = idata + 1
   51791      378816 :          data_tmp = full_data(idata)
   51792      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51793      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   51794      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51795      378816 :          ipack = ipack + 1
   51796      378816 :          packed_data(ipack) = pack_tmp
   51797      378816 :          data_tmp = full_data(idata)
   51798      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   51799      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   51800      378816 :          idata = idata + 1
   51801      378816 :          data_tmp = full_data(idata)
   51802      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51803      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   51804      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51805      378816 :          ipack = ipack + 1
   51806      378816 :          packed_data(ipack) = pack_tmp
   51807      378816 :          data_tmp = full_data(idata)
   51808      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   51809      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   51810      378816 :          idata = idata + 1
   51811      378816 :          data_tmp = full_data(idata)
   51812      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51813      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   51814      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51815      378816 :          ipack = ipack + 1
   51816      378816 :          packed_data(ipack) = pack_tmp
   51817      378816 :          data_tmp = full_data(idata)
   51818      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   51819      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   51820      378816 :          idata = idata + 1
   51821      378816 :          data_tmp = full_data(idata)
   51822      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51823      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   51824      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51825      378816 :          ipack = ipack + 1
   51826      378816 :          packed_data(ipack) = pack_tmp
   51827      378816 :          data_tmp = full_data(idata)
   51828      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   51829      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   51830      378816 :          idata = idata + 1
   51831      378816 :          data_tmp = full_data(idata)
   51832      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51833      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   51834      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51835      378816 :          ipack = ipack + 1
   51836      378816 :          packed_data(ipack) = pack_tmp
   51837      378816 :          data_tmp = full_data(idata)
   51838      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   51839      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   51840      378816 :          idata = idata + 1
   51841      378816 :          data_tmp = full_data(idata)
   51842      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51843      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   51844      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51845      378816 :          ipack = ipack + 1
   51846      378816 :          packed_data(ipack) = pack_tmp
   51847      378816 :          data_tmp = full_data(idata)
   51848      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   51849      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   51850      378816 :          idata = idata + 1
   51851      378816 :          data_tmp = full_data(idata)
   51852      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51853      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   51854      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51855      378816 :          ipack = ipack + 1
   51856      378816 :          packed_data(ipack) = pack_tmp
   51857      378816 :          data_tmp = full_data(idata)
   51858      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   51859      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   51860      378816 :          idata = idata + 1
   51861      378816 :          data_tmp = full_data(idata)
   51862      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51863      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   51864      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51865      378816 :          ipack = ipack + 1
   51866      378816 :          packed_data(ipack) = pack_tmp
   51867      378816 :          data_tmp = full_data(idata)
   51868      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   51869      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   51870      378816 :          idata = idata + 1
   51871      378816 :          data_tmp = full_data(idata)
   51872      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51873      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   51874      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51875      378816 :          ipack = ipack + 1
   51876      378816 :          packed_data(ipack) = pack_tmp
   51877      378816 :          data_tmp = full_data(idata)
   51878      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   51879      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   51880      378816 :          idata = idata + 1
   51881      378816 :          data_tmp = full_data(idata)
   51882      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51883      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   51884      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51885      378816 :          ipack = ipack + 1
   51886      378816 :          packed_data(ipack) = pack_tmp
   51887      378816 :          data_tmp = full_data(idata)
   51888      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   51889      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   51890      378816 :          idata = idata + 1
   51891      378816 :          data_tmp = full_data(idata)
   51892      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51893      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   51894      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51895      378816 :          ipack = ipack + 1
   51896      378816 :          packed_data(ipack) = pack_tmp
   51897      378816 :          data_tmp = full_data(idata)
   51898      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   51899      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   51900      378816 :          idata = idata + 1
   51901      378816 :          data_tmp = full_data(idata)
   51902      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51903      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   51904      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51905      378816 :          ipack = ipack + 1
   51906      378816 :          packed_data(ipack) = pack_tmp
   51907      378816 :          data_tmp = full_data(idata)
   51908      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   51909      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   51910      378816 :          idata = idata + 1
   51911      378816 :          data_tmp = full_data(idata)
   51912      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51913      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   51914      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51915      378816 :          ipack = ipack + 1
   51916      378816 :          packed_data(ipack) = pack_tmp
   51917      378816 :          data_tmp = full_data(idata)
   51918      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   51919      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   51920      378816 :          idata = idata + 1
   51921      378816 :          data_tmp = full_data(idata)
   51922      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51923      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   51924      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51925      378816 :          ipack = ipack + 1
   51926      378816 :          packed_data(ipack) = pack_tmp
   51927      378816 :          data_tmp = full_data(idata)
   51928      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   51929      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   51930      378816 :          idata = idata + 1
   51931      378816 :          data_tmp = full_data(idata)
   51932      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51933      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   51934      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51935      378816 :          ipack = ipack + 1
   51936      378816 :          packed_data(ipack) = pack_tmp
   51937      378816 :          data_tmp = full_data(idata)
   51938      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   51939      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   51940      378816 :          idata = idata + 1
   51941      378816 :          data_tmp = full_data(idata)
   51942      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51943      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   51944      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51945      378816 :          ipack = ipack + 1
   51946      378816 :          packed_data(ipack) = pack_tmp
   51947      378816 :          data_tmp = full_data(idata)
   51948      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   51949      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   51950      378816 :          idata = idata + 1
   51951      378816 :          data_tmp = full_data(idata)
   51952      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51953      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   51954      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51955      378816 :          ipack = ipack + 1
   51956      378816 :          packed_data(ipack) = pack_tmp
   51957      378816 :          data_tmp = full_data(idata)
   51958      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   51959      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   51960      378816 :          idata = idata + 1
   51961      378816 :          data_tmp = full_data(idata)
   51962      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51963      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   51964      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51965      378816 :          ipack = ipack + 1
   51966      378816 :          packed_data(ipack) = pack_tmp
   51967      378816 :          data_tmp = full_data(idata)
   51968      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   51969      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   51970      378816 :          idata = idata + 1
   51971      378816 :          data_tmp = full_data(idata)
   51972      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51973      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   51974      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51975      378816 :          ipack = ipack + 1
   51976      378816 :          packed_data(ipack) = pack_tmp
   51977      378816 :          data_tmp = full_data(idata)
   51978      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   51979      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   51980      378816 :          idata = idata + 1
   51981      378816 :          data_tmp = full_data(idata)
   51982      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51983      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   51984      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51985      378816 :          ipack = ipack + 1
   51986      378816 :          packed_data(ipack) = pack_tmp
   51987      378816 :          data_tmp = full_data(idata)
   51988      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   51989      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   51990      378816 :          idata = idata + 1
   51991      378816 :          data_tmp = full_data(idata)
   51992      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51993      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   51994      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51995      378816 :          ipack = ipack + 1
   51996      378816 :          packed_data(ipack) = pack_tmp
   51997      378816 :          data_tmp = full_data(idata)
   51998      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   51999      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   52000      378816 :          idata = idata + 1
   52001      378816 :          data_tmp = full_data(idata)
   52002      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52003      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   52004      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52005      378816 :          ipack = ipack + 1
   52006      378816 :          packed_data(ipack) = pack_tmp
   52007      378816 :          data_tmp = full_data(idata)
   52008      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   52009      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   52010      378816 :          idata = idata + 1
   52011      378816 :          data_tmp = full_data(idata)
   52012      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52013      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   52014      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52015      378816 :          ipack = ipack + 1
   52016      378816 :          packed_data(ipack) = pack_tmp
   52017      378816 :          data_tmp = full_data(idata)
   52018      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   52019      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   52020      378816 :          idata = idata + 1
   52021      378816 :          data_tmp = full_data(idata)
   52022      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52023      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   52024      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52025      378816 :          ipack = ipack + 1
   52026      378816 :          packed_data(ipack) = pack_tmp
   52027      378816 :          data_tmp = full_data(idata)
   52028      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   52029      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   52030      378816 :          idata = idata + 1
   52031      378816 :          data_tmp = full_data(idata)
   52032      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52033      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   52034      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52035      378816 :          ipack = ipack + 1
   52036      378816 :          packed_data(ipack) = pack_tmp
   52037      378816 :          data_tmp = full_data(idata)
   52038      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   52039      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   52040      378816 :          idata = idata + 1
   52041      378816 :          data_tmp = full_data(idata)
   52042      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52043      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   52044      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52045      378816 :          ipack = ipack + 1
   52046      378816 :          packed_data(ipack) = pack_tmp
   52047      378816 :          data_tmp = full_data(idata)
   52048      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   52049      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   52050      378816 :          idata = idata + 1
   52051      378816 :          data_tmp = full_data(idata)
   52052      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52053      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   52054      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52055      378816 :          ipack = ipack + 1
   52056      378816 :          packed_data(ipack) = pack_tmp
   52057      378816 :          data_tmp = full_data(idata)
   52058      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   52059      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   52060      378816 :          idata = idata + 1
   52061      378816 :          data_tmp = full_data(idata)
   52062      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52063      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52064      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   52065      378816 :          idata = idata + 1
   52066      378816 :          data_tmp = full_data(idata)
   52067             :          data_tmp = ISHFT(data_tmp, 2)
   52068      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   52069      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52070      378816 :          ipack = ipack + 1
   52071      378816 :          packed_data(ipack) = pack_tmp
   52072      378816 :          data_tmp = full_data(idata)
   52073      378816 :          pack_tmp = ISHFT(data_tmp, 2)
   52074      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   52075      378816 :          idata = idata + 1
   52076      378816 :          data_tmp = full_data(idata)
   52077      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52078      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   52079      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52080      378816 :          ipack = ipack + 1
   52081      378816 :          packed_data(ipack) = pack_tmp
   52082      378816 :          data_tmp = full_data(idata)
   52083      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   52084      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   52085      378816 :          idata = idata + 1
   52086      378816 :          data_tmp = full_data(idata)
   52087      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52088      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   52089      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52090      378816 :          ipack = ipack + 1
   52091      378816 :          packed_data(ipack) = pack_tmp
   52092      378816 :          data_tmp = full_data(idata)
   52093      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   52094      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   52095      378816 :          idata = idata + 1
   52096      378816 :          data_tmp = full_data(idata)
   52097      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52098      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   52099      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52100      378816 :          ipack = ipack + 1
   52101      378816 :          packed_data(ipack) = pack_tmp
   52102      378816 :          data_tmp = full_data(idata)
   52103      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   52104      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   52105      378816 :          idata = idata + 1
   52106      378816 :          data_tmp = full_data(idata)
   52107      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52108      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   52109      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52110      378816 :          ipack = ipack + 1
   52111      378816 :          packed_data(ipack) = pack_tmp
   52112      378816 :          data_tmp = full_data(idata)
   52113      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   52114      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   52115      378816 :          idata = idata + 1
   52116      378816 :          data_tmp = full_data(idata)
   52117      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52118      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   52119      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52120      378816 :          ipack = ipack + 1
   52121      378816 :          packed_data(ipack) = pack_tmp
   52122      378816 :          data_tmp = full_data(idata)
   52123      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   52124      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   52125      378816 :          idata = idata + 1
   52126      378816 :          data_tmp = full_data(idata)
   52127      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52128      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   52129      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52130      378816 :          ipack = ipack + 1
   52131      378816 :          packed_data(ipack) = pack_tmp
   52132      378816 :          data_tmp = full_data(idata)
   52133      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   52134      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   52135      378816 :          idata = idata + 1
   52136      378816 :          data_tmp = full_data(idata)
   52137      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52138      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   52139      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52140      378816 :          ipack = ipack + 1
   52141      378816 :          packed_data(ipack) = pack_tmp
   52142      378816 :          data_tmp = full_data(idata)
   52143      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   52144      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   52145      378816 :          idata = idata + 1
   52146      378816 :          data_tmp = full_data(idata)
   52147      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52148      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   52149      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52150      378816 :          ipack = ipack + 1
   52151      378816 :          packed_data(ipack) = pack_tmp
   52152      378816 :          data_tmp = full_data(idata)
   52153      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   52154      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   52155      378816 :          idata = idata + 1
   52156      378816 :          data_tmp = full_data(idata)
   52157      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52158      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   52159      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52160      378816 :          ipack = ipack + 1
   52161      378816 :          packed_data(ipack) = pack_tmp
   52162      378816 :          data_tmp = full_data(idata)
   52163      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   52164      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   52165      378816 :          idata = idata + 1
   52166      378816 :          data_tmp = full_data(idata)
   52167      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52168      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   52169      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52170      378816 :          ipack = ipack + 1
   52171      378816 :          packed_data(ipack) = pack_tmp
   52172      378816 :          data_tmp = full_data(idata)
   52173      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   52174      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   52175      378816 :          idata = idata + 1
   52176      378816 :          data_tmp = full_data(idata)
   52177      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52178      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   52179      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52180      378816 :          ipack = ipack + 1
   52181      378816 :          packed_data(ipack) = pack_tmp
   52182      378816 :          data_tmp = full_data(idata)
   52183      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   52184      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   52185      378816 :          idata = idata + 1
   52186      378816 :          data_tmp = full_data(idata)
   52187      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52188      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   52189      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52190      378816 :          ipack = ipack + 1
   52191      378816 :          packed_data(ipack) = pack_tmp
   52192      378816 :          data_tmp = full_data(idata)
   52193      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   52194      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   52195      378816 :          idata = idata + 1
   52196      378816 :          data_tmp = full_data(idata)
   52197      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52198      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   52199      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52200      378816 :          ipack = ipack + 1
   52201      378816 :          packed_data(ipack) = pack_tmp
   52202      378816 :          data_tmp = full_data(idata)
   52203      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   52204      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   52205      378816 :          idata = idata + 1
   52206      378816 :          data_tmp = full_data(idata)
   52207      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52208      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   52209      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52210      378816 :          ipack = ipack + 1
   52211      378816 :          packed_data(ipack) = pack_tmp
   52212      378816 :          data_tmp = full_data(idata)
   52213      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   52214      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   52215      378816 :          idata = idata + 1
   52216      378816 :          data_tmp = full_data(idata)
   52217      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52218      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   52219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52220      378816 :          ipack = ipack + 1
   52221      378816 :          packed_data(ipack) = pack_tmp
   52222      378816 :          data_tmp = full_data(idata)
   52223      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   52224      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   52225      378816 :          idata = idata + 1
   52226      378816 :          data_tmp = full_data(idata)
   52227      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52228      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   52229      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52230      378816 :          ipack = ipack + 1
   52231      378816 :          packed_data(ipack) = pack_tmp
   52232      378816 :          data_tmp = full_data(idata)
   52233      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   52234      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   52235      378816 :          idata = idata + 1
   52236      378816 :          data_tmp = full_data(idata)
   52237      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52238      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   52239      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52240      378816 :          ipack = ipack + 1
   52241      378816 :          packed_data(ipack) = pack_tmp
   52242      378816 :          data_tmp = full_data(idata)
   52243      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   52244      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   52245      378816 :          idata = idata + 1
   52246      378816 :          data_tmp = full_data(idata)
   52247      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52248      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   52249      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52250      378816 :          ipack = ipack + 1
   52251      378816 :          packed_data(ipack) = pack_tmp
   52252      378816 :          data_tmp = full_data(idata)
   52253      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   52254      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   52255      378816 :          idata = idata + 1
   52256      378816 :          data_tmp = full_data(idata)
   52257      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52258      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   52259      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52260      378816 :          ipack = ipack + 1
   52261      378816 :          packed_data(ipack) = pack_tmp
   52262      378816 :          data_tmp = full_data(idata)
   52263      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   52264      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   52265      378816 :          idata = idata + 1
   52266      378816 :          data_tmp = full_data(idata)
   52267      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52268      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   52269      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52270      378816 :          ipack = ipack + 1
   52271      378816 :          packed_data(ipack) = pack_tmp
   52272      378816 :          data_tmp = full_data(idata)
   52273      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   52274      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   52275      378816 :          idata = idata + 1
   52276      378816 :          data_tmp = full_data(idata)
   52277      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52278      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   52279      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52280      378816 :          ipack = ipack + 1
   52281      378816 :          packed_data(ipack) = pack_tmp
   52282      378816 :          data_tmp = full_data(idata)
   52283      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   52284      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   52285      378816 :          idata = idata + 1
   52286      378816 :          data_tmp = full_data(idata)
   52287      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52288      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   52289      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52290      378816 :          ipack = ipack + 1
   52291      378816 :          packed_data(ipack) = pack_tmp
   52292      378816 :          data_tmp = full_data(idata)
   52293      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   52294      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   52295      378816 :          idata = idata + 1
   52296      378816 :          data_tmp = full_data(idata)
   52297      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52298      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   52299      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52300      378816 :          ipack = ipack + 1
   52301      378816 :          packed_data(ipack) = pack_tmp
   52302      378816 :          data_tmp = full_data(idata)
   52303      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   52304      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   52305      378816 :          idata = idata + 1
   52306      378816 :          data_tmp = full_data(idata)
   52307      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52308      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   52309      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52310      378816 :          ipack = ipack + 1
   52311      378816 :          packed_data(ipack) = pack_tmp
   52312      378816 :          data_tmp = full_data(idata)
   52313      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   52314      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   52315      378816 :          idata = idata + 1
   52316      378816 :          data_tmp = full_data(idata)
   52317      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52318      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   52319      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52320      378816 :          ipack = ipack + 1
   52321      378816 :          packed_data(ipack) = pack_tmp
   52322      378816 :          data_tmp = full_data(idata)
   52323      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   52324      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   52325      378816 :          idata = idata + 1
   52326      378816 :          data_tmp = full_data(idata)
   52327      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52328      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   52329      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52330      378816 :          ipack = ipack + 1
   52331      378816 :          packed_data(ipack) = pack_tmp
   52332      378816 :          data_tmp = full_data(idata)
   52333      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   52334      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   52335      378816 :          idata = idata + 1
   52336      378816 :          data_tmp = full_data(idata)
   52337      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52338      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   52339      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52340      378816 :          ipack = ipack + 1
   52341      378816 :          packed_data(ipack) = pack_tmp
   52342      378816 :          data_tmp = full_data(idata)
   52343      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   52344      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   52345      378816 :          idata = idata + 1
   52346      378816 :          data_tmp = full_data(idata)
   52347      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52348      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   52349      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52350      378816 :          ipack = ipack + 1
   52351      378816 :          packed_data(ipack) = pack_tmp
   52352      378816 :          data_tmp = full_data(idata)
   52353      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   52354      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   52355      378816 :          idata = idata + 1
   52356      378816 :          data_tmp = full_data(idata)
   52357      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52358      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   52359      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52360      378816 :          ipack = ipack + 1
   52361      378816 :          packed_data(ipack) = pack_tmp
   52362      378816 :          data_tmp = full_data(idata)
   52363      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   52364      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   52365      378816 :          idata = idata + 1
   52366      378816 :          data_tmp = full_data(idata)
   52367      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52368      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   52369      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52370      378816 :          ipack = ipack + 1
   52371      378816 :          packed_data(ipack) = pack_tmp
   52372      378816 :          data_tmp = full_data(idata)
   52373      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   52374      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   52375      378816 :          idata = idata + 1
   52376      378816 :          data_tmp = full_data(idata)
   52377      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52378      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52379             :          pack_tmp = ISHFT(pack_tmp, 0)
   52380      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   52381      378816 :          ipack = ipack + 1
   52382      378816 :          packed_data(ipack) = pack_tmp
   52383             :       END DO
   52384       23676 :       IF (Ndata_rep < Ndata) THEN
   52385           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   52386             :       END IF
   52387       23676 :    END SUBROUTINE ints2bits_62
   52388             : 
   52389             : ! **************************************************************************************************
   52390             : !> \brief ...
   52391             : !> \param Ndata ...
   52392             : !> \param packed_data ...
   52393             : !> \param full_data ...
   52394             : ! **************************************************************************************************
   52395       95427 :    SUBROUTINE bits2ints_62(Ndata, packed_data, full_data)
   52396             :       INTEGER, INTENT(IN)                                :: Ndata
   52397             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   52398             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   52399             : 
   52400             :       INTEGER, PARAMETER                                 :: Nbits = 62
   52401             : 
   52402             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   52403             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   52404             : 
   52405       95427 :       ipack = 0
   52406       95427 :       idata = 0
   52407       95427 :       pack_tmp = 0
   52408       95427 :       Ndata_rep = (Ndata/64)*64
   52409       95427 :       DO kdata = 1, Ndata_rep, 64
   52410     1526832 :          idata = idata + 1
   52411     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   52412     1526832 :          ipack = ipack + 1
   52413     1526832 :          pack_tmp = packed_data(ipack)
   52414     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52415     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   52416     1526832 :          idata = idata + 1
   52417     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   52418     1526832 :          ipack = ipack + 1
   52419     1526832 :          pack_tmp = packed_data(ipack)
   52420     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52421     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   52422     1526832 :          idata = idata + 1
   52423     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   52424     1526832 :          ipack = ipack + 1
   52425     1526832 :          pack_tmp = packed_data(ipack)
   52426     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52427     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   52428     1526832 :          idata = idata + 1
   52429     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   52430     1526832 :          ipack = ipack + 1
   52431     1526832 :          pack_tmp = packed_data(ipack)
   52432     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52433     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   52434     1526832 :          idata = idata + 1
   52435     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   52436     1526832 :          ipack = ipack + 1
   52437     1526832 :          pack_tmp = packed_data(ipack)
   52438     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52439     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   52440     1526832 :          idata = idata + 1
   52441     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   52442     1526832 :          ipack = ipack + 1
   52443     1526832 :          pack_tmp = packed_data(ipack)
   52444     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52445     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   52446     1526832 :          idata = idata + 1
   52447     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   52448     1526832 :          ipack = ipack + 1
   52449     1526832 :          pack_tmp = packed_data(ipack)
   52450     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52451     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   52452     1526832 :          idata = idata + 1
   52453     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   52454     1526832 :          ipack = ipack + 1
   52455     1526832 :          pack_tmp = packed_data(ipack)
   52456     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52457     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   52458     1526832 :          idata = idata + 1
   52459     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   52460     1526832 :          ipack = ipack + 1
   52461     1526832 :          pack_tmp = packed_data(ipack)
   52462     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52463     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   52464     1526832 :          idata = idata + 1
   52465     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   52466     1526832 :          ipack = ipack + 1
   52467     1526832 :          pack_tmp = packed_data(ipack)
   52468     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52469     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   52470     1526832 :          idata = idata + 1
   52471     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   52472     1526832 :          ipack = ipack + 1
   52473     1526832 :          pack_tmp = packed_data(ipack)
   52474     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52475     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   52476     1526832 :          idata = idata + 1
   52477     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   52478     1526832 :          ipack = ipack + 1
   52479     1526832 :          pack_tmp = packed_data(ipack)
   52480     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52481     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   52482     1526832 :          idata = idata + 1
   52483     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   52484     1526832 :          ipack = ipack + 1
   52485     1526832 :          pack_tmp = packed_data(ipack)
   52486     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52487     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   52488     1526832 :          idata = idata + 1
   52489     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   52490     1526832 :          ipack = ipack + 1
   52491     1526832 :          pack_tmp = packed_data(ipack)
   52492     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52493     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   52494     1526832 :          idata = idata + 1
   52495     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   52496     1526832 :          ipack = ipack + 1
   52497     1526832 :          pack_tmp = packed_data(ipack)
   52498     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52499     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   52500     1526832 :          idata = idata + 1
   52501     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   52502     1526832 :          ipack = ipack + 1
   52503     1526832 :          pack_tmp = packed_data(ipack)
   52504     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52505     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   52506     1526832 :          idata = idata + 1
   52507     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   52508     1526832 :          ipack = ipack + 1
   52509     1526832 :          pack_tmp = packed_data(ipack)
   52510     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52511     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   52512     1526832 :          idata = idata + 1
   52513     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   52514     1526832 :          ipack = ipack + 1
   52515     1526832 :          pack_tmp = packed_data(ipack)
   52516     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52517     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   52518     1526832 :          idata = idata + 1
   52519     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   52520     1526832 :          ipack = ipack + 1
   52521     1526832 :          pack_tmp = packed_data(ipack)
   52522     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52523     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   52524     1526832 :          idata = idata + 1
   52525     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   52526     1526832 :          ipack = ipack + 1
   52527     1526832 :          pack_tmp = packed_data(ipack)
   52528     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52529     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   52530     1526832 :          idata = idata + 1
   52531     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   52532     1526832 :          ipack = ipack + 1
   52533     1526832 :          pack_tmp = packed_data(ipack)
   52534     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52535     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   52536     1526832 :          idata = idata + 1
   52537     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   52538     1526832 :          ipack = ipack + 1
   52539     1526832 :          pack_tmp = packed_data(ipack)
   52540     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52541     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   52542     1526832 :          idata = idata + 1
   52543     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   52544     1526832 :          ipack = ipack + 1
   52545     1526832 :          pack_tmp = packed_data(ipack)
   52546     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52547     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   52548     1526832 :          idata = idata + 1
   52549     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   52550     1526832 :          ipack = ipack + 1
   52551     1526832 :          pack_tmp = packed_data(ipack)
   52552     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52553     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   52554     1526832 :          idata = idata + 1
   52555     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   52556     1526832 :          ipack = ipack + 1
   52557     1526832 :          pack_tmp = packed_data(ipack)
   52558     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52559     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   52560     1526832 :          idata = idata + 1
   52561     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   52562     1526832 :          ipack = ipack + 1
   52563     1526832 :          pack_tmp = packed_data(ipack)
   52564     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52565     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   52566     1526832 :          idata = idata + 1
   52567     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   52568     1526832 :          ipack = ipack + 1
   52569     1526832 :          pack_tmp = packed_data(ipack)
   52570     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52571     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   52572     1526832 :          idata = idata + 1
   52573     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   52574     1526832 :          ipack = ipack + 1
   52575     1526832 :          pack_tmp = packed_data(ipack)
   52576     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52577     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   52578     1526832 :          idata = idata + 1
   52579     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   52580     1526832 :          ipack = ipack + 1
   52581     1526832 :          pack_tmp = packed_data(ipack)
   52582     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52583     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   52584     1526832 :          idata = idata + 1
   52585     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   52586     1526832 :          ipack = ipack + 1
   52587     1526832 :          pack_tmp = packed_data(ipack)
   52588     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52589     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   52590     1526832 :          idata = idata + 1
   52591     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   52592     1526832 :          ipack = ipack + 1
   52593     1526832 :          pack_tmp = packed_data(ipack)
   52594     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52595     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   52596     1526832 :          idata = idata + 1
   52597     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52598     1526832 :          full_data(idata) = data_tmp
   52599     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52600     1526832 :          idata = idata + 1
   52601     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   52602     1526832 :          ipack = ipack + 1
   52603     1526832 :          pack_tmp = packed_data(ipack)
   52604     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52605     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   52606     1526832 :          idata = idata + 1
   52607     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   52608     1526832 :          ipack = ipack + 1
   52609     1526832 :          pack_tmp = packed_data(ipack)
   52610     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52611     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   52612     1526832 :          idata = idata + 1
   52613     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   52614     1526832 :          ipack = ipack + 1
   52615     1526832 :          pack_tmp = packed_data(ipack)
   52616     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52617     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   52618     1526832 :          idata = idata + 1
   52619     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   52620     1526832 :          ipack = ipack + 1
   52621     1526832 :          pack_tmp = packed_data(ipack)
   52622     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52623     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   52624     1526832 :          idata = idata + 1
   52625     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   52626     1526832 :          ipack = ipack + 1
   52627     1526832 :          pack_tmp = packed_data(ipack)
   52628     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52629     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   52630     1526832 :          idata = idata + 1
   52631     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   52632     1526832 :          ipack = ipack + 1
   52633     1526832 :          pack_tmp = packed_data(ipack)
   52634     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52635     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   52636     1526832 :          idata = idata + 1
   52637     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   52638     1526832 :          ipack = ipack + 1
   52639     1526832 :          pack_tmp = packed_data(ipack)
   52640     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52641     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   52642     1526832 :          idata = idata + 1
   52643     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   52644     1526832 :          ipack = ipack + 1
   52645     1526832 :          pack_tmp = packed_data(ipack)
   52646     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52647     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   52648     1526832 :          idata = idata + 1
   52649     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   52650     1526832 :          ipack = ipack + 1
   52651     1526832 :          pack_tmp = packed_data(ipack)
   52652     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52653     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   52654     1526832 :          idata = idata + 1
   52655     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   52656     1526832 :          ipack = ipack + 1
   52657     1526832 :          pack_tmp = packed_data(ipack)
   52658     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52659     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   52660     1526832 :          idata = idata + 1
   52661     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   52662     1526832 :          ipack = ipack + 1
   52663     1526832 :          pack_tmp = packed_data(ipack)
   52664     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52665     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   52666     1526832 :          idata = idata + 1
   52667     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   52668     1526832 :          ipack = ipack + 1
   52669     1526832 :          pack_tmp = packed_data(ipack)
   52670     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52671     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   52672     1526832 :          idata = idata + 1
   52673     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   52674     1526832 :          ipack = ipack + 1
   52675     1526832 :          pack_tmp = packed_data(ipack)
   52676     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52677     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   52678     1526832 :          idata = idata + 1
   52679     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   52680     1526832 :          ipack = ipack + 1
   52681     1526832 :          pack_tmp = packed_data(ipack)
   52682     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52683     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   52684     1526832 :          idata = idata + 1
   52685     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   52686     1526832 :          ipack = ipack + 1
   52687     1526832 :          pack_tmp = packed_data(ipack)
   52688     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52689     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   52690     1526832 :          idata = idata + 1
   52691     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   52692     1526832 :          ipack = ipack + 1
   52693     1526832 :          pack_tmp = packed_data(ipack)
   52694     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52695     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   52696     1526832 :          idata = idata + 1
   52697     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   52698     1526832 :          ipack = ipack + 1
   52699     1526832 :          pack_tmp = packed_data(ipack)
   52700     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52701     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   52702     1526832 :          idata = idata + 1
   52703     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   52704     1526832 :          ipack = ipack + 1
   52705     1526832 :          pack_tmp = packed_data(ipack)
   52706     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52707     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   52708     1526832 :          idata = idata + 1
   52709     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   52710     1526832 :          ipack = ipack + 1
   52711     1526832 :          pack_tmp = packed_data(ipack)
   52712     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52713     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   52714     1526832 :          idata = idata + 1
   52715     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   52716     1526832 :          ipack = ipack + 1
   52717     1526832 :          pack_tmp = packed_data(ipack)
   52718     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52719     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   52720     1526832 :          idata = idata + 1
   52721     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   52722     1526832 :          ipack = ipack + 1
   52723     1526832 :          pack_tmp = packed_data(ipack)
   52724     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52725     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   52726     1526832 :          idata = idata + 1
   52727     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   52728     1526832 :          ipack = ipack + 1
   52729     1526832 :          pack_tmp = packed_data(ipack)
   52730     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52731     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   52732     1526832 :          idata = idata + 1
   52733     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   52734     1526832 :          ipack = ipack + 1
   52735     1526832 :          pack_tmp = packed_data(ipack)
   52736     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52737     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   52738     1526832 :          idata = idata + 1
   52739     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   52740     1526832 :          ipack = ipack + 1
   52741     1526832 :          pack_tmp = packed_data(ipack)
   52742     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52743     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   52744     1526832 :          idata = idata + 1
   52745     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   52746     1526832 :          ipack = ipack + 1
   52747     1526832 :          pack_tmp = packed_data(ipack)
   52748     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52749     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   52750     1526832 :          idata = idata + 1
   52751     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   52752     1526832 :          ipack = ipack + 1
   52753     1526832 :          pack_tmp = packed_data(ipack)
   52754     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52755     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   52756     1526832 :          idata = idata + 1
   52757     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   52758     1526832 :          ipack = ipack + 1
   52759     1526832 :          pack_tmp = packed_data(ipack)
   52760     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52761     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   52762     1526832 :          idata = idata + 1
   52763     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   52764     1526832 :          ipack = ipack + 1
   52765     1526832 :          pack_tmp = packed_data(ipack)
   52766     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52767     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   52768     1526832 :          idata = idata + 1
   52769     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   52770     1526832 :          ipack = ipack + 1
   52771     1526832 :          pack_tmp = packed_data(ipack)
   52772     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52773     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   52774     1526832 :          idata = idata + 1
   52775     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   52776     1526832 :          ipack = ipack + 1
   52777     1526832 :          pack_tmp = packed_data(ipack)
   52778     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52779     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   52780     1526832 :          idata = idata + 1
   52781     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   52782     1526832 :          ipack = ipack + 1
   52783     1526832 :          pack_tmp = packed_data(ipack)
   52784     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52785     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   52786     1526832 :          idata = idata + 1
   52787     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52788     1526832 :          full_data(idata) = data_tmp
   52789     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52790             :       END DO
   52791       95427 :       IF (Ndata_rep < Ndata) THEN
   52792           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   52793             :       END IF
   52794       95427 :    END SUBROUTINE bits2ints_62
   52795             : 
   52796             : ! **************************************************************************************************
   52797             : !> \brief ...
   52798             : !> \param Ndata ...
   52799             : !> \param packed_data ...
   52800             : !> \param full_data ...
   52801             : ! **************************************************************************************************
   52802       23676 :    SUBROUTINE ints2bits_63(Ndata, packed_data, full_data)
   52803             :       INTEGER, INTENT(IN)                                :: Ndata
   52804             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: packed_data(*)
   52805             :       INTEGER(KIND=int_8), INTENT(IN)                    :: full_data(*)
   52806             : 
   52807             :       INTEGER, PARAMETER                                 :: Nbits = 63
   52808             : 
   52809             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   52810             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   52811             : 
   52812       23676 :       idata = 0
   52813       23676 :       ipack = 0
   52814       23676 :       Ndata_rep = (Ndata/64)*64
   52815       23676 :       DO kdata = 1, Ndata_rep, 64
   52816      378816 :          pack_tmp = 0
   52817      378816 :          idata = idata + 1
   52818      378816 :          data_tmp = full_data(idata)
   52819      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52820      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52821      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   52822      378816 :          idata = idata + 1
   52823      378816 :          data_tmp = full_data(idata)
   52824      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52825      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   52826      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52827      378816 :          ipack = ipack + 1
   52828      378816 :          packed_data(ipack) = pack_tmp
   52829      378816 :          data_tmp = full_data(idata)
   52830      378816 :          pack_tmp = ISHFT(data_tmp, 2)
   52831      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   52832      378816 :          idata = idata + 1
   52833      378816 :          data_tmp = full_data(idata)
   52834      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52835      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   52836      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52837      378816 :          ipack = ipack + 1
   52838      378816 :          packed_data(ipack) = pack_tmp
   52839      378816 :          data_tmp = full_data(idata)
   52840      378816 :          pack_tmp = ISHFT(data_tmp, 3)
   52841      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   52842      378816 :          idata = idata + 1
   52843      378816 :          data_tmp = full_data(idata)
   52844      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52845      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   52846      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52847      378816 :          ipack = ipack + 1
   52848      378816 :          packed_data(ipack) = pack_tmp
   52849      378816 :          data_tmp = full_data(idata)
   52850      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   52851      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   52852      378816 :          idata = idata + 1
   52853      378816 :          data_tmp = full_data(idata)
   52854      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52855      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   52856      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52857      378816 :          ipack = ipack + 1
   52858      378816 :          packed_data(ipack) = pack_tmp
   52859      378816 :          data_tmp = full_data(idata)
   52860      378816 :          pack_tmp = ISHFT(data_tmp, 5)
   52861      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   52862      378816 :          idata = idata + 1
   52863      378816 :          data_tmp = full_data(idata)
   52864      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52865      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   52866      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52867      378816 :          ipack = ipack + 1
   52868      378816 :          packed_data(ipack) = pack_tmp
   52869      378816 :          data_tmp = full_data(idata)
   52870      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   52871      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   52872      378816 :          idata = idata + 1
   52873      378816 :          data_tmp = full_data(idata)
   52874      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52875      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   52876      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52877      378816 :          ipack = ipack + 1
   52878      378816 :          packed_data(ipack) = pack_tmp
   52879      378816 :          data_tmp = full_data(idata)
   52880      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   52881      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   52882      378816 :          idata = idata + 1
   52883      378816 :          data_tmp = full_data(idata)
   52884      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52885      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   52886      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52887      378816 :          ipack = ipack + 1
   52888      378816 :          packed_data(ipack) = pack_tmp
   52889      378816 :          data_tmp = full_data(idata)
   52890      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   52891      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   52892      378816 :          idata = idata + 1
   52893      378816 :          data_tmp = full_data(idata)
   52894      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52895      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   52896      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52897      378816 :          ipack = ipack + 1
   52898      378816 :          packed_data(ipack) = pack_tmp
   52899      378816 :          data_tmp = full_data(idata)
   52900      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   52901      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   52902      378816 :          idata = idata + 1
   52903      378816 :          data_tmp = full_data(idata)
   52904      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52905      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   52906      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52907      378816 :          ipack = ipack + 1
   52908      378816 :          packed_data(ipack) = pack_tmp
   52909      378816 :          data_tmp = full_data(idata)
   52910      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   52911      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   52912      378816 :          idata = idata + 1
   52913      378816 :          data_tmp = full_data(idata)
   52914      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52915      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   52916      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52917      378816 :          ipack = ipack + 1
   52918      378816 :          packed_data(ipack) = pack_tmp
   52919      378816 :          data_tmp = full_data(idata)
   52920      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   52921      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   52922      378816 :          idata = idata + 1
   52923      378816 :          data_tmp = full_data(idata)
   52924      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52925      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   52926      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52927      378816 :          ipack = ipack + 1
   52928      378816 :          packed_data(ipack) = pack_tmp
   52929      378816 :          data_tmp = full_data(idata)
   52930      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   52931      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   52932      378816 :          idata = idata + 1
   52933      378816 :          data_tmp = full_data(idata)
   52934      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52935      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   52936      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52937      378816 :          ipack = ipack + 1
   52938      378816 :          packed_data(ipack) = pack_tmp
   52939      378816 :          data_tmp = full_data(idata)
   52940      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   52941      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   52942      378816 :          idata = idata + 1
   52943      378816 :          data_tmp = full_data(idata)
   52944      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52945      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   52946      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52947      378816 :          ipack = ipack + 1
   52948      378816 :          packed_data(ipack) = pack_tmp
   52949      378816 :          data_tmp = full_data(idata)
   52950      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   52951      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   52952      378816 :          idata = idata + 1
   52953      378816 :          data_tmp = full_data(idata)
   52954      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52955      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   52956      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52957      378816 :          ipack = ipack + 1
   52958      378816 :          packed_data(ipack) = pack_tmp
   52959      378816 :          data_tmp = full_data(idata)
   52960      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   52961      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   52962      378816 :          idata = idata + 1
   52963      378816 :          data_tmp = full_data(idata)
   52964      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52965      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   52966      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52967      378816 :          ipack = ipack + 1
   52968      378816 :          packed_data(ipack) = pack_tmp
   52969      378816 :          data_tmp = full_data(idata)
   52970      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   52971      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   52972      378816 :          idata = idata + 1
   52973      378816 :          data_tmp = full_data(idata)
   52974      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52975      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   52976      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52977      378816 :          ipack = ipack + 1
   52978      378816 :          packed_data(ipack) = pack_tmp
   52979      378816 :          data_tmp = full_data(idata)
   52980      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   52981      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   52982      378816 :          idata = idata + 1
   52983      378816 :          data_tmp = full_data(idata)
   52984      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52985      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   52986      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52987      378816 :          ipack = ipack + 1
   52988      378816 :          packed_data(ipack) = pack_tmp
   52989      378816 :          data_tmp = full_data(idata)
   52990      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   52991      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   52992      378816 :          idata = idata + 1
   52993      378816 :          data_tmp = full_data(idata)
   52994      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52995      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   52996      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52997      378816 :          ipack = ipack + 1
   52998      378816 :          packed_data(ipack) = pack_tmp
   52999      378816 :          data_tmp = full_data(idata)
   53000      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   53001      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   53002      378816 :          idata = idata + 1
   53003      378816 :          data_tmp = full_data(idata)
   53004      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53005      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   53006      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53007      378816 :          ipack = ipack + 1
   53008      378816 :          packed_data(ipack) = pack_tmp
   53009      378816 :          data_tmp = full_data(idata)
   53010      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   53011      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   53012      378816 :          idata = idata + 1
   53013      378816 :          data_tmp = full_data(idata)
   53014      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53015      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   53016      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53017      378816 :          ipack = ipack + 1
   53018      378816 :          packed_data(ipack) = pack_tmp
   53019      378816 :          data_tmp = full_data(idata)
   53020      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   53021      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   53022      378816 :          idata = idata + 1
   53023      378816 :          data_tmp = full_data(idata)
   53024      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53025      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   53026      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53027      378816 :          ipack = ipack + 1
   53028      378816 :          packed_data(ipack) = pack_tmp
   53029      378816 :          data_tmp = full_data(idata)
   53030      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   53031      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   53032      378816 :          idata = idata + 1
   53033      378816 :          data_tmp = full_data(idata)
   53034      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53035      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   53036      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53037      378816 :          ipack = ipack + 1
   53038      378816 :          packed_data(ipack) = pack_tmp
   53039      378816 :          data_tmp = full_data(idata)
   53040      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   53041      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   53042      378816 :          idata = idata + 1
   53043      378816 :          data_tmp = full_data(idata)
   53044      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53045      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   53046      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53047      378816 :          ipack = ipack + 1
   53048      378816 :          packed_data(ipack) = pack_tmp
   53049      378816 :          data_tmp = full_data(idata)
   53050      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   53051      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   53052      378816 :          idata = idata + 1
   53053      378816 :          data_tmp = full_data(idata)
   53054      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53055      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   53056      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53057      378816 :          ipack = ipack + 1
   53058      378816 :          packed_data(ipack) = pack_tmp
   53059      378816 :          data_tmp = full_data(idata)
   53060      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   53061      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   53062      378816 :          idata = idata + 1
   53063      378816 :          data_tmp = full_data(idata)
   53064      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53065      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   53066      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53067      378816 :          ipack = ipack + 1
   53068      378816 :          packed_data(ipack) = pack_tmp
   53069      378816 :          data_tmp = full_data(idata)
   53070      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   53071      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   53072      378816 :          idata = idata + 1
   53073      378816 :          data_tmp = full_data(idata)
   53074      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53075      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   53076      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53077      378816 :          ipack = ipack + 1
   53078      378816 :          packed_data(ipack) = pack_tmp
   53079      378816 :          data_tmp = full_data(idata)
   53080      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   53081      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   53082      378816 :          idata = idata + 1
   53083      378816 :          data_tmp = full_data(idata)
   53084      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53085      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   53086      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53087      378816 :          ipack = ipack + 1
   53088      378816 :          packed_data(ipack) = pack_tmp
   53089      378816 :          data_tmp = full_data(idata)
   53090      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   53091      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   53092      378816 :          idata = idata + 1
   53093      378816 :          data_tmp = full_data(idata)
   53094      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53095      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   53096      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53097      378816 :          ipack = ipack + 1
   53098      378816 :          packed_data(ipack) = pack_tmp
   53099      378816 :          data_tmp = full_data(idata)
   53100      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   53101      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   53102      378816 :          idata = idata + 1
   53103      378816 :          data_tmp = full_data(idata)
   53104      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53105      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   53106      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53107      378816 :          ipack = ipack + 1
   53108      378816 :          packed_data(ipack) = pack_tmp
   53109      378816 :          data_tmp = full_data(idata)
   53110      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   53111      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   53112      378816 :          idata = idata + 1
   53113      378816 :          data_tmp = full_data(idata)
   53114      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53115      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   53116      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53117      378816 :          ipack = ipack + 1
   53118      378816 :          packed_data(ipack) = pack_tmp
   53119      378816 :          data_tmp = full_data(idata)
   53120      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   53121      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   53122      378816 :          idata = idata + 1
   53123      378816 :          data_tmp = full_data(idata)
   53124      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53125      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   53126      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53127      378816 :          ipack = ipack + 1
   53128      378816 :          packed_data(ipack) = pack_tmp
   53129      378816 :          data_tmp = full_data(idata)
   53130      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   53131      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   53132      378816 :          idata = idata + 1
   53133      378816 :          data_tmp = full_data(idata)
   53134      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53135      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   53136      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53137      378816 :          ipack = ipack + 1
   53138      378816 :          packed_data(ipack) = pack_tmp
   53139      378816 :          data_tmp = full_data(idata)
   53140      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   53141      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   53142      378816 :          idata = idata + 1
   53143      378816 :          data_tmp = full_data(idata)
   53144      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53145      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   53146      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53147      378816 :          ipack = ipack + 1
   53148      378816 :          packed_data(ipack) = pack_tmp
   53149      378816 :          data_tmp = full_data(idata)
   53150      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   53151      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   53152      378816 :          idata = idata + 1
   53153      378816 :          data_tmp = full_data(idata)
   53154      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53155      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   53156      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53157      378816 :          ipack = ipack + 1
   53158      378816 :          packed_data(ipack) = pack_tmp
   53159      378816 :          data_tmp = full_data(idata)
   53160      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   53161      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   53162      378816 :          idata = idata + 1
   53163      378816 :          data_tmp = full_data(idata)
   53164      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53165      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   53166      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53167      378816 :          ipack = ipack + 1
   53168      378816 :          packed_data(ipack) = pack_tmp
   53169      378816 :          data_tmp = full_data(idata)
   53170      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   53171      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   53172      378816 :          idata = idata + 1
   53173      378816 :          data_tmp = full_data(idata)
   53174      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53175      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   53176      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53177      378816 :          ipack = ipack + 1
   53178      378816 :          packed_data(ipack) = pack_tmp
   53179      378816 :          data_tmp = full_data(idata)
   53180      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   53181      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   53182      378816 :          idata = idata + 1
   53183      378816 :          data_tmp = full_data(idata)
   53184      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53185      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   53186      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53187      378816 :          ipack = ipack + 1
   53188      378816 :          packed_data(ipack) = pack_tmp
   53189      378816 :          data_tmp = full_data(idata)
   53190      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   53191      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   53192      378816 :          idata = idata + 1
   53193      378816 :          data_tmp = full_data(idata)
   53194      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53195      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   53196      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53197      378816 :          ipack = ipack + 1
   53198      378816 :          packed_data(ipack) = pack_tmp
   53199      378816 :          data_tmp = full_data(idata)
   53200      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   53201      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   53202      378816 :          idata = idata + 1
   53203      378816 :          data_tmp = full_data(idata)
   53204      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53205      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   53206      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53207      378816 :          ipack = ipack + 1
   53208      378816 :          packed_data(ipack) = pack_tmp
   53209      378816 :          data_tmp = full_data(idata)
   53210      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   53211      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   53212      378816 :          idata = idata + 1
   53213      378816 :          data_tmp = full_data(idata)
   53214      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53215      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   53216      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53217      378816 :          ipack = ipack + 1
   53218      378816 :          packed_data(ipack) = pack_tmp
   53219      378816 :          data_tmp = full_data(idata)
   53220      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   53221      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   53222      378816 :          idata = idata + 1
   53223      378816 :          data_tmp = full_data(idata)
   53224      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53225      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   53226      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53227      378816 :          ipack = ipack + 1
   53228      378816 :          packed_data(ipack) = pack_tmp
   53229      378816 :          data_tmp = full_data(idata)
   53230      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   53231      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   53232      378816 :          idata = idata + 1
   53233      378816 :          data_tmp = full_data(idata)
   53234      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53235      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   53236      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53237      378816 :          ipack = ipack + 1
   53238      378816 :          packed_data(ipack) = pack_tmp
   53239      378816 :          data_tmp = full_data(idata)
   53240      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   53241      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   53242      378816 :          idata = idata + 1
   53243      378816 :          data_tmp = full_data(idata)
   53244      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53245      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   53246      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53247      378816 :          ipack = ipack + 1
   53248      378816 :          packed_data(ipack) = pack_tmp
   53249      378816 :          data_tmp = full_data(idata)
   53250      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   53251      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   53252      378816 :          idata = idata + 1
   53253      378816 :          data_tmp = full_data(idata)
   53254      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53255      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   53256      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53257      378816 :          ipack = ipack + 1
   53258      378816 :          packed_data(ipack) = pack_tmp
   53259      378816 :          data_tmp = full_data(idata)
   53260      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   53261      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   53262      378816 :          idata = idata + 1
   53263      378816 :          data_tmp = full_data(idata)
   53264      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53265      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   53266      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53267      378816 :          ipack = ipack + 1
   53268      378816 :          packed_data(ipack) = pack_tmp
   53269      378816 :          data_tmp = full_data(idata)
   53270      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   53271      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   53272      378816 :          idata = idata + 1
   53273      378816 :          data_tmp = full_data(idata)
   53274      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53275      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   53276      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53277      378816 :          ipack = ipack + 1
   53278      378816 :          packed_data(ipack) = pack_tmp
   53279      378816 :          data_tmp = full_data(idata)
   53280      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   53281      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   53282      378816 :          idata = idata + 1
   53283      378816 :          data_tmp = full_data(idata)
   53284      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53285      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   53286      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53287      378816 :          ipack = ipack + 1
   53288      378816 :          packed_data(ipack) = pack_tmp
   53289      378816 :          data_tmp = full_data(idata)
   53290      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   53291      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   53292      378816 :          idata = idata + 1
   53293      378816 :          data_tmp = full_data(idata)
   53294      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53295      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   53296      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53297      378816 :          ipack = ipack + 1
   53298      378816 :          packed_data(ipack) = pack_tmp
   53299      378816 :          data_tmp = full_data(idata)
   53300      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   53301      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   53302      378816 :          idata = idata + 1
   53303      378816 :          data_tmp = full_data(idata)
   53304      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53305      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   53306      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53307      378816 :          ipack = ipack + 1
   53308      378816 :          packed_data(ipack) = pack_tmp
   53309      378816 :          data_tmp = full_data(idata)
   53310      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   53311      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   53312      378816 :          idata = idata + 1
   53313      378816 :          data_tmp = full_data(idata)
   53314      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53315      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   53316      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53317      378816 :          ipack = ipack + 1
   53318      378816 :          packed_data(ipack) = pack_tmp
   53319      378816 :          data_tmp = full_data(idata)
   53320      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   53321      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   53322      378816 :          idata = idata + 1
   53323      378816 :          data_tmp = full_data(idata)
   53324      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53325      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   53326      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53327      378816 :          ipack = ipack + 1
   53328      378816 :          packed_data(ipack) = pack_tmp
   53329      378816 :          data_tmp = full_data(idata)
   53330      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   53331      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   53332      378816 :          idata = idata + 1
   53333      378816 :          data_tmp = full_data(idata)
   53334      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53335      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   53336      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53337      378816 :          ipack = ipack + 1
   53338      378816 :          packed_data(ipack) = pack_tmp
   53339      378816 :          data_tmp = full_data(idata)
   53340      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   53341      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   53342      378816 :          idata = idata + 1
   53343      378816 :          data_tmp = full_data(idata)
   53344      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53345      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   53346      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53347      378816 :          ipack = ipack + 1
   53348      378816 :          packed_data(ipack) = pack_tmp
   53349      378816 :          data_tmp = full_data(idata)
   53350      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   53351      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   53352      378816 :          idata = idata + 1
   53353      378816 :          data_tmp = full_data(idata)
   53354      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53355      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   53356      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53357      378816 :          ipack = ipack + 1
   53358      378816 :          packed_data(ipack) = pack_tmp
   53359      378816 :          data_tmp = full_data(idata)
   53360      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   53361      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   53362      378816 :          idata = idata + 1
   53363      378816 :          data_tmp = full_data(idata)
   53364      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53365      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   53366      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53367      378816 :          ipack = ipack + 1
   53368      378816 :          packed_data(ipack) = pack_tmp
   53369      378816 :          data_tmp = full_data(idata)
   53370      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   53371      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   53372      378816 :          idata = idata + 1
   53373      378816 :          data_tmp = full_data(idata)
   53374      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53375      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   53376      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53377      378816 :          ipack = ipack + 1
   53378      378816 :          packed_data(ipack) = pack_tmp
   53379      378816 :          data_tmp = full_data(idata)
   53380      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   53381      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   53382      378816 :          idata = idata + 1
   53383      378816 :          data_tmp = full_data(idata)
   53384      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53385      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   53386      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53387      378816 :          ipack = ipack + 1
   53388      378816 :          packed_data(ipack) = pack_tmp
   53389      378816 :          data_tmp = full_data(idata)
   53390      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   53391      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   53392      378816 :          idata = idata + 1
   53393      378816 :          data_tmp = full_data(idata)
   53394      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53395      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   53396      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53397      378816 :          ipack = ipack + 1
   53398      378816 :          packed_data(ipack) = pack_tmp
   53399      378816 :          data_tmp = full_data(idata)
   53400      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   53401      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   53402      378816 :          idata = idata + 1
   53403      378816 :          data_tmp = full_data(idata)
   53404      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53405      378816 :          data_tmp = IAND(data_tmp, mask_left(59))
   53406      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53407      378816 :          ipack = ipack + 1
   53408      378816 :          packed_data(ipack) = pack_tmp
   53409      378816 :          data_tmp = full_data(idata)
   53410      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   53411      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   53412      378816 :          idata = idata + 1
   53413      378816 :          data_tmp = full_data(idata)
   53414      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53415      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   53416      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53417      378816 :          ipack = ipack + 1
   53418      378816 :          packed_data(ipack) = pack_tmp
   53419      378816 :          data_tmp = full_data(idata)
   53420      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   53421      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   53422      378816 :          idata = idata + 1
   53423      378816 :          data_tmp = full_data(idata)
   53424      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53425      378816 :          data_tmp = IAND(data_tmp, mask_left(61))
   53426      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53427      378816 :          ipack = ipack + 1
   53428      378816 :          packed_data(ipack) = pack_tmp
   53429      378816 :          data_tmp = full_data(idata)
   53430      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   53431      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   53432      378816 :          idata = idata + 1
   53433      378816 :          data_tmp = full_data(idata)
   53434      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53435      378816 :          data_tmp = IAND(data_tmp, mask_left(62))
   53436      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53437      378816 :          ipack = ipack + 1
   53438      378816 :          packed_data(ipack) = pack_tmp
   53439      378816 :          data_tmp = full_data(idata)
   53440      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   53441      378816 :          pack_tmp = ISHFT(pack_tmp, -63)
   53442      378816 :          idata = idata + 1
   53443      378816 :          data_tmp = full_data(idata)
   53444      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53445      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53446             :          pack_tmp = ISHFT(pack_tmp, 0)
   53447      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   53448      378816 :          ipack = ipack + 1
   53449      378816 :          packed_data(ipack) = pack_tmp
   53450             :       END DO
   53451       23676 :       IF (Ndata_rep < Ndata) THEN
   53452           0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   53453             :       END IF
   53454       23676 :    END SUBROUTINE ints2bits_63
   53455             : 
   53456             : ! **************************************************************************************************
   53457             : !> \brief ...
   53458             : !> \param Ndata ...
   53459             : !> \param packed_data ...
   53460             : !> \param full_data ...
   53461             : ! **************************************************************************************************
   53462       95427 :    SUBROUTINE bits2ints_63(Ndata, packed_data, full_data)
   53463             :       INTEGER, INTENT(IN)                                :: Ndata
   53464             :       INTEGER(KIND=int_8), INTENT(IN)                    :: packed_data(*)
   53465             :       INTEGER(KIND=int_8), INTENT(OUT)                   :: full_data(*)
   53466             : 
   53467             :       INTEGER, PARAMETER                                 :: Nbits = 63
   53468             : 
   53469             :       INTEGER                                            :: idata, ipack, kdata, Ndata_rep
   53470             :       INTEGER(KIND=int_8)                                :: data_tmp, pack_tmp
   53471             : 
   53472       95427 :       ipack = 0
   53473       95427 :       idata = 0
   53474       95427 :       pack_tmp = 0
   53475       95427 :       Ndata_rep = (Ndata/64)*64
   53476       95427 :       DO kdata = 1, Ndata_rep, 64
   53477     1526832 :          idata = idata + 1
   53478     1526832 :          data_tmp = ISHFT(pack_tmp, 63)
   53479     1526832 :          ipack = ipack + 1
   53480     1526832 :          pack_tmp = packed_data(ipack)
   53481     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(63)))
   53482     1526832 :          pack_tmp = ISHFT(pack_tmp, -63)
   53483     1526832 :          idata = idata + 1
   53484     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   53485     1526832 :          ipack = ipack + 1
   53486     1526832 :          pack_tmp = packed_data(ipack)
   53487     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   53488     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   53489     1526832 :          idata = idata + 1
   53490     1526832 :          data_tmp = ISHFT(pack_tmp, 61)
   53491     1526832 :          ipack = ipack + 1
   53492     1526832 :          pack_tmp = packed_data(ipack)
   53493     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   53494     1526832 :          pack_tmp = ISHFT(pack_tmp, -61)
   53495     1526832 :          idata = idata + 1
   53496     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   53497     1526832 :          ipack = ipack + 1
   53498     1526832 :          pack_tmp = packed_data(ipack)
   53499     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   53500     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   53501     1526832 :          idata = idata + 1
   53502     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   53503     1526832 :          ipack = ipack + 1
   53504     1526832 :          pack_tmp = packed_data(ipack)
   53505     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   53506     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   53507     1526832 :          idata = idata + 1
   53508     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   53509     1526832 :          ipack = ipack + 1
   53510     1526832 :          pack_tmp = packed_data(ipack)
   53511     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   53512     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   53513     1526832 :          idata = idata + 1
   53514     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   53515     1526832 :          ipack = ipack + 1
   53516     1526832 :          pack_tmp = packed_data(ipack)
   53517     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   53518     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   53519     1526832 :          idata = idata + 1
   53520     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   53521     1526832 :          ipack = ipack + 1
   53522     1526832 :          pack_tmp = packed_data(ipack)
   53523     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   53524     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   53525     1526832 :          idata = idata + 1
   53526     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   53527     1526832 :          ipack = ipack + 1
   53528     1526832 :          pack_tmp = packed_data(ipack)
   53529     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   53530     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   53531     1526832 :          idata = idata + 1
   53532     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   53533     1526832 :          ipack = ipack + 1
   53534     1526832 :          pack_tmp = packed_data(ipack)
   53535     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   53536     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   53537     1526832 :          idata = idata + 1
   53538     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   53539     1526832 :          ipack = ipack + 1
   53540     1526832 :          pack_tmp = packed_data(ipack)
   53541     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   53542     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   53543     1526832 :          idata = idata + 1
   53544     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   53545     1526832 :          ipack = ipack + 1
   53546     1526832 :          pack_tmp = packed_data(ipack)
   53547     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   53548     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   53549     1526832 :          idata = idata + 1
   53550     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   53551     1526832 :          ipack = ipack + 1
   53552     1526832 :          pack_tmp = packed_data(ipack)
   53553     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   53554     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   53555     1526832 :          idata = idata + 1
   53556     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   53557     1526832 :          ipack = ipack + 1
   53558     1526832 :          pack_tmp = packed_data(ipack)
   53559     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   53560     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   53561     1526832 :          idata = idata + 1
   53562     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   53563     1526832 :          ipack = ipack + 1
   53564     1526832 :          pack_tmp = packed_data(ipack)
   53565     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   53566     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   53567     1526832 :          idata = idata + 1
   53568     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   53569     1526832 :          ipack = ipack + 1
   53570     1526832 :          pack_tmp = packed_data(ipack)
   53571     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   53572     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   53573     1526832 :          idata = idata + 1
   53574     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   53575     1526832 :          ipack = ipack + 1
   53576     1526832 :          pack_tmp = packed_data(ipack)
   53577     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   53578     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   53579     1526832 :          idata = idata + 1
   53580     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   53581     1526832 :          ipack = ipack + 1
   53582     1526832 :          pack_tmp = packed_data(ipack)
   53583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   53584     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   53585     1526832 :          idata = idata + 1
   53586     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   53587     1526832 :          ipack = ipack + 1
   53588     1526832 :          pack_tmp = packed_data(ipack)
   53589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   53590     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   53591     1526832 :          idata = idata + 1
   53592     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   53593     1526832 :          ipack = ipack + 1
   53594     1526832 :          pack_tmp = packed_data(ipack)
   53595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   53596     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   53597     1526832 :          idata = idata + 1
   53598     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   53599     1526832 :          ipack = ipack + 1
   53600     1526832 :          pack_tmp = packed_data(ipack)
   53601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   53602     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   53603     1526832 :          idata = idata + 1
   53604     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   53605     1526832 :          ipack = ipack + 1
   53606     1526832 :          pack_tmp = packed_data(ipack)
   53607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   53608     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   53609     1526832 :          idata = idata + 1
   53610     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   53611     1526832 :          ipack = ipack + 1
   53612     1526832 :          pack_tmp = packed_data(ipack)
   53613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   53614     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   53615     1526832 :          idata = idata + 1
   53616     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   53617     1526832 :          ipack = ipack + 1
   53618     1526832 :          pack_tmp = packed_data(ipack)
   53619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   53620     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   53621     1526832 :          idata = idata + 1
   53622     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   53623     1526832 :          ipack = ipack + 1
   53624     1526832 :          pack_tmp = packed_data(ipack)
   53625     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   53626     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   53627     1526832 :          idata = idata + 1
   53628     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   53629     1526832 :          ipack = ipack + 1
   53630     1526832 :          pack_tmp = packed_data(ipack)
   53631     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   53632     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   53633     1526832 :          idata = idata + 1
   53634     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   53635     1526832 :          ipack = ipack + 1
   53636     1526832 :          pack_tmp = packed_data(ipack)
   53637     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   53638     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   53639     1526832 :          idata = idata + 1
   53640     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   53641     1526832 :          ipack = ipack + 1
   53642     1526832 :          pack_tmp = packed_data(ipack)
   53643     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   53644     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   53645     1526832 :          idata = idata + 1
   53646     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   53647     1526832 :          ipack = ipack + 1
   53648     1526832 :          pack_tmp = packed_data(ipack)
   53649     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   53650     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   53651     1526832 :          idata = idata + 1
   53652     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   53653     1526832 :          ipack = ipack + 1
   53654     1526832 :          pack_tmp = packed_data(ipack)
   53655     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   53656     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   53657     1526832 :          idata = idata + 1
   53658     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   53659     1526832 :          ipack = ipack + 1
   53660     1526832 :          pack_tmp = packed_data(ipack)
   53661     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   53662     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   53663     1526832 :          idata = idata + 1
   53664     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   53665     1526832 :          ipack = ipack + 1
   53666     1526832 :          pack_tmp = packed_data(ipack)
   53667     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   53668     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   53669     1526832 :          idata = idata + 1
   53670     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   53671     1526832 :          ipack = ipack + 1
   53672     1526832 :          pack_tmp = packed_data(ipack)
   53673     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   53674     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   53675     1526832 :          idata = idata + 1
   53676     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   53677     1526832 :          ipack = ipack + 1
   53678     1526832 :          pack_tmp = packed_data(ipack)
   53679     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   53680     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   53681     1526832 :          idata = idata + 1
   53682     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   53683     1526832 :          ipack = ipack + 1
   53684     1526832 :          pack_tmp = packed_data(ipack)
   53685     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   53686     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   53687     1526832 :          idata = idata + 1
   53688     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   53689     1526832 :          ipack = ipack + 1
   53690     1526832 :          pack_tmp = packed_data(ipack)
   53691     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   53692     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   53693     1526832 :          idata = idata + 1
   53694     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   53695     1526832 :          ipack = ipack + 1
   53696     1526832 :          pack_tmp = packed_data(ipack)
   53697     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   53698     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   53699     1526832 :          idata = idata + 1
   53700     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   53701     1526832 :          ipack = ipack + 1
   53702     1526832 :          pack_tmp = packed_data(ipack)
   53703     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   53704     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   53705     1526832 :          idata = idata + 1
   53706     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   53707     1526832 :          ipack = ipack + 1
   53708     1526832 :          pack_tmp = packed_data(ipack)
   53709     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   53710     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   53711     1526832 :          idata = idata + 1
   53712     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   53713     1526832 :          ipack = ipack + 1
   53714     1526832 :          pack_tmp = packed_data(ipack)
   53715     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   53716     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   53717     1526832 :          idata = idata + 1
   53718     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   53719     1526832 :          ipack = ipack + 1
   53720     1526832 :          pack_tmp = packed_data(ipack)
   53721     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   53722     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   53723     1526832 :          idata = idata + 1
   53724     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   53725     1526832 :          ipack = ipack + 1
   53726     1526832 :          pack_tmp = packed_data(ipack)
   53727     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   53728     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   53729     1526832 :          idata = idata + 1
   53730     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   53731     1526832 :          ipack = ipack + 1
   53732     1526832 :          pack_tmp = packed_data(ipack)
   53733     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   53734     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   53735     1526832 :          idata = idata + 1
   53736     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   53737     1526832 :          ipack = ipack + 1
   53738     1526832 :          pack_tmp = packed_data(ipack)
   53739     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   53740     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   53741     1526832 :          idata = idata + 1
   53742     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   53743     1526832 :          ipack = ipack + 1
   53744     1526832 :          pack_tmp = packed_data(ipack)
   53745     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   53746     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   53747     1526832 :          idata = idata + 1
   53748     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   53749     1526832 :          ipack = ipack + 1
   53750     1526832 :          pack_tmp = packed_data(ipack)
   53751     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   53752     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   53753     1526832 :          idata = idata + 1
   53754     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   53755     1526832 :          ipack = ipack + 1
   53756     1526832 :          pack_tmp = packed_data(ipack)
   53757     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   53758     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   53759     1526832 :          idata = idata + 1
   53760     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   53761     1526832 :          ipack = ipack + 1
   53762     1526832 :          pack_tmp = packed_data(ipack)
   53763     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   53764     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   53765     1526832 :          idata = idata + 1
   53766     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   53767     1526832 :          ipack = ipack + 1
   53768     1526832 :          pack_tmp = packed_data(ipack)
   53769     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   53770     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   53771     1526832 :          idata = idata + 1
   53772     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   53773     1526832 :          ipack = ipack + 1
   53774     1526832 :          pack_tmp = packed_data(ipack)
   53775     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   53776     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   53777     1526832 :          idata = idata + 1
   53778     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   53779     1526832 :          ipack = ipack + 1
   53780     1526832 :          pack_tmp = packed_data(ipack)
   53781     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   53782     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   53783     1526832 :          idata = idata + 1
   53784     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   53785     1526832 :          ipack = ipack + 1
   53786     1526832 :          pack_tmp = packed_data(ipack)
   53787     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   53788     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   53789     1526832 :          idata = idata + 1
   53790     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   53791     1526832 :          ipack = ipack + 1
   53792     1526832 :          pack_tmp = packed_data(ipack)
   53793     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   53794     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   53795     1526832 :          idata = idata + 1
   53796     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   53797     1526832 :          ipack = ipack + 1
   53798     1526832 :          pack_tmp = packed_data(ipack)
   53799     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   53800     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   53801     1526832 :          idata = idata + 1
   53802     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   53803     1526832 :          ipack = ipack + 1
   53804     1526832 :          pack_tmp = packed_data(ipack)
   53805     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   53806     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   53807     1526832 :          idata = idata + 1
   53808     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   53809     1526832 :          ipack = ipack + 1
   53810     1526832 :          pack_tmp = packed_data(ipack)
   53811     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   53812     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   53813     1526832 :          idata = idata + 1
   53814     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   53815     1526832 :          ipack = ipack + 1
   53816     1526832 :          pack_tmp = packed_data(ipack)
   53817     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   53818     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   53819     1526832 :          idata = idata + 1
   53820     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   53821     1526832 :          ipack = ipack + 1
   53822     1526832 :          pack_tmp = packed_data(ipack)
   53823     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   53824     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   53825     1526832 :          idata = idata + 1
   53826     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   53827     1526832 :          ipack = ipack + 1
   53828     1526832 :          pack_tmp = packed_data(ipack)
   53829     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   53830     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   53831     1526832 :          idata = idata + 1
   53832     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   53833     1526832 :          ipack = ipack + 1
   53834     1526832 :          pack_tmp = packed_data(ipack)
   53835     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   53836     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   53837     1526832 :          idata = idata + 1
   53838     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   53839     1526832 :          ipack = ipack + 1
   53840     1526832 :          pack_tmp = packed_data(ipack)
   53841     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   53842     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   53843     1526832 :          idata = idata + 1
   53844     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   53845     1526832 :          ipack = ipack + 1
   53846     1526832 :          pack_tmp = packed_data(ipack)
   53847     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   53848     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   53849     1526832 :          idata = idata + 1
   53850     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   53851     1526832 :          ipack = ipack + 1
   53852     1526832 :          pack_tmp = packed_data(ipack)
   53853     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   53854     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   53855     1526832 :          idata = idata + 1
   53856     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   53857     1526832 :          full_data(idata) = data_tmp
   53858     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   53859             :       END DO
   53860       95427 :       IF (Ndata_rep < Ndata) THEN
   53861           0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   53862             :       END IF
   53863       95427 :    END SUBROUTINE bits2ints_63
   53864             : 
   53865             : ! **************************************************************************************************
   53866             : !> \brief ...
   53867             : !> \param Nbits ...
   53868             : !> \param Ndata ...
   53869             : !> \param packed_data ...
   53870             : !> \param full_data ...
   53871             : ! **************************************************************************************************
   53872     2013039 :    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     2036715 :       SELECT CASE (Nbits)
   53878             :       CASE (1)
   53879       23676 :          CALL ints2bits_1(Ndata, packed_data, full_data)
   53880             :       CASE (2)
   53881       23676 :          CALL ints2bits_2(Ndata, packed_data, full_data)
   53882             :       CASE (3)
   53883       23924 :          CALL ints2bits_3(Ndata, packed_data, full_data)
   53884             :       CASE (4)
   53885       24027 :          CALL ints2bits_4(Ndata, packed_data, full_data)
   53886             :       CASE (5)
   53887       23911 :          CALL ints2bits_5(Ndata, packed_data, full_data)
   53888             :       CASE (6)
   53889       51506 :          CALL ints2bits_6(Ndata, packed_data, full_data)
   53890             :       CASE (7)
   53891       24032 :          CALL ints2bits_7(Ndata, packed_data, full_data)
   53892             :       CASE (8)
   53893       24021 :          CALL ints2bits_8(Ndata, packed_data, full_data)
   53894             :       CASE (9)
   53895       23980 :          CALL ints2bits_9(Ndata, packed_data, full_data)
   53896             :       CASE (10)
   53897       50461 :          CALL ints2bits_10(Ndata, packed_data, full_data)
   53898             :       CASE (11)
   53899       26434 :          CALL ints2bits_11(Ndata, packed_data, full_data)
   53900             :       CASE (12)
   53901       26677 :          CALL ints2bits_12(Ndata, packed_data, full_data)
   53902             :       CASE (13)
   53903       28079 :          CALL ints2bits_13(Ndata, packed_data, full_data)
   53904             :       CASE (14)
   53905       27125 :          CALL ints2bits_14(Ndata, packed_data, full_data)
   53906             :       CASE (15)
   53907       27440 :          CALL ints2bits_15(Ndata, packed_data, full_data)
   53908             :       CASE (16)
   53909       28303 :          CALL ints2bits_16(Ndata, packed_data, full_data)
   53910             :       CASE (17)
   53911       31815 :          CALL ints2bits_17(Ndata, packed_data, full_data)
   53912             :       CASE (18)
   53913       32716 :          CALL ints2bits_18(Ndata, packed_data, full_data)
   53914             :       CASE (19)
   53915       30451 :          CALL ints2bits_19(Ndata, packed_data, full_data)
   53916             :       CASE (20)
   53917       41404 :          CALL ints2bits_20(Ndata, packed_data, full_data)
   53918             :       CASE (21)
   53919       29421 :          CALL ints2bits_21(Ndata, packed_data, full_data)
   53920             :       CASE (22)
   53921       29274 :          CALL ints2bits_22(Ndata, packed_data, full_data)
   53922             :       CASE (23)
   53923       73600 :          CALL ints2bits_23(Ndata, packed_data, full_data)
   53924             :       CASE (24)
   53925       36154 :          CALL ints2bits_24(Ndata, packed_data, full_data)
   53926             :       CASE (25)
   53927       37335 :          CALL ints2bits_25(Ndata, packed_data, full_data)
   53928             :       CASE (26)
   53929       30074 :          CALL ints2bits_26(Ndata, packed_data, full_data)
   53930             :       CASE (27)
   53931       29599 :          CALL ints2bits_27(Ndata, packed_data, full_data)
   53932             :       CASE (28)
   53933       33859 :          CALL ints2bits_28(Ndata, packed_data, full_data)
   53934             :       CASE (29)
   53935       36874 :          CALL ints2bits_29(Ndata, packed_data, full_data)
   53936             :       CASE (30)
   53937       43675 :          CALL ints2bits_30(Ndata, packed_data, full_data)
   53938             :       CASE (31)
   53939       43662 :          CALL ints2bits_31(Ndata, packed_data, full_data)
   53940             :       CASE (32)
   53941       52054 :          CALL ints2bits_32(Ndata, packed_data, full_data)
   53942             :       CASE (33)
   53943       53528 :          CALL ints2bits_33(Ndata, packed_data, full_data)
   53944             :       CASE (34)
   53945       46930 :          CALL ints2bits_34(Ndata, packed_data, full_data)
   53946             :       CASE (35)
   53947       47196 :          CALL ints2bits_35(Ndata, packed_data, full_data)
   53948             :       CASE (36)
   53949       47706 :          CALL ints2bits_36(Ndata, packed_data, full_data)
   53950             :       CASE (37)
   53951       35361 :          CALL ints2bits_37(Ndata, packed_data, full_data)
   53952             :       CASE (38)
   53953       32708 :          CALL ints2bits_38(Ndata, packed_data, full_data)
   53954             :       CASE (39)
   53955       28448 :          CALL ints2bits_39(Ndata, packed_data, full_data)
   53956             :       CASE (40)
   53957       27201 :          CALL ints2bits_40(Ndata, packed_data, full_data)
   53958             :       CASE (41)
   53959       27001 :          CALL ints2bits_41(Ndata, packed_data, full_data)
   53960             :       CASE (42)
   53961       25381 :          CALL ints2bits_42(Ndata, packed_data, full_data)
   53962             :       CASE (43)
   53963       26037 :          CALL ints2bits_43(Ndata, packed_data, full_data)
   53964             :       CASE (44)
   53965       27513 :          CALL ints2bits_44(Ndata, packed_data, full_data)
   53966             :       CASE (45)
   53967       29155 :          CALL ints2bits_45(Ndata, packed_data, full_data)
   53968             :       CASE (46)
   53969       28676 :          CALL ints2bits_46(Ndata, packed_data, full_data)
   53970             :       CASE (47)
   53971       26112 :          CALL ints2bits_47(Ndata, packed_data, full_data)
   53972             :       CASE (48)
   53973       26673 :          CALL ints2bits_48(Ndata, packed_data, full_data)
   53974             :       CASE (49)
   53975       25532 :          CALL ints2bits_49(Ndata, packed_data, full_data)
   53976             :       CASE (50)
   53977       25110 :          CALL ints2bits_50(Ndata, packed_data, full_data)
   53978             :       CASE (51)
   53979       24160 :          CALL ints2bits_51(Ndata, packed_data, full_data)
   53980             :       CASE (52)
   53981       24186 :          CALL ints2bits_52(Ndata, packed_data, full_data)
   53982             :       CASE (53)
   53983       24176 :          CALL ints2bits_53(Ndata, packed_data, full_data)
   53984             :       CASE (54)
   53985       24054 :          CALL ints2bits_54(Ndata, packed_data, full_data)
   53986             :       CASE (55)
   53987       23972 :          CALL ints2bits_55(Ndata, packed_data, full_data)
   53988             :       CASE (56)
   53989       23814 :          CALL ints2bits_56(Ndata, packed_data, full_data)
   53990             :       CASE (57)
   53991       23738 :          CALL ints2bits_57(Ndata, packed_data, full_data)
   53992             :       CASE (58)
   53993       23700 :          CALL ints2bits_58(Ndata, packed_data, full_data)
   53994             :       CASE (59)
   53995       23676 :          CALL ints2bits_59(Ndata, packed_data, full_data)
   53996             :       CASE (60)
   53997       23676 :          CALL ints2bits_60(Ndata, packed_data, full_data)
   53998             :       CASE (61)
   53999       23676 :          CALL ints2bits_61(Ndata, packed_data, full_data)
   54000             :       CASE (62)
   54001       23676 :          CALL ints2bits_62(Ndata, packed_data, full_data)
   54002             :       CASE (63)
   54003     2013039 :          CALL ints2bits_63(Ndata, packed_data, full_data)
   54004             :       END SELECT
   54005     2013039 :    END SUBROUTINE ints2bits_specific
   54006             : 
   54007             : ! **************************************************************************************************
   54008             : !> \brief ...
   54009             : !> \param Nbits ...
   54010             : !> \param Ndata ...
   54011             : !> \param packed_data ...
   54012             : !> \param full_data ...
   54013             : ! **************************************************************************************************
   54014     9262451 :    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     9357878 :       SELECT CASE (Nbits)
   54020             :       CASE (1)
   54021       95427 :          CALL bits2ints_1(Ndata, packed_data, full_data)
   54022             :       CASE (2)
   54023       95427 :          CALL bits2ints_2(Ndata, packed_data, full_data)
   54024             :       CASE (3)
   54025       96813 :          CALL bits2ints_3(Ndata, packed_data, full_data)
   54026             :       CASE (4)
   54027       97628 :          CALL bits2ints_4(Ndata, packed_data, full_data)
   54028             :       CASE (5)
   54029       96652 :          CALL bits2ints_5(Ndata, packed_data, full_data)
   54030             :       CASE (6)
   54031      245676 :          CALL bits2ints_6(Ndata, packed_data, full_data)
   54032             :       CASE (7)
   54033       98938 :          CALL bits2ints_7(Ndata, packed_data, full_data)
   54034             :       CASE (8)
   54035       98992 :          CALL bits2ints_8(Ndata, packed_data, full_data)
   54036             :       CASE (9)
   54037       98330 :          CALL bits2ints_9(Ndata, packed_data, full_data)
   54038             :       CASE (10)
   54039      303538 :          CALL bits2ints_10(Ndata, packed_data, full_data)
   54040             :       CASE (11)
   54041      117016 :          CALL bits2ints_11(Ndata, packed_data, full_data)
   54042             :       CASE (12)
   54043      118896 :          CALL bits2ints_12(Ndata, packed_data, full_data)
   54044             :       CASE (13)
   54045      131111 :          CALL bits2ints_13(Ndata, packed_data, full_data)
   54046             :       CASE (14)
   54047      122833 :          CALL bits2ints_14(Ndata, packed_data, full_data)
   54048             :       CASE (15)
   54049      124919 :          CALL bits2ints_15(Ndata, packed_data, full_data)
   54050             :       CASE (16)
   54051      137247 :          CALL bits2ints_16(Ndata, packed_data, full_data)
   54052             :       CASE (17)
   54053      162945 :          CALL bits2ints_17(Ndata, packed_data, full_data)
   54054             :       CASE (18)
   54055      170130 :          CALL bits2ints_18(Ndata, packed_data, full_data)
   54056             :       CASE (19)
   54057      154065 :          CALL bits2ints_19(Ndata, packed_data, full_data)
   54058             :       CASE (20)
   54059      283358 :          CALL bits2ints_20(Ndata, packed_data, full_data)
   54060             :       CASE (21)
   54061      150602 :          CALL bits2ints_21(Ndata, packed_data, full_data)
   54062             :       CASE (22)
   54063      150241 :          CALL bits2ints_22(Ndata, packed_data, full_data)
   54064             :       CASE (23)
   54065      228106 :          CALL bits2ints_23(Ndata, packed_data, full_data)
   54066             :       CASE (24)
   54067      160649 :          CALL bits2ints_24(Ndata, packed_data, full_data)
   54068             :       CASE (25)
   54069      161635 :          CALL bits2ints_25(Ndata, packed_data, full_data)
   54070             :       CASE (26)
   54071      133453 :          CALL bits2ints_26(Ndata, packed_data, full_data)
   54072             :       CASE (27)
   54073      133508 :          CALL bits2ints_27(Ndata, packed_data, full_data)
   54074             :       CASE (28)
   54075      156675 :          CALL bits2ints_28(Ndata, packed_data, full_data)
   54076             :       CASE (29)
   54077      177182 :          CALL bits2ints_29(Ndata, packed_data, full_data)
   54078             :       CASE (30)
   54079      227012 :          CALL bits2ints_30(Ndata, packed_data, full_data)
   54080             :       CASE (31)
   54081      273627 :          CALL bits2ints_31(Ndata, packed_data, full_data)
   54082             :       CASE (32)
   54083      351331 :          CALL bits2ints_32(Ndata, packed_data, full_data)
   54084             :       CASE (33)
   54085      266283 :          CALL bits2ints_33(Ndata, packed_data, full_data)
   54086             :       CASE (34)
   54087      218091 :          CALL bits2ints_34(Ndata, packed_data, full_data)
   54088             :       CASE (35)
   54089      226489 :          CALL bits2ints_35(Ndata, packed_data, full_data)
   54090             :       CASE (36)
   54091      175724 :          CALL bits2ints_36(Ndata, packed_data, full_data)
   54092             :       CASE (37)
   54093      148846 :          CALL bits2ints_37(Ndata, packed_data, full_data)
   54094             :       CASE (38)
   54095      162352 :          CALL bits2ints_38(Ndata, packed_data, full_data)
   54096             :       CASE (39)
   54097      125761 :          CALL bits2ints_39(Ndata, packed_data, full_data)
   54098             :       CASE (40)
   54099      126699 :          CALL bits2ints_40(Ndata, packed_data, full_data)
   54100             :       CASE (41)
   54101      131175 :          CALL bits2ints_41(Ndata, packed_data, full_data)
   54102             :       CASE (42)
   54103      116082 :          CALL bits2ints_42(Ndata, packed_data, full_data)
   54104             :       CASE (43)
   54105      115867 :          CALL bits2ints_43(Ndata, packed_data, full_data)
   54106             :       CASE (44)
   54107      123340 :          CALL bits2ints_44(Ndata, packed_data, full_data)
   54108             :       CASE (45)
   54109      132204 :          CALL bits2ints_45(Ndata, packed_data, full_data)
   54110             :       CASE (46)
   54111      119985 :          CALL bits2ints_46(Ndata, packed_data, full_data)
   54112             :       CASE (47)
   54113      114730 :          CALL bits2ints_47(Ndata, packed_data, full_data)
   54114             :       CASE (48)
   54115      112296 :          CALL bits2ints_48(Ndata, packed_data, full_data)
   54116             :       CASE (49)
   54117      101717 :          CALL bits2ints_49(Ndata, packed_data, full_data)
   54118             :       CASE (50)
   54119       99829 :          CALL bits2ints_50(Ndata, packed_data, full_data)
   54120             :       CASE (51)
   54121       98507 :          CALL bits2ints_51(Ndata, packed_data, full_data)
   54122             :       CASE (52)
   54123      100439 :          CALL bits2ints_52(Ndata, packed_data, full_data)
   54124             :       CASE (53)
   54125      108085 :          CALL bits2ints_53(Ndata, packed_data, full_data)
   54126             :       CASE (54)
   54127      110773 :          CALL bits2ints_54(Ndata, packed_data, full_data)
   54128             :       CASE (55)
   54129      106721 :          CALL bits2ints_55(Ndata, packed_data, full_data)
   54130             :       CASE (56)
   54131      102645 :          CALL bits2ints_56(Ndata, packed_data, full_data)
   54132             :       CASE (57)
   54133       98969 :          CALL bits2ints_57(Ndata, packed_data, full_data)
   54134             :       CASE (58)
   54135       96891 :          CALL bits2ints_58(Ndata, packed_data, full_data)
   54136             :       CASE (59)
   54137       95427 :          CALL bits2ints_59(Ndata, packed_data, full_data)
   54138             :       CASE (60)
   54139       95427 :          CALL bits2ints_60(Ndata, packed_data, full_data)
   54140             :       CASE (61)
   54141       95427 :          CALL bits2ints_61(Ndata, packed_data, full_data)
   54142             :       CASE (62)
   54143       95427 :          CALL bits2ints_62(Ndata, packed_data, full_data)
   54144             :       CASE (63)
   54145     9262451 :          CALL bits2ints_63(Ndata, packed_data, full_data)
   54146             :       END SELECT
   54147     9262451 :    END SUBROUTINE bits2ints_specific
   54148             : 
   54149             : END MODULE hfx_compression_core_methods

Generated by: LCOV version 1.15