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.
W3lib.tar |
Library contains Fortran 90 decoder/encoder
routines for GRIB edition 1. (Fortran90)
Date posted: 2/22/2007 |