netcdf upperair { // netCDF prototype for upper air file dimensions: station = UNLIMITED ; mant_level = 20 ; sigt_level = 50 ; sigw_level = 50 ; string_len = 11 ; variables: // Station specific information char id(station, string_len) ; id:name = "ID" ; id:long_name = "Station ID" ; char region(station, string_len) ; region:name = "AREA" ; region:long_name = "Region ID" ; char type(station, string_len) ; type:name = "TYPE" ; type:long_name = "Report Origination" ; long idn(station) ; idn:name = "IDN" ; idn:long_name = "WMO Numeric Station ID" ; idn:valid_range = 0, 99999 ; float lat(station) ; lat:name = "LAT" ; lat:long_name = "Latitude" ; lat:units = "DEG" ; lat:valid_range = -90.f, 90.f ; float lon(station) ; lon:name = "LON" ; lon:long_name = "Longitude" ; lon:units = "DEG" ; lon:valid_range = -180.f, 180.f ; long num_mant(station) ; num_mant:name = "NMANT" ; num_mant:long_name = "Number of Mandatory Levels" ; num_mant:valid_range = 0, 20 ; long num_sigt(station) ; num_sigt:name = "NSIGT" ; num_sigt:long_name = "Number of Significant Levels wrt T" ; num_sigt:valid_range = 0, 50 ; long num_sigw(station) ; num_sigw:name = "NSIGW" ; num_sigw:long_name = "Number of Significant Levels wrt W" ; num_sigw:valid_range = 0, 50 ; // Pressure, Temperature, Humidity, Wind -- Mandatory -- TTAA, TTCC // Mandatory levels: SFC, 1000, 850, 700, 500, 400, 300, 250, 200, // 150, 100, 70, 50, 30, 20, 10, TROP1, TROP2, WMAX1, WMAX2 float p_man(station, mant_level) ; p_man:name = "P" ; p_man:long_name = "Pressure - Mandatory Levels" ; p_man:units = "MB" ; p_man:valid_range = 0.f, 1500.f ; float z_man(station, mant_level) ; z_man:name = "Z" ; z_man:long_name = "Geopotential - Mandatory Levels" ; z_man:units = "M" ; z_man:valid_range = -150.f, 50000.f ; float t_man(station, mant_level) ; t_man:name = "T" ; t_man:long_name = "Temperature - Mandatory Levels" ; t_man:units = "C" ; t_man:valid_range = -100.f, 100.f ; float td_man(station, mant_level) ; td_man:name = "TD" ; td_man:long_name = "Dew Point - Mandatory Levels" ; td_man:units = "C" ; td_man:valid_range = -100.f, 100.f ; float dir_man(station, mant_level) ; dir_man:name = "DIR" ; dir_man:long_name = "Wind Direction - Mandatory Levels" ; dir_man:units = "DEG" ; dir_man:valid_range = 0.f, 360.f ; float spd_man(station, mant_level) ; spd_man:name = "SPD" ; spd_man:long_name = "Wind Speed - Mandatory Levels" ; spd_man:units = "KTS" ; spd_man:valid_range = 0.f, 300.f ; // Pressure, Temperature, Humidity, Wind -- Significant -- TTBB, TTDD float p_sigt(station, sigt_level) ; p_sigt:name = "P" ; p_sigt:long_name = "Pressure - Significant Levels wrt T or RH" ; p_sigt:units = "MB" ; p_sigt:valid_range = 0.f, 1500.f ; float t_sigt(station, sigt_level) ; t_sigt:name = "T" ; t_sigt:long_name = "Temperature - Significant Levels wrt T or RH " ; t_sigt:units = "C" ; t_sigt:valid_range = -100.f, 100.f ; float td_sigt(station, sigt_level) ; td_sigt:name = "TD" ; td_sigt:long_name = "Dew Point - Significant Levels wrt T or RH" ; td_sigt:units = "C" ; td_sigt:valid_range = -100.f, 100.f ; // Height and Wind -- Significant -- PPBB, PPDD float z_sigw(station, sigw_level) ; z_sigw:name = "ALT" ; z_sigw:long_name = "Altitude - Significant Levels wrt Winds" ; z_sigw:units = "FT" ; z_sigw:valid_range = -500.f, 150000.f ; float dir_sigw(station, sigw_level) ; dir_sigw:name = "WND" ; dir_sigw:long_name = "Wind Direction - Significant Levels wrt Winds" ; dir_sigw:units = "DEG" ; dir_sigw:valid_range = 0.f, 360.f ; float spd_sigw(station, sigw_level) ; spd_sigw:name = "SPD" ; spd_sigw:long_name = "Wind Speed - Significant Levels wrt Winds" ; spd_sigw:units = "KTS" ; spd_sigw:valid_range = 0.f, 300.f ; // global attributes: :title = "Upper Air Observations" ; :source = "DD+" ; :missing_value = -9999.f ; :datetime = "12Z 24 JAN 91" ; :yymmddhh = "91012412" ; }