W3FI59
The W3FI59 routine converts an array of single precision real numbers
into an array of positive scaled differences
(number(s) - minimum value), in integer format and
packs the argument-specified number of significant bits
from each difference.
USAGE: CALL W3FI59(FIELD,NPTS,NBITS,NWORK,NPFLD,ISCALE,LEN,RMIN)
Input argument list:
FIELD - ARRAY OF FLOATING POINT DATA FOR PROCESSING (REAL)
NPTS - NUMBER OF DATA VALUES TO PROCESS IN FIELD (AND NWORK)
WHERE, NPTS > 0
NBITS - NUMBER OF SIGNIFICANT BITS OF PROCESSED DATA TO BE PACKED
WHERE, 0 < NBITS < 32+1
Output argument list:
NWORK - ARRAY FOR INTEGER CONVERSION (INTEGER)
IF PACKING PERFORMED (SEE NOTE BELOW), THE ARRAY WILL
CONTAIN THE PRE-PACKED, RIGHT ADJUSTED, SCALED, INTEGER
DIFFERENCES UPON RETURN TO THE USER.
(THE USER MAY EQUIVALENCE FIELD AND NWORK. SAME SIZE.)
NPFLD - ARRAY FOR PACKED DATA (INTEGER)
(DIMENSION MUST BE AT LEAST (NBITS * NPTS) / 64 + 1 )
ISCALE- POWER OF 2 FOR RESTORING DATA, SUCH THAT
DATUM = (DIFFERENCE * 2**ISCALE) + RMIN
LEN - NUMBER OF PACKED BYTES IN NPFLD (SET TO 0 IF NO PACKING)
WHERE, LEN = (NBITS * NPTS + 7) / 8 WITHOUT REMAINDER
RMIN - MINIMUM VALUE (REFERENCE VALUE SUBTRACTED FROM INPUT DATA)
THIS IS A CRAY FLOATING POINT NUMBER, IT WILL HAVE TO BE
CONVERTED TO AN IBM370 32 BIT FLOATING POINT NUMBER AT
SOME POINT IN YOUR PROGRAM IF YOU ARE PACKING GRIB DATA.
REMARKS:
LEN = 0 AND NO PACKING PERFORMED IF
(1) RMAX = RMIN (A CONSTANT FIELD)
(2) NBITS VALUE OUT OF RANGE (SEE INPUT ARGUMENT)
(3) NPTS VALUE LESS THAN 1 (SEE INPUT ARGUMENT)
W3lib.tar |
Library contains Fortran 90 decoder/encoder
routines for GRIB edition 1. (Fortran90)
Date posted: 2/22/2007 |