NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
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 ; }