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

Re: 20020410: gribtonc CDLs for AVN and could CDL for LAPS work



On Wed, 10 Apr 2002, Unidata Support wrote:

> 
> ------- Forwarded Message
> 
> >To: address@hidden
> >From: Tiziana Cherubini <address@hidden>
> >Subject: CDL for LAPS
> >Organization: University of Hawaii
> >Keywords: 200204110028.g3B0STa23345 gribtonc
> 
> Hi,
> 
> I'm trying to  use the gribtonc decoders to convert avn model
> output files (grid 3, 65160 point) in netcdf, but I'm having
> hard time. It seems that no one of the CDLs files coming with
> the decoders.tar files (avn-1.25x1.25.cdl, avn-a.cdl,
> avn-q.cdl, avn-x.cdl) are good for them, unless I use the -q
> option, i.e. changing the data resolution.
> What should I do to convert the grib files in netcdf mantaining
> the 1.0x1.0 degrees resolution?
> 
> Again, do you think it would be possible to use the gribtonc
> decoder with the LAPS CDLs files (one of them is in attachment to
> this mail)?

Tiziana,

Since I not familar with the avn (grid 3, 65160 point) model in
particular I can't give a direct answer but I will the give procedure on
how to get the correct CDL.  If the LAPS cdl file works by all means use
it. But I would check the output using ncdump to make sure all the fields
are being populated.  NetCDF allocates the space before the input is
actually processed so reserving variable space without using it is wasted.
At this time, the status of the LAPS gribtonc code is not known.  It's
possible they have modified the code so Unidata's gribtonc will not work
with their cdl. 

Another approach would be to use the would be to use the closest fit avn
cdl file from the tar files and then modify the x and y parameters or lat 
and lon parameters, using avn-1.25x1.25 as a template then it would look
like this at the bottom of the file. ie

At top:

        lat = 181 ;             // latitude
        lon = 360 ; 

At bottom:

lon =  -30, -29, -28 ....

lat = -90.0, -89.0 -88.0   ....
  
I would run the newing created cdl from the command line to check out your
progress.

% gribtonc -vl - avn-1.0x1.0.cdl test.nc < avn.input


Hopes this helps,
Robb...

> 
> Thank you very much for any help you could give to me.
> I really appreciate your work.
> 
> Cheers,
> 
>               Tiziana.
> 
> -------------------------------------
> Tiziana Cherubini
> Department of Meteorology
> University of Hawaii
> 2525 Correa Rd. HIG 350
> Honolulu, Hawaii 96822
> (808) 956-4593, (808) 956-2877 fax
> 
> 
> //------------------------------------------------------------------------------
> //  NOAA/ERL
> //  Forecast Systems Laboratory
> //  Facility Division
> //  Data Acquisition Branch
> //  Posix Data Services Software
> //
> //  This software and its documentation are in the public domain and are 
> //  furnished "as is".  The United Stated government, its instrumentalities,
> //  officers, employees, and agents make no warranty, express or implied, as 
> to
> //  the usefullness of the software and documentation for any purpose.  They 
> //  assume no responsibility (1) for the use of the software and 
> documentation;
> //  or (2) to provide technical support to users.
> //
> //  avn_global_complete_list.cdl
> //
> //  netCDF data file definition for aviation model NPS grids
> //
> //  latitude and longitude information for grid:
> //  lon x lat = 1.0 x 1.0
> //  
> //------------------------------------------------------------------------------
> netcdf AvnGlobal 
>     {
> 
>     dimensions:
>         record = unlimited;
>       namelen = 132;
>       y = 181; 
>       x = 360;
>       numIsoLevel = 26;
>         fixedHeight = 3;
> 
>     variables:
> 
>         //      geopotential height at Isobaric Levels
> 
>         float
>             GH(record, numIsoLevel, y, x);
>             GH:record = "valtime, reftime";
>             GH:_Navigation_var = "nav";
>             GH:numIsoLevel = "isoLevel";
>             GH:long_name = "geopotential height";
>             GH:units = "meters";
>             GH:valid_range = -800.f, 100000.f;
>             GH:_FillValue = -99999.f;
> 
>       //      temperature at Isobaric Levels
> 
>       float
>           T(record, numIsoLevel, y, x);
>           T:record = "valtime, reftime";
>           T:_Navigation_var = "nav";
>             T:numIsoLevel = "isoLevel";
>           T:long_name = "temperature";
>           T:units = "kelvin";
>           T:valid_range = 160.f, 340.f;
>           T:_FillValue = -99999.f;
> 
>         //     VVEL=pressure vertical velocity
> 
>         float
>             PVV(record, numIsoLevel, y, x);
>             PVV:record = "valtime, reftime";
>             PVV:_Navigation_var = "nav";
>             PVV:numIsoLevel = "isoLevel";
>             PVV:long_name = "pressure vertical velocity";
>             PVV:units = "Pa/s";
>             PVV:valid_range = -10.f, 10.f;
>             PVV:_FillValue = -99999.f;
> 
>         //      relative humidity at isobaric levels
> 
>         float
>             RH(record, numIsoLevel, y, x);
>             RH:record = "valtime, reftime";
>             RH:_Navigation_var = "nav";
>             RH:numIsoLevel = "isoLevel";
>             RH:long_name = "relative humidity";
>             RH:units = "percent";
>             RH:valid_range = -5.f, 110.f;
>             RH:_FillValue = -99999.f;
> 
>         //     Absolute vorticity
> 
>         float
>             AV(record, numIsoLevel, y, x);
>             AV:record = "valtime, reftime";
>             AV:_Navigation_var = "nav";
>             AV:numIsoLevel = "isoLevel";
>             AV:long_name = "absolute vorticity";
>             AV:units = "/second";
>             AV:valid_range = -300.f, 300.f;
>             AV:_FillValue = -99999.f;
> 
>         //     ozone mixing ratio
> 
>         float
>             O3MR(record, numIsoLevel, y, x);
>             O3MR:record = "valtime, reftime";
>             O3MR:_Navigation_var = "nav";
>             O3MR:numIsoLevel = "isoLevel";
>             O3MR:long_name = "ozone mixing ratio";
>             O3MR:units = "kg/kg";
>             O3MR:_FillValue = -99999.f;
> 
>         //     5-wave geopotential height
> 
>         float
>             WAVH5(record, y, x);
>             WAVH5:record = "valtime, reftime";
>             WAVH5:_Navigation_var = "nav";
>             WAVH5:long_name = "5-wave geopotential height";
>             WAVH5:units = "GpM";
>             WAVH5:_FillValue = -99999.f;
> 
>         //      UGRD=u wind component at Isobaric Levels
> 
>         float
>             uW(record, numIsoLevel, y, x);
>             uW:record = "valtime, reftime";
>             uW:_Navigation_var = "nav";
>             uW:numIsoLevel = "isoLevel";
>             uW:long_name = "eastward wind";
>             uW:units = "meters/second";
>             uW:valid_range = -150.f, 150.f;
>             uW:_FillValue = -99999.f;
> 
>         //      VGRD=v wind component at Isobaric Levels
> 
>         float
>             vW(record, numIsoLevel, y, x);
>             vW:record = "valtime, reftime";
>             vW:_Navigation_var = "nav";
>             vW:numIsoLevel = "isoLevel";
>             vW:long_name = "northward wind";
>             vW:units = "meters/second";
>             vW:valid_range = -150.f, 150.f;
>             vW:_FillValue = -99999.f;
> 
>         //     temperature 30-0 mb above ground
> 
>         float
>             T_30(record, y, x);
>             T_30:record = "valtime, reftime";
>             T_30:_Navigation_var = "nav";
>             T_30:long_name = "temperature 30-0 mb above ground";
>             T_30:units = "kelvin";
>             T_30:valid_range = 160.f, 340.f;
>             T_30:_FillValue = -99999.f;
> 
>         //     relative humidity 30-0 mb above ground
> 
>         float
>             RH_30(record, y, x);
>             RH_30:record = "valtime, reftime";
>             RH_30:_Navigation_var = "nav";
>             RH_30:long_name = "relative humidity 30-0 mb above ground";
>             RH_30:units = "percent";
>             RH_30:valid_range = -10.f, 110.f;
>             RH_30:_FillValue = -99999.f;
> 
>         //     specific humidity 30-0 mb above ground
> 
>         float
>             SH_30(record, y, x);
>             SH_30:record = "valtime, reftime";
>             SH_30:_Navigation_var = "nav";
>             SH_30:long_name = "specific humidity 30-0 mb above ground";
>             SH_30:units = "percent";
>             SH_30:valid_range = -10.f, 110.f;
>             SH_30:_FillValue = -99999.f;
> 
>         //     u wind component 30-0 mb above ground
> 
>         float
>             uW_30(record, y, x);
>             uW_30:record = "valtime, reftime";
>             uW_30:_Navigation_var = "nav";
>             uW_30:long_name = "eastward wind 30-0 mb above ground";
>             uW_30:units = "meters/second";
>             uW_30:valid_range = -300.f, 300.f;
>             uW_30:_FillValue = -99999.f;
> 
>         //     v wind component 30-0 mb above ground
> 
>         float
>             vW_30(record, y, x);
>             vW_30:record = "valtime, reftime";
>             vW_30:_Navigation_var = "nav";
>             vW_30:long_name = "northward wind 30-0 mb above ground";
>             vW_30:units = "meters/second";
>             vW_30:valid_range = -300.f, 300.f;
>             vW_30:_FillValue = -99999.f;
> 
>         //     temperature at fixed height above MSL
> 
>         float
>             T_FH(record, fixedHeight, y, x);
>             T_FH:record = "valtime, reftime";
>             T_FH:_Navigation_var = "nav";
>             T_FH:fixedHeight = "fixed height level";
>             T_FH:long_name = "temperature at fixed height above MSL";
>             T_FH:units = "kelvin";
>             T_FH:valid_range = 160.f, 340.f;
>             T_FH:_FillValue = -99999.f;
> 
>         //     u wind component at fixed height above MSL
> 
>         float
>             uW_FH(record, fixedHeight, y, x);
>             uW_FH:record = "valtime, reftime";
>             uW_FH:_Navigation_var = "nav";
>             uW_FH:fixedHeight = "fixed height level";
>             uW_FH:long_name = "eastward wind at fixed height above MSL";
>             uW_FH:units = "meters/second";
>             uW_FH:valid_range = -300.f, 300.f;
>             uW_FH:_FillValue = -99999.f;
> 
>         //     v wind component at fixed height above MSL
> 
>         float
>             vW_FH(record, fixedHeight, y, x);
>             vW_FH:record = "valtime, reftime";
>             vW_FH:_Navigation_var = "nav";
>             vW_FH:fixedHeight = "fixed height level";
>             vW_FH:long_name = "northward wind at fixed height above MSL";
>             vW_FH:units = "meters/second";
>             vW_FH:valid_range = -300.f, 300.f;
>             vW_FH:_FillValue = -99999.f;
> 
>         //     surface pressure
> 
>         float
>             P(record, y, x);
>             P:record = "valtime, reftime";
>             P:_Navigation_var = "nav";
>             P:long_name = "pressure at surface";
>             P:units = "pascals";
>             P:valid_range = 30000.f, 110000.f;
>             P:_FillValue = -99999.f;
> 
>         //     precipitable water
> 
>         float
>             PW(record, y, x);
>             PW:record = "valtime, reftime";
>             PW:_Navigation_var = "nav";
>             PW:long_name = "precipitable water";
>             PW:units = "kg/m2";
>             PW:valid_range = 0.f, 100.f;
>             PW:_FillValue = -99999.f;
> 
>         //     relative humidity (atmos col)
> 
>         float
>             RH_AC(record, y, x);
>             RH_AC:record = "valtime, reftime";
>             RH_AC:_Navigation_var = "nav";
>             RH_AC:long_name = "relative humidity (atmos col)";
>             RH_AC:units = "percent";
>             RH_AC:valid_range = -10.f, 110.f;
>             RH_AC:_FillValue = -99999.f;
> 
>         //      geopotential height at tropopause
> 
>         float
>             GH_T(record, y, x);
>             GH_T:record = "valtime, reftime";
>             GH_T:_Navigation_var = "nav";
>             GH_T:long_name = "geopotential height at tropopause";
>             GH_T:units = "meters";
>             GH_T:valid_range = -300.f, 100000.f;
>             GH_T:_FillValue = -99999.f;
> 
>       //      temperature at tropopause
> 
>       float
>           T_T(record, y, x);
>           T_T:record = "valtime, reftime";
>           T_T:_Navigation_var = "nav";
>           T_T:long_name = "temperature at tropopause";
>           T_T:units = "kelvin";
>           T_T:valid_range = 160.f, 340.f;
>           T_T:_FillValue = -99999.f;
> 
>         //      atmospheric pressure at tropopause
> 
>         float
>             P_T(record, y, x);
>             P_T:record = "valtime, reftime";
>             P_T:_Navigation_var = "nav";
>             P_T:long_name = "pressure at tropopause";
>             P_T:units = "pascals";
>             P_T:valid_range = 0.f, 150000.f;
>             P_T:_FillValue = -99999.f;
> 
>         //     vertical speed shear at tropopause
> 
>         float
>             VSS_T(record, y, x);
>             VSS_T:record = "valtime, reftime";
>             VSS_T:_Navigation_var = "nav";
>             VSS_T:long_name = "vertical speed shear at tropopause";
>             VSS_T:units = "1/s";
>             VSS_T:_FillValue = -99999.f;
> 
>         //     surface lifted index
> 
>         float
>             LI(record, y, x);
>             LI:record = "valtime, reftime";
>             LI:_Navigation_var = "nav";
>             LI:long_name = "surface lifted index";
>             LI:units = "kelvin";
>             LI:_FillValue = -99999.f;
> 
>         //     surface convective available potential energy
> 
>         float
>             CAPE(record, y, x);
>             CAPE:record = "valtime, reftime";
>             CAPE:_Navigation_var = "nav";
>             CAPE:long_name = "surface convective available potential energy";
>             CAPE:units = "J/kg";
>             CAPE:valid_range = 0.f, 20000.f;
>             CAPE:_FillValue = -99999.f;
> 
>         //     surface convective inhibition
> 
>         float
>             CIN(record, y, x);
>             CIN:record = "valtime, reftime";
>             CIN:_Navigation_var = "nav";
>             CIN:long_name = "surface convective inhibition";
>             CIN:units = "J/kg";
>             CIN:valid_range = 0.f, 20000.f;
>             CIN:_FillValue = -99999.f;
> 
>         //     Best (4-layer) lifted index [K] (Surface)
> 
>         float
>             LFTX4(record, y, x);
>             LFTX4:record = "valtime, reftime";
>             LFTX4:_Navigation_var = "nav";
>             LFTX4:long_name = "Best (4-layer) lifted index";
>             LFTX4:units = "K";
>             LFTX4:_FillValue = -99999.f;
> 
> 
>         //     Best (4-layer) lifted index [K] (180-0 mb above gnd)
> 
>         float
>             LFTX4180(record, y, x);
>             LFTX4180:record = "valtime, reftime";
>             LFTX4180:_Navigation_var = "nav";
>             LFTX4180:long_name = "Best (4-layer) lifted index";
>             LFTX4180:units = "K";
>             LFTX4180:_FillValue = -99999.f;
> 
>         //     convective available potential energy
> 
>         float
>             CAPE180(record, y, x);
>             CAPE180:record = "valtime, reftime";
>             CAPE180:_Navigation_var = "nav";
>             CAPE180:long_name = "convective available potential energy 180-0 
> mb";
>             CAPE180:units = "J/kg";
>             CAPE180:valid_range = 0.f, 20000.f;
>             CAPE180:_FillValue = -99999.f;
> 
>         //     convective inhibition
> 
>         float
>             CIN180(record, y, x);
>             CIN180:record = "valtime, reftime";
>             CIN180:_Navigation_var = "nav";
>             CIN180:long_name = "convective inhibition 180-0 mb";
>             CIN180:units = "J/kg";
>             CIN180:valid_range = 0.f, 20000.f;
>             CIN180:_FillValue = -99999.f;
> 
>         //      geopotential height at maximum wind
> 
>         float
>             GH_WMAX(record, y, x);
>             GH_WMAX:record = "valtime, reftime";
>             GH_WMAX:_Navigation_var = "nav";
>             GH_WMAX:long_name = "geopotential height at maximum wind";
>             GH_WMAX:units = "meters";
>             GH_WMAX:valid_range = -300.f, 100000.f;
>             GH_WMAX:_FillValue = -99999.f;
> 
>         //      temperature at maximum wind
> 
>         float
>             T_WMAX(record, y, x);
>             T_WMAX:record = "valtime, reftime";
>             T_WMAX:_Navigation_var = "nav";
>             T_WMAX:long_name = "temperature at maximum wind";
>             T_WMAX:units = "kelvin";
>             T_WMAX:valid_range = 160.f, 340.f;
>             T_WMAX:_FillValue = -99999.f;
> 
>         //      atmospheric pressure at max wind
> 
>         float
>             P_WMAX(record, y, x);
>             P_WMAX:record = "valtime, reftime";
>             P_WMAX:_Navigation_var = "nav";
>             P_WMAX:long_name = "pressure at maximum wind";
>             P_WMAX:units = "pascals";
>             P_WMAX:valid_range = 0.f, 150000.f;
>             P_WMAX:_FillValue = -99999.f;
> 
>         //      geopotential height of surface
> 
>         float
>             GH_S(record, y, x);
>             GH_S:record = "valtime, reftime";
>             GH_S:_Navigation_var = "nav";
>             GH_S:long_name = "geopotential height of surface";
>             GH_S:units = "meters";
>             GH_S:valid_range = -500.f, 10000.f;
>             GH_S:_FillValue = -99999.f;
> 
>         //      atmospheric pressure at mean sea level
> 
>         float
>             PMSL(record, y, x);
>             PMSL:record = "valtime, reftime";
>             PMSL:_Navigation_var = "nav";
>             PMSL:long_name = "pressure at mean sea level";
>             PMSL:units = "pascals";
>             PMSL:valid_range = 85000.f, 110000.f;
>             PMSL:_FillValue = -99999.f;
> 
>         //      relative humidity at sigma 0.44-1.00
> 
>         float
>             RH_SONE(record, y, x);
>             RH_SONE:record = "valtime, reftime";
>             RH_SONE:_Navigation_var = "nav";
>             RH_SONE:long_name = "relative humidity - sigma 0.44-1.00";
>             RH_SONE:units = "percent";
>             RH_SONE:valid_range = -10.f, 110.f;
>             RH_SONE:_FillValue = -99999.f;
> 
>         //      relative humidity at sigma 0.72-0.94
> 
>         float
>             RH_STWO(record, y, x);
>             RH_STWO:record = "valtime, reftime";
>             RH_STWO:_Navigation_var = "nav";
>             RH_STWO:long_name = "relative humidity - sigma 0.72-0.94";
>             RH_STWO:units = "percent";
>             RH_STWO:valid_range = -10.f, 110.f;
>             RH_STWO:_FillValue = -99999.f;
> 
>         //      relative humidity at sigma 0.44-0.72
> 
>         float
>             RH_STRE(record, y, x);
>             RH_STRE:record = "valtime, reftime";
>             RH_STRE:_Navigation_var = "nav";
>             RH_STRE:long_name = "relative humidity - sigma 0.44-0.72";
>             RH_STRE:units = "percent";
>             RH_STRE:valid_range = -10.f, 110.f;
>             RH_STRE:_FillValue = -99999.f;
> 
>         //      relative humidity at sigma 0.33-1.00
> 
>         float
>             RH_SFOUR(record, y, x);
>             RH_SFOUR:record = "valtime, reftime";
>             RH_SFOUR:_Navigation_var = "nav";
>             RH_SFOUR:long_name = "relative humidity - sigma 0.33-1.00";
>             RH_SFOUR:units = "percent";
>             RH_SFOUR:valid_range = -10.f, 110.f;
>             RH_SFOUR:_FillValue = -99999.f;
> 
>         //      potential temperature, sigma=0.9950
> 
>         float
>             PT_SIG(record, y, x);
>             PT_SIG:record = "valtime, reftime";
>             PT_SIG:_Navigation_var = "nav";
>             PT_SIG:long_name = "potential temperature at sigma=0.9950";
>             PT_SIG:units = "kelvin";
>             PT_SIG:valid_range = 160.f, 340.f;
>             PT_SIG:_FillValue = -99999.f;
> 
>         //      temperature, sigma=0.9950
> 
>         float
>             T_SIG(record, y, x);
>             T_SIG:record = "valtime, reftime";
>             T_SIG:_Navigation_var = "nav";
>             T_SIG:long_name = "temperature at sigma=0.9950";
>             T_SIG:units = "kelvin";
>             T_SIG:valid_range = 160.f, 340.f;
>             T_SIG:_FillValue = -99999.f;
> 
>         //     pressure vertical velocity, sigma=0.9950
> 
>         float
>             PVV_SIG(record, y, x);
>             PVV_SIG:record = "valtime, reftime";
>             PVV_SIG:_Navigation_var = "nav";
>             PVV_SIG:long_name = "pressure vertical velocity, sigma=0.9950";
>             PVV_SIG:units = "Pa/s";
>             PVV_SIG:valid_range = -10.f, 10.f;
>             PVV_SIG:_FillValue = -99999.f;
> 
>         //      relative humidity, sigma=0.9950
> 
>         float
>             RH_SIG(record, y, x);
>             RH_SIG:record = "valtime, reftime";
>             RH_SIG:_Navigation_var = "nav";
>             RH_SIG:long_name = "relative humidity, sigma=0.9950";
>             RH_SIG:units = "percent";
>             RH_SIG:valid_range = -10.f, 110.f;
>             RH_SIG:_FillValue = -99999.f;
> 
>         //      TOZNE - Total ozone [Dobson]
> 
>         float
>             TOZNE(record, y, x);
>             TOZNE:record = "valtime, reftime";
>             TOZNE:_Navigation_var = "nav";
>             TOZNE:long_name = "total ozone";
>             TOZNE:units = "dobson";
>             TOZNE:_FillValue = -99999.f;
> 
>       //      u wind component at tropopause
> 
>       float
>           uW_T(record, y, x);
>           uW_T:record = "valtime, reftime";
>           uW_T:_Navigation_var = "nav";
>           uW_T:long_name = "eastward wind at tropopause";
>           uW_T:units = "meters/second";
>           uW_T:valid_range = -300.f, 300.f;
>           uW_T:_FillValue = -99999.f;
> 
>         //      u wind component at max wind
> 
>         float
>             uW_WMAX(record, y, x);
>             uW_WMAX:record = "valtime, reftime";
>             uW_WMAX:_Navigation_var = "nav";
>             uW_WMAX:long_name = "eastward wind at maximum wind";
>             uW_WMAX:units = "meters/second";
>             uW_WMAX:valid_range = -300.f, 300.f;
>             uW_WMAX:_FillValue = -99999.f;
> 
>         //      eastward wind at sigma=0.9950
> 
>         float
>             uW_SIG(record, y, x);
>             uW_SIG:record = "valtime, reftime";
>             uW_SIG:_Navigation_var = "nav";
>             uW_SIG:long_name = "eastward wind at sigma=0.9950";
>             uW_SIG:units = "meters/second";
>             uW_SIG:valid_range = -300.f, 300.f;
>             uW_SIG:_FillValue = -99999.f;
> 
>       //      v wind component at tropopause
> 
>       float
>           vW_T(record, y, x);
>           vW_T:record = "valtime, reftime";
>           vW_T:_Navigation_var = "nav";
>           vW_T:long_name = "northward wind at tropopause";
>           vW_T:units = "meters/second";
>           vW_T:valid_range = -300.f, 300.f;
>           vW_T:_FillValue = -99999.f;
> 
>       //      v wind component at maximum
> 
>       float
>           vW_WMAX(record, y, x);
>           vW_WMAX:record = "valtime, reftime";
>           vW_WMAX:_Navigation_var = "nav";
>           vW_WMAX:long_name = "northward wind at maximum wind";
>           vW_WMAX:units = "meters/second";
>           vW_WMAX:valid_range = -300.f, 300.f;
>           vW_WMAX:_FillValue = -99999.f;
> 
>         //      northward wind at sigma=0.9950
> 
>         float
>             vW_SIG(record, y, x);
>             vW_SIG:record = "valtime, reftime";
>             vW_SIG:_Navigation_var = "nav";
>             vW_SIG:long_name = "northward wind at sigma=0.9950";
>             vW_SIG:units = "meters/second";
>             vW_SIG:valid_range = -300.f, 300.f;
>             vW_SIG:_FillValue = -99999.f;
> 
>         //      sensible heat flux at surface
> 
>         float
>             SHTFL(record, y, x);
>             SHTFL:record = "valtime, reftime";
>             SHTFL:_Navigation_var = "nav";
>             SHTFL:long_name = "sensible heat flux at surface";
>             SHTFL:units = "W/m2";
>             SHTFL:_FillValue = -99999.f;
> 
>         //      latent heat flux at surface
> 
>         float
>             LHTFL(record, y, x);
>             LHTFL:record = "valtime, reftime";
>             LHTFL:_Navigation_var = "nav";
>             LHTFL:long_name = "latent heat flux at surface";
>             LHTFL:units = "W/m2";
>             LHTFL:_FillValue = -99999.f;
> 
>         //     temperature at surface
> 
>         float
>             T_S(record, y, x);
>             T_S:record = "valtime, reftime";
>             T_S:_Navigation_var = "nav";
>             T_S:long_name = "temperature at surface";
>             T_S:units = "kelvin";
>             T_S:valid_range = 160.f, 340.f;
>             T_S:_FillValue = -99999.f;
> 
>         //     volumetric soil moisture 0-10cm down from surface
> 
>         float
>             USOILW(record, y, x);
>             USOILW:record = "valtime, reftime";
>             USOILW:_Navigation_var = "nav";
>             USOILW:long_name = "volumetric soil moisture 0-10cm down from 
> surface";
>             USOILW:units = "fraction";
>             USOILW:_FillValue = -99999.f;
> 
>         //     volumetric soil moisture 10-200cm down from surface
> 
>         float
>             LSOILW(record, y, x);
>             LSOILW:record = "valtime, reftime";
>             LSOILW:_Navigation_var = "nav";
>             LSOILW:long_name = "volumetric soil moisture 10-200cm down from 
> surface";
>             LSOILW:units = "fraction";
>             LSOILW:_FillValue = -99999.f;
> 
>         //     temperature 0-10 cm down from surface
> 
>         float
>             T_10D(record, y, x);
>             T_10D:record = "valtime, reftime";
>             T_10D:_Navigation_var = "nav";
>             T_10D:long_name = "temperature 0-10 cm down from surface";
>             T_10D:units = "kelvin";
>             T_10D:valid_range = 160.f, 340.f;
>             T_10D:_FillValue = -99999.f;
> 
>         //     temperature 10-200 cm down from surface
> 
>         float
>             T_200D(record, y, x);
>             T_200D:record = "valtime, reftime";
>             T_200D:_Navigation_var = "nav";
>             T_200D:long_name = "temperature 10-200 cm down from surface";
>             T_200D:units = "kelvin";
>             T_200D:valid_range = 160.f, 340.f;
>             T_200D:_FillValue = -99999.f;
> 
>         //      accumulated snow
> 
>         float
>             ACCS(record, y, x);
>             ACCS:record = "valtime, reftime";
>             ACCS:_Navigation_var = "nav";
>             ACCS:long_name = "accumulated snow";
>             ACCS:units = "kg/m2";
>             ACCS:_FillValue = -99999.f;
> 
>         //     downward long wave flux at surface
> 
>         float
>             DLWF_S(record, y, x);
>             DLWF_S:record = "valtime, reftime";
>             DLWF_S:_Navigation_var = "nav";
>             DLWF_S:long_name = "downward long wave flux at surface";
>             DLWF_S:units = "W/m2";
>             DLWF_S:_FillValue = -99999.f;
> 
>         //     upward long wave flux at surface
> 
>         float
>             ULWF_S(record, y, x);
>             ULWF_S:record = "valtime, reftime";
>             ULWF_S:_Navigation_var = "nav";
>             ULWF_S:long_name = "upward long wave flux at surface";
>             ULWF_S:units = "W/m2";
>             ULWF_S:_FillValue = -99999.f;
> 
>         //     upward long wave flux at nom. top
> 
>         float
>             ULWF_NT(record, y, x);
>             ULWF_NT:record = "valtime, reftime";
>             ULWF_NT:_Navigation_var = "nav";
>             ULWF_NT:long_name = "upward long wave flux at nom. top";
>             ULWF_NT:units = "W/m2";
>             ULWF_NT:_FillValue = -99999.f;
> 
>         //     upward short wave flux at nom. top
> 
>         float
>             USWF_NT(record, y, x);
>             USWF_NT:record = "valtime, reftime";
>             USWF_NT:_Navigation_var = "nav";
>             USWF_NT:long_name = "upward short wave flux at nom. top";
>             USWF_NT:units = "W/m2";
>             USWF_NT:_FillValue = -99999.f;
> 
>         //     upward short wave flux at surface
> 
>         float
>             USWF_S(record, y, x);
>             USWF_S:record = "valtime, reftime";
>             USWF_S:_Navigation_var = "nav";
>             USWF_S:long_name = "upward short wave flux at surface";
>             USWF_S:units = "W/m2";
>             USWF_S:_FillValue = -99999.f;
> 
>         //     downward short wave flux at surface
> 
>         float
>             DSWF_S(record, y, x);
>             DSWF_S:record = "valtime, reftime";
>             DSWF_S:_Navigation_var = "nav";
>             DSWF_S:long_name = "downward short wave flux at surface";
>             DSWF_S:units = "W/m2";
>             DSWF_S:_FillValue = -99999.f;
> 
>         //      total cloud cover - high cloud layer
> 
>         float
>             TCC_HCLD(record, y, x);
>             TCC_HCLD:record = "valtime, reftime";
>             TCC_HCLD:_Navigation_var = "nav";
>             TCC_HCLD:long_name = "total cloud cover - high cloud layer";
>             TCC_HCLD:units = "percent";
>             TCC_HCLD:_FillValue = -99999.f;
> 
>         //     pressure at top of high cloud layer
> 
>         float
>             P_THCLD(record, y, x);
>             P_THCLD:record = "valtime, reftime";
>             P_THCLD:_Navigation_var = "nav";
>             P_THCLD:long_name = "pressure at top of high cloud layer";
>             P_THCLD:units = "pascals";
>             P_THCLD:valid_range = 0.f, 150000.f;
>             P_THCLD:_FillValue = -99999.f;
> 
>         //     pressure at bottom of high cloud layer
> 
>         float
>             P_BHCLD(record, y, x);
>             P_BHCLD:record = "valtime, reftime";
>             P_BHCLD:_Navigation_var = "nav";
>             P_BHCLD:long_name = "pressure at bottom of high cloud layer";
>             P_BHCLD:units = "pascals";
>             P_BHCLD:valid_range = 0.f, 150000.f;
>             P_BHCLD:_FillValue = -99999.f;
> 
>         //     temperature at top of high cloud layer
> 
>         float
>             T_THCLD(record, y, x);
>             T_THCLD:record = "valtime, reftime";
>             T_THCLD:_Navigation_var = "nav";
>             T_THCLD:long_name = "temperature at top of high cloud layer";
>             T_THCLD:units = "kelvin";
>             T_THCLD:valid_range = 160.f, 340.f;
>             T_THCLD:_FillValue = -99999.f;
> 
>         //      total cloud cover - medium cloud layer
> 
>         float
>             TCC_MCLD(record, y, x);
>             TCC_MCLD:record = "valtime, reftime";
>             TCC_MCLD:_Navigation_var = "nav";
>             TCC_MCLD:long_name = "total cloud cover - medium cloud layer";
>             TCC_MCLD:units = "percent";
>             TCC_MCLD:_FillValue = -99999.f;
> 
>         //     pressure at top of medium cloud layer
> 
>         float
>             P_TMCLD(record, y, x);
>             P_TMCLD:record = "valtime, reftime";
>             P_TMCLD:_Navigation_var = "nav";
>             P_TMCLD:long_name = "pressure at top of medium cloud layer";
>             P_TMCLD:units = "pascals";
>             P_TMCLD:valid_range = 0.f, 150000.f;
>             P_TMCLD:_FillValue = -99999.f;
> 
>         //     pressure at bottom of medium cloud layer
> 
>         float
>             P_BMCLD(record, y, x);
>             P_BMCLD:record = "valtime, reftime";
>             P_BMCLD:_Navigation_var = "nav";
>             P_BMCLD:long_name = "pressure at bottom of medium cloud layer";
>             P_BMCLD:units = "pascals";
>             P_BMCLD:valid_range = 0.f, 150000.f;
>             P_BMCLD:_FillValue = -99999.f;
> 
>         //     temperature at top of medium cloud layer
> 
>         float
>             T_TMCLD(record, y, x);
>             T_TMCLD:record = "valtime, reftime";
>             T_TMCLD:_Navigation_var = "nav";
>             T_TMCLD:long_name = "temperature at top of medium cloud layer";
>             T_TMCLD:units = "kelvin";
>             T_TMCLD:valid_range = 160.f, 340.f;
>             T_TMCLD:_FillValue = -99999.f;
> 
>         //      total cloud cover - low cloud layer
> 
>         float
>             TCC_LCLD(record, y, x);
>             TCC_LCLD:record = "valtime, reftime";
>             TCC_LCLD:_Navigation_var = "nav";
>             TCC_LCLD:long_name = "total cloud cover - low cloud layer";
>             TCC_LCLD:units = "percent";
>             TCC_LCLD:_FillValue = -99999.f;
> 
>         //     pressure at top of low cloud layer
> 
>         float
>             P_TLCLD(record, y, x);
>             P_TLCLD:record = "valtime, reftime";
>             P_TLCLD:_Navigation_var = "nav";
>             P_TLCLD:long_name = "pressure at top of low cloud layer";
>             P_TLCLD:units = "pascals";
>             P_TLCLD:valid_range = 0.f, 150000.f;
>             P_TLCLD:_FillValue = -99999.f;
> 
>         //     pressure at bottom of low cloud layer
> 
>         float
>             P_BLCLD(record, y, x);
>             P_BLCLD:record = "valtime, reftime";
>             P_BLCLD:_Navigation_var = "nav";
>             P_BLCLD:long_name = "pressure at bottom of low cloud layer";
>             P_BLCLD:units = "pascals";
>             P_BLCLD:valid_range = 0.f, 150000.f;
>             P_BLCLD:_FillValue = -99999.f;
> 
>         //     temperature at top of low cloud layer
> 
>         float
>             T_TLCLD(record, y, x);
>             T_TLCLD:record = "valtime, reftime";
>             T_TLCLD:_Navigation_var = "nav";
>             T_TLCLD:long_name = "temperature at top of low cloud layer";
>             T_TLCLD:units = "kelvin";
>             T_TLCLD:valid_range = 160.f, 340.f;
>             T_TLCLD:_FillValue = -99999.f;
> 
>         //      precipitation rate
> 
>         float
>             PRATE(record, y, x);
>             PRATE:record = "valtime, reftime";
>             PRATE:_Navigation_var = "nav";
>             PRATE:long_name = "precipitation rate";
>             PRATE:units = "kg/m2/s";
>             PRATE:_FillValue = -99999.f;
> 
>         //      convective precipitation rate
> 
>         float
>             CPRAT(record, y, x);
>             CPRAT:record = "valtime, reftime";
>             CPRAT:_Navigation_var = "nav";
>             CPRAT:long_name = "convective precipitation rate";
>             CPRAT:units = "kg/m2/s";
>             CPRAT:_FillValue = -99999.f;
> 
>         //      ground heat flux
> 
>         float
>             GHF(record, y, x);
>             GHF:record = "valtime, reftime";
>             GHF:_Navigation_var = "nav";
>             GHF:long_name = "ground heat flux";
>             GHF:units = "W/m2";
>             GHF:_FillValue = -99999.f;
> 
>         //      land cover
> 
>         float
>             LAND(record, y, x);
>             LAND:record = "valtime, reftime";
>             LAND:_Navigation_var = "nav";
>             LAND:long_name = "land cover (1=land, 0=sea)";
>             LAND:units = "fraction";
>             LAND:valid_range = 0.f, 1.f;
>             LAND:_FillValue = -99999.f;
> 
>         //      ice concentration
> 
>         float
>             ICEC(record, y, x);
>             ICEC:record = "valtime, reftime";
>             ICEC:_Navigation_var = "nav";
>             ICEC:long_name = "ice concentration (1=ice, 0=no ice)";
>             ICEC:units = "fraction";
>             ICEC:valid_range = 0.f, 1.f;
>             ICEC:_FillValue = -99999.f;
> 
>         //     temperature 2m above the ground
> 
>         float
>             T_2M(record, y, x);
>             T_2M:record = "valtime, reftime";
>             T_2M:_Navigation_var = "nav";
>             T_2M:long_name = "temperature 2m above the ground";
>             T_2M:units = "kelvin";
>             T_2M:valid_range = 160.f, 340.f;
>             T_2M:_FillValue = -99999.f;
> 
>         //     specific humidity 2m above ground
> 
>         float
>             SH_2M(record, y, x);
>             SH_2M:record = "valtime, reftime";
>             SH_2M:_Navigation_var = "nav";
>             SH_2M:long_name = "specific humidity 2m above ground";
>             SH_2M:units = "kg/kg";
>             SH_2M:_FillValue = -99999.f;
> 
>         //     maximum temperature 2m above the ground
> 
>         float
>             TMAX_2M(record, y, x);
>             TMAX_2M:record = "valtime, reftime";
>             TMAX_2M:_Navigation_var = "nav";
>             TMAX_2M:long_name = "maximum temperature 2m above the ground";
>             TMAX_2M:units = "kelvin";
>             TMAX_2M:valid_range = 160.f, 340.f;
>             TMAX_2M:_FillValue = -99999.f;
> 
>         //     minimum temperature 2m above the ground
> 
>         float
>             TMIN_2M(record, y, x);
>             TMIN_2M:record = "valtime, reftime";
>             TMIN_2M:_Navigation_var = "nav";
>             TMIN_2M:long_name = "minimum temperature 2m above the ground";
>             TMIN_2M:units = "kelvin";
>             TMIN_2M:valid_range = 160.f, 340.f;
>             TMIN_2M:_FillValue = -99999.f;
> 
>         //     water runoff
> 
>         float
>             WATR(record, y, x);
>             WATR:record = "valtime, reftime";
>             WATR:_Navigation_var = "nav";
>             WATR:long_name = "water runoff";
>             WATR:units = "kg/m2";
>             WATR:_FillValue = -99999.f;
> 
>         //     potential evaporation rate
> 
>         float
>             PEVPR(record, y, x);
>             PEVPR:record = "valtime, reftime";
>             PEVPR:_Navigation_var = "nav";
>             PEVPR:long_name = "potential evaporation rate";
>             PEVPR:units = "W/m2";
>             PEVPR:_FillValue = -99999.f;
> 
>         //     cloud work function
> 
>         float
>             CWF(record, y, x);
>             CWF:record = "valtime, reftime";
>             CWF:_Navigation_var = "nav";
>             CWF:long_name = "cloud work function";
>             CWF:units = "J/kg";
>             CWF:_FillValue = -99999.f;
> 
>         //     planetary boundary layer height
> 
>         float
>             PBLH(record, y, x);
>             PBLH:record = "valtime, reftime";
>             PBLH:_Navigation_var = "nav";
>             PBLH:long_name = "planetary boundary layer height";
>             PBLH:units = "meters";
>             PBLH:_FillValue = -99999.f;
> 
>         //     albedo at the surface
> 
>         float
>             ALBDO(record, y, x);
>             ALBDO:record = "valtime, reftime";
>             ALBDO:_Navigation_var = "nav";
>             ALBDO:long_name = "albedo at the surface";
>             ALBDO:units = "percent";
>             ALBDO:_FillValue = -99999.f;
> 
>         //      total cloud cover - atmos col
> 
>         float
>             TCC_HAC(record, y, x);
>             TCC_HAC:record = "valtime, reftime";
>             TCC_HAC:_Navigation_var = "nav";
>             TCC_HAC:long_name = "total cloud cover - atmos col";
>             TCC_HAC:units = "percent";
>             TCC_HAC:_FillValue = -99999.f;
> 
>         //     total cloud cover - convective cloud
> 
>         float
>             TCC_CON(record, y, x);
>             TCC_CON:record = "valtime, reftime";
>             TCC_CON:_Navigation_var = "nav";
>             TCC_CON:long_name = "total cloud cover - convective cloud";
>             TCC_CON:units = "percent";
>             TCC_CON:_FillValue = -99999.f;
> 
>         //     pressure at top of convective cloud
> 
>         float
>             P_TLCON(record, y, x);
>             P_TLCON:record = "valtime, reftime";
>             P_TLCON:_Navigation_var = "nav";
>             P_TLCON:long_name = "pressure at top of convective cloud";
>             P_TLCON:units = "pascals";
>             P_TLCON:valid_range = 0.f, 150000.f;
>             P_TLCON:_FillValue = -99999.f;
> 
>         //     pressure at bottom of convective cloud
> 
>         float
>             P_BLCON(record, y, x);
>             P_BLCON:record = "valtime, reftime";
>             P_BLCON:_Navigation_var = "nav";
>             P_BLCON:long_name = "pressure at bottom of convective cloud";
>             P_BLCON:units = "pascals";
>             P_BLCON:valid_range = 0.f, 150000.f;
>             P_BLCON:_FillValue = -99999.f;
> 
>         //     total cloud cover - boundary cloud layer
> 
>         float
>             TCC_BND(record, y, x);
>             TCC_BND:record = "valtime, reftime";
>             TCC_BND:_Navigation_var = "nav";
>             TCC_BND:long_name = "total cloud cover - boundary cloud layer";
>             TCC_BND:units = "percent";
>             TCC_BND:_FillValue = -99999.f;
> 
>         //     total precipitation at surface
> 
>         float
>             APCP(record, y, x);
>             APCP:record = "valtime, reftime";
>             APCP:_Navigation_var = "nav";
>             APCP:long_name = "total precipitation";
>             APCP:units = "kg/m2";
>             APCP:valid_range = 0.f, 1000.f;
>             APCP:_FillValue = -99999.f;
> 
> 
>         //     convective precipitation
> 
>         float
>             ACPCP(record, y, x);
>             ACPCP:record = "valtime, reftime";
>             ACPCP:_Navigation_var = "nav";
>             ACPCP:long_name = "convective precipitation";
>             ACPCP:units = "kg/m2";
>             ACPCP:valid_range = 0.f, 1000.f;
>             ACPCP:_FillValue = -99999.f;
> 
>         //     categorical rain at the surface
> 
>         float
>             CRAIN(record, y, x);
>             CRAIN:record = "valtime, reftime";
>             CRAIN:_Navigation_var = "nav";
>             CRAIN:long_name = "categorical rain at the surface (1=yes, 0=no)";
>             CRAIN:units = "flag";
>             CRAIN:_FillValue = -99999.f;
> 
>         //     categorical freezing rain
> 
>         float
>             CFR(record, y, x);
>             CFR:record = "valtime, reftime";
>             CFR:_Navigation_var = "nav";
>             CFR:long_name = "categorical freezing rain at the surface (1=yes, 
> 0=no)";
>             CFR:units = "flag";
>             CFR:_FillValue = -99999.f;
> 
>         //     categorical ice pellets
> 
>         float
>             CIP(record, y, x);
>             CIP:record = "valtime, reftime";
>             CIP:_Navigation_var = "nav";
>             CIP:long_name = "categorical ice pellets at the surface (1=yes, 
> 0=no)";
>             CIP:units = "flag";
>             CIP:_FillValue = -99999.f;
> 
>         //     categorical snow
> 
>         float
>             CS(record, y, x);
>             CS:record = "valtime, reftime";
>             CS:_Navigation_var = "nav";
>             CS:long_name = "categorical snow at the surface (1=yes, 0=no)";
>             CS:units = "flag";
>             CS:_FillValue = -99999.f;
> 
>         //      relative humidity 2m above ground
> 
>         float
>             RH_2M(record, y, x);
>             RH_2M:record = "valtime, reftime";
>             RH_2M:_Navigation_var = "nav";
>             RH_2M:long_name = "relative humidity 2m above ground";
>             RH_2M:units = "percent";
>             RH_2M:valid_range = -10.f, 110.f;
>             RH_2M:_FillValue = -99999.f;
> 
>         //      zonal momentum flux at the surface
> 
>         float
>             ZMF_S(record, y, x);
>             ZMF_S:record = "valtime, reftime";
>             ZMF_S:_Navigation_var = "nav";
>             ZMF_S:long_name = "zonal momentum flux at the surface";
>             ZMF_S:units = "N/m2";
>             ZMF_S:_FillValue = -99999.f;
> 
>         //      eastward wind at 10m above ground
> 
>         float
>             uW_10M(record, y, x);
>             uW_10M:record = "valtime, reftime";
>             uW_10M:_Navigation_var = "nav";
>             uW_10M:long_name = "eastward wind at 10m above ground";
>             uW_10M:units = "meters/second";
>             uW_10M:valid_range = -300.f, 300.f;
>             uW_10M:_FillValue = -99999.f;
> 
>         //      zonal gravity wave stress
> 
>         float
>             ZGWS(record, y, x);
>             ZGWS:record = "valtime, reftime";
>             ZGWS:_Navigation_var = "nav";
>             ZGWS:long_name = "zonal gravity wave stress";
>             ZGWS:units = "N/m2";
>             ZGWS:_FillValue = -99999.f;
> 
>         //      meridional momentum flux
> 
>         float
>             MMF(record, y, x);
>             MMF:record = "valtime, reftime";
>             MMF:_Navigation_var = "nav";
>             MMF:long_name = "meridional momentum flux";
>             MMF:units = "N/m2";
>             MMF:_FillValue = -99999.f;
> 
>         //      northward wind at 10m above ground
> 
>         float
>             vW_10M(record, y, x);
>             vW_10M:record = "valtime, reftime";
>             vW_10M:_Navigation_var = "nav";
>             vW_10M:long_name = "northward wind at 10m above ground";
>             vW_10M:units = "meters/second";
>             vW_10M:valid_range = -300.f, 300.f;
>             vW_10M:_FillValue = -99999.f;
> 
>         //      meridional gravity wave stress
> 
>         float
>             MGWS(record, y, x);
>             MGWS:record = "valtime, reftime";
>             MGWS:_Navigation_var = "nav";
>             MGWS:long_name = "meridional gravity wave stress";
>             MGWS:units = "N/m2";
>             MGWS:_FillValue = -99999.f;
> 
>         //      geopotential height anomaly
> 
>         float
>             GHA(record, numIsoLevel, y, x);
>             GHA:record = "valtime, reftime";
>             GHA:_Navigation_var = "nav";
>             GHA:numIsoLevel = "isoLevel";
>             GHA:long_name = "geopotential height anomaly";
>             GHA:units = "gpm";
>             GHA:_FillValue = -99999.f;
> 
>         //      5-wave geopotential height anomaly
> 
>         float
>             WAV5(record, y, x);
>             WAV5:record = "valtime, reftime";
>             WAV5:_Navigation_var = "nav";
>             WAV5:long_name = "5-wave geopotential height anomaly - 500 mb";
>             WAV5:units = "gpm";
>             WAV5:_FillValue = -99999.f;
> 
>       //      time the data is valid at
> 
>       double  
>           valtime(record);
>           valtime:long_name = "valid time";
>           valtime:units = "seconds since (1970-1-1 00:00:00.0)";
> 
>       //      reference time of the model
> 
>       double  
>           reftime(record);
>           reftime:long_name = "reference time";
>           reftime:units = "seconds since (1970-1-1 00:00:00.0)";
> 
>       //      vertical levels
>       
>       double
>           isoLevel(numIsoLevel);
>           isoLevel:long_name = "isobaric levels";
>           isoLevel:units = "millibars";
> 
>         double
>             fixedHeightLevels(fixedHeight);
>             fixedHeightLevels:long_name = "fixed height levels";
>             fixedHeightLevels:units = "meters";
> 
>       //      nice name for originating center
> 
>       char
>           origin(namelen);
> 
>       //      nice name for model
> 
>       char
>           model(namelen);
> 
>       //      nice name for grid
> 
>       char
>           grid(namelen);
> 
>       //----------------------------------------------------------------------
>       //      navigation information
>       //----------------------------------------------------------------------
> 
>       //      projection type
> 
>       char 
>           nav(namelen);
>           nav:long_name = "projection type";
> 
>       //      version number of cdl definition
> 
>       int
>           version;
> 
>       :history = "created by FSL Data Systems";
>       :title = "Global 26 layer spectral Aviation Model";
>       :query = "GDAM.NMC.AVN126.65160PointGlobalLatLon.*";
>       :age = 21600;
>  
>     data:
> 
>       version         = 1;
>       origin          = "NOAA/ERL Forecast Systems Laboratory, Boulder CO";
>       model           = "126 wave triangular, 26 layer spectral aviation run";
>       grid            = "global";
>       nav             = "Latitude/Longitude";
>       isoLevel        = 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;
>         fixedHeightLevels = 1829.0, 2743.0, 3658.0;
>     }
> 
> 
> ------- 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/
===============================================================================