GDGRIB2 computes a scalar diagnostic grid and adds it to a
GRIB2 file.

INPUT PARAMETERS
 
    GDFILE    Grid file
    GBFILE    GRIB data file name
    GFUNC     Scalar grid
    GDATTIM   Grid date/time
    GLEVEL    Grid level
    GVCORD    Grid vertical coordinate
    PROJ      Map projection/angles/margins|drop flag
    GRDAREA   Area covered by grid
    KXKY      Number of grid points in x;y
    CPYFIL    Grid file whose navigation is to be used in new grid file | subare
    G2TBLS    Input GRIB2 decoding tables
    G2IS      Info for GRIB2 Section 0 (Indicator Section)
    G2IDS     Info for GRIB2 Section 1 (Identification Section)
    G2PDT     Info for GRIB2 Section 4 (Product Definition Section)
    G2DRT     Packing/scaling info for GRIB2 Section 5 (Data Representation Sect
    WMOHDR    WMO_ID/Origin_ID/DDHHMM
 
 

PROGRAM DESCRIPTION
 
    GDGRIB2 computes a diagnostic grid and saves the result in
    a GRIB2 file.

    The input grids for the computation must be in GDFILE.  The
    resulting GRIB message is added to the output file, GBFILE.
    If GBFILE does not exist, it will be created.

    The parameters G2IS, G2IDS, and G2PDT allow control over how the
    grid is identified in the Indicator Section (IS), Identification Section
    (IDS), and the Product Definition Section (PDS) of the GRIB2 message,
    respectively.

    The G2DRT parameter allows the user to specify the packing algorithm
    used to encode the grid point data as well as the precision of the data
    to maintain.  The desired precision can be specified either in terms
    of binary precision with rounding to the nearest power of two or
    decimal precision in terms of the number of significant digits to preserve.

    A World Meteorological Organization (WMO) header may be
    prefixed to the GRIB message by giving at least the first
    six bytes of the header in the WMOHDR input parameter.
    Default values will be supplied for the originating center
    (KWBC) and reference time.

    GDGRIB2 will interpolate scalar fields horizontally to a
    different output grid.  The navigation for the output grid is
    specified using CPYFIL (see below) or by setting the PROJ,
    GRDAREA, and KXKY parameters.  The Grid Description Section
    (GDS) in the GRIB message will represent this navigation.

    Do not attempt to interpolate grid-relative vector components
    to another grid because this requires a rotation of a vector,
    which cannot be done without both vector components and is
    beyond the capability of the current version of GDGRIB2.  North-
    relative components may be interpolated.  Wind direction should
    NOT be interpolated in any case.

    The output grid navigation can be specified with the CPYFIL parameter.
    CPYFIL may be set to the name of a GEMPAK grid file (other than the
    file specified in GDFILE), in which case the output grid is
    interpolated to the grid whose navigation is defined in the
    GEMPAK grid file.  If CPYFIL is set to #NNN, grid number NNN is found
    in grdnav.tbl, and that specification is used as the output navigation.

    The CPYFIL parameter supersedes PROJ, GRDAREA, and KXKY input.
    If CPYFIL is valid, PROJ, GRDAREA, and KXKY are ignored.  If
    CPYFIL is not set, PROJ, GRDAREA, and KXKY will be used if they
    are valid.

    G2TBLS allows for specification of the GRIB2 decoding tables.
    The defaults are:

	$GEMTBL/grid/g2varswmoX.tbl,
	$GEMTBL/grid/g2varsYYYYZ.tbl,
	$GEMTBL/grid/g2vcrdwmoX.tbl,
	$GEMTBL/grid/g2vcrdYYYYZ.tbl,
	$GEMTBL/grid/wmocenter.tbl

    where X is replaced by the master table version number, which can be
    specified in G2IDS (default is 2).  YYYY and Z (can also be specified
    in parameter G2IDS) define the originating center and local tables
    version, respectively.  The defaults are YYYY = "ncep" and Z = 1.

 
EXAMPLES
 
    1.  Compute the average absolute vorticity of the 250- and 300-
        mb wind for the 24-h forecast.  Assign this to the 275-mb
        level in the GRIB message PDT.  Also assign the appropriate
        parameter number for absolute vorticity (AVOR).  Use decimal
        precision to pack the data so as to preserve 4 decimal
        significant digits.  Specify that the data source is from a
        high resolution eta model run (generating process 110 in PDT)
        diagnosed at the Storm Prediction Center (sub-center
        number 9 in IDS).  Interpolate the grid to standard AWIPS grid
        212, without using CPYFIL.  Do not make a WMO header.  The output
        is written to file hrcbob.pgrb2.

        GDFILE   = $GEMDATA/hrcbob.grd
        GBFILE   = hrcbob.pgrb2
        GFUNC    = avg(avor(wind@300),avor(wind@250))
        GDATTIM  = f24
        GLEVEL   = 300
        GVCORD   = pres
        PROJ     = lcc/25;-95;25
        GRDAREA  = 12.190;-133.459;57.290;-49.385
        KXKY     = 185;129
	CPYFIL   =
        G2TBLS   =
        G2IS     =
        G2IDS    = ;9
        G2PDT    = 0|2;10;;;110;;;;;100;0;27500;255;0;0
        G2DRT    = |4
        WMOHDR   =

    2.  Transfer the 24-h forecast of the 500-mb temperature grid
        into a GRIB2 file.  Use binary precision to pack the data
        to the nearest 1/8 K.  The output GRIB message is to be
        added to existing file hrcbob.pgrb2.  Accept default
        entries for the IDS and PDS, with the parameter number coming from
        a specific lookup table (g2varswmo2.tbl) in $GEMTBL.  Also,
        add the WMO header for 500-mb temperature destined for
        Family of Services, and interpolate to grid 212 using CPYFIL.

        GDFILE   = $GEMDATA/hrcbob.grd
        GBFILE   = hrcbob.pgrb2
        GFUNC    = tmpk
        GDATTIM  = f24
        GLEVEL   = 500
        GVCORD   = pres
        PROJ     =
        GRDAREA  =
        KXKY     =
	CPYFIL   = #212
        G2TBLS   = g2varswmo2.tbl
        G2IS     =
        G2IDS    =
        G2PDT    =
        G2DRT    = ||-3
        WMOHDR   = HTRE50

    3.  Transfer the tropopause temperature from a 24-h model forecast
        into a GRIB file. Reassign the parameter and the vertical
        coordinate name properly to treat this as a tropopause
        temperature.  Use the default parameter lookup table for
        the GRIB parameter (TMPK) identification number.  Use the
        vertical coordinate table named g2vcrdwmo2.tbl in $GEMTBL to
        lookup the vertical coordinate identification number.  Do not
        do horizontal interpolation.  Since hrcbob.grd data is
        already on grid #6, GDGRIB will detect this and not do
        interpolation.  Pack grid points using first order differencing.

        GDFILE   = $GEMDATA/hrcbob.grd
        GBFILE   = tmpk_trop.grb2
        GFUNC    = tmpktpps
        GDATTIM  = f24
        GLEVEL   = 0
        GVCORD   = none
        PROJ     =
        GRDAREA  =
        KXKY     =
	CPYFIL   = #6
        G2TBLS   = ;;g2vcrdwmo2.tbl
        G2IS     =
        G2IDS    =
        G2PDT    = 0|0;0;;;;;;;;7;0;0;255;0;0
        G2DRT    = 3||-3
        WMOHDR   =

    4.  Transfer the 12-hour precipitation at forecast hour 18 to
        a GRIB file.  Specifically denote the generating process
        identifier as 84.  Interpolate to 1- by 1-degree resolution
        global grid #3.  Note that many points on this grid will
        have missing values.  Pack the grid to a precision of 1/4
        millimeter using second order differencing.

        GDFILE	= $GEMDATA/hrcbob.grd
        GBFILE	= p12m.grb2
        GFUNC	= p12m
        GDATTIM	= f18
        GLEVEL	= 0
        GVCORD	= none
        PROJ	=
        GRDAREA	=
        KXKY	=
        CPYFIL	= #3
        G2TBLS	=
        G2IS    =
        G2IDS   =
        G2PDT   = 8|;;;;84
        G2DRT   = 3||-2|2
        WMOHDR	=

    5.  Compute an "off-time" 6-hour precipitation amount using the
        average of two accumulations.  Identify the precip grid as a 6 hour
        accumulation ending at 21 hours after the initial reference time.
        Interpolate to grid 215.  Use the default packing algorithm and
        precision.

        GDFILE	= $GEMDATA/hrcbob.grd
        GBFILE	= p06m.grb2
        GFUNC	= avg(P06M^F24,P06M^F18)
        GDATTIM	= f18
        GLEVEL	= 0
        GVCORD	= none
        PROJ	=
        GRDAREA	=
        KXKY	=
        CPYFIL	= #215
        G2TBLS	=
        G2IS    =
        G2IDS   =
        PDSVAL	= P06M^19910819/0000F21
        G2PDT   = 8|1;8;;;;;;1;15;1;0;0;255;0;0;1991;8;19;21;0;0;1;0;1;255;1;6
        G2DRT   =
        WMOHDR	=

    6.  Transfer the 12-hour forecast of the 850-mb grid-relative
        U-wind component to a GRIB file.  Pack the data to the
        nearest 1/8 m/s using PNG encoding.  DO NOT INTERPOLATE!

        GDFILE	= $GEMDATA/hrcbob.grd
        GBFILE	= wind1.grb2
        GFUNC	= urel
        GDATTIM	= f12
        GLEVEL	= 850
        GVCORD	= pres
        PROJ	=
        GRDAREA	=
        KXKY	=
        CPYFIL	=
        G2TBLS	=
        G2IS    =
        G2IDS   =
        G2PDT   =
        G2DRT   = 41||-3
        WMOHDR	=

    7.  Complete the transfer of the 850-mb wind by transfering
        the grid-relative V-wind component.

        GDFILE	= $GEMDATA/hrcbob.grd
        GBFILE	= wind1.grb2
        GFUNC	= vrel
        GDATTIM	= f12
        GLEVEL	= 850
        GVCORD	= pres
        PROJ	=
        GRDAREA	=
        KXKY	=
        CPYFIL	=
        G2TBLS	=
        G2IS    =
        G2IDS   =
        G2PDT   =
        G2DRT   = 41||-3
        WMOHDR	=

ERROR MESSAGES
 
    [GDGRIB2  -1]   Fatal error initializing TAE.
    [GDGRIB2  -2]   Fatal error reading TAE parameters.
    [GDGRIB2  -3]   Error initializing GEMPLT.
    [GDGRIB2  -4]   Grid file could not be opened.
    [GDGRIB2  -6]   Grid diagnostics package initialization failed.
    [GDGRIB2  -9]  First 6 characters of WMO header must be given.
    [GDGRIB2 -11]   Invalid grid navigation set in PROJ.
    [GDGRIB2 -12]   Invalid grid area set in GRDAREA or CPYFIL.
    [GDGRIB2 -13]   Invalid grid size.
    [GDGRIB2 -16]   Cannot set output grid navigation.
    [GDGRIB2 -17]   Cannot set input grid navigation.
    [GDGRIB2 -18]   Invalid horizontal interpolation type.
    [GDGRIB2 -19]   CPYFIL entry is not valid.SAG
    [GDGRIB2 -20]   Could not process GDATTIM information
    [GDGRIB2 -21]   Could not get next Date/Time stamp.
    [GDGRIB2 -22]   Could not get requested grid
    [GDGRIB2 -23]   Could not allocate space for grid.
    [GDGRIB2 -24]   Could not open output GRIB file.
    [GDGRIB2 -25]   Error writing to output GRIB file.
    [GDGRIB2 -26]   Could not allocate space for GRIB2 message.
    [GDGRIB2 -27]   Error encoding GRIB2 message.
    [GDGRIB2 -28]   Output GRIB file (GBFILE) not specified.
    [GDGRIB2 -29]   Invalid G2PDT parameter.
    [GDGRIB2 -30]   Could not read grid in CPYFIL from grdnav.tbl
    [GDGRIB2 -31]   Could not open grid file specified in CPYFIL.
    [GDGRIB2 -32]   Error setting output grid navigation
    [GDGRIB2 -33]   Error creating navigation block from PROJ, KXKY, GRDAREA
