134 SUBROUTINE putgb(LUGB,KF,KPDS,KGDS,LB,F,IRET)
135 INTEGER KPDS(200),KGDS(200)
139 INTEGER IBM(KF),IPDS(200),IGDS(200),IBDS(200)
141 CHARACTER PDS(400),GRIB(1000+KF*(MAXBIT+1)/8)
144 CALL r63w72(kpds,kgds,ipds,igds)
149 IF(ipds(7).NE.0)
THEN
159 IF(kbm.EQ.kf) ipds(7)=0
169 CALL getbit(ipds(7),0,ipds(25),kf,ibm,f,fr,fmin,fmax,nbit)
170 nbit=min(nbit,maxbit)
174 CALL w3fi72(0,fr,0,nbit,0,ipds,pds,
175 & 1,255,igds,0,0,ibm,kf,ibds,
176 & kfo,grib,lgrib,iret)
177 IF(iret.EQ.0)
CALL wryte(lugb,lgrib,grib)
subroutine getbit(ibm, ibs, ids, len, mg, g, ground, gmin, gmax, nbit)
The number of bits required to pack a given field.
subroutine putgb(lugb, kf, kpds, kgds, lb, f, iret)
This subprogram is nearly the inverse of getgb.
subroutine r63w72(kpds, kgds, ipds, igds)
Determines the integer PDS and GDS parameters for the GRIB1 packing routine w3fi72() given the parame...
subroutine w3fi72(itype, fld, ifld, ibitl, ipflag, id, pds, igflag, igrid, igds, icomp, ibflag, ibmap, iblen, ibdsfl, npts, kbuf, itot, jerr)
Makes a complete GRIB message from a user supplied array of floating point or integer data.