20 subroutine skgb(lugb, iseek, mseek, lskip, lgrib)
23 integer :: lugb, iseek, mseek, lskip, lgrib
24 integer*8 :: iseek8, mseek8, lskip8, lgrib8
28 call skgb8(lugb, iseek8, mseek8, lskip8, lgrib8)
29 lskip = int(lskip8, kind = 4)
30 lgrib = int(lgrib8, kind = 4)
52 subroutine skgb8(lugb, iseek8, mseek8, lskip8, lgrib8)
55 integer*8 iseek8, mseek8, lskip8, lgrib8
56 integer*8 ks8, kn8, kz8, k48, km8
57 integer lseek, lugb, i1, i4, k, kg
58 parameter(lseek = 512)
64 kn8 = min(int(lseek, kind = 8), mseek8)
68 do while (lgrib8 .eq. 0 .and. kn8 .ge. 8 .and. kz8 .eq. lseek)
70 call bareadl(lugb, ks8, kn8, kz8, z)
75 do while (lgrib8 .eq. 0 .and. k .lt. km8)
78 if (i4 .eq. 1196575042 .and. (i1 .eq. 1 .or. i1 .eq. 2))
then
80 if (i1 .eq. 1)
call g2_gbytec(z, kg, (k + 4) * 8, 3 * 8)
81 if (i1 .eq. 2)
call g2_gbytec(z, kg, (k + 12) * 8, 4 * 8)
83 call bareadl(lugb, ks8 + k + kg - 4, 4_8, k48, z4)
86 if (i4 .eq. 926365495)
then
96 kn8 = min(int(lseek, kind = 8), iseek8 + mseek8 - ks8)
subroutine g2_gbytec(in, iout, iskip, nbits)
Extract one arbitrary size big-endian value (up to 32 bits) from a packed bit string into one element...
subroutine skgb(lugb, iseek, mseek, lskip, lgrib)
Search a file for the next GRIB1 or GRIB2 message.
subroutine skgb8(lugb, iseek8, mseek8, lskip8, lgrib8)
Search a file for the next GRIB1 or GRIB2 message.