W3FI64
The W3FI64 routine unpacks an array of upper-air reports that are
packed in the format described by nmc Office Note 29,
or unpacks an array of surface reports that are packed
in the format described by NMC Office Note 124.
USAGE: CALL W3FI64(COCBUF,LOCRPT,NEXT)
Input argument list:
COCBUF - CHARACTER*10 ARRAY CONTAINING A BLOCK OF PACKED
- REPORTS IN NMC OFFICE NOTE 29/124 FORMAT.
NEXT - MARKER INDICATING RELATIVE LOCATION (IN BYTES) OF
- END OF LAST REPORT IN COCBUF. EXCEPTION: NEXT MUST
- BE SET TO ZERO PRIOR TO UNPACKING THE FIRST REPORT OF
- A NEW BLOCK OF REPORTS. SUBSEQUENTLY, THE VALUE OF
- NEXT RETURNED BY THE PREVIOUS CALL TO W3FI64 SHOULD
- BE USED AS INPUT. (SEE OUTPUT ARGUMENT LIST BELOW.)
- IF NEXT IS NEGATIVE, W3FI64 WILL RETURN IMMEDIATELY
- WITHOUT ACTION.
Output argument list:
LOCRPT - ARRAY CONTAINING ONE UNPACKED REPORT WITH POINTERS
- AND COUNTERS TO DIRECT THE USER. LOCRPT MUST BEGIN
- ON A FULLWORD BOUNDARY. FORMAT IS MIXED, USER MUST
- EQUIVALENCE REAL AND CHARACTER ARRAYS TO THIS ARRAY
- (SEE BELOW AND REMARKS FOR CONTENT).
***************************************************************
WORD CONTENT UNIT FORMAT
---- ---------------------- ------------------- ---------
1 LATITUDE 0.01 DEGREES REAL
2 LONGITUDE 0.01 DEGREES WEST REAL
3 UNUSED
4 OBSERVATION TIME 0.01 HOURS (UTC) REAL
5 RESERVED (3RD BYTE IS 4-CHARACTERS CHAR*8
ON29 "25'TH CHAR.; 4TH LEFT-JUSTIFIED
BYTE IS ON29 "26'TH
CHAR." (SEE ON29)
6 RESERVED (3RD BYTE IS 3-CHARACTERS CHAR*8
ON29 "27'TH CHAR. (SEE LEFT-JUSTIFIED
ON29)
7 STATION ELEVATION METERS REAL
8 INSTRUMENT TYPE ON29 TABLE R.2 INTEGER
9 REPORT TYPE ON29 TABLE R.1 OR INTEGER
ON124 TABLE S.3
10 UNUNSED
11 STN. ID. (FIRST 4 CHAR.) 4-CHARACTERS CHAR*8
LEFT-JUSTIFIED
12 STN. ID. (LAST 2 CHAR.) 2-CHARACTERS CHAR*8
LEFT-JUSTIFIED
13 CATEGORY 1, NO. LEVELS COUNT INTEGER
14 CATEGORY 1, DATA INDEX COUNT INTEGER
15 CATEGORY 2, NO. LEVELS COUNT INTEGER
16 CATEGORY 2, DATA INDEX COUNT INTEGER
17 CATEGORY 3, NO. LEVELS COUNT INTEGER
18 CATEGORY 3, DATA INDEX COUNT INTEGER
19 CATEGORY 4, NO. LEVELS COUNT INTEGER
20 CATEGORY 4, DATA INDEX COUNT INTEGER
21 CATEGORY 5, NO. LEVELS COUNT INTEGER
22 CATEGORY 5, DATA INDEX COUNT INTEGER
23 CATEGORY 6, NO. LEVELS COUNT INTEGER
24 CATEGORY 6, DATA INDEX COUNT INTEGER
25 CATEGORY 7, NO. LEVELS COUNT INTEGER
26 CATEGORY 7, DATA INDEX COUNT INTEGER
27 CATEGORY 8, NO. LEVELS COUNT INTEGER
28 CATEGORY 8, DATA INDEX COUNT INTEGER
29 CATEGORY 51, NO. LEVELS COUNT INTEGER
30 CATEGORY 51, DATA INDEX COUNT INTEGER
31 CATEGORY 52, NO. LEVELS COUNT INTEGER
32 CATEGORY 52, DATA INDEX COUNT INTEGER
33 CATEGORY 9, NO. LEVELS COUNT INTEGER
34 CATEGORY 9, DATA INDEX COUNT INTEGER
35-42 ZEROED OUT - NOT USED INTEGER
43-END UNPACKED DATA GROUPS (SEE REMARKS) MIXED
***************************************************************
NEXT - MARKER INDICATING RELATIVE LOCATION (IN BYTES)
- OF END OF CURRENT REPORT IN COCBUF. NEXT WILL BE
- SET TO -1 IF W3FI64 ENCOUNTERS STRING 'END RECORD'
- IN PLACE OF THE NEXT REPORT. THIS IS THE END OF THE
- BLOCK. NO UNPACKING TAKES PLACE. NEXT IS SET TO-2
- WHEN INTERNAL (LOGIC) ERRORS HAVE BEEN DETECTED.
- NEXT IS SET TO -3 WHEN DATA COUNT CHECK FAILS. IN
- BOTH OF THE LATTER CASES SOME DATA (E.G., HEADER
- INFORMATION) MAY BE UNPACKED INTO LOCRPT.
Output files:
FT06F001 - PRINTOUT
REMARKS:
After first reading and processing the Office Note 85
(first) date record, the user's FORTRAN program begins a read
loop as follows.. for each iteration a blocked input report is
read into array cocbuf. Now test the first ten characters in
cocbuf for the string 'endof file' (SIC). This string signals
the end of input. Otherwise, set the marker 'next' to zero and
begin the unpacking loop.
Each iteration of the unpacking loop consists of a call to
w3fi64 with the current value of 'next'. If 'next' is -1 upon
returning from w3fi64, it has reached the end of the input
record, and the user's program should read the next record as
above. If 'next' is -2 or -3 upon returning, there is a grievous
error in the current packed input record, and the user's program
should print it for examination by automation division personnel.
If 'next' is positive, the output structure locrpt contains
an unpacked report, and the user's program should process it at
this point, subsequently repeating the unpacking loop.
W3lib.tar |
Library contains Fortran 90 decoder/encoder
routines for GRIB edition 1. (Fortran90)
Date posted: 2/22/2007 |