151 SUBROUTINE w3nogds(ITYPE,FLD,IFLD,IBITL,
153 & IGFLAG,IGRID,IGDS,ICOMP,
154 & IBFLAG,IBMAP,IBLEN,IBDSFL,
155 & NPTS,KBUF,ITOT,JERR)
157 parameter(mxsize=260000)
159 parameter(mxsiz3=mxsize*3)
160 parameter(mxsizb=mxsize/8+6)
162 parameter(mxsizi=mxsiz3/8)
173 INTEGER IPFLD(MXSIZI)
176 CHARACTER * 1 BDS11(11)
177 CHARACTER * 1 KBUF(*)
179 CHARACTER * 1 GDS(200)
180 CHARACTER * 1 BMS(MXSIZB)
181 CHARACTER * 1 PFLD(MXSIZ3)
185 equivalence(ipfld(1),pfld(1))
186 equivalence(bds11(1),idummy)
190 DATA ib / 71, 82, 73, 66/
210 IF (ipflag .EQ.0)
THEN
212 if (igflag .eq. 2)
then
216 ELSE IF (ipflag .EQ. 1)
THEN
217 IF (iand(
mova2i(pds(8)),64) .EQ. 64)
THEN
220 ELSE IF (
mova2i(pds(8)) .EQ. 0)
THEN
242 IF (igflag .EQ. 0)
THEN
243 CALL w3fi71(igrid,igds,igerr)
244 IF (igerr .EQ. 1)
THEN
250 IF (igflag .EQ. 0 .OR. igflag .EQ.1)
THEN
252 IF (igerr .EQ. 1)
THEN
258 IF (npts .GT. mxsize)
THEN
264 else if (igflag .eq. 2)
then
266 if (igrid.eq.21)
then
268 else if (igrid.eq.22)
then
270 else if (igrid.eq.23)
then
272 else if (igrid.eq.24)
then
274 else if (igrid.eq.25)
then
276 else if (igrid.eq.26)
then
278 else if ((igrid.ge.61).and.(igrid.le.64))
then
292 IF (
mova2i(pds(8)) .EQ. 64 .OR.
293 &
mova2i(pds(8)) .EQ. 192)
THEN
295 IF (ibflag .EQ. 0)
THEN
296 IF (iblen .NE. npts)
THEN
301 CALL w3fi73(ibflag,ibmap,iblen,bms,lenbms,ier)
317 IF (iand(jscale,32768).NE.0)
THEN
318 jscale = - iand(jscale,32767)
320 scale = 10.0 ** jscale
321 IF (itype .EQ. 0)
THEN
323 fld(i) = fld(i) * scale
327 ifld(i) = nint(float(ifld(i)) * scale)
333 CALL w3fi75(ibitl,itype,itoss,fld,ifld,ibmap,ibdsfl,
334 & npts,bds11,ipfld,pfld,len,lenbds,iberr,pds,igds)
335 IF (iberr .EQ. 1)
THEN
342 IF (jscale.NE.0)
THEN
346 fld(i) = fld(i) * dscale
350 fld(i) = nint(float(ifld(i)) * dscale)
360 itot = igribl + ipdsl +
lengds + lenbms + lenbds + 4
377 CALL xstore(kbuf,0,iwords)
378 IF (mod(itot,lw).NE.0)
THEN
379 ibytes = itot - iwords * lw
381 kbuf(iwords * lw + i) = zero
389 kbuf(i) = char(ib(i))
392 kbuf(5) = char(mod(itot / 65536,256))
393 kbuf(6) = char(mod(itot / 256,256))
394 kbuf(7) = char(mod(itot ,256))
399 istart = istart + igribl
401 CALL xmovex(kbuf(istart+1),pds,ipdsl)
408 istart = istart + ipdsl
410 CALL xmovex(kbuf(istart+1),gds,
lengds)
416 IF (lenbms .GT. 0)
THEN
417 CALL xmovex(kbuf(istart+1),bms,lenbms)
424 istart = istart + lenbms
425 CALL xmovex(kbuf(istart+1),bds11,11)
431 CALL xmovex(kbuf(istart+1),pfld,len)
440 kbuf(istart+i) = seven