54 subroutine gribcreate(cgrib, lcgrib, listsec0, listsec1, ierr)
57 character(len = 1),
intent(inout) :: cgrib(lcgrib)
58 integer,
intent(in) :: listsec0(*), listsec1(*)
59 integer,
intent(in) :: lcgrib
60 integer,
intent(out) :: ierr
62 integer :: i, lensec1, nbits
63 character(len = 4),
parameter :: grib =
'GRIB'
64 integer,
parameter :: ZERO = 0, one = 1
65 integer,
parameter :: mapsec1len = 13
66 integer,
parameter :: mapsec1(mapsec1len) = (/ 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1 /)
67 integer lensec0, iofst, ibeg
72 print *,
'gribcreate lcgrib ', lcgrib
76 if (listsec0(2) .ne. 2)
then
77 print *,
'gribcreate: can only code GRIB edition 2.'
103 nbits = mapsec1(i) * 8
104 call g2_sbytec(cgrib, listsec1(i), iofst, nbits)
105 iofst = iofst + nbits
110 lensec1 = (iofst - ibeg) / 8
115 call g2_sbytec(cgrib, lensec0 + lensec1, 96, 32)
subroutine g2_sbytec(out, in, iskip, nbits)
Put arbitrary size values into a packed bit string, taking the low order bits from each value in the ...
subroutine gribcreate(cgrib, lcgrib, listsec0, listsec1, ierr)
This subroutine initializes a new GRIB2 message and packs GRIB2 sections 0 (Indicator Section) and 1 ...