W3AI00
The W3AI00 routine converts ieee floating point numbers to 16 bit
packed office note 84 format.
USAGE: CALL W3AI00 (REAL8, PACK, LABEL)
Input arguments:
REAL8 ARRAY OF CRAY FLOATING POINT NUMBERS
LABEL SIX 8-BYTE INTEGER WORDS.
MUST HAVE FIRST 8 OF 12 32 BIT
WORD OFFICE NOTE 84 LABEL. WORD 6 MUST HAVE
IN BITS 31-00 THE NUMBER OF REAL WORDS IN ARRAY
REAL8 IF J IS GREATER THAN 32743. J IN BITS
15-0 OF THE 4TH ID WORD IS SET ZERO.
Output arguments:
PACK PACKED OUTPUT ARRAY OF INTEGER WORDS OF
SIZE 6 + (J+3)/4 , J = NO. POINTS IN LABEL
(FROM WORD 4 BITS 15-00).
LABEL WILL BE COPIED TO PACK WORDS 1-4. PACK
WILL CONTAIN THE FOLLOWING IN WORDS 5-6
WORD 5 BITS 63-48 NUMBER OF BYTES IN WHOLE
RECORD. WILL NOT BE
CORRECT IF J > 32743.
WORD 5 BITS 47-32 EXCLUSIVE-OR CHECKSUM BY 16
BIT WORDS OF WHOLE ARRAY PACK
EXCLUDING CHECKSUM ITSELF.
WORD 5 BITS 31-00 CENTER VALUE A = MEAN OF
MAX AND MIN VALUES.
CONVERTED TO IBM 32
FLOATING POINT NUMBER.
WORD 6 BITS 63-48 ZERO.
WORD 6 BITS 47-32 16 BIT SHIFT VALUE N. THE
LEAST INTEGER SUCH THAT
ABS(X-A)/2**N LT 1 FOR
ALL X IN REAL8. LIMITED
TO +-127.
WORD 6 BITS 31-00 NUMBER OF WORDS IN REAL8
IF > 32743, RIGHT ADJUSTED
IF <= 32743 SET ZERO.
REMARKS:
Pack and label may be equivalenced. N, the number of
points in a grid is now in 32 bit id word 12.
W3lib.tar |
Library contains Fortran 90 decoder/encoder
routines for GRIB edition 1. (Fortran90)
Date posted: 2/22/2007 |