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

NOTE: The decoders mailing list is no longer active. The list archives are made available for historical reasons.

On Wed, 10 Apr 2002, Unidata Support wrote:


------- Forwarded Message

>To: support-decoders@xxxxxxxxxxxxxxxx
>From: Tiziana Cherubini <tiziana@xxxxxxxxxx>
>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
rkambic@xxxxxxxxxxxxxxxx                   WWW: http://www.unidata.ucar.edu/
==============================================================================



  • 2002 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the decoders archives: