Organization: FSL To: nuwg@comet.ucar.edu Subject: New and Improved MAPS CDL from FSL Date: Wed, 01 Mar 1995 16:16:49 +0000 From: "Jeff Pedigo" Hi All, The MAPS group has updated the CDL for the 40km MAPS analysis and model output. Comments and suggestions are welcome. Regards, Jeff Pedigo //------------------------------------------------------------------------------ // NOAA/ERL // Forecast Systems Laboratory // Forecast Research Division // // This software and its documentation are in the public domain and are // furnished "as is". The United States Government, its instrumentalities, // officers, employees, and agents make no warranty, express or implied, as to // the usefulness 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. // // maps_40km_hybridb.cdl // // This is a netCDF CDL definition for storing the Mesoscale Analysis and // Prediction System hybrid-b 3-d and associated 2-d grids on the FSLconus scale. // // The RUC model uses a "relative" vertical coordinate system that has been // designated as "Hybrid-B". The Hybrid-B dimension in this CDL definition // is "z". As an example: // // The vertical level of some parameter grid point value u(1,2,1,1) // in terms of pressure is specified in p(1,2,1,1) or in terms of virtual // potential temperature in vpt(1,2,1,1). Note the proposed convention of // attribute u:z_dim = "vpt, p". // // Data time may be evaluated in several ways using the indirect reference // "record" dimension. As an example: // // The times relating to some grid value p(2,1,1,1) are defined by the // parameter valtime(2) or reftime(2). // // 23 Feb 95 - version 1.0 created by Regional Analysis and Prediction // Branch (MAPS group), Forecast Systems Laboratory // //------------------------------------------------------------------------------ netcdf maps_40km_hybridb.cdl { dimensions: record = unlimited; namelen = 132; nav = 1; x = 143; y = 111; z = 40; variables: // u wind component float u(record, z, y, x); u:navigation_dim = "nav"; u:z = "vpt, p"; u:record = "valtime, reftime"; u:long_name = "u-component of wind"; u:units = "meters / second"; u:valid_range = -200.f, 200.f; u:_FillValue = -99999.f; // v wind component float v(record, z, y, x); v:navigation_dim = "nav"; v:z = "vpt, p"; v:record = "valtime, reftime"; v:long_name = "v-component of wind"; v:units = "meters / second"; v:valid_range = -200.f, 200.f; v:_FillValue = -99999.f; // montgomery stream function float msg(record, z, y, x); msg:navigation_dim = "nav"; msg:z = "vpt, p"; msg:record = "valtime, reftime"; msg:long_name = "montgomery stream function / gravity"; msg:units = "meters"; msg:valid_range = 20000.f, 50000.f; msg:_FillValue = -99999.f; // atmospheric pressure float p(record, z, y, x); p:navigation_dim = "nav"; p:z = "vpt"; p:record = "valtime, reftime"; p:long_name = "pressure"; p:units = "pascals"; p:valid_range = 0.f, 110000.f; p:_FillValue = -99999.f; // virtual potential temperature float vpt(record, z, y, x); vpt:navigation_dim = "nav"; vpt:z = "p"; vpt:record = "valtime, reftime"; vpt:long_name = "virtual potential temperature"; vpt:units = "degrees kelvin"; vpt:valid_range = 0.f, 600.f; vpt:_FillValue = -99999.f; // water vapor mixing ratio float qv(record, z, y, x); qv:navigation_dim = "nav"; qv:z = "vpt, p"; qv:record = "valtime, reftime"; qv:long_name = "water vapor mixing ratio"; qv:units = "g / kg"; qv:valid_range = 0.f, 100.f; qv:_FillValue = -99999.f; // cloud water mixing ratio float qc(record, z, y, x); qc:navigation_dim = "nav"; qc:z = "vpt, p"; qc:record = "valtime, reftime"; qc:long_name = "cloud water mixing ratio"; qc:units = "g / kg"; qc:valid_range = 0.f, 100.f; qc:_FillValue = -99999.f; // rain water mixing ratio float qr(record, z, y, x); qr:navigation_dim = "nav"; qr:z = "vpt, p"; qr:record = "valtime, reftime"; qr:long_name = "rain water mixing ratio"; qr:units = "g / kg"; qr:valid_range = 0.f, 100.f; qr:_FillValue = -99999.f; // ice mixing ratio float qi(record, z, y, x); qi:navigation_dim = "nav"; qi:z = "vpt, p"; qi:record = "valtime, reftime"; qi:long_name = "ice mixing ratio"; qi:units = "g / kg"; qi:valid_range = 0.f, 100.f; qi:_FillValue = -99999.f; // snow mixing ratio float qs(record, z, y, x); qs:navigation_dim = "nav"; qs:z = "vpt, p"; qs:record = "valtime, reftime"; qs:long_name = "snow mixing ratio"; qs:units = "g / kg"; qs:valid_range = 0.f, 100.f; qs:_FillValue = -99999.f; // turbulent kinetic energy float tke(record, z, y, x); tke:navigation_dim = "nav"; tke:z = "vpt, p"; tke:record = "valtime, reftime"; tke:long_name = "turbulent kinetic energy"; tke:units = "m**2 / s**2"; tke:valid_range = 0.f, 10000.f; tke:_FillValue = -99999.f; // vertical velocity float w(record, z, y, x); w:navigation_dim = "nav"; w:z = "vpt, p"; w:record = "valtime, reftime"; w:long_name = "vertical velocity"; w:units = "microbars / second"; w:valid_range = -10000.f, 10000.f; w:_FillValue = -99999.f; // MAPS Mean Sea Level Pressure float MMSP(record, y, x); MMSP:navigation_dim = "nav"; MMSP:record = "valtime, reftime"; MMSP:long_name = "MAPS mean sea level pressure"; MMSP:units = "pascals"; MMSP:valid_range = 80000.f, 110000.f; MMSP:_FillValue = -99999.f; // Soil Temperature at surface float ST(record, y, x); ST:navigation_dim = "nav"; ST:record = "valtime, reftime"; ST:long_name = "soil temperature at surface"; ST:units = "degrees kelvin"; ST:valid_range = 150.f, 400.f; ST:_FillValue = -99999.f; // Soil Temperature at 40 cm deep float ST40(record, y, x); ST40:navigation_dim = "nav"; ST40:record = "valtime, reftime"; ST40:long_name = "soil temperature at 40 cm"; ST40:units = "degrees kelvin"; ST40:valid_range = 150.f, 400.f; ST40:_FillValue = -99999.f; // Soil volumetric moisture content at surface float SM(record, y, x); SM:navigation_dim = "nav"; SM:record = "valtime, reftime"; SM:long_name = "soil volumetric moisture content at surface"; SM:units = "m**3 / m**3"; SM:valid_range = 0.f, 1.f; SM:_FillValue = -99999.f; // Soil volumetric moisture content at 40 cm deep float SM40(record, y, x); SM40:navigation_dim = "nav"; SM40:record = "valtime, reftime"; SM40:long_name = "soil volumetric moisture content at 40 cm"; SM40:units = "m**3 / m**3"; SM40:valid_range = 0.f, 1.f; SM40:_FillValue = -99999.f; // Sensible heat flux float SHF(record, y, x); SHF:navigation_dim = "nav"; SHF:record = "valtime, reftime"; SHF:long_name = "sensible heat flux"; SHF:units = "W / m**2"; SHF:valid_range = -10000.f, 10000.f; SHF:_FillValue = -99999.f; // Latent heat flux float LHF(record, y, x); LHF:navigation_dim = "nav"; LHF:record = "valtime, reftime"; LHF:long_name = "latent heat flux"; LHF:units = "W / m**2"; LHF:valid_range = -10000.f, 10000.f; LHF:_FillValue = -99999.f; // Net Longwave Radiation at Surface float LWNR(record, y, x); LWNR:navigation_dim = "nav"; LWNR:record = "valtime, reftime"; LWNR:long_name = "net longwave radiation at surface"; LWNR:units = "W / m**2"; LWNR:valid_range = -10000.f, 10000.f; LWNR:_FillValue = -99999.f; // Net Shortwave Radiation at Surface float SWNR(record, y, x); SWNR:navigation_dim = "nav"; SWNR:record = "valtime, reftime"; SWNR:long_name = "net shortwave radiation at surface"; SWNR:units = "W / m**2"; SWNR:valid_range = -10000.f, 10000.f; SWNR:_FillValue = -99999.f; // precipitation rate float PR(record, y, x); PR:navigation_dim = "nav"; PR:record = "valtime, reftime"; PR:long_name = "precipitation rate"; PR:units = "Kg / m**2 / s"; PR:valid_range = 0.f, 0.1f; PR:_FillValue = -99999.f; // resolvable scale precipitation float LgSP(record, y, x); LgSP:navigation_dim = "nav"; LgSP:record = "valtime, reftime"; LgSP:long_name = "resolvable scale precipitation"; LgSP:units = "Kg / m**2"; LgSP:valid_range = 0.f, 1000.f; LgSP:_FillValue = -99999.f; // sub-grid scale precipitation float ConvP(record, y, x); ConvP:navigation_dim = "nav"; ConvP:record = "valtime, reftime"; ConvP:long_name = "sub-grid scale precipitation"; ConvP:units = "Kg / m**2"; ConvP:valid_range = 0.f, 1000.f; ConvP:_FillValue = -99999.f; // snow accumulation float SnwAcc(record, y, x); SnwAcc:navigation_dim = "nav"; SnwAcc:record = "valtime, reftime"; SnwAcc:long_name = "snow accumulation"; SnwAcc:units = "centimeters"; SnwAcc:valid_range = 0.f, 1000.f; SnwAcc:_FillValue = -99999.f; // surface runoff float Rnoff(record, y, x); Rnoff:navigation_dim = "nav"; Rnoff:record = "valtime, reftime"; Rnoff:long_name = "surface runoff"; Rnoff:units = "Kg / m**2"; Rnoff:valid_range = 0.f, 1000.f; Rnoff:_FillValue = -99999.f; // precipitable water float PW(record, y, x); PW:navigation_dim = "nav"; PW:record = "valtime, reftime"; PW:long_name = "precipitable water"; PW:units = "Kg / m**2"; PW:valid_range = 0.f, 100.f; PW:_FillValue = -99999.f; // atmospheric pressure at tropopause float Tp(record, y, x); Tp:navigation_dim = "nav"; Tp:record = "valtime, reftime"; Tp:long_name = "pressure at tropopause"; Tp:units = "pascals"; Tp:valid_range = 0.f, 110000.f; Tp:_FillValue = -99999.f; // potential temperature at tropopause float Tpot(record, y, x); Tpot:navigation_dim = "nav"; Tpot:record = "valtime, reftime"; Tpot:long_name = "potential temperature at tropopause"; Tpot:units = "degrees kelvin"; Tpot:valid_range = 200.f, 500.f; Tpot:_FillValue = -99999.f; // u wind component at tropopause float Tu(record, y, x); Tu:navigation_dim = "nav"; Tu:record = "valtime, reftime"; Tu:long_name = "u-component of wind at tropopause"; Tu:units = "meters / second"; Tu:valid_range = -200.f, 200.f; Tu:_FillValue = -99999.f; // v wind component at tropopause float Tv(record, y, x); Tv:navigation_dim = "nav"; Tv:record = "valtime, reftime"; Tv:long_name = "v-component of wind at tropopause"; Tv:units = "meters / second"; Tv:valid_range = -200.f, 200.f; Tv:_FillValue = -99999.f; // convective available potential energy at surface float CAPE(record, y, x); CAPE:navigation_dim = "nav"; CAPE:record = "valtime, reftime"; CAPE:long_name = "convective available potential energy"; CAPE:units = "J / kg"; CAPE:valid_range = 0.f, 20000.f; CAPE:_FillValue = -99999.f; // convective available potential energy at surface float CIn(record, y, x); CIn:navigation_dim = "nav"; CIn:record = "valtime, reftime"; CIn:long_name = "convective inhibition"; CIn:units = "J / kg"; CIn:valid_range = 0.f, 20000.f; CIn:_FillValue = -99999.f; double valtime(record); valtime:long_name = "valid time"; valtime:units = "seconds since (1970-1-1 00:00:00.0)"; // reference time of the process double reftime(record); reftime:long_name = "reference time"; reftime:units = "seconds since (1970-1-1 00:00:00.0)"; // nice name for originating center char origin_name(namelen); // nice name for process char process_name(namelen); // nice name for grid description instance char grid_name(namelen); // basic assumption about earth shape char earth_shape(namelen); // navigation variables using // WMO FM 92-VIII Ext.GRIB specification names char grid_type(nav, namelen); grid_type:long_name = "GRIB-1 grid type"; char x_dim(nav, namelen); x_dim:long_name = "longitude dimension"; char y_dim(nav, namelen); y_dim:long_name = "latitude dimension"; short Nx(nav); Nx:long_name = "number of x point"; short Ny(nav); Ny:long_name = "number of y points"; short Nz(nav); Nz:long_name = "number of z points"; float La1(nav); La1:long_name = "first latitude"; La1:units = "degrees_north"; float Lo1(nav); Lo1:long_name = "first longitude"; Lo1:units = "degrees_east" ; float Lov(nav); Lov:long_name = "orientation of grid" ; Lov:units = "degrees_east"; float Latin(nav); Latin:long_name = "conic tangent latitude" ; Lov:units = "degrees_north"; float Dx(nav); Dx:long_name = "x grid increment"; Dx:units = "kilometers"; float Dy(nav); Dy:long_name = "y grid increment"; Dy:units = "kilometers"; // end of navigation variables long center_id; center_id:long_name = "center ID"; center_id:units = "WMO centers table"; long process_id; process_id:long_name = "process ID"; process_id:units = "(allocated by center)"; :Conventions = "NUWG"; :history = "created by FSL/FRD/MAPS"; :record = "valtime, reftime"; :title = "MAPS 40km Hybrid-b 3-d and 2-d grids - 40km FSL Conus B grid "; :version = 1.0; data: Dx = 40.63525; Dy = 40.63525; La1 = 16.9090; Lo1 = 123.1913; Lov = 265.0; Latin = 25.0; Nx = 143; Ny = 111; Nz = 40; center_id = 59; // FSL earth_shape = "oblate spheroid"; grid_name = "FSL Conus B 40km"; grid_type = "lambert conformal"; process_id = 3; // MAPS 60km surface process_name = "MAPS 40-km hybrid-b 3-d/2-d grids"; origin_name = "NOAA/ERL Forecast Systems Laboratory, Boulder CO"; x_dim = "x"; y_dim = "y"; }