|
NCEPLIBS-w3emc
2.11.0
|
Make a complete grib message. More...
Go to the source code of this file.
Functions/Subroutines | |
| subroutine | w3nogds (ITYPE, FLD, IFLD, IBITL, IPFLAG, ID, PDS, IGFLAG, IGRID, IGDS, ICOMP, IBFLAG, IBMAP, IBLEN, IBDSFL, NPTS, KBUF, ITOT, JERR) |
| Makes a complete grib message from a user supplied array of floating point or integer data. More... | |
| subroutine w3nogds | ( | ITYPE, | |
| real, dimension(*) | FLD, | ||
| integer, dimension(*) | IFLD, | ||
| IBITL, | |||
| IPFLAG, | |||
| integer, dimension(*) | ID, | ||
| character * 1, dimension(*) | PDS, | ||
| IGFLAG, | |||
| IGRID, | |||
| integer, dimension(*) | IGDS, | ||
| ICOMP, | |||
| IBFLAG, | |||
| integer, dimension(*) | IBMAP, | ||
| IBLEN, | |||
| integer, dimension(*) | IBDSFL, | ||
| NPTS, | |||
| character * 1, dimension(*) | KBUF, | ||
| ITOT, | |||
| JERR | |||
| ) |
Makes a complete grib message from a user supplied array of floating point or integer data.
The user has the option of supplying the pds or an integer array that will be used to create a pds (with w3fi68()). The user must also supply other necessary info; see usage section below.
| Date | Programmer | Comment |
|---|---|---|
| 1997-02-24 | M. Farley | Modified w3fi72() - this routine allows for no gds (errors in w3fi71 for grib grids 21-26, 61-64 forced the need for this routine). |
| 1998-06-24 | Stephen Gilbert | Added number of gridpoint values for grids 61-64, needed when igflag=2 ( no gds ). |
| 1998-12-21 | Stephen Gilbert | Replaced function ichar with mova2i. |
| [in] | ITYPE | 0 = Floating point data supplied in array 'fld' 1 = Data supplied in array 'ifld' |
| [in] | FLD | Array of data (at proper gridpoints) to be converted to grib format if itype=0. see remarks #1 & 2. |
| [in] | IFLD | Array of data (at proper gridpoints) to be converted to grib format if itype=1. see remarks #1 & 2. |
| [in] | IBITL | 0 = Computer computes length for packing data from power of 2 (number of bits) best fit of data using 'variable' bit packer w3fi58. 8, 12, etc. computer rescales data to fit into that 'fixed' number of bits using w3fi59. see remarks #3. |
| [in] | IPFLAG | 0 = Make pds from user supplied array (id) 1 = user supplying pds note: if pds is greater than 30, use iplfag=1. the user could call w3fi68 before he calls w3nogds. this would make the first 30 bytes of the pds, user then would make bytes after 30. |
| [in] | ID | Array of values that w3fi68 will use to make an edition 1 pds if ipflag=0. (see the docblock for w3fi68 for layout of array) |
| [in] | PDS | Array of values (valid pds supplied by user) if ipflag=1. length may exceed 28 bytes (contents of bytes beyond 28 are passed through unchanged). |
| [in] | IGFLAG | 0 = Make gds based on 'igrid' value. 1 = make gds from user supplied info in 'igds' and 'igrid' value. see remarks #4. 2 = no gds will be included...for international grids *** this is an exception to remarks #4!!!! |
| [in] | IGRID | # = Grid identification (table b) 255 = if user defined grid; igds must be supplied and igflag must =1. |
| [in] | IGDS | Array containing user gds info (same format as supplied by w3fi71 - see dockblock for layout) if igflag=1. |
| [in] | ICOMP | Resolution and component flag for bit 5 of gds(17) 0 = earth oriented winds 1 = grid oriented winds |
| [in] | IBFLAG | 0 = Make bit map from user supplied data
|
| [in] | IBMAP | Array containing bit map |
| [in] | IBLEN | Length of bit map will be used to verify length of field (error if it doesn't match). |
| [in] | IBDSFL | Array containing table 11 flag info bds octet 4: (1) 0 = grid point data 1 = spherical harmonic coefficients (2) 0 = simple packing 1 = second order packing (3) ... same value as 'itype' 0 = original data were floating point values 1 = original data were integer values (4) 0 = no additional flags at octet 14 1 = octet 14 contains flag bits 5-12 (5) 0 = reserved - always set to 0 byte 6 option 1 not available (as of 5-16-93) (6) 0 = single datum at each grid point 1 = matrix of values at each grid point byte 7 option 0 with second order packing n/a (as of 5-16-93) (7) 0 = no secondary bit maps 1 = secondary bit maps present (8) 0 = second order values have constant width 1 = second order values have different widths |
| [out] | NPTS | Number of gridpoints in array fld or ifld |
| [out] | KBUF | Entire grib message ('grib' to '7777') equivalence to integer array to make sure it is on word bounary. |
| [out] | ITOT | Total length of grib message in bytes |
| [out] | JERR | =:
|