This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Tiziana, I forgot to ask if you could let me know what you find out about the avn 1 degree resolution model. If I get the information then I could add it to the rest of the cdl files and relay it on to the rest of the decoders group. I would be willing to help create the cdl or if you already have done so, I would add it to the list. Of course giving you credit for the work. Thanks, Robb... On Thu, 11 Apr 2002, Robb Kambic wrote: > 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/ > =============================================================================== > > =============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research address@hidden WWW: http://www.unidata.ucar.edu/ ===============================================================================