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.
Wendy, Here's the first pass at a nogaps cdl file. The NOGAPS model contains more variables then the P_msl variable. To comment out the unwanted vars, put a "//" in front of the var and the attributes. I attached the cdl file, next week I plan on putting out a decoders release. Robb... On Wed, 1 May 2002, FSU COAPS Unidata LDM wrote: > Thank you all for the help. In my understanding, with a proper CDL file > for the disired netCDF format, the regular "gribtonc" should be able to > convert the NOGAPS GRIB (MSL pressure) data to the netCDF format we need. > Robb Kambic (address@hidden) promised he would try to > make one, but not done yet. > > -- > Wendy Shi > Senior Computer Programmer-Analyst > Center for Ocean-Atmospheric Prediction Studies (COAPS) > Florida State University, Tallahassee, FL 32306 > http://www.coaps.fsu.edu > > On Tue, 30 Apr 2002, Jones, LT Carla wrote: > > > Previously had incorrect email address. > > > > -----Original Message----- > > From: Jones, LT Carla > > Sent: Tuesday, April 30, 2002 1:12 PM > > To: Sharfstein, Phil; 'address@hidden' > > Cc: Huff, Dave; Dimitriou, David; Panek, Charles > > Subject: FW: re FW: NOGAPS GRIB data decoder > > > > > > > > > > -----Original Message----- > > From: Williams, Anthony > > Sent: Tuesday, April 30, 2002 11:30 AM > > To: Jones, LT Carla > > Subject: RE: re FW: NOGAPS GRIB data decoder > > > > > > LT Jones, could you forward this e-mail to Phil Sharfstein and > > 'address@hidden', cc to Dave Dimitriou, Jim Dykes, Dave Huff, and > > Czec Panek? Thanks, Tony. > > > > > > > > Phil, we probably owe Wendy Shi an apology. The "GRIB->netCDF converters" > > you and Wendy are talking about probably are not the same things as the > > "current grb2nc, nc2grb, grib, netCDF, and locnet packages" that SOARS > > project participants are using. From our conversation this morning, I > > understand that you know the former to be COARDS compliant. Unless by > > remarkable coincidence, the latter are not. As mentioned below, the > > first-pass "GIEF-F" format was worked out among myself, Eric Davies at > > Barrodale Computing Services, and Oleg Kiselyov at NPS, based in part on the > > code from Jim Dykes, for the purpose of loading FNMOC (and certain other > > originating center) GriB files into Barrodale's DataBlade, then passing them > > to XiS for the 3rd Fleet Battle Lab. > > > > You certainly are welcome to post our material on the USGODAE FTP site, > > after the GIEF-F Version 1.0 Standard has been proved to work and the > > resulting code has been loaded into Czec's CM area. I strongly recommend > > that you do not do this unless you can post a very clear disclaimer, to the > > effect that this special-purpose standard has no obligation to conform to > > anything other than SOARS project needs, and that it is evolving rapidly. > > After Mayday, the GIEF-F-1.0 netCDF files will not be legible to our > > previous software, and we look forward to further divergences in pursuit of > > compatibility with JMV, MetCast, and WxMap. > > > > -----Original Message----- > > From: Phil Sharfstein [mailto:address@hidden] > > Sent: Monday, April 29, 2002 4:07 PM > > > > To: Williams, Anthony > > Cc: Dimitriou, David; Dykes, James; Huff, Dave; Panek, Charles > > Subject: Re: re FW: NOGAPS GRIB data decoder > > > > > > Tony, > > I have another request for GRIB->NetCDF converters. Since this will > > probably be a common request from USGODAE server users, I would like to > > place your release (or most current) version on the USGODAE FTP site. > > Please keep me updated as to the status & readiness for distribution of > > the code. > > > > Thanks, > > > > -Phil > > > > -- > > Phil Sharfstein > > GODAE Project Manager > > Fleet Numerical Meteorology and Oceanography Center > > 7 Grace Hopper Ave, Stop 1. > > Monterey, CA 93943 > > 831.656.4525 > > address@hidden > > > > On Wed, 2002-04-24 at 11:36, Williams, Anthony wrote: > > > Dave, as you requested, Wendy Shi at FSU by now should have a complete > > copy > > > of all the current grb2nc, nc2grb, grib, netCDF, and locnet packages, with > > > notes and test cases, reflecting the current FNMOC version of the original > > > Jim Dykes NAVO software. These constitute the first-pass "GIEF-F" format > > > worked out among myself, Eric Davies at Barrodale Computing Services, and > > > Oleg Kiselyov at NPS. Although proved to work without loss for ten dozen > > or > > > so of Czec Panek's well-chosen operational GriB files, we want to change > > > everything, and so we are still working on the definitive Version 1.0 list > > > of Attributes for that format, second draft. > > > > > > If no showstoppers appear, that Version takes effect on Mayday, at which > > > time we will place everything under Configuration Management. Since Czec > > is > > > the GriB Domain Manager, I shall ask him to provide a "parking area" in > > his > > > CM directory for these files. > > > > > > Thanks, Tony. > > > > > > =============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research address@hidden WWW: http://www.unidata.ucar.edu/ ===============================================================================
netcdf nogaps { // 126 Wave, 18 Layer Spectral Model Aviation Run // on expanded quasi-regular "thinned" grids dimensions: record = UNLIMITED ; // (reference time, forecast time) level = 26 ; lat = 181 ; // latitude lon = 360 ; // longitude lpdg = 2 ; // boundary layer levels fhg = 2 ; // fixed height above ground levels fh = 3 ; // fixed height above ground levels soil_lpdg = 6 ; // soil boundary layer levels ls_all = 7 ; // whole atmosphere layer sigma = 1 ; // sigma level datetime_len = 21 ; // string length for datetime strings nmodels = 3 ; // both AVN and SSIAVN models accum = 2 ; // time range for accumulations nav = 1 ; // For navigation. Variables that use // this dimension define a mapping between // (lat, lon) indices and (lat, lon) coords. nav_len = 100 ; // max string length for navigation strings variables: double reftime(record) ; // reference time of the model reftime:long_name = "reference time" ; reftime:units = "hours since 1992-1-1" ; double valtime(record) ; // forecast time ("valid" time) valtime:long_name = "valid time" ; valtime:units = "hours since 1992-1-1" ; :record = "reftime, valtime" ; // "dimension attribute" -- means // (reftime, valtime) uniquely // determine record char datetime(record, datetime_len) ; // derived from reftime datetime:long_name = "reference date and time" ; // units YYYY-MM-DD hh:mm:ssZ (ISO 8601) float valtime_offset(record) ; // derived as valtime-reftime valtime_offset:long_name = "hours from reference time" ; valtime_offset:units = "hours" ; float level(level) ; level:long_name = "level" ; level:units = "hectopascals" ; // (soil_lpdg_bot, soil_lpdg_top) uniquely determines soil_lpdg float soil_lpdg_bot(soil_lpdg) ; soil_lpdg_bot:long_name = "bottom level of boundary layer between 2 levels from ground to levels" ; //soil_lpdg_bot:units = "centimeters" ; float soil_lpdg_top(soil_lpdg) ; soil_lpdg_top:long_name = "top level of boundary layer between 2 levels from ground to levels" ; //soil_lpdg_top:units = "centimeters" ; :lpdg = "lpdg_bot, lpdg_top" ; // (lpdg_bot, lpdg_top) uniquely // determines lpdg float lpdg_bot(lpdg) ; lpdg_bot:long_name = "bottom level of boundary layer between 2 levels at specified pressure differences from ground to levels" ; lpdg_bot:units = "hectopascals" ; float lpdg_top(lpdg) ; lpdg_top:long_name = "top level of boundary layer between 2 levels at specified pressure differences from ground to levels" ; lpdg_top:units = "hectopascals" ; float fhg(fhg) ; // fixed height above ground fhg:long_name = "fixed height above ground" ; fhg:units = "meters" ; float fh(fh) ; // fixed height above ground fh:long_name = "fixed height above ground" ; fh:units = "meters" ; :ls_all = "ls_all_bot, ls_all_top" ; float ls_all_bot(ls_all) ; ls_all_bot:long_name = "bottom level of atmosphere between 2 sigma levels" ; ls_all_bot:units = "" ; float ls_all_top(ls_all) ; ls_all_top:long_name = "top level of atmosphere between 2 sigma levels" ; ls_all_top:units = "" ; float sigma(sigma) ; // fixed height above ground sigma:long_name = "sigma level" ; sigma:units = "" ; // dimensionless long model_id(nmodels) ; model_id:long_name = "generating process ID number" ; // The following lat and lon coordinate variables are redundant, // since the navigation variables provide the necessary information. // The extra information is included here for human readability. float lat(lat) ; lat:long_name = "latitude" ; lat:units = "degrees_north" ; float lon(lon) ; lon:long_name = "longitude" ; lon:units = "degrees_east" ; // navigation variables all use nav dimension char nav_model(nav, nav_len) ; // navigation parameterization nav_model:long_name = "navigation model name" ; int grid_type_code(nav) ; grid_type_code:long_name = "GRIB-1 GDS data representation type" ; char grid_type(nav, nav_len) ; grid_type:long_name = "GRIB-1 grid type" ; char grid_name(nav, nav_len) ; grid_name:long_name = "grid name" ; int grid_center(nav) ; grid_center:long_name = "GRIB-1 originating center ID" ; int grid_number(nav) ; grid_number:long_name = "GRIB-1 catalogued grid numbers" ; grid_number:_FillValue = -9999 ; char i_dim(nav, nav_len) ; i_dim:long_name = "longitude dimension name" ; char j_dim(nav, nav_len) ; j_dim:long_name = "latitude dimension name" ; int Ni(nav) ; Ni:long_name = "number of points along a latitude circle" ; int Nj(nav) ; Nj:long_name = "number of points along a longitude circle" ; float La1(nav) ; La1:long_name = "latitude of first grid point" ; La1:units = "degrees_north" ; float Lo1(nav) ; Lo1:long_name = "longitude of first grid point" ; Lo1:units = "degrees_east" ; float La2(nav) ; La2:long_name = "latitude of last grid point" ; La2:units = "degrees_north" ; float Lo2(nav) ; Lo2:long_name = "longitude of last grid point" ; Lo2:units = "degrees_east" ; float Di(nav) ; Di:long_name = "Longitudinal direction increment" ; Di:units = "degrees" ; float Dj(nav) ; Dj:long_name = "Latitudinal direction increment" ; Dj:units = "degrees" ; byte ResCompFlag(nav) ; ResCompFlag:long_name = "resolution and component flags" ; // end of navigation variables //float P(record, lat, lon) ; //P:long_name = "pressure" ; //P:units = "Pa" ; //P:_FillValue = -9999.f ; //P:navigation = "nav" ; float P_maxwind(record, lat, lon) ; P_maxwind:long_name = "pressure at maximum wind" ; P_maxwind:units = "Pa" ; P_maxwind:_FillValue = -9999.f ; P_maxwind:navigation = "nav" ; float P_trop(record, lat, lon) ; P_trop:long_name = "pressure at tropopause" ; P_trop:units = "Pa" ; P_trop:_FillValue = -9999.f ; P_trop:navigation = "nav" ; float P_msl(record, lat, lon) ; P_msl:long_name = "pressure reduced to MSL" ; P_msl:units = "Pa" ; P_msl:_FillValue = -9999.f ; P_msl:navigation = "nav" ; float P_sfc(record, lat, lon) ; P_sfc:long_name = "pressure at surface" ; P_sfc:units = "Pa" ; P_sfc:_FillValue = -9999.f ; P_sfc:navigation = "nav" ; //float RH(record, level, lat, lon) ; //RH:long_name = "relative humidity" ; //RH:units = "percent" ; //RH:_FillValue = -9999.f ; //RH:navigation = "nav" ; float T(record, level, lat, lon) ; T:long_name = "temperature" ; T:units = "degK" ; T:_FillValue = -9999.f ; T:navigation = "nav" ; float T_TD(record, level, lat, lon) ; T_TD:long_name = "Dew point depression" ; T_TD:units = "degK" ; T_TD:_FillValue = -9999.f ; T_TD:navigation = "nav" ; float T_TD_sfc(record, lat, lon) ; T_TD_sfc:long_name = "Dew point depression" ; T_TD_sfc:units = "degK" ; T_TD_sfc:_FillValue = -9999.f ; T_TD_sfc:navigation = "nav" ; float v(record, level, lat, lon ) ; v:long_name = "v-component of wind" ; v:units = "meters/second" ; v:_FillValue = -9999.f ; v:navigation = "nav" ; float T_maxwind(record, lat, lon) ; T_maxwind:long_name = "temperature at maxwind" ; T_maxwind:units = "degK" ; T_maxwind:_FillValue = -9999.f ; T_maxwind:navigation = "nav" ; float T_trop(record, lat, lon) ; T_trop:long_name = "temperature at tropopause" ; T_trop:units = "degK" ; T_trop:_FillValue = -9999.f ; T_trop:navigation = "nav" ; //float T_sigma(record, sigma, lat, lon) ; //T_sigma:long_name = "temperature" ; //T_sigma:units = "degK" ; //T_sigma:_FillValue = -9999.f ; //T_sigma:navigation = "nav" ; //float RH_sigma(record, sigma, lat, lon) ; //RH_sigma:long_name = "relative humidity at sigma level" ; //RH_sigma:units = "percent" ; //RH_sigma:_FillValue = -9999.f ; //RH_sigma:navigation = "nav" ; //float u_sigma(record, sigma, lat, lon ) ; //u_sigma:long_name = "u-component of wind" ; //u_sigma:units = "m/s" ; //u_sigma:_FillValue = -9999.f ; //u_sigma:navigation = "nav" ; //float v_sigma(record, sigma, lat, lon ) ; //v_sigma:long_name = "v-component of wind" ; //v_sigma:units = "m/s" ; //v_sigma:_FillValue = -9999.f ; //v_sigma:navigation = "nav" ; //float theta_sigma(record, sigma, lat, lon) ; //theta_sigma:long_name = "Potential temperature" ; //theta_sigma:units = "degK" ; //theta_sigma:_FillValue = -9999.f ; //theta_sigma:navigation = "nav" ; //float omega_sigma(record, sigma, lat, lon) ; //omega_sigma:long_name = "pressure vertical velocity" ; //omega_sigma:units = "Pa/s" ; //omega_sigma:_FillValue = -9999.f ; //omega_sigma:navigation = "nav" ; // georeference info float Z(record, level, lat, lon) ; Z:long_name = "geopotential height" ; Z:units = "gp m" ; Z:_FillValue = -9999.f ; Z:navigation = "nav" ; // georeference info float Z_maxwind(record, lat, lon) ; Z_maxwind:long_name = "geopotential height at maxwind" ; Z_maxwind:units = "gp m" ; Z_maxwind:_FillValue = -9999.f ; Z_maxwind:navigation = "nav" ; //float Z_trop(record, lat, lon) ; //Z_trop:long_name = "geopotential height at tropopause" ; //Z_trop:units = "gp m" ; //Z_trop:_FillValue = -9999.f ; //Z_trop:navigation = "nav" ; //float T_lpdg(record, lpdg, lat, lon) ; //T_lpdg:long_name = "temperature in boundary layer" ; //T_lpdg:units = "degK" ; //T_lpdg:_FillValue = -9999.f ; //T_lpdg:navigation = "nav" ; //float RH_lpdg(record, lpdg, lat, lon) ; //RH_lpdg:long_name = "relative humidity in boundary layer" ; //RH_lpdg:units = "percent" ; //RH_lpdg:_FillValue = -9999.f ; //RH_lpdg:navigation = "nav" ; //float cin_lpdg(record, lpdg, lat, lon ) ; //cin_lpdg:long_name = "boundary convective inhibition" ; //cin_lpdg:units = "J/kg" ; //cin_lpdg:_FillValue = -9999.f ; //cin_lpdg:navigation = "nav" ; //float spec_hum_lpdg(record, lpdg, lat, lon ) ; //spec_hum_lpdg:long_name = "specific humidity" ; //spec_hum_lpdg:units = "kg/kg" ; //spec_hum_lpdg:_FillValue = -9999.f ; //spec_hum_lpdg:navigation = "nav" ; //float cape_lpdg(record, lpdg, lat, lon ) ; //cape_lpdg:long_name = "boundary convective available potential energy" ; //cape_lpdg:units = "J/kg" ; //cape_lpdg:_FillValue = -9999.f ; //cape_lpdg:navigation = "nav" ; //float u_lpdg(record, lpdg, lat, lon) ; //u_lpdg:long_name = "u-component of wind in boundary layer" ; //u_lpdg:units = "meters/second" ; //u_lpdg:_FillValue = -9999.f ; //u_lpdg:navigation = "nav" ; //float v_lpdg(record, lpdg, lat, lon) ; //v_lpdg:long_name = "v-component of wind in boundary layer" ; //v_lpdg:units = "meters/second" ; //v_lpdg:_FillValue = -9999.f ; //v_lpdg:navigation = "nav" ; float u(record, level, lat, lon) ; u:long_name = "u-component of wind" ; u:units = "meters/second" ; u:_FillValue = -9999.f ; u:navigation = "nav" ; float u_maxwind(record, lat, lon) ; u_maxwind:long_name = "u-component of wind at max wind" ; u_maxwind:units = "meters/second" ; u_maxwind:_FillValue = -9999.f ; u_maxwind:navigation = "nav" ; //float u_trop(record, lat, lon) ; //u_trop:long_name = "u-component of wind at tropopause" ; //u_trop:units = "meters/second" ; //u_trop:_FillValue = -9999.f ; //u_trop:navigation = "nav" ; //float v(record, level, lat, lon) ; //v:long_name = "v-component of wind" ; //v:units = "meters/second" ; //v:_FillValue = -9999.f ; //v:navigation = "nav" ; float v_maxwind(record, lat, lon) ; v_maxwind:long_name = "v-component of wind at max wind" ; v_maxwind:units = "meters/second" ; v_maxwind:_FillValue = -9999.f ; v_maxwind:navigation = "nav" ; //float v_trop(record, lat, lon) ; //v_trop:long_name = "v-component of wind at tropopause" ; //v_trop:units = "meters/second" ; //v_trop:_FillValue = -9999.f ; //v_trop:navigation = "nav" ; float SPD_fhg(record, fhg, lat, lon) ; SPD_fhg:long_name = "wind speed at fixed height above ground" ; SPD_fhg:units = "meters/second" ; SPD_fhg:_FillValue = -9999.f ; SPD_fhg:navigation = "nav" ; float u_fhg(record, fhg, lat, lon) ; u_fhg:long_name = "u-component of wind at fixed height above ground" ; u_fhg:units = "meters/second" ; u_fhg:_FillValue = -9999.f ; u_fhg:navigation = "nav" ; float v_fhg(record, fhg, lat, lon) ; v_fhg:long_name = "v-component of wind at fixed height above ground" ; v_fhg:units = "meters/second" ; v_fhg:_FillValue = -9999.f ; v_fhg:navigation = "nav" ; //float RH_fhg(record, fhg, lat, lon) ; //RH_fhg:long_name = "relative humidity at fixed height above ground" ; //RH_fhg:units = "percent" ; //RH_fhg:_FillValue = -9999.f ; //RH_fhg:navigation = "nav" ; //float spec_hum_fhg(record, fhg, lat, lon) ; //spec_hum_fhg:long_name = "specific humidity at fixed height above ground" ; //spec_hum_fhg:units = "kg/kg" ; //spec_hum_fhg:_FillValue = -9999.f ; //spec_hum_fhg:navigation = "nav" ; //float T_fhg(record, fhg, lat, lon) ; //T_fhg:long_name = "temperature at fixed height above ground" ; //T_fhg:units = "degK" ; //T_fhg:_FillValue = -9999.f ; //T_fhg:navigation = "nav" ; //float Tmax_fhg(record, fhg, lat, lon) ; //Tmax_fhg:long_name = " maximum temperature at fixed height above ground" ; //Tmax_fhg:units = "degK" ; //Tmax_fhg:_FillValue = -9999.f ; //Tmax_fhg:navigation = "nav" ; //float Tmin_fhg(record, fhg, lat, lon) ; //Tmin_fhg:long_name = " minimum temperature at fixed height above ground" ; //Tmin_fhg:units = "degK" ; //Tmin_fhg:_FillValue = -9999.f ; //Tmin_fhg:navigation = "nav" ; //float u_fh(record, fh, lat, lon) ; //u_fh:long_name = "u-component of wind at fixed height above ground" ; //u_fh:units = "meters/second" ; //u_fh:_FillValue = -9999.f ; //u_fh:navigation = "nav" ; //float v_fh(record, fh, lat, lon) ; //v_fh:long_name = "v-component of wind at fixed height above ground" ; //v_fh:units = "meters/second" ; //v_fh:_FillValue = -9999.f ; //v_fh:navigation = "nav" ; //float RH_fh(record, fh, lat, lon) ; //RH_fh:long_name = "relative humidity at fixed height above ground" ; //RH_fh:units = "percent" ; //RH_fh:_FillValue = -9999.f ; //RH_fh:navigation = "nav" ; //float T_fh(record, fh, lat, lon) ; //T_fh:long_name = "temperature at fixed height above ground" ; //T_fh:units = "degK" ; //T_fh:_FillValue = -9999.f ; //T_fh:navigation = "nav" ; //float RH_ls(record, ls_all, lat, lon) ; //RH_ls:long_name = "relative humidity" ; //RH_ls:units = "percent" ; //RH_ls:_FillValue = -9999.f ; //RH_ls:navigation = "nav" ; float PRECIP(record, lat, lon) ; PRECIP:long_name = "total precipitation over accumulation interval" ; PRECIP:units = "kg/m2" ; PRECIP:_FillValue = -9999.f ; PRECIP:navigation = "nav" ; //float PRECIP_accum_times(record, accum) ; //PRECIP_accum_times:long_name = "precipitation accumulation interval" ; //PRECIP_accum_times:units = "hours" ; //PRECIP_accum_times:_FillValue = -9999.f ; float precip_cn(record, lat, lon) ; precip_cn:long_name = "convective precipitation over accumulation interval" ; precip_cn:units = "kg/m2" ; precip_cn:_FillValue = -9999.f ; precip_cn:navigation = "nav" ; //float precip_cn_accum_times(record, accum) ; //precip_cn_accum_times:long_name = "convective precipitation accumulation interval" ; //precip_cn_accum_times:units = "hours" ; //precip_cn_accum_times:_FillValue = -9999.f ; float preix(record, lat, lon ) ; preix:long_name = "precipitation index" ; preix:units = "" ; preix:_FillValue = -9999.f ; preix:navigation = "nav" ; //float watr(record, lat, lon ) ; //watr:long_name = "water runoff" ; //watr:units = "kg/m2" ; //watr:_FillValue = -9999.f ; //watr:navigation = "nav" ; //float pr_water_atm(record, lat, lon ) ; // entire atmosphere as single layer //pr_water_atm:long_name = "precipitable water" ; //pr_water_atm:units = "kg/m2" ; //pr_water_atm:_FillValue = -9999.f ; //pr_water_atm:navigation = "nav" ; //float cprat(record, lat, lon) ; //cprat:long_name = "Convective precipitation rate" ; //cprat:units = "kg/m2/sec" ; //cprat:_FillValue = -9999.f ; //cprat:navigation = "nav" ; //float crain(record, lat, lon ) ; //crain:long_name = "Categorical rain" ; //crain:_FillValue = -9999.f ; //crain:navigation = "nav" ; //float cfrzrn(record, lat, lon ) ; //cfrzrn:long_name = "Categorical freezing rain" ; //cfrzrn:_FillValue = -9999.f ; //cfrzrn:navigation = "nav" ; float snow(record, lat, lon ) ; snow:long_name = "snow dept" ; snow:_FillValue = -9999.f ; snow:navigation = "nav" ; float ice_conc(record, lat, lon ) ; ice_conc:long_name = "Ice concentration" ; ice_conc:_FillValue = -9999.f ; ice_conc:navigation = "nav" ; //float LI(record, lat, lon ) ; //LI:long_name = "lifted index" ; //LI:units = "degK" ; //LI:_FillValue = -9999.f ; // To fill grid corners //LI:navigation = "nav" ; //float T_sfc(record, lat, lon) ; //T_sfc:long_name = "surface temperature" ; //T_sfc:units = "degK" ; //T_sfc:_FillValue = -9999.f ; //T_sfc:navigation = "nav" ; //float Z_sfc(record, lat, lon) ; //Z_sfc:long_name = "terrain" ; //Z_sfc:units = "gp m" ; //Z_sfc:_FillValue = -9999.f ; //Z_sfc:navigation = "nav" ; float sen_ht_sfc(record, lat, lon ) ; sen_ht_sfc:long_name = "Sensible heat net flux" ; sen_ht_sfc:units = "W / m2" ; sen_ht_sfc:_FillValue = -9999.f ; sen_ht_sfc:navigation = "nav" ; //float cin_sfc(record, lat, lon ) ; //cin_sfc:long_name = "surface convective inhibition" ; //cin_sfc:units = "J/kg" ; //cin_sfc:_FillValue = -9999.f ; //cin_sfc:navigation = "nav" ; float rdn_swsrf_sfc(record, lat, lon ) ; rdn_swsrf_sfc:long_name = "net short wave rad. surface" ; rdn_swsrf_sfc:units = "W/m2" ; rdn_swsrf_sfc:_FillValue = -9999.f ; rdn_swsrf_sfc:navigation = "nav" ; //float dswrf_sfc(record, lat, lon ) ; //dswrf_sfc:long_name = "Downward short wave rad. flux" ; //dswrf_sfc:units = "W/m2" ; //dswrf_sfc:_FillValue = -9999.f ; //dswrf_sfc:navigation = "nav" ; //float ulwrf_sfc(record, lat, lon ) ; //ulwrf_sfc:long_name = "Upward long wave rad. flux" ; //ulwrf_sfc:units = "W / m2" ; //ulwrf_sfc:_FillValue = -9999.f ; //ulwrf_sfc:navigation = "nav" ; //float dlwrf_sfc(record, lat, lon ) ; //dlwrf_sfc:long_name = "Downward long wave rad. flux" ; //dlwrf_sfc:units = "W / m2" ; //dlwrf_sfc:_FillValue = -9999.f ; //dlwrf_sfc:navigation = "nav" ; //float land_mask_sfc(record, lat, lon ) ; //land_mask_sfc:long_name = "Land-Sea mask" ; //land_mask_sfc:units = "bit" ; //land_mask_sfc:_FillValue = -9999.f ; //land_mask_sfc:navigation = "nav" ; //float albedo_sfc(record, lat, lon ) ; //albedo_sfc:long_name = "Albedo" ; //albedo_sfc:_FillValue = -9999.f ; //albedo_sfc:navigation = "nav" ; // Latent heat net flux float lat_ht_sfc(record, lat, lon ) ; lat_ht_sfc:long_name = "Latent heat net flux" ; lat_ht_sfc:units = "W / m2" ; lat_ht_sfc:_FillValue = -9999.f ; lat_ht_sfc:navigation = "nav" ; //float LI4_sfc(record, lat, lon ) ; //LI4_sfc:long_name = "Best 4 layer lift index" ; //LI4_sfc:units = "K" ; //LI4_sfc:_FillValue = -9999.f ; //LI4_sfc:navigation = "nav" ; //float cape_sfc(record, lat, lon ) ; //cape_sfc:long_name = "surface convective available potential energy" ; //cape_sfc:units = "J/kg" ; //cape_sfc:_FillValue = -9999.f ; //cape_sfc:navigation = "nav" ; float u_flx_sfc(record, lat, lon ) ; u_flx_sfc:long_name = "Momentum flux, u componet" ; u_flx_sfc:units = "N/m2" ; u_flx_sfc:_FillValue = -9999.f ; u_flx_sfc:navigation = "nav" ; float v_flx_sfc(record, lat, lon ) ; v_flx_sfc:long_name = "Momentum flux, v componet" ; v_flx_sfc:units = "N/m2" ; v_flx_sfc:_FillValue = -9999.f ; v_flx_sfc:navigation = "nav" ; // Planetary boundary layer height float hpbl_sfc(record) ; hpbl_sfc:long_name = "Planetary boundary layer height" ; hpbl_sfc:units = "m" ; hpbl_sfc:_FillValue = -9999.f ; hpbl_sfc:navigation = "nav" ; //float RH_atm(record, lat, lon) ; //RH_atm:long_name = "relative humidity entire atmosphere" ; //RH_atm:units = "percent" ; //RH_atm:_FillValue = -9999.f ; //RH_atm:navigation = "nav" ; //float totoz_atm(record, lat, lon) ; //totoz_atm:long_name = "Total ozone entire atmosphere" ; //totoz_atm:units = "Dobson" ; //totoz_atm:_FillValue = -9999.f ; //totoz_atm:navigation = "nav" ; //float RH_frzlvl(record, lat, lon ) ; //RH_frzlvl:long_name = "relative humidity at 0 degree isotherm" ; //RH_frzlvl:units = "percent" ; //RH_frzlvl:_FillValue = -9999.f ; //RH_frzlvl:navigation = "nav" ; //float Z_frzlvl(record, lat, lon ) ; //Z_frzlvl:long_name = "geopotential height at 0 isotherm" ; //Z_frzlvl:units = "gp m" ; //Z_frzlvl:_FillValue = -9999.f ; //Z_frzlvl:navigation = "nav" ; //float T_hctl(record, lat, lon) ; //T_hctl:long_name = "temperature at high cloud top level" ; //T_hctl:units = "degK" ; //T_hctl:_FillValue = -9999.f ; //T_hctl:navigation = "nav" ; //float P_hctl(record, lat, lon) ; //P_hctl:long_name = "Pressure at high cloud top level" ; //P_hctl:units = "Pa" ; //P_hctl:_FillValue = -9999.f ; //P_hctl:navigation = "nav" ; //float T_mctl(record, lat, lon) ; //T_mctl:long_name = "temperature at middle cloud top level" ; //T_mctl:units = "degK" ; //T_mctl:_FillValue = -9999.f ; //T_mctl:navigation = "nav" ; //float P_mctl(record, lat, lon) ; //P_mctl:long_name = "Pressure at middle cloud top level" ; //P_mctl:units = "Pa" ; //P_mctl:_FillValue = -9999.f ; //P_mctl:navigation = "nav" ; //float T_lctl(record, lat, lon) ; //T_lctl:long_name = "temperature at low cloud top level" ; //T_lctl:units = "degK" ; //T_lctl:_FillValue = -9999.f ; //T_lctl:navigation = "nav" ; //float P_lctl(record, lat, lon) ; //P_lctl:long_name = "Pressure at low cloud top level" ; //P_lctl:units = "Pa" ; //P_lctl:_FillValue = -9999.f ; //P_lctl:navigation = "nav" ; //float P_mcbl(record, lat, lon) ; //P_mcbl:long_name = "Pressure at middle cloud bottom level" ; //P_mcbl:units = "Pa" ; //P_mcbl:_FillValue = -9999.f ; //P_mcbl:navigation = "nav" ; //float P_cctl(record, lat, lon) ; //P_cctl:long_name = "Pressure at convective cloud top layer" ; //P_cctl:units = "Pa" ; //P_cctl:_FillValue = -9999.f ; //P_cctl:navigation = "nav" ; //float P_ccbl(record, lat, lon) ; //P_ccbl:long_name = "Pressure at convective cloud bottom layer" ; //P_ccbl:units = "Pa" ; //P_ccbl:_FillValue = -9999.f ; //P_ccbl:navigation = "nav" ; //float uswrf_topa(record, lat, lon) ; //uswrf_topa:long_name = "Upward short wave rad.flux" ; //uswrf_topa:units = "W / m2" ; //uswrf_topa:_FillValue = -9999.f ; //uswrf_topa:navigation = "nav" ; //float ulwrf_topa(record, lat, lon) ; //ulwrf_topa:long_name = "Upward long wave rad.flux" ; //ulwrf_topa:units = "W / m2" ; //ulwrf_topa:_FillValue = -9999.f ; //ulwrf_topa:navigation = "nav" ; //float N(record, lat, lon) ; //N:long_name = "Total cloud cover" ; //N:units = "percent" ; //N:_FillValue = -9999.f ; //N:navigation = "nav" ; //float N_hcy(record, lat, lon) ; //N_hcy:long_name = "Total cloud cover, high cloud layer" ; //N_hcy:_FillValue = -9999.f ; //N_hcy:navigation = "nav" ; //float N_mcy(record, lat, lon) ; //N_mcy:long_name = "Total cloud cover, middle cloud layer" ; //N_mcy:_FillValue = -9999.f ; //N_mcy:navigation = "nav" ; //float N_lcy(record, lat, lon) ; //N_lcy:long_name = "Total cloud cover, low cloud layer" ; //N_lcy:_FillValue = -9999.f ; //N_lcy:navigation = "nav" ; //float N_bcy(record, lat, lon) ; //N_bcy:long_name = "Total cloud cover, boundary layer cloud layer" ; //N_bcy:_FillValue = -9999.f ; //N_bcy:navigation = "nav" ; //float N_ccy(record, lat, lon) ; //N_ccy:long_name = "Total cloud cover, covective cloud layer" ; //N_ccy:_FillValue = -9999.f ; //N_ccy:navigation = "nav" ; //float N_atm(record, lat, lon) ; //N_atm:long_name = "Total cloud cover entire atmosphere" ; //N_atm:_FillValue = -9999.f ; //N_atm:navigation = "nav" ; //float P_hcbl(record, lat, lon) ; //P_hcbl:long_name = "Pressure, high cloud bottom level" ; //P_hcbl:units = "Pa" ; //P_hcbl:_FillValue = -9999.f ; //P_hcbl:navigation = "nav" ; //float P_lcbl(record, lat, lon) ; //P_lcbl:long_name = "Pressure, low cloud bottom level" ; //P_lcbl:units = "Pa" ; //P_lcbl:_FillValue = -9999.f ; //P_lcbl:navigation = "nav" ; float omega(record, level, lat, lon) ; omega:long_name = "pressure vertical velocity" ; omega:units = "Pa/s" ; omega:_FillValue = -9999.f ; omega:navigation = "nav" ; // georeference info float absvor(record, level, lat, lon) ; absvor:long_name = "absolute vorticity" ; absvor:units = "1/s" ; absvor:_FillValue = -9999.f ; absvor:navigation = "nav" ; // Cloud water //float clwmr(record, level, lat, lon ) ; //clwmr:long_name = "Cloud water" ; //clwmr:units = "kg / kg" ; //clwmr:_FillValue = -9999.f ; //clwmr:navigation = "nav" ; //float cloud_wat_atm(record, lat, lon ) ; //cloud_wat_atm:long_name = "Cloud water" ; //cloud_wat_atm:units = "kg / m2" ; //cloud_wat_atm:_FillValue = -9999.f ; //cloud_wat_atm:navigation = "nav" ; //float snow_wat(record, lat, lon ) ; //snow_wat:long_name = "Water equiv. of accumulated snow depth" ; //snow_wat:units = "kg / m2" ; //snow_wat:_FillValue = -9999.f ; //snow_wat:navigation = "nav" ; //float cicepl(record, lat, lon ) ; //cicepl:long_name = "Categorical ice pellets" ; //cicepl:_FillValue = -9999.f ; //cicepl:navigation = "nav" ; // Ozone mixing ratio //float o3mr(record, level, lat, lon ) ; //o3mr:long_name = "Ozone mixing ratio" ; //o3mr:units = "kg / kg" ; //o3mr:_FillValue = -9999.f ; //o3mr:navigation = "nav" ; //float Zdev(record, level, lat, lon ) ; //Zdev:long_name = "Geopotential height anomaly" ; //Zdev:units = "gp m" ; //Zdev:_FillValue = -9999.f ; //Zdev:navigation = "nav" ; float gpt_hgt5_sfc(record, lat, lon ) ; gpt_hgt5_sfc:long_name = "5-wave Geopotential height" ; gpt_hgt5_sfc:units = "gp m" ; gpt_hgt5_sfc:_FillValue = -9999.f ; gpt_hgt5_sfc:navigation = "nav" ; //float gflux(record, lat, lon ) ; //gflux:long_name = "Ground heat flux" ; //gflux:units = "W / m2" ; //gflux:_FillValue = -9999.f ; //gflux:navigation = "nav" ; //float vert_sshr_trop(record, lat, lon ) ; //vert_sshr_trop:long_name = "vertical speed shear" ; //vert_sshr_trop:units = "1/s" ; //vert_sshr_trop:_FillValue = -9999.f ; //vert_sshr_trop:navigation = "nav" ; //float T_lbls(record, soil_lpdg, lat, lon ) ; //T_lbls:long_name = "Temperature layer between 2 depth below surface" ; //T_lbls:units = "K" ; //T_lbls:_FillValue = -9999.f ; //T_lbls:navigation = "nav" ; //float Z_htfl(record, lat, lon ) ; //Z_htfl:long_name = "geopotential height" ; //Z_htfl:units = "gp m" ; //Z_htfl:_FillValue = -9999.f ; //Z_htfl:navigation = "nav" ; //float RH_htfl(record, lat, lon ) ; //RH_htfl:long_name = "relative humidity" ; //RH_htfl:units = "percent" ; //RH_htfl:_FillValue = -9999.f ; //RH_htfl:navigation = "nav" ; float srf_rn(record, lat, lon) ; srf_rn:long_name = "surface roughness" ; srf_rn:units = "m" ; srf_rn:_FillValue = -9999.f ; srf_rn:navigation = "nav" ; float Kind_sfc(record, lat, lon) ; Kind_sfc:long_name = "K index" ; Kind_sfc:units = "degK" ; Kind_sfc:_FillValue = -9999.f ; Kind_sfc:navigation = "nav" ; //float reserved(record, level, lat, lon ) ; //reserved:long_name = "" ; //reserved:_FillValue = -9999.f ; //reserved:navigation = "nav" ; //float reserved_lbls(record, soil_lpdg, lat, lon ) ; //reserved_lbls:long_name = "Volumetric soil moisture content" ; //reserved_lbls:_FillValue = -9999.f ; //reserved_lbls:navigation = "nav" ; //float reserved_atm(record, lat, lon ) ; //reserved_atm:long_name = "Cloud workfunction" ; //reserved_atm:_FillValue = -9999.f ; //reserved_atm:navigation = "nav" ; //float reserved_sfc(record, lat, lon ) ; //reserved_sfc:long_name = "Meridional flux of gravity wave stress" ; //reserved_sfc:_FillValue = -9999.f ; //reserved_sfc:navigation = "nav" ; // global attributes: :history = "created by gribtonc from HRS broadcast" ; :title = "NMC Global Product Set" ; :Conventions = "NUWG" ; :version = 0.0 ; // still just a draft data: level = 1000, 975, 950, 925, 900, 850, 800, 750, 700, 650, 600, 550, 500, 450, 400, 350, 300, 250, 200, 150, 100, 70, 50, 30, 20, 10 ; soil_lpdg_top = 0, 0, 5, 10, 60, 150 ; soil_lpdg_bot = 5, 10, 30, 200, 90, 180 ; lpdg_bot = 0, 0 ; lpdg_top = 30, 180 ; fhg = 2, 10 ; fh = 1829, 2743, 3658 ; ls_all_top = 0.0, 0.33, 0.44, 0.44, 0.47, 0.84, 0.72 ; ls_all_bot = 1.0, 1.0, 1.0, 0.72, 1.0, 0.98, 0.94 ; sigma = 0.9950 ; model_id = 58, 63, 187; // Navigation nav_model = "GRIB1" ; grid_type_code = 0 ; grid_type = "Latitude/Longitude" ; grid_name = "Global 1.0 x 1.0 degree grid" ; grid_center = 58 ; // US Navy - Fleet Numerical Oceanography Center grid_number = 240 ; i_dim = "lon" ; j_dim = "lat" ; Ni = 360 ; Nj = 181 ; La1 = -90.0 ; Lo1 = 0.0 ; La2 = 90.0 ; Lo2 = 359.0 ; Di = 1.0 ; Dj = 1.0 ; ResCompFlag = 0x80 ; lon = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359 ; lat = -90, -89, -88, -87, -86, -85, -84, -83, -82, -81, -80, -79, -78, -77, -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46, -45, -44, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 ; }