AEA
This AEA routine converts ASCII to EBCDIC or EBCDIC to ASCII by charater.
USAGE: CALL AEA (IA, IE, NC)
Input argument list:
IA - CHARACTER*1 ARRAY OF ASCII DATA IF NC < 0
IE - CHARACTER*1 ARRAY OF EBCDIC DATA IF NC > 0
NC - INTEGER, CONTAINS CHARACTER COUNT TO CONVERT....
IF NC .LT. 0, CONVERT ASCII TO EBCDIC
IF NC .GT. 0, CONVERT EBCDIC TO ASCII
Output argument list:
IA - CHARACTER*1 ARRAY OF ASCII DATA IF NC > 0
IE - CHARACTER*1 ARRAY OF EBCDIC DATA IF NC < 0
ARGS_MOD
The Fortran Module ARGS_MOD acts as a wrapper to the system routines
IARGC and GETARG.
USAGE: args_mod
ERREXIT
This ERREXIT routine exit with an return code.
USAGE: CALL ERREXIT(IRET)
Input argument list:
IRET - INTEGER RETURN CODE
ERRMSG
The ERRMSG rountine writes a message to standard error.
USAGE: CALL ERRMSG(CMSG)
Input arguments:
CMSG CHARACTER*(*) MESSAGE TO WRITE
Remark:
This is a machine-dependent subprogram.
FPARSEI
The FPARSEI routine parses integers from a character string.
USAGE: CALL FPARSEI(CARG,MARG,KARG)
Input argument list:
CARG - CHARACTER*(*) STRING OF ASCII DIGITS TO PARSE.
INTEGERS MAY BE SEPARATED BY A COMMA OR BY BLANKS.
MARG - INTEGER MAXIMUM NUMBER OF INTEGERS TO PARSE.
Output argument list:
KARG - INTEGER (MARG) NUMBERS PARSED.
(FROM 0 TO MARG VALUES MAY BE RETURNED.)
REMARKS:
To determine the actual number of integers found in the string,
KARG should be set to fill values before the call to fparsei and
the number of non-fill values should be counted after the call.
FPARSER
The FPARSER routine parses real numbers from a character string.
USAGE: CALL FPARSER(CARG,MARG,RARG)
Input argument list:
CARG - CHARACTER*(*) STRING OF ASCII DIGITS TO PARSE.
REAL NUMBERS MAY BE SEPARATED BY A COMMA OR BY BLANKS.
MARG - INTEGER MAXIMUM NUMBER OF REAL NUMBERS TO PARSE.
Output argument list:
RARG - REAL (MARG) NUMBERS PARSED.
(FROM 0 TO MARG VALUES MAY BE RETURNED.)
REMARKS:
TO DETERMINE THE ACTUAL NUMBER OF REAL NUMBERS FOUND IN THE STRING,
RARG SHOULD BE SET TO FILL VALUES BEFORE THE CALL TO FPARSER AND
THE NUMBER OF NON-FILL VALUES SHOULD BE COUNTED AFTER THE CALL.
GBLEVENTS
The GBLEVENTS routine runs in two modes: PREVENTS and POSTEVENTS.
In the PREVENTS mode, prepares observational prepbufr reports for
subsequent quality control and analysis programs. This is donE
through the following: interpolation of global spectral simga
first guess to prepbufr observation locations with encoding of
first guess values into prepbufr reports; encoding of "PREVENT"
and/or "virtmp" events into prepbufr reports; and encoding of
observation errors from the error specification file into
prepbufr reports.
In the POSTEVENTS mode, after all quality control and analysis
programs have run, interpolates the global SPECTRAL SIMGA
analysis to prepbufr observation locations and encodes these
analyzed values into prepbufr reports.
The remainder of this abstract applies only to the prevents mode.
The "PREVENT" event can change a quality marker to flag an observation
datum for non-use by subsequent qc and analysiS programs (filtering).
USAGE: CALL GBLEVENTS(IDATEP,IUNITF,IUNITE,IUNITP,IUNITS,SUBSET,
NEWTYP)
Input argument list:
IDATEP - CENTER DATE FOR PREPBUFR FILE IN THE FORM YYYYMMDDHH
IUNITF - 2-WORD ARRAY:
- WORD 1 - UNIT NUMBER OF FIRST INPUT SPECTRAL (GLOBAL)
- SIGMA FILE (EITHER FIRST GUESS OR ANALYSIS); IF HH IN
- IDATEP IS A MULTIPLE OF 3 THEN THIS FILE IS VALID AT
- THE DATE IN IDATEP, IF HH IN IDATEP IS NOT A
- MULTIPLE OF 3 THEN THIS FILE IS VALID AT THE CLOSEST
- TIME PRIOR TO THE DATE IN IDATEP THAT IS A MULTIPLE
- OF 3
- WORD 2 - UNIT NUMBER OF SECOND INPUT SPECTRAL (GLOBAL)
- SIGMA FILE (EITHER FIRST GUESS OR ANALYSIS); IF HH IN
- IDATEP IS A MULTIPLE OF 3 THEN THIS FILE IS EMPTY, IF
- HH IN IDATEP IS NOT A MULTIPLE OF 3 THEN THIS FILE IS
- VALID AT THE CLOSEST TIME AFTER THE DATE IN IDATEP
- THAT IS A MULTIPLE OF 3
IUNITE - UNIT NUMBER OF INPUT OBSERVATION ERROR FILE
- (USED ONLY IN PREVENTS MODE)
IUNITP - UNIT NUMBER OF OUTPUT PREPBUFR DATA SET
IUNITS - UNIT NUMBER OF "PREVENT" EVENTS DATA FILTERING
- SUMMARY PRINT FILE
- (USED ONLY IN PREVENTS MODE)
SUBSET - THE BUFR MESSAGE TABLE A ENTRY FOR THE PARTICULAR
- REPORT BEING PROCESSED
NEWTYP - INDICATOR IF THE BUFR MESSAGE TABLE A ENTRY HAS
- CHANGED FROM THAT OF THE PREVIOUS REPORT (=0 - NO,
=1 - YES)
Input files:
UNIT 05 - STANDARD INPUT (DATA CARDS - SEE NAMELIST
DOCUMENTATION BELOW)
(NOTE: IF STANDARD INPUT FILE IS NULL, THEN THIS
SUBROUTINE RUNS IN POSTEVENTS MODE)
UNIT AA - PREPBUFR DATA SET
- (WHERE AA IS UNIT NUMBER DEFINED AS IUNITP IN
- INPUT ARGUMENT LIST)
UNIT BB - SPECTRAL (GLOBAL) SIGMA GUESS (PREVENTS MODE) OR
- ANALYSIS (POSTEVENTS MODE) FILE
- (WHERE BB IS UNIT NUMBER DEFINED AS IUNITF(1) IN
- INPUT ARGUMENT LIST)
UNIT CC - SPECTRAL (GLOBAL) SIGMA GUESS (PREVENTS MODE) OR
- ANALYSIS (POSTEVENTS MODE) FILE
- (WHERE CC IS UNIT NUMBER DEFINED AS IUNITF(2) IN
- INPUT ARGUMENT LIST)
UNIT DD - OBSERVATION ERROR FILE (WHERE DD IS UNIT NUMBER
- DEFINED AS IUNITE IN INPUT ARGUMENT LIST)
- (USED ONLY IN PREVENTS MODE)
Output files:
UNIT 06 - STANDARD OUTPUT PRINT
UNIT AA - PREPBUFR DATA SET
- (WHERE AA IS UNIT NUMBER DEFINED AS IUNITP IN
- INPUT ARGUMENT LIST)
UNIT DD - "PREVENT" EVENTS DATA FILTERING SUMMARY PRINT FILE
- (WHERE DD IS UNIT NUMBER DEFINED AS IUNITS IN
- INPUT ARGUMENT LIST)
- (USED ONLY IN PREVENTS MODE)
GBYTE
The GBYTE routine unpacks a byte into a target word. The
unpacked byte is right-justified in the target word, and the
remainder of the word is zero-filled.
USAGE: CALL GBYTE(IPACKD,IUNPKD,NOFF,NBITS)
Input argument list:
IPACKD THE WORD OR ARRAY CONTAINING THE BYTE TO BE UNPACKED.
IUNPKD THE WORD WHICH WILL CONTAIN THE UNPACKED BYTE.
NOFF THE NUMBER OF BITS TO SKIP, LEFT TO RIGHT, IN 'IPACKD'
IN ORDER TO LOCATE THE BYTE TO BE UNPACKED.
NBITS NUMBER OF BITS IN THE BYTE TO BE UNPACKED. MAXIMUM OF
64 BITS ON 64 BIT MACHINE, 32 BITS ON 32 BIT MACHINE.
Output argument list:
IUNPKD CONTAINS THE REQUESTED UNPACKED BYTE.
GBYTES
The GBYTES routine unpacks a series of bytes into a target
array. Each unpacked byte is right-justified in its target
word, and the remainder of the word is zero-filled.
USAGE: CALL GBYTES(IPACKD,IUNPKD,NOFF,NBITS,NSKIP,ITER)
Input argument list:
IPACKD THE WORD OR ARRAY CONTAINING THE PACKED BYTES.
IUNPKD THE ARRAY WHICH WILL CONTAIN THE UNPACKED BYTES.
NOFF THE INITIAL NUMBER OF BITS TO SKIP, LEFT TO
RIGHT, IN 'IPACKD' IN ORDER TO LOCATE
THE FIRST BYTE TO UNPACK.
NBITS NUMBER OF BITS IN THE BYTE TO BE UNPACKED.
MAXIMUM OF 64 BITS ON 64 BIT MACHINE, 32 BITS
ON 32 BIT MACHINE.
ISKIP THE NUMBER OF BITS TO SKIP BETWEEN EACH BYTE
IN 'IPACKD' IN ORDER TO LOCATE THE NEXT BYTE
TO BE UNPACKED.
ITER THE NUMBER OF BYTES TO BE UNPACKED.
Output argument list:
IUNPKD CONTAINS THE REQUESTED UNPACKED BYTES.
GETBIT
The GETBIT routine reads number of bits required to pack a given field
for particular binary and decimal scalings is computed.
the field is rounded off to the decimal scaling for packing.
the minimum and maximum rounded field values are also returned.
grib bitmap masking for valid data is optionally used.
USAGE: CALL GTBITS(IBM,IBS,IDS,LEN,MG,G,GMIN,GMAX,NBIT)
Input argument list:
IBM - INTEGER BITMAP FLAG (=0 FOR NO BITMAP)
IBS - INTEGER BINARY SCALING
(E.G. IBS=3 TO ROUND FIELD TO NEAREST EIGHTH VALUE)
IDS - INTEGER DECIMAL SCALING
(E.G. IDS=3 TO ROUND FIELD TO NEAREST MILLI-VALUE)
(NOTE THAT IDS AND IBS CAN BOTH BE NONZERO,
E.G. IDS=1 AND IBS=1 ROUNDS TO THE NEAREST TWENTIETH)
LEN - INTEGER LENGTH OF THE FIELD AND BITMAP
MG - INTEGER (LEN) BITMAP IF IBM=1 (0 TO SKIP, 1 TO KEEP)
G - REAL (LEN) FIELD
Output argument list:
GROUND - REAL (LEN) FIELD ROUNDED TO DECIMAL AND BINARY SCALING
(SET TO ZERO WHERE BITMAP IS 0 IF IBM=1)
GMIN - REAL MINIMUM VALID ROUNDED FIELD VALUE
GMAX - REAL MAXIMUM VALID ROUNDED FIELD VALUE
NBIT - INTEGER NUMBER OF BITS TO PACK
GETGB
The GETGB routine finds and unpacks a grib message. The routine reads
a grib index file (or optionally the grib file itself) to get the
index buffer (i.e. table of contents) for the grib file. The index
buffer is saved for use by future prospective calls. It finds in
the index buffer a reference to the grib message requested.
The grib message request specifies the number of messages to skip
and the unpacked pds and gds parameters. (A requested parameter
of -1 means to allow any value of this parameter to be found.)
If the requested grib message is found, then it is read from thE
grib file and unpacked. Its message number is returned along with
the unpacked pds and gds parameters, the unpacked bitmap (if any),
and the unpacked data. If the grib message is not found, then the
return code will be nonzero.
USAGE: CALL GETGB(LUGB,LUGI,JF,J,JPDS,JGDS,
KF,K,KPDS,KGDS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
- PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbm as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
do not engage the same logical unit from more than one processor.
GETGB1
The GETGB1 routine reads and unpacks a grib message. The routine
reads an associated grib index file (unless it already was read).
and finds in the index file a reference to the grib message requested.
the grib message request specifies the number of messages to skip
and the unpacked pds and gds parameters. (a requested parameter
of -1 means to allow any value of this parameter to be found.)
If the requested grib message is found, then it is read from the
grib file and unpacked. Its message number is returned along with
the unpacked pds and gds parameters, the unpacked bitmap (if any),
and the unpacked data. If the grib message is not found, then the
return code will be nonzero.
USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS,
GRIB,KF,K,KPDS,KGDS,LB,F,IRET)
Input arguments:
LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING)
JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS
FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN
MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES
TO PICK UP RECORD.
JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
Output arguments:
GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (25) UNPACKED PDS PARAMETERS
KGDS INTEGER (22) UNPACKED GDS PARAMETERS
LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
GETGB1R
The GETGB1R routine reads and unpack a grib message.
USAGE: CALL GETGB1R(LUGB,LSKIP,LGRIB,KF,KPDS,KGDS,KENS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LSKIP INTEGER NUMBER OF BYTES TO SKIP
LGRIB INTEGER NUMBER OF BYTES TO READ
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
97 ERROR READING GRIB FILE
OTHER W3FI63 GRIB UNPACKER RETURN CODE
GETGB1RE
The GETGB1RE routine reads and unpacks a grib message.
USAGE: CALL GETGB1RE(LUGB,LSKIP,LGRIB,KF,KPDS,KGDS,KENS,
KPROB,XPROB,KCLUST,KMEMBR,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LSKIP INTEGER NUMBER OF BYTES TO SKIP
LGRIB INTEGER NUMBER OF BYTES TO READ
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
KPROB INTEGER (2) PROBABILITY ENSEMBLE PARMS
XPROB REAL (2) PROBABILITY ENSEMBLE PARMS
KCLUST INTEGER (16) CLUSTER ENSEMBLE PARMS
KMEMBR INTEGER (8) CLUSTER ENSEMBLE PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
97 ERROR READING GRIB FILE
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
There is no protection against unpacking too much data.
subprogram can be called from a multiprocessing environment.
do not engage the same logical unit from more than one processor.
GETGB1S
The GETGB1S routine finds a grib message.
USAGE: CALL GETGB1S(CBUF,NLEN,NNUM,J,JPDS,JGDS,JENS,
K,KPDS,KGDS,KENS,LSKIP,LGRIB,IRET)
Input arguments:
CBUF CHARACTER*1 (NLEN*NNUM) BUFFER CONTAINING INDEX DATA
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
Output arguments:
K INTEGER MESSAGE NUMBER FOUND
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
K ENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
LSKIP INTEGER NUMBER OF BYTES TO SKIP
LGRIB INTEGER NUMBER OF BYTES TO READ
IRET INTEGER RETURN CODE
0 ALL OK
1 REQUEST NOT FOUND
REMARKS:
The subprogram can be called from a multiprocessing environment.
GETGBE
The GETGBE routine finds and unpacks a grib message.
USAGE: CALL GETGBE(LUGB,LUGI,JF,J,JPDS,JGDS,JENS,
KF,K,KPDS,KGDS,KENS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
- PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbem as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
do not engage the same logical unit from more than one processor.
GETGBEH
The GETGBEH routines finds a grib message.
USAGE: CALL GETGBEH(LUGB,LUGI,J,JPDS,JGDS,JENS,
KG,KF,K,KPDS,KGDS,KENS,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
(ONLY USED IF LUGI=0)
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
Output arguments:
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
KF INTEGER NUMBER OF DATA POINTS IN THE MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
99 REQUEST NOT FOUND
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbemh as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
do not engage the same logical unit from more than one processor.
GETGBEM
The GETGBEM routine finds and unpacks a grib message.
USAGE: CALL GETGBEM(LUGB,LUGI,JF,J,JPDS,JGDS,JENS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KF,K,KPDS,KGDS,KENS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
do not engage the same logical unit from more than one processor.
GETGBEMH
The GETGBEMH routine finds a grib message.
USAGE: CALL GETGBEMH(LUGB,LUGI,J,JPDS,JGDS,JENS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KG,KF,K,KPDS,KGDS,KENS,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
(ONLY USED IF LUGI=0)
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
KF INTEGER NUMBER OF DATA POINTS IN THE MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
99 REQUEST NOT FOUND
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
do not engage the same logical unit from more than one processor.
GETGBEMP
The GETGBEMP routine finds a grib message.
USAGE: CALL GETGBEMP(LUGB,LUGI,JG,J,JPDS,JGDS,JENS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KG,K,KPDS,KGDS,KENS,G,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JG INTEGER MAXIMUM NUMBER OF BYTES IN THE GRIB MESSAGE
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
G CHARACTER*1 (KG) GRIB MESSAGE
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF BYTES GREATER THAN JG
99 REQUEST NOT FOUND
REMARKS:
specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
do not engage the same logical unit from more than one processor.
GETGBENS
The GETGBENS routine finds and unpacks a grib message.
USAGE: CALL GETGBENS(LUGB,LUGI,JF,J,JPDS,JGDS,JENS,
KF,K,KPDS,KGDS,KENS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbem as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
do not engage the same logical unit from more than one processor.
GETGBEP
The GETGBEP routine finds a grib message.
USAGE: CALL GETGBEP(LUGB,LUGI,JG,J,JPDS,JGDS,JENS,
KG,K,KPDS,KGDS,KENS,G,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JG INTEGER MAXIMUM NUMBER OF BYTES IN THE GRIB MESSAGE
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
Output arguments:
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
G CHARACTER*1 (KG) GRIB MESSAGE
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF BYTES GREATER THAN JG
99 REQUEST NOT FOUND
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbemp as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
DO NOT engage the same logical unit from more than one processor.
GETGBEX
The GETGBEX routine finds and unpacks a grib message.
USAGE: CALL GETGBEX(LUGB,LUGI,JF,J,JPDS,JGDS,JENS,
KF,K,KPDS,KGDS,KENS,KPROB,XPROB,KCLUST,KMEMBR,
LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
Output arguments:
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
KPROB INTEGER (2) PROBABILITY ENSEMBLE PARMS
XPROB REAL (2) PROBABILITY ENSEMBLE PARMS
KCLUST INTEGER (16) CLUSTER ENSEMBLE PARMS
KMEMBR INTEGER (8) CLUSTER ENSEMBLE PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbexm as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
DO NOT engage the same logical unit from more than one processor.
GETGBEXM
The GETGBEXM routine finds and unpacks a grib message.
USAGE: CALL GETGBEXM(LUGB,LUGI,JF,J,JPDS,JGDS,JENS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KF,K,KPDS,KGDS,KENS,KPROB,XPROB,KCLUST,KMEMBR,
LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
B
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
JENS INTEGER (200) ENSEMBLE PDS PARMS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(23)=2)
(=-1 FOR WILDCARD)
(1) - APPLICATION IDENTIFIER
(2) - ENSEMBLE TYPE
(3) - ENSEMBLE IDENTIFIER
(4) - PRODUCT IDENTIFIER
(5) - SMOOTHING FLAG
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
KENS INTEGER (200) UNPACKED ENSEMBLE PDS PARMS
KPROB INTEGER (2) PROBABILITY ENSEMBLE PARMS
XPROB REAL (2) PROBABILITY ENSEMBLE PARMS
KCLUST INTEGER (16) CLUSTER ENSEMBLE PARMS
KMEMBR INTEGER (8) CLUSTER ENSEMBLE PARMS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
DO NOT engage the same logical unit from more than one processor.
GETGBH
The GETGBH routine finds a grib message.
USAGE: CALL GETGBH(LUGB,LUGI,J,JPDS,JGDS,
KG,KF,K,KPDS,KGDS,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
(ONLY USED IF LUGI=0)
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
Output arguments:
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
KF INTEGER NUMBER OF DATA POINTS IN THE MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
99 REQUEST NOT FOUND
REMARKS:
In order to unpack grib from a multiprocessing environment
where each processor is attempting to read from its own pair of
logical units, one must directly call subprogram getgbmh as below,
allocating a private copy of cbuf, nlen and nnum to each processor.
DO NOT engage the same logical unit from more than one processor.
GETGBM
The GETGBM routine finds and unpacks a grib message.
USAGE: CALL GETGBM(LUGB,LUGI,JF,J,JPDS,JGDS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KF,K,KPDS,KGDS,LB,F,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KF INTEGER NUMBER OF DATA POINTS UNPACKED
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
LB LOGICAL*1 (KF) UNPACKED BITMAP IF PRESENT
F REAL (KF) UNPACKED DATA
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF DATA POINTS GREATER THAN JF
99 REQUEST NOT FOUND
OTHER W3FI63 GRIB UNPACKER RETURN CODE
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
DO NOT engage the same logical unit from more than one processor.
GETGBMH
The GETGBMH routine finds a grib message.
USAGE: CALL GETGBMH(LUGB,LUGI,J,JPDS,JGDS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KG,KF,K,KPDS,KGDS,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
(ONLY USED IF LUGI=0)
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
KF INTEGER NUMBER OF DATA POINTS IN THE MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
99 REQUEST NOT FOUND
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
DO NOT engage the same logical unit from more than one processor.
GETGBMP
The GETGBMP routine finds a grib message.
USAGE: CALL GETGBMP(LUGB,LUGI,JG,J,JPDS,JGDS,
MBUF,CBUF,NLEN,NNUM,MNUM,
KG,K,KPDS,KGDS,G,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JG INTEGER MAXIMUM NUMBER OF BYTES IN THE GRIB MESSAGE
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR
OCTET NUMBER OF THE LIST OF NUMBERS OF POINTS
IN EACH ROW
OR
255 IF NEITHER ARE PRESENT
(21) - FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID
(22) - NUMBER OF WORDS IN EACH ROW
LATITUDE/LONGITUDE GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - DJ LATITUDINAL DIRECTION INCREMENT
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
GAUSSIAN GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF EXTREME POINT
(8) - LO(2) LONGITUDE OF EXTREME POINT
(9) - DI LONGITUDINAL DIRECTION OF INCREMENT
(10) - N - NR OF CIRCLES POLE TO EQUATOR
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - NV - NR OF VERT COORD PARAMETERS
(13) - PV - OCTET NR OF LIST OF VERT COORD PARAMETERS
OR
PL - LOCATION OF THE LIST OF NUMBERS OF POINTS IN
EACH ROW (IF NO VERT COORD PARAMETERS
ARE PRESENT
OR
255 IF NEITHER ARE PRESENT
POLAR STEREOGRAPHIC GRIDS
(2) - N(I) NR POINTS ALONG LAT CIRCLE
(3) - N(J) NR POINTS ALONG LON CIRCLE
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV GRID ORIENTATION
(8) - DX - X DIRECTION INCREMENT
(9) - DY - Y DIRECTION INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE (RIGHT ADJ COPY OF OCTET 28)
SPHERICAL HARMONIC COEFFICIENTS
(2) - J PENTAGONAL RESOLUTION PARAMETER
(3) - K " " "
(4) - M " " "
(5) - REPRESENTATION TYPE
(6) - COEFFICIENT STORAGE MODE
MERCATOR GRIDS
(2) - N(I) NR POINTS ON LATITUDE CIRCLE
(3) - N(J) NR POINTS ON LONGITUDE MERIDIAN
(4) - LA(1) LATITUDE OF ORIGIN
(5) - LO(1) LONGITUDE OF ORIGIN
(6) - RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17)
(7) - LA(2) LATITUDE OF LAST GRID POINT
(8) - LO(2) LONGITUDE OF LAST GRID POINT
(9) - LATIT - LATITUDE OF PROJECTION INTERSECTION
(10) - RESERVED
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LONGITUDINAL DIR GRID LENGTH
(13) - LATITUDINAL DIR GRID LENGTH
LAMBERT CONFORMAL GRIDS
(2) - NX NR POINTS ALONG X-AXIS
(3) - NY NR POINTS ALONG Y-AXIS
(4) - LA1 LAT OF ORIGIN (LOWER LEFT)
(5) - LO1 LON OF ORIGIN (LOWER LEFT)
(6) - RESOLUTION (RIGHT ADJ COPY OF OCTET 17)
(7) - LOV - ORIENTATION OF GRID
(8) - DX - X-DIR INCREMENT
(9) - DY - Y-DIR INCREMENT
(10) - PROJECTION CENTER FLAG
(11) - SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28)
(12) - LATIN 1 - FIRST LAT FROM POLE OF SECANT CONE INTER
(13) - LATIN 2 - SECOND LAT FROM POLE OF SECANT CONE INTER
MBUF INTEGER LENGTH OF INDEX BUFFER IN BYTES
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
(INITIALIZE BY SETTING J=-1)
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
(INITIALIZE BY SETTING J=-1)
NNUM INTEGER NUMBER OF INDEX RECORDS
(INITIALIZE BY SETTING J=-1)
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
(INITIALIZE BY SETTING J=-1)
Output arguments:
CBUF CHARACTER*1 (MBUF) INDEX BUFFER
NLEN INTEGER LENGTH OF EACH INDEX RECORD IN BYTES
NNUM INTEGER NUMBER OF INDEX RECORDS
MNUM INTEGER NUMBER OF INDEX RECORDS SKIPPED
KG INTEGER NUMBER OF BYTES IN THE GRIB MESSAGE
K INTEGER MESSAGE NUMBER UNPACKED
(CAN BE SAME AS J IN CALLING PROGRAM
IN ORDER TO FACILITATE MULTIPLE SEARCHES)
KPDS INTEGER (200) UNPACKED PDS PARAMETERS
KGDS INTEGER (200) UNPACKED GDS PARAMETERS
G CHARACTER*1 (KG) GRIB MESSAGE
IRET INTEGER RETURN CODE
0 ALL OK
96 ERROR READING INDEX FILE
97 ERROR READING GRIB FILE
98 NUMBER OF BYTES GREATER THAN JG
99 REQUEST NOT FOUND
REMARKS:
Specify an index file if feasible to increase speed.
subprogram can be called from a multiprocessing environment.
DO NOT engage the same logical unit from more than one processor.
GETGBP
The GETGBP routine finds a grib message.
USAGE: CALL GETGBP(LUGB,LUGI,JG,J,JPDS,JGDS,
KG,K,KPDS,KGDS,G,IRET)
Input arguments:
LUGB INTEGER UNIT OF THE UNBLOCKED GRIB DATA FILE
LUGI INTEGER UNIT OF THE UNBLOCKED GRIB INDEX FILE
(=0 TO GET INDEX BUFFER FROM THE GRIB FILE)
JG INTEGER MAXIMUM NUMBER OF BYTES IN THE GRIB MESSAGE
J INTEGER NUMBER OF MESSAGES TO SKIP
(=0 TO SEARCH FROM BEGINNING)
(<0 TO READ INDEX BUFFER AND SKIP -1-J MESSAGES)
JPDS INTEGER (200) PDS PARAMETERS FOR WHICH TO SEARCH
(=-1 FOR WILDCARD)
(1) - ID OF CENTER
(2) - GENERATING PROCESS ID NUMBER
(3) - GRID DEFINITION
(4) - GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8)
(5) - INDICATOR OF PARAMETER
(6) - TYPE OF LEVEL
(7) - HEIGHT/PRESSURE , ETC OF LEVEL
(8) - YEAR INCLUDING (CENTURY-1)
(9) - MONTH OF YEAR
(10) - DAY OF MONTH
(11) - HOUR OF DAY
(12) - MINUTE OF HOUR
(13) - INDICATOR OF FORECAST TIME UNIT
(14) - TIME RANGE 1
(15) - TIME RANGE 2
(16) - TIME RANGE FLAG
(17) - NUMBER INCLUDED IN AVERAGE
(18) - VERSION NR OF GRIB SPECIFICATION
(19) - VERSION NR OF PARAMETER TABLE
(20) - NR MISSING FROM AVERAGE/ACCUMULATION
(21) - CENTURY OF REFERENCE TIME OF DATA
(22) - UNITS DECIMAL SCALE FACTOR
(23) - SUBCENTER NUMBER
(24) - PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS
128 IF FORECAST FIELD ERROR
64 IF BIAS CORRECTED FCST FIELD
32 IF SMOOTHED FIELD
WARNING: CAN BE COMBINATION OF MORE THAN 1
(25) - PDS BYTE 30, NOT USED
JGDS INTEGER (200) GDS PARAMETERS FOR WHICH TO SEARCH
(ONLY SEARCHED IF JPDS(3)=255)
(=-1 FOR WILDCARD)
(1) - DATA REPRESENTATION TYPE
(19) - NUMBER OF VERTICAL COORDINATE PARAMETERS
(20) - OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE
PARAMETERS
OR