[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 20040506: netCDF Decoders - Sun UNIX - CDLs



Beth,

I was in meetings all yesterday afternoon, ugh...

Anyway here the setup need to get the CONDUIT feed for the one degree
grid. At first it might be easier to get the raw files then set up a pqact
entry to decode the one degree.

For the ldmd.conf file add lines: like:

exec    "pqact -f CONDUIT|SPARE /opt/ldm/etc/pqact.conduit"
request CONDUIT "MT.avn_CY" <upstream LDM node>

Then make a file etc/pqact.conduit with the entry:

NMC2    ^/afs/.nwstg.nws.noaa.gov/ftp/(.*) !(.*)/(.*)/(.*)/(#.*)/(.*)/(.*)/(.*)/
(.*)!
        FILE    -close  data/pub/raw/conduit/\1/\2_\3_\4_\5_\6_\7_\8_\9

This should make a file structure similar too:

/local/ldm/data/pub/raw/conduit/SL.us008001/ST.opnl/MT.avn_CY.12/RD.20040528/PT.
grid_DF.gr1/fh.0012_tl.press_gr.onedeg

% cd to that dir
Then you could decode the data:

grib_ncep_AVN_#003_200405281200_F012_U-GWD_sfc

If you do a notifyme the results should look like:

% notifyme -vl - -f CONDUIT -p "MT.avn_CY" -o 3600000

May 28 15:23:19 notifyme[25675]:   130404 20040528152311.874 CONDUIT 231
/afs/.
nwstg.nws.noaa.gov/ftp/SL.us008001/ST.opnl/MT.avn_CY.12/RD.20040528/PT.grid_DF.g
r1/fh.0000_tl.press_gr.onedeg
!grib/ncep/SPEC_SSI_AVN/#003/200405281200/F000/PRES/tropopause! 000231

If you want to directly decode the data, put a pqact entry in pqact.conduit

NMC2    ^/afs/.nwstg.nws.noaa.gov/ftp/MT.avn_CY.(..)/RD.(........)
        PIPE    decoders/gribtonc etc/gfs-1.0x1.0_3.cdl
        data/decoded/netcdf/GRIB/\2\1_/gfs-1.0x1.0.nc

I haven't checked out the entry, could be an error. You could modify the
entry to only decode certain products. Some of the products are missing
from the gfs-1.0x1.0_3.cdl, you could run gribtocdl to find them and then
add them to gfs-1.0x1.0_3.cdl.  If you make a complete cdl, I would like
to have it for the distribution.

Thanks,
Robb...



On Mon, 24 May 2004, Beth Hall wrote:

> Robb --
>
> Thanks for the quick reply.  Yes, the 211 grid has constant coordinates,
> but not in the latitude/longitude coordinate system.  The Dx and Dy are
> not in degrees, but ground/kilometer distance.  Therefore, I am looking
> for what the lat/lon coordinate is at each constant kilometer distance.
> Even the corner lat/lon coordinates you provided indicate that there is
> not a constant _degree_ Dx or Dy.
>
> On a slightly separate note, we are really interested in the 1-degree
> GFS forecasts (we are currently downloading them daily from the ftp site)
> through the Unidata feed.  In a past email, you said that the 1-degree
> grids are only available through the CONDUIT and not the NOAA port.  So,
> how do we get the CONDUIT?  Why isn't it available through the NOAA port,
> if I can ftp the data?
>
> Thanks for all of your help,
> Beth
>
> On Mon, 24 May 2004, Robb Kambic wrote:
>
> > On Fri, 21 May 2004, Beth Hall wrote:
> >
> > > Robb --
> > >
> > > Thanks for the advice on the CDL's.  You mentioned how to use most of the
> > > CDL's except for the gfs_211.cdl.  This one is of most interest to me
> > > since it seems to be for a much higher resolution (80 km) than the others
> > > and still shows the forecast data.  However, I'm having a hard time
> > > knowing what the actual lat/lon coordinates are for this 80 km grid.  Is
> >
> > Beth,
> >
> > The coordinates are constant.
> >
> > Lat/lon values of the corners of the grid
> > (1,1)       12.190N, 133.459W
> > (1,65)      54.536N, 152.856W
> > (93,65)     57.290N, 49.385W
> > (93,1)      14.335N, 65.091W
> >
> > Here's the basic info on all the grids at:
> >
> > http://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html
> >
> > Actually http://www.nco.ncep.noaa.gov/pmb/docs/on388 give the details of
> > parameters, etc too.
> >
> > Other info:
> >
> > http://www.nco.ncep.noaa.gov/pmb/docs/headers/awpgfs/#TABLEGP
> >
> >
> > Robb....
> >
> > > this, perhaps a separate file that would specify this information, for I
> > > don't think I need it for every dataset I want to use -- it should stay
> > > fairly constant, right??
> > >
> > > Thanks,
> > > Beth Hall
> > >
> > > On Fri, 7 May 2004, Robb Kambic wrote:
> > >
> > > > On Thu, 6 May 2004, Unidata Support wrote:
> > > >
> > > > >
> > > > > ------- Forwarded Message
> > > > >
> > > > > >To: address@hidden
> > > > > >From: "Beth Hall" <address@hidden>
> > > > > >Subject: netCDF Decoders - Sun UNIX - CDLs
> > > > > >Organization: DRI
> > > > > >Keywords: 200405070023.i470NhxJ020678 netCDF decoders gribtonc CDL
> > > > >
> > > > > Institution: Desert Research Insitute
> > > > > Package Version: decoders-3.0.3
> > > > > Operating System: Sun UNIX
> > > > > Hardware Information: Sun
> > > > > Inquiry: I'm trying to access data from the ldm feed, partiticularly
> > > > > the GFS data.  I feel very lost, but finally found the gribtonc
> > > > > command.  I originally used the gfs_211.cdl file, but it gave me no
> > > > > lat/lon coordinates, just x and y.
> > > >
> > > > Beth,
> > > >
> > > > No lat/lon are given because of rounding errors, no accurate values. The
> > > > lat/lon are mainly for human information.
> > > >
> > > >
> > > >
> > > > With this cdl, the ncdump -h said
> > > > > there were 21 records (I'm assuming this refers to the forecasts,
> > > > > themselves).
> > > >
> > > > Your correct the records are for forcast times:
> > > >
> > > >  valtime_offset = 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78,
> > > > 84, 90, 96, 102, 108, 114, 120 ;
> > > >
> > > >
> > > >  I did some web searching and found that there were other
> > > > > CDLs including a 1 degree CDL.
> > > >
> > > > The 1 degree grids are only on the CONDUIT feed, not the standard 
> > > > NOAAPORT
> > > > feed.
> > > >
> > > >
> > > >   I tried it along with the
> > > > > gfs_21-24.cdl, gfs_25-26.cdl, and the gfs_37-44.cdl.  Several of those
> > > > > actually have the lat/lon coordinate information, but now show 0
> > > > > records (no forecast data?).
> > > >
> > > > Maybe you don't have the correct pqact entries, here's the ones we are
> > > > using. Remember the white spaces are tabs between the parts of the
> > > > entries.
> > > >
> > > > # GFS model on global 5.0 x 2.5 degree grids
> > > > HRS     ^H.[A-D]... .... (..)(..).*/m(SPEC62MRF|MRF)
> > > >         PIPE    /usr/local/ldm/decoders/gribtonc
> > > >         etc/gfs_21-24.cdl
> > > >         data/pub/decoded/netcdf/GRIB/(\1:yyyy)(\1:mm)\1\2_gfs_21-24.nc
> > > >
> > > > # GFS model on global 5.0 x 5.0 degree grid
> > > > HRS     ^H.[EF]... KWB. (..)(..)
> > > >         PIPE    /usr/local/ldm/decoders/gribtonc
> > > >         etc/gfs_25-26.cdl
> > > >         data/pub/decoded/netcdf/GRIB/(\1:yyyy)(\1:mm)\1\2_gfs_25-26.nc
> > > >
> > > >
> > > > # GFS model on thinned grids, interpolated to global 5.0 x 2.5 regular
> > > > grid
> > > > HRS     ^H.[I-P]... KWB. (..)(..).*(/mAVN|/mSSIAVN)
> > > >         PIPE    /usr/local/ldm/decoders/gribtonc
> > > >         -q "lin,dlat=2.5,dlon=5.0" etc/gfs_37-44.cdl
> > > >         data/pub/decoded/netcdf/GRIB/(\1:yyyy)(\1:mm)\1\2_gfs_37-44.nc
> > > >
> > > > I know the data must be there, but clearly
> > > > > don't understand what these different CDLs are doing, which one I
> > > >
> > > > The cdl file are templates for making the NetCDF files, the number
> > > > designation at the end of the cdl refers to the grib sections ie 21-24
> > > > that are stitched together to form the whole grib file.
> > > >
> > > > Robb...
> > > >
> > > > > should use, and which ones give me the lat/lon coordinate information.
> > > > > Can you help?  Thanks.
> > > > >
> > > > > --
> > > > > NOTE: All email exchanges with Unidata User Support are recorded in 
> > > > > the
> > > > > Unidata inquiry tracking system and then made publically available
> > > > > through the web.  If you do not want to have your interactions made
> > > > > available in this way, you must let us know in each email you send to 
> > > > > us.
> > > > >
> > > > > ------- End of Forwarded Message
> > > > >
> > > >
> > > > ===============================================================================
> > > > Robb Kambic                                Unidata Program Center
> > > > Software Engineer III                      Univ. Corp for Atmospheric 
> > > > Research
> > > > address@hidden             WWW: http://www.unidata.ucar.edu/
> > > > ===============================================================================
> > > >
> > >
> >
> > ===============================================================================
> > Robb Kambic                            Unidata Program Center
> > Software Engineer III                          Univ. Corp for Atmospheric 
> > Research
> > address@hidden                 WWW: http://www.unidata.ucar.edu/
> > ===============================================================================
> >
>

===============================================================================
Robb Kambic                                Unidata Program Center
Software Engineer III                      Univ. Corp for Atmospheric Research
address@hidden             WWW: http://www.unidata.ucar.edu/
===============================================================================
netcdf gfs {  // GFS 1 degree grid


dimensions:
        record = UNLIMITED ;   // (reference time, forecast time)
        lat = 181 ;            // latitude
        lon = 360 ;            // longitude
        level = 26 ;           // isobaric levels
        lpdg = 2 ;              // layer between levels at specif. pressure 
diffs from ground
        fh = 3 ;              // fixed height level
        sigma = 1 ;              // sigma level
        ls = 4 ;              // layer between 2 sigma levels
        lbls = 2 ;              // layer between 2 depths below land surface
        fhg = 2 ;              // fixed height above ground
        time_len = 21 ;        // string length for datetime strings
        valtime_offset = 4 ;   // number of offset times
        nmodels = 1 ;          // number of models
        ngrids = 1 ;           // number of grids
        nav = 1 ;              // for navigation
        nav_len = 100 ;        // max string length for navigation strings

variables:

        double reftime(record) ;        // reference time of the model
               reftime:long_name = "reference time" ;
               reftime:units = "hours since 1992-1-1" ;

        double valtime(record) ;        // forecast time ("valid" time)
               valtime:long_name = "valid time" ;
               valtime:units = "hours since 1992-1-1" ;

        :record = "reftime, valtime" ;  // "dimension attribute" -- means
                                        // (reftime, valtime) uniquely
                                        // determine record

        char   datetime(record, time_len) ; // derived from reftime
               datetime:long_name = "reference date and time" ;
               // units YYYY-MM-DD hh:mm:ssZ  (ISO 8601)

        double valtime_offset(valtime_offset) ; // valtime - reftime
               valtime_offset:long_name = "hours from reference time" ;
               valtime_offset:units = "hours" ;

        char   forecasttime(record, time_len) ; // derived from valtime
               forecasttime:long_name = "forecast date and time" ;
               // units YYYY-MM-DD hh:mm:ssZ  (ISO 8601)

        float  level(level) ;
               level:long_name = "isobaric level" ;
               level:units = "hectopascals" ;

        :lpdg = "lpdg_bot, lpdg_top" ; // ("lpdg_bot, lpdg_top") uniquely
                                       // determines lpdg

        float  lpdg_bot(lpdg) ;
               lpdg_bot:long_name = "bottom level of layer between levels at 
specif. pressure diffs from ground " ;
               lpdg_bot:units = "hPa" ;

        float  lpdg_top(lpdg) ;
               lpdg_top:long_name = "top level of layer between levels at 
specif. pressure diffs from ground " ;
               lpdg_top:units = "hPa" ;

        float  fh(fh) ;
               fh:long_name = "fixed height level" ;
               fh:units = "meters" ;

        float  sigma(sigma) ;
               sigma:long_name = "sigma level" ;
               sigma:units = ".0001" ;

        :ls = "ls_bot, ls_top" ; // ("ls_bot, ls_top") uniquely
                                       // determines ls

        float  ls_bot(ls) ;
               ls_bot:long_name = "bottom level of layer between 2 sigma levels 
" ;
               ls_bot:units = ".01" ;

        float  ls_top(ls) ;
               ls_top:long_name = "top level of layer between 2 sigma levels " ;
               ls_top:units = ".01" ;

        :lbls = "lbls_bot, lbls_top" ; // ("lbls_bot, lbls_top") uniquely
                                       // determines lbls

        float  lbls_bot(lbls) ;
               lbls_bot:long_name = "bottom level of layer between 2 depths 
below land surface " ;
               lbls_bot:units = "cm" ;

        float  lbls_top(lbls) ;
               lbls_top:long_name = "top level of layer between 2 depths below 
land surface " ;
               lbls_top:units = "cm" ;

        float  fhg(fhg) ;
               fhg:long_name = "fixed height above ground" ;
               fhg:units = "meters" ;


        // The following lat and lon coordinate variables are redundant,
        // since the navigation variables provide the necessary information.
        // The extra information is included here for human readability.

        float  lat(lat) ;
               lat:long_name = "latitude" ;
               lat:units = "degrees_north" ;

        float  lon(lon) ;
               lon:long_name = "longitude" ;
               lon:units = "degrees_east" ;

        long   model_id(nmodels) ;
               model_id:long_name = "generating process ID number" ;

        // navigation variables all use nav dimension

        char   nav_model(nav, nav_len) ;        // navigation parameterization
               nav_model:long_name = "navigation model name" ;

        int    grid_type_code(nav) ;
               grid_type_code:long_name = "GRIB-1 GDS data representation type" 
;

        char   grid_type(nav, nav_len) ;
               grid_type:long_name = "GRIB-1 grid type" ;

        char   grid_name(nav, nav_len) ;
               grid_name:long_name = "grid name" ;

        int    grid_center(nav) ;
               grid_center:long_name = "GRIB-1 originating center ID" ;

        int    grid_number(nav, ngrids) ;
               grid_number:long_name = "GRIB-1 catalogued grid numbers" ;
               grid_number:_FillValue = -9999 ;

        char   i_dim(nav, nav_len) ;
               i_dim:long_name = "longitude dimension name" ;

        char   j_dim(nav, nav_len) ;
               j_dim:long_name = "latitude dimension name" ;

        int    Ni(nav) ;
               Ni:long_name = "number of points along a latitude circle" ;

        int    Nj(nav) ;
               Nj:long_name = "number of points along a longitude circle" ;

        float  La1(nav) ;
               La1:long_name = "latitude of first grid point" ;
               La1:units = "degrees_north" ;

        float  Lo1(nav) ;
               Lo1:long_name = "longitude of first grid point" ;
               Lo1:units = "degrees_east" ;

        float  La2(nav) ;
               La2:long_name = "latitude of last grid point" ;
               La2:units = "degrees_north" ;

        float  Lo2(nav) ;
               Lo2:long_name = "longitude of last grid point" ;
               Lo2:units = "degrees_east" ;

        float  Di(nav) ;
               Di:long_name = "longitudinal direction increment" ;
               Di:units = "degrees" ;

        float  Dj(nav) ;
               Dj:long_name = "latitudinal direction increment" ;
               Dj:units = "degrees" ;

        byte   ResCompFlag(nav) ;
               ResCompFlag:long_name = "resolution and component flags" ;

        // end of navigation variables

        float  Z(record,level,lat,lon) ;
               Z:long_name = "Geopotential height at isobaric levels" ;
               Z:GRIB_parameter_number = 7 ;
               Z:GRIB_level_flag = 100 ;
               Z:units = "gp m" ;
               Z:_FillValue = -9999.f ;
               Z:navigation = "nav" ;

        float  Z_sfc(lat,lon) ;
               Z_sfc:long_name = "Geopotential height at surface of the earth" ;
               Z_sfc:GRIB_parameter_number = 7 ;
               Z_sfc:GRIB_level_flag = 1 ;
               Z_sfc:units = "gp m" ;
               Z_sfc:_FillValue = -9999.f ;
               Z_sfc:navigation = "nav" ;

        float  Z_trop(record,lat,lon) ;
               Z_trop:long_name = "Geopotential height at tropopause" ;
               Z_trop:GRIB_parameter_number = 7 ;
               Z_trop:GRIB_level_flag = 7 ;
               Z_trop:units = "gp m" ;
               Z_trop:_FillValue = -9999.f ;
               Z_trop:navigation = "nav" ;

        float  Z_maxwind(record,lat,lon) ;
               Z_maxwind:long_name = "Geopotential height at maximium wind 
speed level" ;
               Z_maxwind:GRIB_parameter_number = 7 ;
               Z_maxwind:GRIB_level_flag = 6 ;
               Z_maxwind:units = "gp m" ;
               Z_maxwind:_FillValue = -9999.f ;
               Z_maxwind:navigation = "nav" ;

        float  Z_htfl(record,lat,lon) ;
               Z_htfl:long_name = "Geopotential height at highest tropospheric 
freezing level" ;
               Z_htfl:GRIB_parameter_number = 7 ;
               Z_htfl:GRIB_level_flag = 204 ;
               Z_htfl:units = "gp m" ;
               Z_htfl:_FillValue = -9999.f ;
               Z_htfl:navigation = "nav" ;

        float  Z_frzlvl(record,lat,lon) ;
               Z_frzlvl:long_name = "Geopotential height at 0 degree isotherm 
level" ;
               Z_frzlvl:GRIB_parameter_number = 7 ;
               Z_frzlvl:GRIB_level_flag = 4 ;
               Z_frzlvl:units = "gp m" ;
               Z_frzlvl:_FillValue = -9999.f ;
               Z_frzlvl:navigation = "nav" ;

        float  T(record,level,lat,lon) ;
               T:long_name = "Temperature at isobaric levels" ;
               T:GRIB_parameter_number = 11 ;
               T:GRIB_level_flag = 100 ;
               T:units = "degK" ;
               T:_FillValue = -9999.f ;
               T:navigation = "nav" ;

        float  T_lpdg(record,lpdg,lat,lon) ;
               T_lpdg:long_name = "Temperature at layer between levels at 
specif. pressure diffs from ground" ;
               T_lpdg:GRIB_parameter_number = 11 ;
               T_lpdg:GRIB_level_flag = 116 ;
               T_lpdg:units = "degK" ;
               T_lpdg:_FillValue = -9999.f ;
               T_lpdg:navigation = "nav" ;

        float  T_fh(record,fh,lat,lon) ;
               T_fh:long_name = "Temperature at fixed height level" ;
               T_fh:GRIB_parameter_number = 11 ;
               T_fh:GRIB_level_flag = 103 ;
               T_fh:units = "degK" ;
               T_fh:_FillValue = -9999.f ;
               T_fh:navigation = "nav" ;

        float  T_hctl(record,lat,lon) ;
               T_hctl:long_name = "Temperature at high cloud top level" ;
               T_hctl:GRIB_parameter_number = 11 ;
               T_hctl:GRIB_level_flag = 233 ;
               T_hctl:units = "degK" ;
               T_hctl:_FillValue = -9999.f ;
               T_hctl:navigation = "nav" ;

        float  T_mctl(record,lat,lon) ;
               T_mctl:long_name = "Temperature at middle cloud top level" ;
               T_mctl:GRIB_parameter_number = 11 ;
               T_mctl:GRIB_level_flag = 223 ;
               T_mctl:units = "degK" ;
               T_mctl:_FillValue = -9999.f ;
               T_mctl:navigation = "nav" ;

        float  T_fhg(record,fhg,lat,lon) ;
               T_fhg:long_name = "Temperature at fixed height above ground" ;
               T_fhg:GRIB_parameter_number = 11 ;
               T_fhg:GRIB_level_flag = 105 ;
               T_fhg:units = "degK" ;
               T_fhg:_FillValue = -9999.f ;
               T_fhg:navigation = "nav" ;

        float  T_trop(record,lat,lon) ;
               T_trop:long_name = "Temperature at tropopause" ;
               T_trop:GRIB_parameter_number = 11 ;
               T_trop:GRIB_level_flag = 7 ;
               T_trop:units = "degK" ;
               T_trop:_FillValue = -9999.f ;
               T_trop:navigation = "nav" ;

        float  T_maxwind(record,lat,lon) ;
               T_maxwind:long_name = "Temperature at maximium wind speed level" 
;
               T_maxwind:GRIB_parameter_number = 11 ;
               T_maxwind:GRIB_level_flag = 6 ;
               T_maxwind:units = "degK" ;
               T_maxwind:_FillValue = -9999.f ;
               T_maxwind:navigation = "nav" ;

        float  T_lbls(record,lbls,lat,lon) ;
               T_lbls:long_name = "Temperature at layer between 2 depths below 
land surface" ;
               T_lbls:GRIB_parameter_number = 11 ;
               T_lbls:GRIB_level_flag = 112 ;
               T_lbls:units = "degK" ;
               T_lbls:_FillValue = -9999.f ;
               T_lbls:navigation = "nav" ;

        float  T_sigma(record,sigma,lat,lon) ;
               T_sigma:long_name = "Temperature at sigma level" ;
               T_sigma:GRIB_parameter_number = 11 ;
               T_sigma:GRIB_level_flag = 107 ;
               T_sigma:units = "degK" ;
               T_sigma:_FillValue = -9999.f ;
               T_sigma:navigation = "nav" ;

        float  T_sfc(record,lat,lon) ;
               T_sfc:long_name = "Temperature at surface of the earth" ;
               T_sfc:GRIB_parameter_number = 11 ;
               T_sfc:GRIB_level_flag = 1 ;
               T_sfc:units = "degK" ;
               T_sfc:_FillValue = -9999.f ;
               T_sfc:navigation = "nav" ;

        float  T_lctl(record,lat,lon) ;
               T_lctl:long_name = "Temperature at low cloud top level" ;
               T_lctl:GRIB_parameter_number = 11 ;
               T_lctl:GRIB_level_flag = 213 ;
               T_lctl:units = "degK" ;
               T_lctl:_FillValue = -9999.f ;
               T_lctl:navigation = "nav" ;

        float  omega(record,level,lat,lon) ;
               omega:long_name = "Pressure vertical velocity at isobaric 
levels" ;
               omega:GRIB_parameter_number = 39 ;
               omega:GRIB_level_flag = 100 ;
               omega:units = "Pa/s" ;
               omega:_FillValue = -9999.f ;
               omega:navigation = "nav" ;

        float  omega_sigma(record,sigma,lat,lon) ;
               omega_sigma:long_name = "Pressure vertical velocity at sigma 
level" ;
               omega_sigma:GRIB_parameter_number = 39 ;
               omega_sigma:GRIB_level_flag = 107 ;
               omega_sigma:units = "Pa/s" ;
               omega_sigma:_FillValue = -9999.f ;
               omega_sigma:navigation = "nav" ;

        float  RH(record,level,lat,lon) ;
               RH:long_name = "Relative humidity at isobaric levels" ;
               RH:GRIB_parameter_number = 52 ;
               RH:GRIB_level_flag = 100 ;
               RH:units = "percent" ;
               RH:_FillValue = -9999.f ;
               RH:navigation = "nav" ;

        float  RH_atm(record,lat,lon) ;
               RH_atm:long_name = "Relative humidity at entire atmosphere 
considered as a single layer" ;
               RH_atm:GRIB_parameter_number = 52 ;
               RH_atm:GRIB_level_flag = 200 ;
               RH_atm:units = "percent" ;
               RH_atm:_FillValue = -9999.f ;
               RH_atm:navigation = "nav" ;

        float  RH_sigma(record,sigma,lat,lon) ;
               RH_sigma:long_name = "Relative humidity at sigma level" ;
               RH_sigma:GRIB_parameter_number = 52 ;
               RH_sigma:GRIB_level_flag = 107 ;
               RH_sigma:units = "percent" ;
               RH_sigma:_FillValue = -9999.f ;
               RH_sigma:navigation = "nav" ;

        float  RH_ls(record,ls,lat,lon) ;
               RH_ls:long_name = "Relative humidity at layer between 2 sigma 
levels" ;
               RH_ls:GRIB_parameter_number = 52 ;
               RH_ls:GRIB_level_flag = 108 ;
               RH_ls:units = "percent" ;
               RH_ls:_FillValue = -9999.f ;
               RH_ls:navigation = "nav" ;

        float  RH_frzlvl(record,lat,lon) ;
               RH_frzlvl:long_name = "Relative humidity at 0 degree isotherm 
level" ;
               RH_frzlvl:GRIB_parameter_number = 52 ;
               RH_frzlvl:GRIB_level_flag = 4 ;
               RH_frzlvl:units = "percent" ;
               RH_frzlvl:_FillValue = -9999.f ;
               RH_frzlvl:navigation = "nav" ;

        float  RH_fhg(record,fhg,lat,lon) ;
               RH_fhg:long_name = "Relative humidity at fixed height above 
ground" ;
               RH_fhg:GRIB_parameter_number = 52 ;
               RH_fhg:GRIB_level_flag = 105 ;
               RH_fhg:units = "percent" ;
               RH_fhg:_FillValue = -9999.f ;
               RH_fhg:navigation = "nav" ;

        float  RH_lpdg(record,lpdg,lat,lon) ;
               RH_lpdg:long_name = "Relative humidity at layer between levels 
at specif. pressure diffs from ground" ;
               RH_lpdg:GRIB_parameter_number = 52 ;
               RH_lpdg:GRIB_level_flag = 116 ;
               RH_lpdg:units = "percent" ;
               RH_lpdg:_FillValue = -9999.f ;
               RH_lpdg:navigation = "nav" ;

        float  RH_htfl(record,lat,lon) ;
               RH_htfl:long_name = "Relative humidity at highest tropospheric 
freezing level" ;
               RH_htfl:GRIB_parameter_number = 52 ;
               RH_htfl:GRIB_level_flag = 204 ;
               RH_htfl:units = "percent" ;
               RH_htfl:_FillValue = -9999.f ;
               RH_htfl:navigation = "nav" ;

        float  absvor(record,level,lat,lon) ;
               absvor:long_name = "Absolute vorticity at isobaric levels" ;
               absvor:GRIB_parameter_number = 41 ;
               absvor:GRIB_level_flag = 100 ;
               absvor:units = "1/s" ;
               absvor:_FillValue = -9999.f ;
               absvor:navigation = "nav" ;

        float  o3mr(record,level,lat,lon) ;
               o3mr:long_name = "Ozone mixing ratio at isobaric levels" ;
               o3mr:GRIB_parameter_number = 154 ;
               o3mr:GRIB_level_flag = 100 ;
               o3mr:units = "kg/kg" ;
               o3mr:_FillValue = -9999.f ;
               o3mr:navigation = "nav" ;

        float  clwmr(record,level,lat,lon) ;
               clwmr:long_name = "Cloud water at isobaric levels" ;
               clwmr:GRIB_parameter_number = 153 ;
               clwmr:GRIB_level_flag = 100 ;
               clwmr:units = "kg/kg" ;
               clwmr:_FillValue = -9999.f ;
               clwmr:navigation = "nav" ;

        float  u(record,level,lat,lon) ;
               u:long_name = "u-component of wind at isobaric levels" ;
               u:GRIB_parameter_number = 33 ;
               u:GRIB_level_flag = 100 ;
               u:units = "m/s" ;
               u:_FillValue = -9999.f ;
               u:navigation = "nav" ;

        float  u_fh(record,fh,lat,lon) ;
               u_fh:long_name = "u-component of wind at fixed height level" ;
               u_fh:GRIB_parameter_number = 33 ;
               u_fh:GRIB_level_flag = 103 ;
               u_fh:units = "m/s" ;
               u_fh:_FillValue = -9999.f ;
               u_fh:navigation = "nav" ;

        float  u_lpdg(record,lpdg,lat,lon) ;
               u_lpdg:long_name = "u-component of wind at layer between levels 
at specif. pressure diffs from ground" ;
               u_lpdg:GRIB_parameter_number = 33 ;
               u_lpdg:GRIB_level_flag = 116 ;
               u_lpdg:units = "m/s" ;
               u_lpdg:_FillValue = -9999.f ;
               u_lpdg:navigation = "nav" ;

        float  u_trop(record,lat,lon) ;
               u_trop:long_name = "u-component of wind at tropopause" ;
               u_trop:GRIB_parameter_number = 33 ;
               u_trop:GRIB_level_flag = 7 ;
               u_trop:units = "m/s" ;
               u_trop:_FillValue = -9999.f ;
               u_trop:navigation = "nav" ;

        float  u_sigma(record,sigma,lat,lon) ;
               u_sigma:long_name = "u-component of wind at sigma level" ;
               u_sigma:GRIB_parameter_number = 33 ;
               u_sigma:GRIB_level_flag = 107 ;
               u_sigma:units = "m/s" ;
               u_sigma:_FillValue = -9999.f ;
               u_sigma:navigation = "nav" ;

        float  u_maxwind(record,lat,lon) ;
               u_maxwind:long_name = "u-component of wind at maximium wind 
speed level" ;
               u_maxwind:GRIB_parameter_number = 33 ;
               u_maxwind:GRIB_level_flag = 6 ;
               u_maxwind:units = "m/s" ;
               u_maxwind:_FillValue = -9999.f ;
               u_maxwind:navigation = "nav" ;

        float  u_fhg(record,fhg,lat,lon) ;
               u_fhg:long_name = "u-component of wind at fixed height above 
ground" ;
               u_fhg:GRIB_parameter_number = 33 ;
               u_fhg:GRIB_level_flag = 105 ;
               u_fhg:units = "m/s" ;
               u_fhg:_FillValue = -9999.f ;
               u_fhg:navigation = "nav" ;

        float  v(record,level,lat,lon) ;
               v:long_name = "v-component of wind at isobaric levels" ;
               v:GRIB_parameter_number = 34 ;
               v:GRIB_level_flag = 100 ;
               v:units = "m/s" ;
               v:_FillValue = -9999.f ;
               v:navigation = "nav" ;

        float  v_fh(record,fh,lat,lon) ;
               v_fh:long_name = "v-component of wind at fixed height level" ;
               v_fh:GRIB_parameter_number = 34 ;
               v_fh:GRIB_level_flag = 103 ;
               v_fh:units = "m/s" ;
               v_fh:_FillValue = -9999.f ;
               v_fh:navigation = "nav" ;

        float  v_trop(record,lat,lon) ;
               v_trop:long_name = "v-component of wind at tropopause" ;
               v_trop:GRIB_parameter_number = 34 ;
               v_trop:GRIB_level_flag = 7 ;
               v_trop:units = "m/s" ;
               v_trop:_FillValue = -9999.f ;
               v_trop:navigation = "nav" ;

        float  v_maxwind(record,lat,lon) ;
               v_maxwind:long_name = "v-component of wind at maximium wind 
speed level" ;
               v_maxwind:GRIB_parameter_number = 34 ;
               v_maxwind:GRIB_level_flag = 6 ;
               v_maxwind:units = "m/s" ;
               v_maxwind:_FillValue = -9999.f ;
               v_maxwind:navigation = "nav" ;

        float  v_sigma(record,sigma,lat,lon) ;
               v_sigma:long_name = "v-component of wind at sigma level" ;
               v_sigma:GRIB_parameter_number = 34 ;
               v_sigma:GRIB_level_flag = 107 ;
               v_sigma:units = "m/s" ;
               v_sigma:_FillValue = -9999.f ;
               v_sigma:navigation = "nav" ;

        float  v_lpdg(record,lpdg,lat,lon) ;
               v_lpdg:long_name = "v-component of wind at layer between levels 
at specif. pressure diffs from ground" ;
               v_lpdg:GRIB_parameter_number = 34 ;
               v_lpdg:GRIB_level_flag = 116 ;
               v_lpdg:units = "m/s" ;
               v_lpdg:_FillValue = -9999.f ;
               v_lpdg:navigation = "nav" ;

        float  v_fhg(record,fhg,lat,lon) ;
               v_fhg:long_name = "v-component of wind at fixed height above 
ground" ;
               v_fhg:GRIB_parameter_number = 34 ;
               v_fhg:GRIB_level_flag = 105 ;
               v_fhg:units = "m/s" ;
               v_fhg:_FillValue = -9999.f ;
               v_fhg:navigation = "nav" ;

        float  P_trop(record,lat,lon) ;
               P_trop:long_name = "Pressure at tropopause" ;
               P_trop:GRIB_parameter_number = 1 ;
               P_trop:GRIB_level_flag = 7 ;
               P_trop:units = "Pa" ;
               P_trop:_FillValue = -9999.f ;
               P_trop:navigation = "nav" ;

        float  P_maxwind(record,lat,lon) ;
               P_maxwind:long_name = "Pressure at maximium wind speed level" ;
               P_maxwind:GRIB_parameter_number = 1 ;
               P_maxwind:GRIB_level_flag = 6 ;
               P_maxwind:units = "Pa" ;
               P_maxwind:_FillValue = -9999.f ;
               P_maxwind:navigation = "nav" ;

        float  P_lcbl(record,lat,lon) ;
               P_lcbl:long_name = "Pressure at low cloud bottom level" ;
               P_lcbl:GRIB_parameter_number = 1 ;
               P_lcbl:GRIB_level_flag = 212 ;
               P_lcbl:units = "Pa" ;
               P_lcbl:_FillValue = -9999.f ;
               P_lcbl:navigation = "nav" ;

        float  P_hcbl(record,lat,lon) ;
               P_hcbl:long_name = "Pressure at high cloud bottom level" ;
               P_hcbl:GRIB_parameter_number = 1 ;
               P_hcbl:GRIB_level_flag = 232 ;
               P_hcbl:units = "Pa" ;
               P_hcbl:_FillValue = -9999.f ;
               P_hcbl:navigation = "nav" ;

        float  P_mctl(record,lat,lon) ;
               P_mctl:long_name = "Pressure at middle cloud top level" ;
               P_mctl:GRIB_parameter_number = 1 ;
               P_mctl:GRIB_level_flag = 223 ;
               P_mctl:units = "Pa" ;
               P_mctl:_FillValue = -9999.f ;
               P_mctl:navigation = "nav" ;

        float  P_sfc(record,lat,lon) ;
               P_sfc:long_name = "Pressure at surface of the earth" ;
               P_sfc:GRIB_parameter_number = 1 ;
               P_sfc:GRIB_level_flag = 1 ;
               P_sfc:units = "Pa" ;
               P_sfc:_FillValue = -9999.f ;
               P_sfc:navigation = "nav" ;

        float  P_hctl(record,lat,lon) ;
               P_hctl:long_name = "Pressure at high cloud top level" ;
               P_hctl:GRIB_parameter_number = 1 ;
               P_hctl:GRIB_level_flag = 233 ;
               P_hctl:units = "Pa" ;
               P_hctl:_FillValue = -9999.f ;
               P_hctl:navigation = "nav" ;

        float  P_lctl(record,lat,lon) ;
               P_lctl:long_name = "Pressure at low cloud top level" ;
               P_lctl:GRIB_parameter_number = 1 ;
               P_lctl:GRIB_level_flag = 213 ;
               P_lctl:units = "Pa" ;
               P_lctl:_FillValue = -9999.f ;
               P_lctl:navigation = "nav" ;

        float  P_mcbl(record,lat,lon) ;
               P_mcbl:long_name = "Pressure at middle cloud bottom level" ;
               P_mcbl:GRIB_parameter_number = 1 ;
               P_mcbl:GRIB_level_flag = 222 ;
               P_mcbl:units = "Pa" ;
               P_mcbl:_FillValue = -9999.f ;
               P_mcbl:navigation = "nav" ;

        float  P_cctl(record,lat,lon) ;
               P_cctl:long_name = "Pressure at convective cloud top height" ;
               P_cctl:GRIB_parameter_number = 1 ;
               P_cctl:GRIB_level_flag = 243 ;
               P_cctl:units = "Pa" ;
               P_cctl:_FillValue = -9999.f ;
               P_cctl:navigation = "nav" ;

        float  P_ccbl(record,lat,lon) ;
               P_ccbl:long_name = "Pressure at convective cloud bottom height" ;
               P_ccbl:GRIB_parameter_number = 1 ;
               P_ccbl:GRIB_level_flag = 242 ;
               P_ccbl:units = "Pa" ;
               P_ccbl:_FillValue = -9999.f ;
               P_ccbl:navigation = "nav" ;

        float  vert_sshr_trop(record,lat,lon) ;
               vert_sshr_trop:long_name = "Vertical speed shear at tropopause" ;
               vert_sshr_trop:GRIB_parameter_number = 136 ;
               vert_sshr_trop:GRIB_level_flag = 7 ;
               vert_sshr_trop:units = "1/s" ;
               vert_sshr_trop:_FillValue = -9999.f ;
               vert_sshr_trop:navigation = "nav" ;

        float  cin_sfc(record,lat,lon) ;
               cin_sfc:long_name = "Convective inhibition at surface of the 
earth" ;
               cin_sfc:GRIB_parameter_number = 156 ;
               cin_sfc:GRIB_level_flag = 1 ;
               cin_sfc:units = "J/kg" ;
               cin_sfc:_FillValue = -9999.f ;
               cin_sfc:navigation = "nav" ;

        float  cin_lpdg(record,lpdg,lat,lon) ;
               cin_lpdg:long_name = "Convective inhibition at layer between 
levels at specif. pressure diffs from ground" ;
               cin_lpdg:GRIB_parameter_number = 156 ;
               cin_lpdg:GRIB_level_flag = 116 ;
               cin_lpdg:units = "J/kg" ;
               cin_lpdg:_FillValue = -9999.f ;
               cin_lpdg:navigation = "nav" ;

        float  totoz_atm(record,lat,lon) ;
               totoz_atm:long_name = "Total ozone at entire atmosphere 
considered as a single layer" ;
               totoz_atm:GRIB_parameter_number = 10 ;
               totoz_atm:GRIB_level_flag = 200 ;
               totoz_atm:units = "" ;
               totoz_atm:_FillValue = -9999.f ;
               totoz_atm:navigation = "nav" ;

        float  theta_sigma(record,sigma,lat,lon) ;
               theta_sigma:long_name = "Potential temperature at sigma level" ;
               theta_sigma:GRIB_parameter_number = 13 ;
               theta_sigma:GRIB_level_flag = 107 ;
               theta_sigma:units = "degK" ;
               theta_sigma:_FillValue = -9999.f ;
               theta_sigma:navigation = "nav" ;

        float  snow_wat(record,lat,lon) ;
               snow_wat:long_name = "Water equivalent of accumulated snow depth 
at surface of the earth" ;
               snow_wat:GRIB_parameter_number = 65 ;
               snow_wat:GRIB_level_flag = 1 ;
               snow_wat:units = "kg/m2" ;
               snow_wat:_FillValue = -9999.f ;
               snow_wat:navigation = "nav" ;

        float  lat_ht_sfc(record,lat,lon) ;
               lat_ht_sfc:long_name = "Latent heat flux at surface of the 
earth" ;
               lat_ht_sfc:GRIB_parameter_number = 121 ;
               lat_ht_sfc:GRIB_level_flag = 1 ;
               lat_ht_sfc:units = "W/m2" ;
               lat_ht_sfc:_FillValue = -9999.f ;
               lat_ht_sfc:navigation = "nav" ;

        float  dlwrf_sfc(record,lat,lon) ;
               dlwrf_sfc:long_name = "Downward long wave rad. flux at surface 
of the earth" ;
               dlwrf_sfc:GRIB_parameter_number = 205 ;
               dlwrf_sfc:GRIB_level_flag = 1 ;
               dlwrf_sfc:units = "W/m2" ;
               dlwrf_sfc:_FillValue = -9999.f ;
               dlwrf_sfc:navigation = "nav" ;

        float  soilw_lbls(record,lbls,lat,lon) ;
               soilw_lbls:long_name = "Volumetric soil moisture content at 
layer between 2 depths below land surface" ;
               soilw_lbls:GRIB_parameter_number = 144 ;
               soilw_lbls:GRIB_level_flag = 112 ;
               soilw_lbls:units = "" ;
               soilw_lbls:_FillValue = -9999.f ;
               soilw_lbls:navigation = "nav" ;

        float  uswrf_topa(record,lat,lon) ;
               uswrf_topa:long_name = "Upward short wave rad. flux at nominal 
top of atmosphere" ;
               uswrf_topa:GRIB_parameter_number = 211 ;
               uswrf_topa:GRIB_level_flag = 8 ;
               uswrf_topa:units = "W/m2" ;
               uswrf_topa:_FillValue = -9999.f ;
               uswrf_topa:navigation = "nav" ;

        float  uswrf_sfc(record,lat,lon) ;
               uswrf_sfc:long_name = "Upward short wave rad. flux at surface of 
the earth" ;
               uswrf_sfc:GRIB_parameter_number = 211 ;
               uswrf_sfc:GRIB_level_flag = 1 ;
               uswrf_sfc:units = "W/m2" ;
               uswrf_sfc:_FillValue = -9999.f ;
               uswrf_sfc:navigation = "nav" ;

        float  N_mcy(record,lat,lon) ;
               N_mcy:long_name = "Total cloud cover at middle cloud layer" ;
               N_mcy:GRIB_parameter_number = 71 ;
               N_mcy:GRIB_level_flag = 224 ;
               N_mcy:units = "percent" ;
               N_mcy:_FillValue = -9999.f ;
               N_mcy:navigation = "nav" ;

        float  N_hcy(record,lat,lon) ;
               N_hcy:long_name = "Total cloud cover at highcloud layer" ;
               N_hcy:GRIB_parameter_number = 71 ;
               N_hcy:GRIB_level_flag = 234 ;
               N_hcy:units = "percent" ;
               N_hcy:_FillValue = -9999.f ;
               N_hcy:navigation = "nav" ;

        float  N_ccy(record,lat,lon) ;
               N_ccy:long_name = "Total cloud cover at convective cloud layer" ;
               N_ccy:GRIB_parameter_number = 71 ;
               N_ccy:GRIB_level_flag = 244 ;
               N_ccy:units = "percent" ;
               N_ccy:_FillValue = -9999.f ;
               N_ccy:navigation = "nav" ;

        float  N_bcy(record,lat,lon) ;
               N_bcy:long_name = "Total cloud cover at boundary layer cloud 
layer" ;
               N_bcy:GRIB_parameter_number = 71 ;
               N_bcy:GRIB_level_flag = 211 ;
               N_bcy:units = "percent" ;
               N_bcy:_FillValue = -9999.f ;
               N_bcy:navigation = "nav" ;

        float  N_lcy(record,lat,lon) ;
               N_lcy:long_name = "Total cloud cover at low cloud layer" ;
               N_lcy:GRIB_parameter_number = 71 ;
               N_lcy:GRIB_level_flag = 214 ;
               N_lcy:units = "percent" ;
               N_lcy:_FillValue = -9999.f ;
               N_lcy:navigation = "nav" ;

        float  N_atm(record,lat,lon) ;
               N_atm:long_name = "Total cloud cover at entire atmosphere 
considered as a single layer" ;
               N_atm:GRIB_parameter_number = 71 ;
               N_atm:GRIB_level_flag = 200 ;
               N_atm:units = "percent" ;
               N_atm:_FillValue = -9999.f ;
               N_atm:navigation = "nav" ;

        float  cprat(record,lat,lon) ;
               cprat:long_name = "Convective precipitation rate at surface of 
the earth" ;
               cprat:GRIB_parameter_number = 214 ;
               cprat:GRIB_level_flag = 1 ;
               cprat:units = "kg/m2/s" ;
               cprat:_FillValue = -9999.f ;
               cprat:navigation = "nav" ;

        float  gflux(record,lat,lon) ;
               gflux:long_name = "Ground heat flux at surface of the earth" ;
               gflux:GRIB_parameter_number = 155 ;
               gflux:GRIB_level_flag = 1 ;
               gflux:units = "W/m2" ;
               gflux:_FillValue = -9999.f ;
               gflux:navigation = "nav" ;

        float  cwork_atm(record,lat,lon) ;
               cwork_atm:long_name = "Cloud workfunction at entire atmosphere 
considered as a single layer" ;
               cwork_atm:GRIB_parameter_number = 146 ;
               cwork_atm:GRIB_level_flag = 200 ;
               cwork_atm:units = "J/kg" ;
               cwork_atm:_FillValue = -9999.f ;
               cwork_atm:navigation = "nav" ;

        float  hpbl_sfc(record,lat,lon) ;
               hpbl_sfc:long_name = "Planetary boundary layer height at surface 
of the earth" ;
               hpbl_sfc:GRIB_parameter_number = 221 ;
               hpbl_sfc:GRIB_level_flag = 1 ;
               hpbl_sfc:units = "m" ;
               hpbl_sfc:_FillValue = -9999.f ;
               hpbl_sfc:navigation = "nav" ;

        float  crain(record,lat,lon) ;
               crain:long_name = "Categorical rain  (yes=1; no=0) at surface of 
the earth" ;
               crain:GRIB_parameter_number = 140 ;
               crain:GRIB_level_flag = 1 ;
               crain:units = "bit" ;
               crain:_FillValue = -9999.f ;
               crain:navigation = "nav" ;

        float  cfrzrn(record,lat,lon) ;
               cfrzrn:long_name = "Categorical freezing rain  (yes=1; no=0) at 
surface of the earth" ;
               cfrzrn:GRIB_parameter_number = 141 ;
               cfrzrn:GRIB_level_flag = 1 ;
               cfrzrn:units = "bit" ;
               cfrzrn:_FillValue = -9999.f ;
               cfrzrn:navigation = "nav" ;

        float  Tmin_fhg(record,fhg,lat,lon) ;
               Tmin_fhg:long_name = "Minimum temperature at fixed height above 
ground" ;
               Tmin_fhg:GRIB_parameter_number = 16 ;
               Tmin_fhg:GRIB_level_flag = 105 ;
               Tmin_fhg:units = "degK" ;
               Tmin_fhg:_FillValue = -9999.f ;
               Tmin_fhg:navigation = "nav" ;

        float  v-gwd_sfc(record,lat,lon) ;
               v-gwd_sfc:long_name = "Meridional flux of gravity wave stress at 
surface of the earth" ;
               v-gwd_sfc:GRIB_parameter_number = 148 ;
               v-gwd_sfc:GRIB_level_flag = 1 ;
               v-gwd_sfc:units = "N/m2" ;
               v-gwd_sfc:_FillValue = -9999.f ;
               v-gwd_sfc:navigation = "nav" ;

        float  Zdev(record,level,lat,lon) ;
               Zdev:long_name = "Geopotential height anomaly at isobaric 
levels" ;
               Zdev:GRIB_parameter_number = 27 ;
               Zdev:GRIB_level_flag = 100 ;
               Zdev:units = "gp m" ;
               Zdev:_FillValue = -9999.f ;
               Zdev:navigation = "nav" ;

        float  u-gwd_sfc(record,lat,lon) ;
               u-gwd_sfc:long_name = "Zonal flux of gravity wave stress at 
surface of the earth" ;
               u-gwd_sfc:GRIB_parameter_number = 147 ;
               u-gwd_sfc:GRIB_level_flag = 1 ;
               u-gwd_sfc:units = "N/m2" ;
               u-gwd_sfc:_FillValue = -9999.f ;
               u-gwd_sfc:navigation = "nav" ;

        float  LI(record,lat,lon) ;
               LI:long_name = "Surface lifted index at surface of the earth" ;
               LI:GRIB_parameter_number = 131 ;
               LI:GRIB_level_flag = 1 ;
               LI:units = "degK" ;
               LI:_FillValue = -9999.f ;
               LI:navigation = "nav" ;

        float  P_msl(record,lat,lon) ;
               P_msl:long_name = "Pressure reduced to MSL at mean sea level" ;
               P_msl:GRIB_parameter_number = 2 ;
               P_msl:GRIB_level_flag = 102 ;
               P_msl:units = "Pa" ;
               P_msl:_FillValue = -9999.f ;
               P_msl:navigation = "nav" ;

        float  cloud_wat_atm(record,lat,lon) ;
               cloud_wat_atm:long_name = "Cloud water at entire atmosphere 
considered as a single layer" ;
               cloud_wat_atm:GRIB_parameter_number = 76 ;
               cloud_wat_atm:GRIB_level_flag = 200 ;
               cloud_wat_atm:units = "kg/m2" ;
               cloud_wat_atm:_FillValue = -9999.f ;
               cloud_wat_atm:navigation = "nav" ;

        float  gpt_hgt5(record,level,lat,lon) ;
               gpt_hgt5:long_name = "5-wave geopotential height at isobaric 
levels" ;
               gpt_hgt5:GRIB_parameter_number = 222 ;
               gpt_hgt5:GRIB_level_flag = 100 ;
               gpt_hgt5:units = "gp m" ;
               gpt_hgt5:_FillValue = -9999.f ;
               gpt_hgt5:navigation = "nav" ;

        float  ulwrf_sfc(record,lat,lon) ;
               ulwrf_sfc:long_name = "Upward long wave rad. flux at surface of 
the earth" ;
               ulwrf_sfc:GRIB_parameter_number = 212 ;
               ulwrf_sfc:GRIB_level_flag = 1 ;
               ulwrf_sfc:units = "W/m2" ;
               ulwrf_sfc:_FillValue = -9999.f ;
               ulwrf_sfc:navigation = "nav" ;

        float  ulwrf_topa(record,lat,lon) ;
               ulwrf_topa:long_name = "Upward long wave rad. flux at nominal 
top of atmosphere" ;
               ulwrf_topa:GRIB_parameter_number = 212 ;
               ulwrf_topa:GRIB_level_flag = 8 ;
               ulwrf_topa:units = "W/m2" ;
               ulwrf_topa:_FillValue = -9999.f ;
               ulwrf_topa:navigation = "nav" ;

        float  precip_rt(record,lat,lon) ;
               precip_rt:long_name = "Precipitation rate at surface of the 
earth" ;
               precip_rt:GRIB_parameter_number = 59 ;
               precip_rt:GRIB_level_flag = 1 ;
               precip_rt:units = "kg/(m2 s)" ;
               precip_rt:_FillValue = -9999.f ;
               precip_rt:navigation = "nav" ;

        float  land_mask_sfc(record,lat,lon) ;
               land_mask_sfc:long_name = "Land-sea mask (1=land; 0=sea) at 
surface of the earth" ;
               land_mask_sfc:GRIB_parameter_number = 81 ;
               land_mask_sfc:GRIB_level_flag = 1 ;
               land_mask_sfc:units = "bit" ;
               land_mask_sfc:_FillValue = -9999.f ;
               land_mask_sfc:navigation = "nav" ;

        float  pevpr_sfc(record,lat,lon) ;
               pevpr_sfc:long_name = "Potential evaporation rate at surface of 
the earth" ;
               pevpr_sfc:GRIB_parameter_number = 145 ;
               pevpr_sfc:GRIB_level_flag = 1 ;
               pevpr_sfc:units = "W/m2" ;
               pevpr_sfc:_FillValue = -9999.f ;
               pevpr_sfc:navigation = "nav" ;

        float  albedo_sfc(record,lat,lon) ;
               albedo_sfc:long_name = "Albedo at surface of the earth" ;
               albedo_sfc:GRIB_parameter_number = 84 ;
               albedo_sfc:GRIB_level_flag = 1 ;
               albedo_sfc:units = "percent" ;
               albedo_sfc:_FillValue = -9999.f ;
               albedo_sfc:navigation = "nav" ;

        float  precip_cn(record,lat,lon) ;
               precip_cn:long_name = "Convective precipitation at surface of 
the earth" ;
               precip_cn:GRIB_parameter_number = 63 ;
               precip_cn:GRIB_level_flag = 1 ;
               precip_cn:units = "kg/m2" ;
               precip_cn:_FillValue = -9999.f ;
               precip_cn:navigation = "nav" ;

        float  cicepl(record,lat,lon) ;
               cicepl:long_name = "Categorical ice pellets  (yes=1; no=0) at 
surface of the earth" ;
               cicepl:GRIB_parameter_number = 142 ;
               cicepl:GRIB_level_flag = 1 ;
               cicepl:units = "bit" ;
               cicepl:_FillValue = -9999.f ;
               cicepl:navigation = "nav" ;

        float  spec_hum_lpdg(record,lpdg,lat,lon) ;
               spec_hum_lpdg:long_name = "Specific humidity at layer between 
levels at specif. pressure diffs from ground" ;
               spec_hum_lpdg:GRIB_parameter_number = 51 ;
               spec_hum_lpdg:GRIB_level_flag = 116 ;
               spec_hum_lpdg:units = "kg/kg" ;
               spec_hum_lpdg:_FillValue = -9999.f ;
               spec_hum_lpdg:navigation = "nav" ;

        float  spec_hum_fhg(record,fhg,lat,lon) ;
               spec_hum_fhg:long_name = "Specific humidity at fixed height 
above ground" ;
               spec_hum_fhg:GRIB_parameter_number = 51 ;
               spec_hum_fhg:GRIB_level_flag = 105 ;
               spec_hum_fhg:units = "kg/kg" ;
               spec_hum_fhg:_FillValue = -9999.f ;
               spec_hum_fhg:navigation = "nav" ;

        float  pr_water_atm(record,lat,lon) ;
               pr_water_atm:long_name = "Precipitable water at entire 
atmosphere considered as a single layer" ;
               pr_water_atm:GRIB_parameter_number = 54 ;
               pr_water_atm:GRIB_level_flag = 200 ;
               pr_water_atm:units = "kg/m2" ;
               pr_water_atm:_FillValue = -9999.f ;
               pr_water_atm:navigation = "nav" ;

        float  LI4_sfc(record,lat,lon) ;
               LI4_sfc:long_name = "Best (4 layer) lifted index at surface of 
the earth" ;
               LI4_sfc:GRIB_parameter_number = 132 ;
               LI4_sfc:GRIB_level_flag = 1 ;
               LI4_sfc:units = "degK" ;
               LI4_sfc:_FillValue = -9999.f ;
               LI4_sfc:navigation = "nav" ;

        float  cape_sfc(record,lat,lon) ;
               cape_sfc:long_name = "Convective available potential energy at 
surface of the earth" ;
               cape_sfc:GRIB_parameter_number = 157 ;
               cape_sfc:GRIB_level_flag = 1 ;
               cape_sfc:units = "J/kg" ;
               cape_sfc:_FillValue = -9999.f ;
               cape_sfc:navigation = "nav" ;

        float  cape_lpdg(record,lpdg,lat,lon) ;
               cape_lpdg:long_name = "Convective available potential energy at 
layer between levels at specif. pressure diffs from ground" ;
               cape_lpdg:GRIB_parameter_number = 157 ;
               cape_lpdg:GRIB_level_flag = 116 ;
               cape_lpdg:units = "J/kg" ;
               cape_lpdg:_FillValue = -9999.f ;
               cape_lpdg:navigation = "nav" ;

        float  sen_ht_sfc(record,lat,lon) ;
               sen_ht_sfc:long_name = "Sensible heat flux at surface of the 
earth" ;
               sen_ht_sfc:GRIB_parameter_number = 122 ;
               sen_ht_sfc:GRIB_level_flag = 1 ;
               sen_ht_sfc:units = "W/m2" ;
               sen_ht_sfc:_FillValue = -9999.f ;
               sen_ht_sfc:navigation = "nav" ;

        float  dswrf_sfc(record,lat,lon) ;
               dswrf_sfc:long_name = "Downward short wave rad. flux at surface 
of the earth" ;
               dswrf_sfc:GRIB_parameter_number = 204 ;
               dswrf_sfc:GRIB_level_flag = 1 ;
               dswrf_sfc:units = "W/m2" ;
               dswrf_sfc:_FillValue = -9999.f ;
               dswrf_sfc:navigation = "nav" ;

        float  ice_conc(record,lat,lon) ;
               ice_conc:long_name = "Ice concentration (ice=l; no ice=O) at 
surface of the earth" ;
               ice_conc:GRIB_parameter_number = 91 ;
               ice_conc:GRIB_level_flag = 1 ;
               ice_conc:units = "bit" ;
               ice_conc:_FillValue = -9999.f ;
               ice_conc:navigation = "nav" ;

        float  Tmax_fhg(record,fhg,lat,lon) ;
               Tmax_fhg:long_name = "Maximum temperature at fixed height above 
ground" ;
               Tmax_fhg:GRIB_parameter_number = 15 ;
               Tmax_fhg:GRIB_level_flag = 105 ;
               Tmax_fhg:units = "degK" ;
               Tmax_fhg:_FillValue = -9999.f ;
               Tmax_fhg:navigation = "nav" ;

        float  watr(record,lat,lon) ;
               watr:long_name = "Water runoff at surface of the earth" ;
               watr:GRIB_parameter_number = 90 ;
               watr:GRIB_level_flag = 1 ;
               watr:units = "kg/m2" ;
               watr:_FillValue = -9999.f ;
               watr:navigation = "nav" ;

        float  PRECIP(record,lat,lon) ;
               PRECIP:long_name = "Total precipitation at surface of the earth" 
;
               PRECIP:GRIB_parameter_number = 61 ;
               PRECIP:GRIB_level_flag = 1 ;
               PRECIP:units = "kg/m2" ;
               PRECIP:_FillValue = -9999.f ;
               PRECIP:navigation = "nav" ;

        float  u_flx_sfc(record,lat,lon) ;
               u_flx_sfc:long_name = "Momentum flux, u component at surface of 
the earth" ;
               u_flx_sfc:GRIB_parameter_number = 124 ;
               u_flx_sfc:GRIB_level_flag = 1 ;
               u_flx_sfc:units = "N/m2" ;
               u_flx_sfc:_FillValue = -9999.f ;
               u_flx_sfc:navigation = "nav" ;

        float  csnow(record,lat,lon) ;
               csnow:long_name = "Categorical snow  (yes=1; no=0) at surface of 
the earth" ;
               csnow:GRIB_parameter_number = 143 ;
               csnow:GRIB_level_flag = 1 ;
               csnow:units = "bit" ;
               csnow:_FillValue = -9999.f ;
               csnow:navigation = "nav" ;

        float  v_flx_sfc(record,lat,lon) ;
               v_flx_sfc:long_name = "Momentum flux, v component at surface of 
the earth" ;
               v_flx_sfc:GRIB_parameter_number = 125 ;
               v_flx_sfc:GRIB_level_flag = 1 ;
               v_flx_sfc:units = "N/m2" ;
               v_flx_sfc:_FillValue = -9999.f ;
               v_flx_sfc:navigation = "nav" ;

        float  gpt_hgta5(record,level,lat,lon) ;
               gpt_hgta5:long_name = "5-wave geopotential height anomaly at 
isobaric levels" ;
               gpt_hgta5:GRIB_parameter_number = 230 ;
               gpt_hgta5:GRIB_level_flag = 100 ;
               gpt_hgta5:units = "gp m" ;
               gpt_hgta5:_FillValue = -9999.f ;
               gpt_hgta5:navigation = "nav" ;


// global attributes
               :history = "2004-03-19 09:20:28 - created by gribtocdl" ; 
               :title = "Enter model definition here" ;
               :Conventions = "NUWG" ;
               :GRIB_reference = "Office Note 388 GRIB" ;
               :GRIB_URL = "http://www.nco.ncep.noaa.gov/pmb/docs/on388/"; ;
               :version = 0.0 ;

data:

 level = 1000.0, 975.0, 950.0, 925.0, 900.0, 850.0, 800.0, 750.0, 700.0, 650.0, 
      600.0, 550.0, 500.0, 450.0, 400.0, 350.0, 300.0, 250.0, 200.0, 150.0, 
      100.0, 70.0, 50.0, 30.0, 20.0, 10.0 ;
 lpdg_bot = 0.0, 0.0 ;
 lpdg_top = 30.0, 180.0 ;
 fh = 1829.0, 2743.0, 3658.0 ;
 sigma = 9950.0 ;
 ls_bot = 94.0, 72.0, 100.0, 100.0 ;
 ls_top = 72.0, 44.0, 44.0, 33.0 ;
 lbls_bot = 200.0, 10.0 ;
 lbls_top = 10.0, 0.0 ;
 fhg = 2.0, 10.0 ;
 model_id = 96 ;
 valtime_offset = 0, 6, 12, 18 ;


 // Navigation
 nav_model = "GRIB1" ;
 grid_type_code = 0 ;
 grid_type = "Latitude/Longitude" ;
 grid_name = "Global 1.0x1.0 degree" ;
 grid_center = 7 ;
 grid_number = 3 ;
 i_dim = "lon" ;
 j_dim = "lat" ;
 Ni = 360 ;
 Nj = 181 ;
 La1 = -90.000000 ;
 Lo1 = 0.000000 ;
 La2 = 90.000000 ;
 Lo2 = 359.000000 ;
 Di = 1.000000 ;
 Dj = 1.000000 ;
 ResCompFlag = 128 ;

 lon =  0.00,  1.00,  2.00,  3.00,  4.00,  5.00,  6.00,  7.00,
        8.00,  9.00, 10.00, 11.00, 12.00, 13.00, 14.00, 15.00,
       16.00, 17.00, 18.00, 19.00, 20.00, 21.00, 22.00, 23.00,
       24.00, 25.00, 26.00, 27.00, 28.00, 29.00, 30.00, 31.00,
       32.00, 33.00, 34.00, 35.00, 36.00, 37.00, 38.00, 39.00,
       40.00, 41.00, 42.00, 43.00, 44.00, 45.00, 46.00, 47.00,
       48.00, 49.00, 50.00, 51.00, 52.00, 53.00, 54.00, 55.00,
       56.00, 57.00, 58.00, 59.00, 60.00, 61.00, 62.00, 63.00,
       64.00, 65.00, 66.00, 67.00, 68.00, 69.00, 70.00, 71.00,
       72.00, 73.00, 74.00, 75.00, 76.00, 77.00, 78.00, 79.00,
       80.00, 81.00, 82.00, 83.00, 84.00, 85.00, 86.00, 87.00,
       88.00, 89.00, 90.00, 91.00, 92.00, 93.00, 94.00, 95.00,
       96.00, 97.00, 98.00, 99.00,100.00,101.00,102.00,103.00,
      104.00,105.00,106.00,107.00,108.00,109.00,110.00,111.00,
      112.00,113.00,114.00,115.00,116.00,117.00,118.00,119.00,
      120.00,121.00,122.00,123.00,124.00,125.00,126.00,127.00,
      128.00,129.00,130.00,131.00,132.00,133.00,134.00,135.00,
      136.00,137.00,138.00,139.00,140.00,141.00,142.00,143.00,
      144.00,145.00,146.00,147.00,148.00,149.00,150.00,151.00,
      152.00,153.00,154.00,155.00,156.00,157.00,158.00,159.00,
      160.00,161.00,162.00,163.00,164.00,165.00,166.00,167.00,
      168.00,169.00,170.00,171.00,172.00,173.00,174.00,175.00,
      176.00,177.00,178.00,179.00,180.00,181.00,182.00,183.00,
      184.00,185.00,186.00,187.00,188.00,189.00,190.00,191.00,
      192.00,193.00,194.00,195.00,196.00,197.00,198.00,199.00,
      200.00,201.00,202.00,203.00,204.00,205.00,206.00,207.00,
      208.00,209.00,210.00,211.00,212.00,213.00,214.00,215.00,
      216.00,217.00,218.00,219.00,220.00,221.00,222.00,223.00,
      224.00,225.00,226.00,227.00,228.00,229.00,230.00,231.00,
      232.00,233.00,234.00,235.00,236.00,237.00,238.00,239.00,
      240.00,241.00,242.00,243.00,244.00,245.00,246.00,247.00,
      248.00,249.00,250.00,251.00,252.00,253.00,254.00,255.00,
      256.00,257.00,258.00,259.00,260.00,261.00,262.00,263.00,
      264.00,265.00,266.00,267.00,268.00,269.00,270.00,271.00,
      272.00,273.00,274.00,275.00,276.00,277.00,278.00,279.00,
      280.00,281.00,282.00,283.00,284.00,285.00,286.00,287.00,
      288.00,289.00,290.00,291.00,292.00,293.00,294.00,295.00,
      296.00,297.00,298.00,299.00,300.00,301.00,302.00,303.00,
      304.00,305.00,306.00,307.00,308.00,309.00,310.00,311.00,
      312.00,313.00,314.00,315.00,316.00,317.00,318.00,319.00,
      320.00,321.00,322.00,323.00,324.00,325.00,326.00,327.00,
      328.00,329.00,330.00,331.00,332.00,333.00,334.00,335.00,
      336.00,337.00,338.00,339.00,340.00,341.00,342.00,343.00,
      344.00,345.00,346.00,347.00,348.00,349.00,350.00,351.00,
      352.00,353.00,354.00,355.00,356.00,357.00,358.00,359.00 ;

 lat =-90.00,-89.00,-88.00,-87.00,-86.00,-85.00,-84.00,-83.00,
      -82.00,-81.00,-80.00,-79.00,-78.00,-77.00,-76.00,-75.00,
      -74.00,-73.00,-72.00,-71.00,-70.00,-69.00,-68.00,-67.00,
      -66.00,-65.00,-64.00,-63.00,-62.00,-61.00,-60.00,-59.00,
      -58.00,-57.00,-56.00,-55.00,-54.00,-53.00,-52.00,-51.00,
      -50.00,-49.00,-48.00,-47.00,-46.00,-45.00,-44.00,-43.00,
      -42.00,-41.00,-40.00,-39.00,-38.00,-37.00,-36.00,-35.00,
      -34.00,-33.00,-32.00,-31.00,-30.00,-29.00,-28.00,-27.00,
      -26.00,-25.00,-24.00,-23.00,-22.00,-21.00,-20.00,-19.00,
      -18.00,-17.00,-16.00,-15.00,-14.00,-13.00,-12.00,-11.00,
      -10.00, -9.00, -8.00, -7.00, -6.00, -5.00, -4.00, -3.00,
       -2.00, -1.00,  0.00,  1.00,  2.00,  3.00,  4.00,  5.00,
        6.00,  7.00,  8.00,  9.00, 10.00, 11.00, 12.00, 13.00,
       14.00, 15.00, 16.00, 17.00, 18.00, 19.00, 20.00, 21.00,
       22.00, 23.00, 24.00, 25.00, 26.00, 27.00, 28.00, 29.00,
       30.00, 31.00, 32.00, 33.00, 34.00, 35.00, 36.00, 37.00,
       38.00, 39.00, 40.00, 41.00, 42.00, 43.00, 44.00, 45.00,
       46.00, 47.00, 48.00, 49.00, 50.00, 51.00, 52.00, 53.00,
       54.00, 55.00, 56.00, 57.00, 58.00, 59.00, 60.00, 61.00,
       62.00, 63.00, 64.00, 65.00, 66.00, 67.00, 68.00, 69.00,
       70.00, 71.00, 72.00, 73.00, 74.00, 75.00, 76.00, 77.00,
       78.00, 79.00, 80.00, 81.00, 82.00, 83.00, 84.00, 85.00,
       86.00, 87.00, 88.00, 89.00, 90.00 ;

}