[gradsusr] Displaying a .nc file

Jennifer Adams jma at cola.iges.org
Fri Jun 20 15:21:07 EDT 2014


Hi, David -- 
You are making progress! 

On Jun 20, 2014, at 2:51 PM, David Stanfel wrote:

> Yes, the axis stuff is pretty confusing, I've been looking around for what I should be using for it and still can't find it. I made the suggested changes to my control file:
> 
> DSET   ^atmos_month.nc.0000
> UNDEF  -9.99e8_slp
> UNDEF  -9.99e8_temp 
> UNDEF  -9.99e8_zsurf
Remove these three UNDEF entries and just use 'UNDEF -9.99e8 missing_value' instead. 

> DTYPE netcdf
> TITLE 6 Months Sample Model Output
> XDEF 144 LINEAR  0.0   2.5
> YDEF 3 LINEAR 1   1
> ZDEF 24 LINEAR 1   1  
> TDEF 1 LINEAR 01JAN0001 1dy
> VARS 3
> slp    0  t,y,x  sea level pressure (Pa)
> temp  24  t,z,y,x  temperature (K)
> zsurf  0  y,z   surface height (m)
> ENDVARS
> 
> This was the result when it was called and when I tried to display the three variables that were specified:
> 
> dstanfel:bin ninjawarrior343$ ./grads
> 
> Grid Analysis and Display System (GrADS) Version 2.1.a2
> Copyright (c) 1988-2013 by the Institute for Global Environment and Society (IGES)
> GrADS comes with ABSOLUTELY NO WARRANTY
> See file COPYRIGHT for more information
> 
> Config: v2.1.a2 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids,stn geotiff shapefile cairo
> Issue 'q config' command for more detailed configuration information
> Landscape mode? ('n' for portrait):  y
> GX Package Initialization: Size = 11 8.5 
> ga-> open test.ctl
> Scanning description file:  test.ctl
> Data file atmos_month.nc.0000 is open as file 1
> LON set to 0 360 
> LAT set to 1 3 
> LEV set to 1 1 
> Time values set: 1:1:1:0 1:1:1:0 
> E set to 1 1 
> ga-> d temp

The warning message below shouldn't be appearing (that is a bug I will try to track down), but it is harmless. 
> *** WARNING! ***
> *** The I/O for this variable will be extremely slow 
> *** because the chunks are too big to fit in the cache 
> *** chunk size = 41472 bytes  (144 * 3 * 24 * 1 * 4 bytes)
> *** cache size = -2017461983885971885 bytes 
> *** There are two ways to control the cache size: 
> *** add a CACHESIZE entry to the descriptor file 
> *** or change the cache size scale factor with 'set cachesf' 
> *** Please read http://iges.org/grads/gadoc/compression.html 

This message is more troubling, it means the shape of the variable (the number of its dimensions and their sizes) isn't right. I think this is related to the size 0 time axis. Try changing the variable declaration to "temp  24  z,y,x temperature (K)" and see if that changes anything. 
> gancgrid error: nc_get_vara_double failed; NetCDF: Index exceeds dimension bound
> Data Request Error:  Error for variable 'temp'
>   Error ocurred at column 1
> DISPLAY error:  Invalid expression 
>   Expression = temp
> 
> ga-> d zsurf
> Open Error on Map Data Set: /usr/local/lib/grads/lowres
The environment variable you need to set is GADDIR -- it should point to the location where you unpacked data.tar.gz. This will make the 'stroke character' error messages go away too. 

> Contouring: 0 to 2.7e+34 interval 3e+33 
These don't seem like the correct range of values for surface height … I wonder whether the missing value attribute is correct -- it says the undef is 1e+20, but maybe it is really 1e33? More investigating for you. If you want to ignore the undef attribute in the file and try 1e33 instead, use 'undef 1e33' (without the "missing_value" appended). That will mess up the other variables in the file, but you can do this to check whether the undef attribute is wrong. 

> ga-> d slp
> gancgrid error: nc_get_vara_double failed; NetCDF: Index exceeds dimension bound
Again, I think this is related to the problem with the T axis. See what happens when you use 'slp 0  y,x  sea level pressure' instead. 

> Data Request Error:  Error for variable 'slp'
>   Error ocurred at column 1
> DISPLAY error:  Invalid expression 
>   Expression = slp
> ga-> 
> 
> I tried changing the environment of where the font data is stored with:
> 
> export GASCRP=$HOME/University/Research_job/supplibs
> 
> but this did not change the error.
The GASCRP environment variable tells GrADS where to look for scripts if it can't find them in the current working directory. The one you need to set properly is GADDIR. Doc page is at http://iges.org/grads/gadoc/gradcomdgrads.html#env
--Jennifer


> 
> Thanks,
> 
> David
> 
> 
> On Fri, Jun 20, 2014 at 8:18 AM, Jennifer Adams <jma at cola.iges.org> wrote:
> David, 
> You need to read the documentation about creating descriptors for netcdf data. 
> http://iges.org/grads/gadoc/SDFdescriptorfile.html
> 
> Your file has numerous coordinate variables, yet the ncdump output shows them all to contain missing data, so I'm not sure how you can define the proper grid. The 'lon' coordinate is promising, it has 144 values, so you could try assuming it's a 2.5-degree grid and create an X axis like this:
>   xdef 144 linear 0 2.5
> I don't know what the information in the attribute named domain_decomposition means. Is it relevant?
> 
> The lat axis has only 3 values … I have no idea how to guess at that, so I woud put an abstract axis definition, like this:
>   ydef 3 linear 1 1
> 
> For the Z axis, most of the variables use pfull, but once again, there is no information about what those values might be, so:
>   zdef 24 linear 1 1 
> 
> The time dimension has size 0, yet most of the variables in your file appear to have a time dimension. I don't know how to interpret that, perhaps just a default will do: 
>   tdef 1 linear 01jan0001 1dy
> 
> As for variables, if you extract all the variables that use the axes lon, lat, or pfull, you get a long list. Here are three examples: 
> 
>         float slp(time, lat, lon) ;
>         float temp(time, pfull, lat, lon) ;
>         float zsurf(lat, lon) ;
> 
> Variable declarations for these three variables would look like this:
> 
>    vars 3
>    slp  0  t,y,x  sea level pressure (Pa)
>    temp  24  t,z,y,x  temperature (K)
>    zsurf  0  y,z   surface height (m)
>    endvars
> 
> You will also need
>   dtype netcdf
>   undef -9.99e8 missing_value 
>   
> The undef entry is important because the variables in your file have different missing values, so you need to put the name of the attribute in there so GrADS will get it right. The -9.99e8 can be any number -- the attribute name is what's critical here. 
> 
> But I can't say for sure whether this will work because of your 0-size time axis. And the mapping will be off until you figure out what the latitude values are. 
> --Jennifer
> 
> On Jun 19, 2014, at 1:50 PM, David Stanfel wrote:
> 
>> Here is the output of the ncdump:
>> 
>> dstanfel at bugaboo:~/models/mom/work/ESM2M_pi-control_C2> ncdump -c atmos_month.nc.0000
>> netcdf atmos_month.nc {
>> dimensions:
>> 	lon = 144 ;
>> 	lonb = 145 ;
>> 	lat = 3 ;
>> 	latb = 4 ;
>> 	time = UNLIMITED ; // (0 currently)
>> 	nv = 2 ;
>> 	pfull = 24 ;
>> 	phalf = 25 ;
>> variables:
>> 	double lon(lon) ;
>> 		lon:long_name = "longitude" ;
>> 		lon:units = "degrees_E" ;
>> 		lon:cartesian_axis = "X" ;
>> 		lon:domain_decomposition = 1, 144, 1, 144 ;
>> 		lon:edges = "lonb" ;
>> 	double lonb(lonb) ;
>> 		lonb:long_name = "longitude edges" ;
>> 		lonb:units = "degrees_E" ;
>> 		lonb:cartesian_axis = "X" ;
>> 	double lat(lat) ;
>> 		lat:long_name = "latitude" ;
>> 		lat:units = "degrees_N" ;
>> 		lat:cartesian_axis = "Y" ;
>> 		lat:domain_decomposition = 1, 90, 1, 3 ;
>> 		lat:edges = "latb" ;
>> 	double latb(latb) ;
>> 		latb:long_name = "latitude edges" ;
>> 		latb:units = "degrees_N" ;
>> 		latb:cartesian_axis = "Y" ;
>> 		latb:domain_decomposition = 1, 91, 1, 4 ;
>> 	double time(time) ;
>> 		time:long_name = "time" ;
>> 		time:units = "days since 0001-01-01 00:00:00" ;
>> 		time:cartesian_axis = "T" ;
>> 		time:calendar_type = "NOLEAP" ;
>> 		time:calendar = "NOLEAP" ;
>> 		time:bounds = "time_bounds" ;
>> 	double nv(nv) ;
>> 		nv:long_name = "vertex number" ;
>> 		nv:units = "none" ;
>> 		nv:cartesian_axis = "N" ;
>> 	double pfull(pfull) ;
>> 		pfull:long_name = "ref full pressure level" ;
>> 		pfull:units = "mb" ;
>> 		pfull:cartesian_axis = "Z" ;
>> 		pfull:positive = "down" ;
>> 		pfull:edges = "phalf" ;
>> 	double phalf(phalf) ;
>> 		phalf:long_name = "ref half pressure level" ;
>> 		phalf:units = "mb" ;
>> 		phalf:cartesian_axis = "Z" ;
>> 		phalf:positive = "down" ;
>> 	float fco2nat(time, lat, lon) ;
>> 		fco2nat:long_name = "flux of carbon dioxide" ;
>> 		fco2nat:units = "mol CO2/(m2 s)" ;
>> 		fco2nat:missing_value = 1.e+20f ;
>> 		fco2nat:_FillValue = 1.e+20f ;
>> 		fco2nat:cell_methods = "time: mean" ;
>> 		fco2nat:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float high_cld_amt(time, lat, lon) ;
>> 		high_cld_amt:long_name = "high cloud amount" ;
>> 		high_cld_amt:units = "percent" ;
>> 		high_cld_amt:missing_value = 1.e+20f ;
>> 		high_cld_amt:_FillValue = 1.e+20f ;
>> 		high_cld_amt:cell_methods = "time: mean" ;
>> 		high_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float low_cld_amt(time, lat, lon) ;
>> 		low_cld_amt:long_name = "low cloud amount" ;
>> 		low_cld_amt:units = "percent" ;
>> 		low_cld_amt:missing_value = 1.e+20f ;
>> 		low_cld_amt:_FillValue = 1.e+20f ;
>> 		low_cld_amt:cell_methods = "time: mean" ;
>> 		low_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float mid_cld_amt(time, lat, lon) ;
>> 		mid_cld_amt:long_name = "mid cloud amount" ;
>> 		mid_cld_amt:units = "percent" ;
>> 		mid_cld_amt:missing_value = 1.e+20f ;
>> 		mid_cld_amt:_FillValue = 1.e+20f ;
>> 		mid_cld_amt:cell_methods = "time: mean" ;
>> 		mid_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tot_cld_amt(time, lat, lon) ;
>> 		tot_cld_amt:long_name = "total cloud amount" ;
>> 		tot_cld_amt:units = "percent" ;
>> 		tot_cld_amt:missing_value = 1.e+20f ;
>> 		tot_cld_amt:_FillValue = 1.e+20f ;
>> 		tot_cld_amt:cell_methods = "time: mean" ;
>> 		tot_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float taubx(time, lat, lon) ;
>> 		taubx:long_name = "x base flux for grav wave drag" ;
>> 		taubx:units = "kg/m/s2" ;
>> 		taubx:missing_value = -999.f ;
>> 		taubx:_FillValue = -999.f ;
>> 		taubx:cell_methods = "time: mean" ;
>> 		taubx:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tauby(time, lat, lon) ;
>> 		tauby:long_name = "y base flux for grav wave drag" ;
>> 		tauby:units = "kg/m/s2" ;
>> 		tauby:missing_value = -999.f ;
>> 		tauby:_FillValue = -999.f ;
>> 		tauby:cell_methods = "time: mean" ;
>> 		tauby:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float udt_gwd(time, pfull, lat, lon) ;
>> 		udt_gwd:long_name = "u wind tendency for gravity wave drag" ;
>> 		udt_gwd:units = "m/s2" ;
>> 		udt_gwd:missing_value = -999.f ;
>> 		udt_gwd:_FillValue = -999.f ;
>> 		udt_gwd:cell_methods = "time: mean" ;
>> 		udt_gwd:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float vdt_gwd(time, pfull, lat, lon) ;
>> 		vdt_gwd:long_name = "v wind tendency for gravity wave drag" ;
>> 		vdt_gwd:units = "m/s2" ;
>> 		vdt_gwd:missing_value = -999.f ;
>> 		vdt_gwd:_FillValue = -999.f ;
>> 		vdt_gwd:cell_methods = "time: mean" ;
>> 		vdt_gwd:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float udt_rdamp(time, pfull, lat, lon) ;
>> 		udt_rdamp:long_name = "u wind tendency for Rayleigh damping" ;
>> 		udt_rdamp:units = "m/s2" ;
>> 		udt_rdamp:missing_value = -999.f ;
>> 		udt_rdamp:_FillValue = -999.f ;
>> 		udt_rdamp:cell_methods = "time: mean" ;
>> 		udt_rdamp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float vdt_rdamp(time, pfull, lat, lon) ;
>> 		vdt_rdamp:long_name = "v wind tendency for Rayleigh damping" ;
>> 		vdt_rdamp:units = "m/s2" ;
>> 		vdt_rdamp:missing_value = -999.f ;
>> 		vdt_rdamp:_FillValue = -999.f ;
>> 		vdt_rdamp:cell_methods = "time: mean" ;
>> 		vdt_rdamp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float bk(phalf) ;
>> 		bk:long_name = "vertical coordinate sigma value" ;
>> 		bk:units = "none" ;
>> 		bk:missing_value = 1.e+20f ;
>> 		bk:_FillValue = 1.e+20f ;
>> 		bk:cell_methods = "time: point" ;
>> 	float pk(phalf) ;
>> 		pk:long_name = "pressure part of the hybrid coordinate" ;
>> 		pk:units = "pascal" ;
>> 		pk:missing_value = 1.e+20f ;
>> 		pk:_FillValue = 1.e+20f ;
>> 		pk:cell_methods = "time: point" ;
>> 	float zsurf(lat, lon) ;
>> 		zsurf:long_name = "surface height" ;
>> 		zsurf:units = "m" ;
>> 		zsurf:missing_value = 1.e+20f ;
>> 		zsurf:_FillValue = 1.e+20f ;
>> 		zsurf:cell_methods = "time: point" ;
>> 	float cld_amt(time, pfull, lat, lon) ;
>> 		cld_amt:long_name = "cloud fraction" ;
>> 		cld_amt:units = "none" ;
>> 		cld_amt:missing_value = -1.e+10f ;
>> 		cld_amt:_FillValue = -1.e+10f ;
>> 		cld_amt:cell_methods = "time: mean" ;
>> 		cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float ice_wat(time, pfull, lat, lon) ;
>> 		ice_wat:long_name = "cloud ice water specific humidity" ;
>> 		ice_wat:units = "kg/kg" ;
>> 		ice_wat:missing_value = -1.e+10f ;
>> 		ice_wat:_FillValue = -1.e+10f ;
>> 		ice_wat:cell_methods = "time: mean" ;
>> 		ice_wat:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float liq_wat(time, pfull, lat, lon) ;
>> 		liq_wat:long_name = "cloud liquid specific humidity" ;
>> 		liq_wat:units = "kg/kg" ;
>> 		liq_wat:missing_value = -1.e+10f ;
>> 		liq_wat:_FillValue = -1.e+10f ;
>> 		liq_wat:cell_methods = "time: mean" ;
>> 		liq_wat:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float omega(time, pfull, lat, lon) ;
>> 		omega:long_name = "omega" ;
>> 		omega:units = "pa/sec" ;
>> 		omega:missing_value = -1.e+10f ;
>> 		omega:_FillValue = -1.e+10f ;
>> 		omega:cell_methods = "time: mean" ;
>> 		omega:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float ps(time, lat, lon) ;
>> 		ps:long_name = "surface pressure" ;
>> 		ps:units = "Pa" ;
>> 		ps:missing_value = -1.e+10f ;
>> 		ps:_FillValue = -1.e+10f ;
>> 		ps:cell_methods = "time: mean" ;
>> 		ps:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float sphum(time, pfull, lat, lon) ;
>> 		sphum:long_name = "specific humidity" ;
>> 		sphum:units = "kg/kg" ;
>> 		sphum:missing_value = -1.e+10f ;
>> 		sphum:_FillValue = -1.e+10f ;
>> 		sphum:cell_methods = "time: mean" ;
>> 		sphum:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float slp_dyn(time, lat, lon) ;
>> 		slp_dyn:long_name = "sea-level pressure" ;
>> 		slp_dyn:units = "mb" ;
>> 		slp_dyn:valid_range = 800.f, 1200.f ;
>> 		slp_dyn:missing_value = -1.e+10f ;
>> 		slp_dyn:_FillValue = -1.e+10f ;
>> 		slp_dyn:cell_methods = "time: mean" ;
>> 		slp_dyn:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float temp(time, pfull, lat, lon) ;
>> 		temp:long_name = "temperature" ;
>> 		temp:units = "deg_K" ;
>> 		temp:valid_range = 100.f, 350.f ;
>> 		temp:missing_value = -1.e+10f ;
>> 		temp:_FillValue = -1.e+10f ;
>> 		temp:cell_methods = "time: mean" ;
>> 		temp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float ucomp(time, pfull, lat, lon) ;
>> 		ucomp:long_name = "zonal wind" ;
>> 		ucomp:units = "m/sec" ;
>> 		ucomp:valid_range = -330.f, 350.f ;
>> 		ucomp:missing_value = -1.e+10f ;
>> 		ucomp:_FillValue = -1.e+10f ;
>> 		ucomp:cell_methods = "time: mean" ;
>> 		ucomp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float vcomp(time, pfull, lat, lon) ;
>> 		vcomp:long_name = "meridional wind" ;
>> 		vcomp:units = "m/sec" ;
>> 		vcomp:valid_range = -330.f, 350.f ;
>> 		vcomp:missing_value = -1.e+10f ;
>> 		vcomp:_FillValue = -1.e+10f ;
>> 		vcomp:cell_methods = "time: mean" ;
>> 		vcomp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float drag_heat(time, lat, lon) ;
>> 		drag_heat:long_name = "drag coeff for heat" ;
>> 		drag_heat:units = "none" ;
>> 		drag_heat:missing_value = 1.e+20f ;
>> 		drag_heat:_FillValue = 1.e+20f ;
>> 		drag_heat:cell_methods = "time: mean" ;
>> 		drag_heat:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float drag_moist(time, lat, lon) ;
>> 		drag_moist:long_name = "drag coeff for moisture" ;
>> 		drag_moist:units = "none" ;
>> 		drag_moist:missing_value = 1.e+20f ;
>> 		drag_moist:_FillValue = 1.e+20f ;
>> 		drag_moist:cell_methods = "time: mean" ;
>> 		drag_moist:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float drag_mom(time, lat, lon) ;
>> 		drag_mom:long_name = "drag coeff for momentum" ;
>> 		drag_mom:units = "none" ;
>> 		drag_mom:missing_value = 1.e+20f ;
>> 		drag_mom:_FillValue = 1.e+20f ;
>> 		drag_mom:cell_methods = "time: mean" ;
>> 		drag_mom:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float evap(time, lat, lon) ;
>> 		evap:long_name = "evaporation rate" ;
>> 		evap:units = "kg/m2/s" ;
>> 		evap:missing_value = 1.e+20f ;
>> 		evap:_FillValue = 1.e+20f ;
>> 		evap:cell_methods = "time: mean" ;
>> 		evap:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float sphum_flux(time, lat, lon) ;
>> 		sphum_flux:long_name = "flux of specific humidity" ;
>> 		sphum_flux:units = "kg/kg kg air/(m2 s)" ;
>> 		sphum_flux:missing_value = 1.e+20f ;
>> 		sphum_flux:_FillValue = 1.e+20f ;
>> 		sphum_flux:cell_methods = "time: mean" ;
>> 		sphum_flux:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float ice_mask(time, lat, lon) ;
>> 		ice_mask:long_name = "fractional amount of sea ice" ;
>> 		ice_mask:units = "none" ;
>> 		ice_mask:valid_range = -0.01f, 1.01f ;
>> 		ice_mask:missing_value = 1.e+20f ;
>> 		ice_mask:_FillValue = 1.e+20f ;
>> 		ice_mask:cell_methods = "time: mean" ;
>> 		ice_mask:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 		ice_mask:interp_method = "conserve_order1" ;
>> 	float land_mask(lat, lon) ;
>> 		land_mask:long_name = "fractional amount of land" ;
>> 		land_mask:units = "none" ;
>> 		land_mask:valid_range = -0.01f, 1.01f ;
>> 		land_mask:missing_value = 1.e+20f ;
>> 		land_mask:_FillValue = 1.e+20f ;
>> 		land_mask:cell_methods = "time: point" ;
>> 		land_mask:interp_method = "conserve_order1" ;
>> 	float lwflx(time, lat, lon) ;
>> 		lwflx:long_name = "net (down-up) longwave flux" ;
>> 		lwflx:units = "w/m2" ;
>> 		lwflx:missing_value = 1.e+20f ;
>> 		lwflx:_FillValue = 1.e+20f ;
>> 		lwflx:cell_methods = "time: mean" ;
>> 		lwflx:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh_ref(time, lat, lon) ;
>> 		rh_ref:long_name = "relative humidity at 2 m" ;
>> 		rh_ref:units = "percent" ;
>> 		rh_ref:missing_value = 1.e+20f ;
>> 		rh_ref:_FillValue = 1.e+20f ;
>> 		rh_ref:cell_methods = "time: mean" ;
>> 		rh_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float shflx(time, lat, lon) ;
>> 		shflx:long_name = "sensible heat flux" ;
>> 		shflx:units = "w/m2" ;
>> 		shflx:missing_value = 1.e+20f ;
>> 		shflx:_FillValue = 1.e+20f ;
>> 		shflx:cell_methods = "time: mean" ;
>> 		shflx:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tau_x(time, lat, lon) ;
>> 		tau_x:long_name = "zonal wind stress" ;
>> 		tau_x:units = "pa" ;
>> 		tau_x:missing_value = 1.e+20f ;
>> 		tau_x:_FillValue = 1.e+20f ;
>> 		tau_x:cell_methods = "time: mean" ;
>> 		tau_x:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tau_y(time, lat, lon) ;
>> 		tau_y:long_name = "meridional wind stress" ;
>> 		tau_y:units = "pa" ;
>> 		tau_y:missing_value = 1.e+20f ;
>> 		tau_y:_FillValue = 1.e+20f ;
>> 		tau_y:cell_methods = "time: mean" ;
>> 		tau_y:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float t_ref(time, lat, lon) ;
>> 		t_ref:long_name = "temperature at 2 m" ;
>> 		t_ref:units = "deg_k" ;
>> 		t_ref:valid_range = 100.f, 400.f ;
>> 		t_ref:missing_value = 1.e+20f ;
>> 		t_ref:_FillValue = 1.e+20f ;
>> 		t_ref:cell_methods = "time: mean" ;
>> 		t_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float t_ref_min(time, lat, lon) ;
>> 		t_ref_min:long_name = "temperature at 2 m" ;
>> 		t_ref_min:units = "deg_k" ;
>> 		t_ref_min:valid_range = 100.f, 400.f ;
>> 		t_ref_min:missing_value = 1.e+20f ;
>> 		t_ref_min:_FillValue = 1.e+20f ;
>> 		t_ref_min:cell_methods = "time: min" ;
>> 		t_ref_min:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float t_ref_max(time, lat, lon) ;
>> 		t_ref_max:long_name = "temperature at 2 m" ;
>> 		t_ref_max:units = "deg_k" ;
>> 		t_ref_max:valid_range = 100.f, 400.f ;
>> 		t_ref_max:missing_value = 1.e+20f ;
>> 		t_ref_max:_FillValue = 1.e+20f ;
>> 		t_ref_max:cell_methods = "time: max" ;
>> 		t_ref_max:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float t_surf(time, lat, lon) ;
>> 		t_surf:long_name = "surface temperature" ;
>> 		t_surf:units = "deg_k" ;
>> 		t_surf:valid_range = 100.f, 400.f ;
>> 		t_surf:missing_value = 1.e+20f ;
>> 		t_surf:_FillValue = 1.e+20f ;
>> 		t_surf:cell_methods = "time: mean" ;
>> 		t_surf:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float u_ref(time, lat, lon) ;
>> 		u_ref:long_name = "zonal wind component at 10 m" ;
>> 		u_ref:units = "m/s" ;
>> 		u_ref:valid_range = -400.f, 400.f ;
>> 		u_ref:missing_value = 1.e+20f ;
>> 		u_ref:_FillValue = 1.e+20f ;
>> 		u_ref:cell_methods = "time: mean" ;
>> 		u_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float v_ref(time, lat, lon) ;
>> 		v_ref:long_name = "meridional wind component at 10 m" ;
>> 		v_ref:units = "m/s" ;
>> 		v_ref:valid_range = -400.f, 400.f ;
>> 		v_ref:missing_value = 1.e+20f ;
>> 		v_ref:_FillValue = 1.e+20f ;
>> 		v_ref:cell_methods = "time: mean" ;
>> 		v_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float wind(time, lat, lon) ;
>> 		wind:long_name = "wind speed for flux calculations" ;
>> 		wind:units = "m/s" ;
>> 		wind:valid_range = 0.f, 400.f ;
>> 		wind:missing_value = 1.e+20f ;
>> 		wind:_FillValue = 1.e+20f ;
>> 		wind:cell_methods = "time: mean" ;
>> 		wind:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float IWP(time, lat, lon) ;
>> 		IWP:long_name = "Ice water path" ;
>> 		IWP:units = "kg/m2" ;
>> 		IWP:missing_value = 1.e+20f ;
>> 		IWP:_FillValue = 1.e+20f ;
>> 		IWP:cell_methods = "time: mean" ;
>> 		IWP:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float LWP(time, lat, lon) ;
>> 		LWP:long_name = "Liquid water path" ;
>> 		LWP:units = "kg/m2" ;
>> 		LWP:missing_value = 1.e+20f ;
>> 		LWP:_FillValue = 1.e+20f ;
>> 		LWP:cell_methods = "time: mean" ;
>> 		LWP:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float precip(time, lat, lon) ;
>> 		precip:long_name = "Total precipitation rate" ;
>> 		precip:units = "kg/m2/s" ;
>> 		precip:missing_value = 1.e+20f ;
>> 		precip:_FillValue = 1.e+20f ;
>> 		precip:cell_methods = "time: mean" ;
>> 		precip:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 		precip:interp_method = "conserve_order1" ;
>> 	float prec_conv(time, lat, lon) ;
>> 		prec_conv:long_name = "Precipitation rate from convection" ;
>> 		prec_conv:units = "kg(h2o)/m2/s" ;
>> 		prec_conv:missing_value = 1.e+20f ;
>> 		prec_conv:_FillValue = 1.e+20f ;
>> 		prec_conv:cell_methods = "time: mean" ;
>> 		prec_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 		prec_conv:interp_method = "conserve_order1" ;
>> 	float prec_ls(time, lat, lon) ;
>> 		prec_ls:long_name = "Precipitation rate from strat cloud" ;
>> 		prec_ls:units = "kg/m2/s" ;
>> 		prec_ls:missing_value = 1.e+20f ;
>> 		prec_ls:_FillValue = 1.e+20f ;
>> 		prec_ls:cell_methods = "time: mean" ;
>> 		prec_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qdt_conv(time, pfull, lat, lon) ;
>> 		qdt_conv:long_name = "Spec humidity tendency from convection" ;
>> 		qdt_conv:units = "kg/kg/s" ;
>> 		qdt_conv:missing_value = -999.f ;
>> 		qdt_conv:_FillValue = -999.f ;
>> 		qdt_conv:cell_methods = "time: mean" ;
>> 		qdt_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qdt_ls(time, pfull, lat, lon) ;
>> 		qdt_ls:long_name = "Spec humidity tendency from strat cloud" ;
>> 		qdt_ls:units = "kg/kg/s" ;
>> 		qdt_ls:missing_value = -999.f ;
>> 		qdt_ls:_FillValue = -999.f ;
>> 		qdt_ls:cell_methods = "time: mean" ;
>> 		qdt_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh(time, pfull, lat, lon) ;
>> 		rh:long_name = "relative humidity" ;
>> 		rh:units = "percent" ;
>> 		rh:missing_value = -999.f ;
>> 		rh:_FillValue = -999.f ;
>> 		rh:cell_methods = "time: mean" ;
>> 		rh:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float snow_conv(time, lat, lon) ;
>> 		snow_conv:long_name = "Frozen precip rate from convection" ;
>> 		snow_conv:units = "kg(h2o)/m2/s" ;
>> 		snow_conv:missing_value = 1.e+20f ;
>> 		snow_conv:_FillValue = 1.e+20f ;
>> 		snow_conv:cell_methods = "time: mean" ;
>> 		snow_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 		snow_conv:interp_method = "conserve_order1" ;
>> 	float snow_ls(time, lat, lon) ;
>> 		snow_ls:long_name = "Frozen precip rate from strat cloud" ;
>> 		snow_ls:units = "kg/m2/s" ;
>> 		snow_ls:missing_value = 1.e+20f ;
>> 		snow_ls:_FillValue = 1.e+20f ;
>> 		snow_ls:cell_methods = "time: mean" ;
>> 		snow_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_conv(time, pfull, lat, lon) ;
>> 		tdt_conv:long_name = "Temperature tendency from convection" ;
>> 		tdt_conv:units = "deg_K/s" ;
>> 		tdt_conv:missing_value = -999.f ;
>> 		tdt_conv:_FillValue = -999.f ;
>> 		tdt_conv:cell_methods = "time: mean" ;
>> 		tdt_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_ls(time, pfull, lat, lon) ;
>> 		tdt_ls:long_name = "Temperature tendency from strat cloud" ;
>> 		tdt_ls:units = "deg_K/s" ;
>> 		tdt_ls:missing_value = -999.f ;
>> 		tdt_ls:_FillValue = -999.f ;
>> 		tdt_ls:cell_methods = "time: mean" ;
>> 		tdt_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float WVP(time, lat, lon) ;
>> 		WVP:long_name = "Column integrated water vapor" ;
>> 		WVP:units = "kg/m2" ;
>> 		WVP:missing_value = 1.e+20f ;
>> 		WVP:_FillValue = 1.e+20f ;
>> 		WVP:cell_methods = "time: mean" ;
>> 		WVP:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float alb_sfc(time, lat, lon) ;
>> 		alb_sfc:long_name = "surface albedo" ;
>> 		alb_sfc:units = "percent" ;
>> 		alb_sfc:missing_value = -999.f ;
>> 		alb_sfc:_FillValue = -999.f ;
>> 		alb_sfc:cell_methods = "time: mean" ;
>> 		alb_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lwdn_sfc(time, lat, lon) ;
>> 		lwdn_sfc:long_name = "LW flux down at surface" ;
>> 		lwdn_sfc:units = "watts/m2" ;
>> 		lwdn_sfc:missing_value = -999.f ;
>> 		lwdn_sfc:_FillValue = -999.f ;
>> 		lwdn_sfc:cell_methods = "time: mean" ;
>> 		lwdn_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lwdn_sfc_clr(time, lat, lon) ;
>> 		lwdn_sfc_clr:long_name = "clear skyLW flux down at surface" ;
>> 		lwdn_sfc_clr:units = "watts/m2" ;
>> 		lwdn_sfc_clr:missing_value = -999.f ;
>> 		lwdn_sfc_clr:_FillValue = -999.f ;
>> 		lwdn_sfc_clr:cell_methods = "time: mean" ;
>> 		lwdn_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lwup_sfc(time, lat, lon) ;
>> 		lwup_sfc:long_name = "LW flux up at surface" ;
>> 		lwup_sfc:units = "watts/m2" ;
>> 		lwup_sfc:missing_value = -999.f ;
>> 		lwup_sfc:_FillValue = -999.f ;
>> 		lwup_sfc:cell_methods = "time: mean" ;
>> 		lwup_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lwup_sfc_clr(time, lat, lon) ;
>> 		lwup_sfc_clr:long_name = "clear skyLW flux up at surface" ;
>> 		lwup_sfc_clr:units = "watts/m2" ;
>> 		lwup_sfc_clr:missing_value = -999.f ;
>> 		lwup_sfc_clr:_FillValue = -999.f ;
>> 		lwup_sfc_clr:cell_methods = "time: mean" ;
>> 		lwup_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netrad_toa(time, lat, lon) ;
>> 		netrad_toa:long_name = "net radiation (lw + sw) at toa" ;
>> 		netrad_toa:units = "watts/m2" ;
>> 		netrad_toa:missing_value = -999.f ;
>> 		netrad_toa:_FillValue = -999.f ;
>> 		netrad_toa:cell_methods = "time: mean" ;
>> 		netrad_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netrad_toa_clr(time, lat, lon) ;
>> 		netrad_toa_clr:long_name = "clear skynet radiation (lw + sw) at toa" ;
>> 		netrad_toa_clr:units = "watts/m2" ;
>> 		netrad_toa_clr:missing_value = -999.f ;
>> 		netrad_toa_clr:_FillValue = -999.f ;
>> 		netrad_toa_clr:cell_methods = "time: mean" ;
>> 		netrad_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float olr(time, lat, lon) ;
>> 		olr:long_name = "outgoing longwave radiation" ;
>> 		olr:units = "watts/m2" ;
>> 		olr:missing_value = -999.f ;
>> 		olr:_FillValue = -999.f ;
>> 		olr:cell_methods = "time: mean" ;
>> 		olr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float olr_clr(time, lat, lon) ;
>> 		olr_clr:long_name = "clear skyoutgoing longwave radiation" ;
>> 		olr_clr:units = "watts/m2" ;
>> 		olr_clr:missing_value = -999.f ;
>> 		olr_clr:_FillValue = -999.f ;
>> 		olr_clr:cell_methods = "time: mean" ;
>> 		olr_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qo3(time, pfull, lat, lon) ;
>> 		qo3:long_name = "ozone mixing ratio" ;
>> 		qo3:units = "kg/kg" ;
>> 		qo3:missing_value = -999.f ;
>> 		qo3:_FillValue = -999.f ;
>> 		qo3:cell_methods = "time: mean" ;
>> 		qo3:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qo3_col(time, lat, lon) ;
>> 		qo3_col:long_name = "ozone column" ;
>> 		qo3_col:units = "DU" ;
>> 		qo3_col:missing_value = -999.f ;
>> 		qo3_col:_FillValue = -999.f ;
>> 		qo3_col:cell_methods = "time: mean" ;
>> 		qo3_col:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_sfc(time, lat, lon) ;
>> 		swdn_sfc:long_name = "SW flux down at surface" ;
>> 		swdn_sfc:units = "watts/m2" ;
>> 		swdn_sfc:missing_value = -999.f ;
>> 		swdn_sfc:_FillValue = -999.f ;
>> 		swdn_sfc:cell_methods = "time: mean" ;
>> 		swdn_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_sfc_clr(time, lat, lon) ;
>> 		swdn_sfc_clr:long_name = "clear skySW flux down at surface" ;
>> 		swdn_sfc_clr:units = "watts/m2" ;
>> 		swdn_sfc_clr:missing_value = -999.f ;
>> 		swdn_sfc_clr:_FillValue = -999.f ;
>> 		swdn_sfc_clr:cell_methods = "time: mean" ;
>> 		swdn_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_sfc(time, lat, lon) ;
>> 		swup_sfc:long_name = "SW flux up at surface" ;
>> 		swup_sfc:units = "watts/m2" ;
>> 		swup_sfc:missing_value = -999.f ;
>> 		swup_sfc:_FillValue = -999.f ;
>> 		swup_sfc:cell_methods = "time: mean" ;
>> 		swup_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_sfc_clr(time, lat, lon) ;
>> 		swup_sfc_clr:long_name = "clear skySW flux up at surface" ;
>> 		swup_sfc_clr:units = "watts/m2" ;
>> 		swup_sfc_clr:missing_value = -999.f ;
>> 		swup_sfc_clr:_FillValue = -999.f ;
>> 		swup_sfc_clr:cell_methods = "time: mean" ;
>> 		swup_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_toa(time, lat, lon) ;
>> 		swdn_toa:long_name = "SW flux down at TOA" ;
>> 		swdn_toa:units = "watts/m2" ;
>> 		swdn_toa:missing_value = -999.f ;
>> 		swdn_toa:_FillValue = -999.f ;
>> 		swdn_toa:cell_methods = "time: mean" ;
>> 		swdn_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_toa_clr(time, lat, lon) ;
>> 		swdn_toa_clr:long_name = "clear skySW flux down at TOA" ;
>> 		swdn_toa_clr:units = "watts/m2" ;
>> 		swdn_toa_clr:missing_value = -999.f ;
>> 		swdn_toa_clr:_FillValue = -999.f ;
>> 		swdn_toa_clr:cell_methods = "time: mean" ;
>> 		swdn_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_toa(time, lat, lon) ;
>> 		swup_toa:long_name = "SW flux up at TOA" ;
>> 		swup_toa:units = "watts/m2" ;
>> 		swup_toa:missing_value = -999.f ;
>> 		swup_toa:_FillValue = -999.f ;
>> 		swup_toa:cell_methods = "time: mean" ;
>> 		swup_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_toa_clr(time, lat, lon) ;
>> 		swup_toa_clr:long_name = "clear skySW flux up at TOA" ;
>> 		swup_toa_clr:units = "watts/m2" ;
>> 		swup_toa_clr:missing_value = -999.f ;
>> 		swup_toa_clr:_FillValue = -999.f ;
>> 		swup_toa_clr:cell_methods = "time: mean" ;
>> 		swup_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_lw(time, pfull, lat, lon) ;
>> 		tdt_lw:long_name = "temperature tendency for LW radiation" ;
>> 		tdt_lw:units = "deg_K/sec" ;
>> 		tdt_lw:missing_value = -999.f ;
>> 		tdt_lw:_FillValue = -999.f ;
>> 		tdt_lw:cell_methods = "time: mean" ;
>> 		tdt_lw:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_lw_clr(time, pfull, lat, lon) ;
>> 		tdt_lw_clr:long_name = "clear skytemperature tendency for LW radiation" ;
>> 		tdt_lw_clr:units = "deg_K/sec" ;
>> 		tdt_lw_clr:missing_value = -999.f ;
>> 		tdt_lw_clr:_FillValue = -999.f ;
>> 		tdt_lw_clr:cell_methods = "time: mean" ;
>> 		tdt_lw_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_sw(time, pfull, lat, lon) ;
>> 		tdt_sw:long_name = "temperature tendency for SW radiation" ;
>> 		tdt_sw:units = "deg_K/sec" ;
>> 		tdt_sw:missing_value = -999.f ;
>> 		tdt_sw:_FillValue = -999.f ;
>> 		tdt_sw:cell_methods = "time: mean" ;
>> 		tdt_sw:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_sw_clr(time, pfull, lat, lon) ;
>> 		tdt_sw_clr:long_name = "clear skytemperature tendency for SW radiation" ;
>> 		tdt_sw_clr:units = "deg_K/sec" ;
>> 		tdt_sw_clr:missing_value = -999.f ;
>> 		tdt_sw_clr:_FillValue = -999.f ;
>> 		tdt_sw_clr:cell_methods = "time: mean" ;
>> 		tdt_sw_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netlw_lin_trop(time, lat, lon) ;
>> 		netlw_lin_trop:long_name = "net LW flux at linear tropopause" ;
>> 		netlw_lin_trop:units = "watts/m2" ;
>> 		netlw_lin_trop:missing_value = -999.f ;
>> 		netlw_lin_trop:_FillValue = -999.f ;
>> 		netlw_lin_trop:cell_methods = "time: mean" ;
>> 		netlw_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netlw_lin_trop_clr(time, lat, lon) ;
>> 		netlw_lin_trop_clr:long_name = "clear skynet LW flux at linear tropopause" ;
>> 		netlw_lin_trop_clr:units = "watts/m2" ;
>> 		netlw_lin_trop_clr:missing_value = -999.f ;
>> 		netlw_lin_trop_clr:_FillValue = -999.f ;
>> 		netlw_lin_trop_clr:cell_methods = "time: mean" ;
>> 		netlw_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netlw_200hPa(time, lat, lon) ;
>> 		netlw_200hPa:long_name = "net LW flux at 200 hPa" ;
>> 		netlw_200hPa:units = "watts/m2" ;
>> 		netlw_200hPa:missing_value = -999.f ;
>> 		netlw_200hPa:_FillValue = -999.f ;
>> 		netlw_200hPa:cell_methods = "time: mean" ;
>> 		netlw_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float netlw_200hPa_clr(time, lat, lon) ;
>> 		netlw_200hPa_clr:long_name = "clear skynet LW flux at 200 hPa" ;
>> 		netlw_200hPa_clr:units = "watts/m2" ;
>> 		netlw_200hPa_clr:missing_value = -999.f ;
>> 		netlw_200hPa_clr:_FillValue = -999.f ;
>> 		netlw_200hPa_clr:cell_methods = "time: mean" ;
>> 		netlw_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_lin_trop(time, lat, lon) ;
>> 		swdn_lin_trop:long_name = "SW flux down at linear tropopause" ;
>> 		swdn_lin_trop:units = "watts/m2" ;
>> 		swdn_lin_trop:missing_value = -999.f ;
>> 		swdn_lin_trop:_FillValue = -999.f ;
>> 		swdn_lin_trop:cell_methods = "time: mean" ;
>> 		swdn_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_lin_trop_clr(time, lat, lon) ;
>> 		swdn_lin_trop_clr:long_name = "clear skySW flux down at linear tropopause" ;
>> 		swdn_lin_trop_clr:units = "watts/m2" ;
>> 		swdn_lin_trop_clr:missing_value = -999.f ;
>> 		swdn_lin_trop_clr:_FillValue = -999.f ;
>> 		swdn_lin_trop_clr:cell_methods = "time: mean" ;
>> 		swdn_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_200hPa(time, lat, lon) ;
>> 		swdn_200hPa:long_name = "SW flux down at 200 hPa" ;
>> 		swdn_200hPa:units = "watts/m2" ;
>> 		swdn_200hPa:missing_value = -999.f ;
>> 		swdn_200hPa:_FillValue = -999.f ;
>> 		swdn_200hPa:cell_methods = "time: mean" ;
>> 		swdn_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_200hPa_clr(time, lat, lon) ;
>> 		swdn_200hPa_clr:long_name = "clear skySW flux down at 200 hPa" ;
>> 		swdn_200hPa_clr:units = "watts/m2" ;
>> 		swdn_200hPa_clr:missing_value = -999.f ;
>> 		swdn_200hPa_clr:_FillValue = -999.f ;
>> 		swdn_200hPa_clr:cell_methods = "time: mean" ;
>> 		swdn_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_lin_trop(time, lat, lon) ;
>> 		swup_lin_trop:long_name = "SW flux up at linear tropopause" ;
>> 		swup_lin_trop:units = "watts/m2" ;
>> 		swup_lin_trop:missing_value = -999.f ;
>> 		swup_lin_trop:_FillValue = -999.f ;
>> 		swup_lin_trop:cell_methods = "time: mean" ;
>> 		swup_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_lin_trop_clr(time, lat, lon) ;
>> 		swup_lin_trop_clr:long_name = "clear skySW flux up at linear tropopause" ;
>> 		swup_lin_trop_clr:units = "watts/m2" ;
>> 		swup_lin_trop_clr:missing_value = -999.f ;
>> 		swup_lin_trop_clr:_FillValue = -999.f ;
>> 		swup_lin_trop_clr:cell_methods = "time: mean" ;
>> 		swup_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_200hPa(time, lat, lon) ;
>> 		swup_200hPa:long_name = "SW flux up at 200 hPa" ;
>> 		swup_200hPa:units = "watts/m2" ;
>> 		swup_200hPa:missing_value = -999.f ;
>> 		swup_200hPa:_FillValue = -999.f ;
>> 		swup_200hPa:cell_methods = "time: mean" ;
>> 		swup_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swup_200hPa_clr(time, lat, lon) ;
>> 		swup_200hPa_clr:long_name = "clear skySW flux up at 200 hPa" ;
>> 		swup_200hPa_clr:units = "watts/m2" ;
>> 		swup_200hPa_clr:missing_value = -999.f ;
>> 		swup_200hPa_clr:_FillValue = -999.f ;
>> 		swup_200hPa_clr:cell_methods = "time: mean" ;
>> 		swup_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float mc(time, phalf, lat, lon) ;
>> 		mc:long_name = "Cumulus Mass Flux from RAS" ;
>> 		mc:units = "kg/m2/s" ;
>> 		mc:missing_value = -999.f ;
>> 		mc:_FillValue = -999.f ;
>> 		mc:cell_methods = "time: mean" ;
>> 		mc:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qdt_vdif(time, pfull, lat, lon) ;
>> 		qdt_vdif:long_name = "Spec humidity tendency from vert diff" ;
>> 		qdt_vdif:units = "kg/kg/s" ;
>> 		qdt_vdif:missing_value = -999.f ;
>> 		qdt_vdif:_FillValue = -999.f ;
>> 		qdt_vdif:cell_methods = "time: mean" ;
>> 		qdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tdt_vdif(time, pfull, lat, lon) ;
>> 		tdt_vdif:long_name = "Temperature tendency from vert diff" ;
>> 		tdt_vdif:units = "deg_K/s" ;
>> 		tdt_vdif:missing_value = -999.f ;
>> 		tdt_vdif:_FillValue = -999.f ;
>> 		tdt_vdif:cell_methods = "time: mean" ;
>> 		tdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float udt_vdif(time, pfull, lat, lon) ;
>> 		udt_vdif:long_name = "Zonal wind tendency from vert diff" ;
>> 		udt_vdif:units = "m/s2" ;
>> 		udt_vdif:missing_value = -999.f ;
>> 		udt_vdif:_FillValue = -999.f ;
>> 		udt_vdif:cell_methods = "time: mean" ;
>> 		udt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float vdt_vdif(time, pfull, lat, lon) ;
>> 		vdt_vdif:long_name = "Meridional wind tendency from vert diff" ;
>> 		vdt_vdif:units = "m/s2" ;
>> 		vdt_vdif:missing_value = -999.f ;
>> 		vdt_vdif:_FillValue = -999.f ;
>> 		vdt_vdif:cell_methods = "time: mean" ;
>> 		vdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float co2(time, pfull, lat, lon) ;
>> 		co2:long_name = "carbon dioxide" ;
>> 		co2:units = "kg/kg" ;
>> 		co2:missing_value = -1.e+10f ;
>> 		co2:_FillValue = -1.e+10f ;
>> 		co2:cell_methods = "time: mean" ;
>> 		co2:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float co2_dvmr(time, pfull, lat, lon) ;
>> 		co2_dvmr:long_name = "carbon dioxide (dry vmr)" ;
>> 		co2_dvmr:units = "mol/mol" ;
>> 		co2_dvmr:missing_value = -1.e+10f ;
>> 		co2_dvmr:_FillValue = -1.e+10f ;
>> 		co2_dvmr:cell_methods = "time: mean" ;
>> 		co2_dvmr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float slp(time, lat, lon) ;
>> 		slp:long_name = "sea level pressure" ;
>> 		slp:units = "pa" ;
>> 		slp:missing_value = 1.e+20f ;
>> 		slp:_FillValue = 1.e+20f ;
>> 		slp:cell_methods = "time: mean" ;
>> 		slp:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float wind_ref(time, lat, lon) ;
>> 		wind_ref:long_name = "absolute value of wind at 10 m" ;
>> 		wind_ref:units = "m/s" ;
>> 		wind_ref:valid_range = -400.f, 400.f ;
>> 		wind_ref:missing_value = 1.e+20f ;
>> 		wind_ref:_FillValue = 1.e+20f ;
>> 		wind_ref:cell_methods = "time: mean" ;
>> 		wind_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh_ref_cmip(time, lat, lon) ;
>> 		rh_ref_cmip:long_name = "relative humidity at 2 m" ;
>> 		rh_ref_cmip:units = "percent" ;
>> 		rh_ref_cmip:missing_value = 1.e+20f ;
>> 		rh_ref_cmip:_FillValue = 1.e+20f ;
>> 		rh_ref_cmip:cell_methods = "time: mean" ;
>> 		rh_ref_cmip:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float q_ref(time, lat, lon) ;
>> 		q_ref:long_name = "specific humidity at 2 m" ;
>> 		q_ref:units = "kg/kg" ;
>> 		q_ref:missing_value = -1.f ;
>> 		q_ref:_FillValue = -1.f ;
>> 		q_ref:cell_methods = "time: mean" ;
>> 		q_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float snow_tot(time, lat, lon) ;
>> 		snow_tot:long_name = "Frozen precip rate from all sources" ;
>> 		snow_tot:units = "kg(h2o)/m2/s" ;
>> 		snow_tot:missing_value = 1.e+20f ;
>> 		snow_tot:_FillValue = 1.e+20f ;
>> 		snow_tot:cell_methods = "time: mean" ;
>> 		snow_tot:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 		snow_tot:interp_method = "conserve_order1" ;
>> 	float cld_amt_2d(time, lat, lon) ;
>> 		cld_amt_2d:long_name = "total cloud amount" ;
>> 		cld_amt_2d:units = "percent" ;
>> 		cld_amt_2d:missing_value = 1.e+20f ;
>> 		cld_amt_2d:_FillValue = 1.e+20f ;
>> 		cld_amt_2d:cell_methods = "time: mean" ;
>> 		cld_amt_2d:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float WP_all_clouds(time, lat, lon) ;
>> 		WP_all_clouds:long_name = "Total  water path -- all clouds" ;
>> 		WP_all_clouds:units = "kg/m2" ;
>> 		WP_all_clouds:missing_value = 1.e+20f ;
>> 		WP_all_clouds:_FillValue = 1.e+20f ;
>> 		WP_all_clouds:cell_methods = "time: mean" ;
>> 		WP_all_clouds:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float IWP_all_clouds(time, lat, lon) ;
>> 		IWP_all_clouds:long_name = "Ice water path -- all clouds" ;
>> 		IWP_all_clouds:units = "kg/m2" ;
>> 		IWP_all_clouds:missing_value = 1.e+20f ;
>> 		IWP_all_clouds:_FillValue = 1.e+20f ;
>> 		IWP_all_clouds:cell_methods = "time: mean" ;
>> 		IWP_all_clouds:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_cld_base(time, lat, lon) ;
>> 		conv_cld_base:long_name = "pressure at convective cloud base" ;
>> 		conv_cld_base:units = "Pa" ;
>> 		conv_cld_base:missing_value = -999.f ;
>> 		conv_cld_base:_FillValue = -999.f ;
>> 		conv_cld_base:cell_methods = "time: mean" ;
>> 		conv_cld_base:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_cld_top(time, lat, lon) ;
>> 		conv_cld_top:long_name = "pressure at convective cloud top" ;
>> 		conv_cld_top:units = "Pa" ;
>> 		conv_cld_top:missing_value = -999.f ;
>> 		conv_cld_top:_FillValue = -999.f ;
>> 		conv_cld_top:cell_methods = "time: mean" ;
>> 		conv_cld_top:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_freq(time, lat, lon) ;
>> 		conv_freq:long_name = "frequency of convection" ;
>> 		conv_freq:units = "number" ;
>> 		conv_freq:missing_value = -999.f ;
>> 		conv_freq:_FillValue = -999.f ;
>> 		conv_freq:cell_methods = "time: mean" ;
>> 		conv_freq:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tot_cloud_area(time, pfull, lat, lon) ;
>> 		tot_cloud_area:long_name = "Cloud area -- all clouds" ;
>> 		tot_cloud_area:units = "percent" ;
>> 		tot_cloud_area:missing_value = -999.f ;
>> 		tot_cloud_area:_FillValue = -999.f ;
>> 		tot_cloud_area:cell_methods = "time: mean" ;
>> 		tot_cloud_area:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tot_liq_amt(time, pfull, lat, lon) ;
>> 		tot_liq_amt:long_name = "Liquid amount -- all clouds" ;
>> 		tot_liq_amt:units = "kg/kg" ;
>> 		tot_liq_amt:missing_value = -999.f ;
>> 		tot_liq_amt:_FillValue = -999.f ;
>> 		tot_liq_amt:cell_methods = "time: mean" ;
>> 		tot_liq_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float tot_ice_amt(time, pfull, lat, lon) ;
>> 		tot_ice_amt:long_name = "Ice amount -- all clouds" ;
>> 		tot_ice_amt:units = "kg/kg" ;
>> 		tot_ice_amt:missing_value = -999.f ;
>> 		tot_ice_amt:_FillValue = -999.f ;
>> 		tot_ice_amt:cell_methods = "time: mean" ;
>> 		tot_ice_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh_cmip(time, pfull, lat, lon) ;
>> 		rh_cmip:long_name = "relative humidity" ;
>> 		rh_cmip:units = "percent" ;
>> 		rh_cmip:missing_value = -999.f ;
>> 		rh_cmip:_FillValue = -999.f ;
>> 		rh_cmip:cell_methods = "time: mean" ;
>> 		rh_cmip:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float qo3v(time, pfull, lat, lon) ;
>> 		qo3v:long_name = "ozone mole fraction" ;
>> 		qo3v:units = "1.e-9" ;
>> 		qo3v:missing_value = -999.f ;
>> 		qo3v:_FillValue = -999.f ;
>> 		qo3v:cell_methods = "time: mean" ;
>> 		qo3v:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float q_star(time, lat, lon) ;
>> 		q_star:long_name = "moisture scale" ;
>> 		q_star:units = "kg water/kg air" ;
>> 		q_star:missing_value = 1.e+20f ;
>> 		q_star:_FillValue = 1.e+20f ;
>> 		q_star:cell_methods = "time: mean" ;
>> 		q_star:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh_min(time, pfull, lat, lon) ;
>> 		rh_min:long_name = "relative humidity" ;
>> 		rh_min:units = "percent" ;
>> 		rh_min:missing_value = -999.f ;
>> 		rh_min:_FillValue = -999.f ;
>> 		rh_min:cell_methods = "time: min" ;
>> 		rh_min:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float rh_max(time, pfull, lat, lon) ;
>> 		rh_max:long_name = "relative humidity" ;
>> 		rh_max:units = "percent" ;
>> 		rh_max:missing_value = -999.f ;
>> 		rh_max:_FillValue = -999.f ;
>> 		rh_max:cell_methods = "time: max" ;
>> 		rh_max:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float droplets(time, pfull, lat, lon) ;
>> 		droplets:long_name = "Droplet number concentration" ;
>> 		droplets:units = "/cm3" ;
>> 		droplets:missing_value = -999.f ;
>> 		droplets:_FillValue = -999.f ;
>> 		droplets:cell_methods = "time: mean" ;
>> 		droplets:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float enth_ls_col(time, lat, lon) ;
>> 		enth_ls_col:long_name = "Column enthalpy tendency from strat cloud" ;
>> 		enth_ls_col:units = "W/m2" ;
>> 		enth_ls_col:missing_value = 1.e+20f ;
>> 		enth_ls_col:_FillValue = 1.e+20f ;
>> 		enth_ls_col:cell_methods = "time: mean" ;
>> 		enth_ls_col:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float wat_ls_col(time, lat, lon) ;
>> 		wat_ls_col:long_name = "Column total water tendency from strat cloud" ;
>> 		wat_ls_col:units = "kg/m2/s" ;
>> 		wat_ls_col:missing_value = 1.e+20f ;
>> 		wat_ls_col:_FillValue = 1.e+20f ;
>> 		wat_ls_col:cell_methods = "time: mean" ;
>> 		wat_ls_col:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float enth_conv_col(time, lat, lon) ;
>> 		enth_conv_col:long_name = "Column enthalpy tendency from convection" ;
>> 		enth_conv_col:units = "W/m2" ;
>> 		enth_conv_col:missing_value = 1.e+20f ;
>> 		enth_conv_col:_FillValue = 1.e+20f ;
>> 		enth_conv_col:cell_methods = "time: mean" ;
>> 		enth_conv_col:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float wat_conv_col(time, lat, lon) ;
>> 		wat_conv_col:long_name = "Column total water tendency from convection" ;
>> 		wat_conv_col:units = "kg(h2o)/m2/s" ;
>> 		wat_conv_col:missing_value = 1.e+20f ;
>> 		wat_conv_col:_FillValue = 1.e+20f ;
>> 		wat_conv_col:cell_methods = "time: mean" ;
>> 		wat_conv_col:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_vis_dir(time, lat, lon) ;
>> 		swdn_vis_dir:long_name = "downward direct visible sfc sw flux" ;
>> 		swdn_vis_dir:units = "watts/m2" ;
>> 		swdn_vis_dir:missing_value = -999.f ;
>> 		swdn_vis_dir:_FillValue = -999.f ;
>> 		swdn_vis_dir:cell_methods = "time: mean" ;
>> 		swdn_vis_dir:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_vis_dif(time, lat, lon) ;
>> 		swdn_vis_dif:long_name = "downward diffuse visible sfc sw flux" ;
>> 		swdn_vis_dif:units = "watts/m2" ;
>> 		swdn_vis_dif:missing_value = -999.f ;
>> 		swdn_vis_dif:_FillValue = -999.f ;
>> 		swdn_vis_dif:cell_methods = "time: mean" ;
>> 		swdn_vis_dif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_vis_clr(time, lat, lon) ;
>> 		swdn_vis_clr:long_name = "downward visible sfc sw flux clear sky" ;
>> 		swdn_vis_clr:units = "watts/m2" ;
>> 		swdn_vis_clr:missing_value = -999.f ;
>> 		swdn_vis_clr:_FillValue = -999.f ;
>> 		swdn_vis_clr:cell_methods = "time: mean" ;
>> 		swdn_vis_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_tot_dir(time, lat, lon) ;
>> 		swdn_tot_dir:long_name = "downward direct total sfc sw flux" ;
>> 		swdn_tot_dir:units = "watts/m2" ;
>> 		swdn_tot_dir:missing_value = -999.f ;
>> 		swdn_tot_dir:_FillValue = -999.f ;
>> 		swdn_tot_dir:cell_methods = "time: mean" ;
>> 		swdn_tot_dir:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float swdn_tot_dif(time, lat, lon) ;
>> 		swdn_tot_dif:long_name = "downward diffuse total sfc sw flux" ;
>> 		swdn_tot_dif:units = "watts/m2" ;
>> 		swdn_tot_dif:missing_value = -999.f ;
>> 		swdn_tot_dif:_FillValue = -999.f ;
>> 		swdn_tot_dif:cell_methods = "time: mean" ;
>> 		swdn_tot_dif:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float flux_sw_vis(time, lat, lon) ;
>> 		flux_sw_vis:long_name = "net visible sfc sw flux" ;
>> 		flux_sw_vis:units = "watts/m2" ;
>> 		flux_sw_vis:missing_value = -999.f ;
>> 		flux_sw_vis:_FillValue = -999.f ;
>> 		flux_sw_vis:cell_methods = "time: mean" ;
>> 		flux_sw_vis:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float sw_dn_t_dir_clr(time, lat, lon) ;
>> 		sw_dn_t_dir_clr:long_name = "downward clearsky direct total sfc sw flux" ;
>> 		sw_dn_t_dir_clr:units = "watts/m2" ;
>> 		sw_dn_t_dir_clr:missing_value = -999.f ;
>> 		sw_dn_t_dir_clr:_FillValue = -999.f ;
>> 		sw_dn_t_dir_clr:cell_methods = "time: mean" ;
>> 		sw_dn_t_dir_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float sw_dn_t_dif_clr(time, lat, lon) ;
>> 		sw_dn_t_dif_clr:long_name = "downward clearsky diffuse total sfc sw flux" ;
>> 		sw_dn_t_dif_clr:units = "watts/m2" ;
>> 		sw_dn_t_dif_clr:missing_value = -999.f ;
>> 		sw_dn_t_dif_clr:_FillValue = -999.f ;
>> 		sw_dn_t_dif_clr:cell_methods = "time: mean" ;
>> 		sw_dn_t_dif_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float LWP2(time, lat, lon) ;
>> 		LWP2:long_name = "In-cloud liquid water path of stratiform clouds" ;
>> 		LWP2:units = "kg/m2" ;
>> 		LWP2:missing_value = -999.f ;
>> 		LWP2:_FillValue = -999.f ;
>> 		LWP2:cell_methods = "time: mean" ;
>> 		LWP2:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float z_pbl(time, lat, lon) ;
>> 		z_pbl:long_name = "depth of planetary boundary layer" ;
>> 		z_pbl:units = "m" ;
>> 		z_pbl:missing_value = 1.e+20f ;
>> 		z_pbl:_FillValue = 1.e+20f ;
>> 		z_pbl:cell_methods = "time: mean" ;
>> 		z_pbl:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_cloud_area(time, pfull, lat, lon) ;
>> 		conv_cloud_area:long_name = "Convective cloud area" ;
>> 		conv_cloud_area:units = "percent" ;
>> 		conv_cloud_area:missing_value = -999.f ;
>> 		conv_cloud_area:_FillValue = -999.f ;
>> 		conv_cloud_area:cell_methods = "time: mean" ;
>> 		conv_cloud_area:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_liq_amt(time, pfull, lat, lon) ;
>> 		conv_liq_amt:long_name = "Convective cloud liquid amount" ;
>> 		conv_liq_amt:units = "kg/kg" ;
>> 		conv_liq_amt:missing_value = -999.f ;
>> 		conv_liq_amt:_FillValue = -999.f ;
>> 		conv_liq_amt:cell_methods = "time: mean" ;
>> 		conv_liq_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float conv_ice_amt(time, pfull, lat, lon) ;
>> 		conv_ice_amt:long_name = "Convective cloud ice amount" ;
>> 		conv_ice_amt:units = "kg/kg" ;
>> 		conv_ice_amt:missing_value = -999.f ;
>> 		conv_ice_amt:_FillValue = -999.f ;
>> 		conv_ice_amt:cell_methods = "time: mean" ;
>> 		conv_ice_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lsc_cloud_area(time, pfull, lat, lon) ;
>> 		lsc_cloud_area:long_name = "Large-scale cloud area" ;
>> 		lsc_cloud_area:units = "percent" ;
>> 		lsc_cloud_area:missing_value = -999.f ;
>> 		lsc_cloud_area:_FillValue = -999.f ;
>> 		lsc_cloud_area:cell_methods = "time: mean" ;
>> 		lsc_cloud_area:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lsc_liq_amt(time, pfull, lat, lon) ;
>> 		lsc_liq_amt:long_name = "Large-scale cloud liquid amount" ;
>> 		lsc_liq_amt:units = "kg/kg" ;
>> 		lsc_liq_amt:missing_value = -999.f ;
>> 		lsc_liq_amt:_FillValue = -999.f ;
>> 		lsc_liq_amt:cell_methods = "time: mean" ;
>> 		lsc_liq_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	float lsc_ice_amt(time, pfull, lat, lon) ;
>> 		lsc_ice_amt:long_name = "Large-scale cloud ice amount" ;
>> 		lsc_ice_amt:units = "kg/kg" ;
>> 		lsc_ice_amt:missing_value = -999.f ;
>> 		lsc_ice_amt:_FillValue = -999.f ;
>> 		lsc_ice_amt:cell_methods = "time: mean" ;
>> 		lsc_ice_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
>> 	double average_T1(time) ;
>> 		average_T1:long_name = "Start time for average period" ;
>> 		average_T1:units = "days since 0001-01-01 00:00:00" ;
>> 		average_T1:missing_value = 1.e+20 ;
>> 		average_T1:_FillValue = 1.e+20 ;
>> 	double average_T2(time) ;
>> 		average_T2:long_name = "End time for average period" ;
>> 		average_T2:units = "days since 0001-01-01 00:00:00" ;
>> 		average_T2:missing_value = 1.e+20 ;
>> 		average_T2:_FillValue = 1.e+20 ;
>> 	double average_DT(time) ;
>> 		average_DT:long_name = "Length of average period" ;
>> 		average_DT:units = "days" ;
>> 		average_DT:missing_value = 1.e+20 ;
>> 		average_DT:_FillValue = 1.e+20 ;
>> 	double time_bounds(time, nv) ;
>> 		time_bounds:long_name = "time axis boundaries" ;
>> 		time_bounds:units = "days" ;
>> 		time_bounds:missing_value = 1.e+20 ;
>> 		time_bounds:_FillValue = 1.e+20 ;
>> 
>> // global attributes:
>> 		:filename = "atmos_month.nc.0000" ;
>> 		:NumFilesInSet = 30 ;
>> 		:title = "ESM2M_pi-control_C2" ;
>> 		:grid_type = "regular" ;
>> 		:grid_tile = "N/A" ;
>> data:
>> 
>>  lon = _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ ;
>> 
>>  lonb = _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _ ;
>> 
>>  lat = _, _, _ ;
>> 
>>  latb = _, _, _, _ ;
>> 
>>  nv = _, _ ;
>> 
>>  pfull = _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ ;
>> 
>>  phalf = _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 
>>     _, _ ;
>> }
>> 
>> Thanks,
>> 
>> David
>> 
>> 
>> On Thu, Jun 19, 2014 at 1:41 PM, Jennifer Adams <jma at cola.iges.org> wrote:
>> David, 
>> Can you post the output from ncdump -c on your netcdf file? 
>> --Jennifer
>>  
>> On Jun 19, 2014, at 1:14 PM, David Stanfel wrote:
>> 
>>> I made the changes that were recommended with the following results. My X11 window does pop up when I run grads but it stays black. This is what happens when I try to display a variable:
>>> 
>>> ga-> open cont.ctl
>>> Scanning description file:  cont.ctl
>>> Data file atmos_month.nc.0000 is open as file 1
>>> LON set to 0 360 
>>> LAT set to -88.29 88.29 
>>> LEV set to 1000 1000 
>>> Time values set: 0:1:1:0 0:1:1:0 
>>> E set to 1 1 
>>> ga-> q file
>>> File 1 : 6 Months Sample Model Output
>>>   Descriptor: cont.ctl
>>>   Binary: atmos_month.nc.0000
>>>   Type = Gridded
>>>   Xsize = 96  Ysize = 80  Zsize = 18  Tsize = 804  Esize = 1
>>>   Number of Variables = 7
>>>      u  18  t,z,y,x  u
>>>      v  18  t,z,y,x  v
>>>      w  18  t,z,y,x  v
>>>      t  18  t,z,y,x  v
>>>      sh  18  t,z,y,x  v
>>>      rh  18  t,z,y,x  v
>>>      z  18  t,z,y,x  v
>>> ga-> d u
>>> Error: Variable u not in netcdf file
>>> Data Request Error:  Error for variable 'u'
>>>   Error ocurred at column 1
>>> DISPLAY error:  Invalid expression 
>>>   Expression = u
>>> ga-> d z
>>> Error: Variable z not in netcdf file
>>> Data Request Error:  Error for variable 'z'
>>>   Error ocurred at column 1
>>> DISPLAY error:  Invalid expression 
>>>   Expression = z
>>> 
>>> It still does not recognize that that variable is in the netcdf file for some reason.
>>> 
>>> Thanks,
>>> 
>>> David
>>> 
>>> 
>>> On Thu, Jun 19, 2014 at 10:22 AM, Hosmay Lopez <hlopez at rsmas.miami.edu> wrote:
>>> Try this CTL file:
>>> 
>>> The only difference is how you defined the variables' arguments.
>>> 
>>> 
>>> DSET   ^atmos_month.nc.0000
>>> UNDEF  1.e-10
>>> DTYPE netcdf
>>> TITLE 6 Months Sample Model Output
>>> *
>>> XDEF 96 LINEAR  0.0   3.75
>>> *
>>> YDEF 80 GAUSR30 1
>>> *
>>> ZDEF 18 LEVELS  1000 950 900 850 800 750 700 650 600 550 500 450 400 350 300
>>> 250 200 150 
>>> *
>>> TDEF 804  LINEAR JAN0 1MO
>>> *
>>> VARS 7
>>> u   18   t,z,y,x  u
>>> v   18   t,z,y,x  v
>>> w   18   t,z,y,x  v
>>> t   18   t,z,y,x  v
>>> sh   18   t,z,y,x  v
>>> rh   18   t,z,y,x  v
>>> z   18   t,z,y,x  v
>>> ENDVARS
>>> 
>>> Good luck!
>>> 
>>> Hosmay Lopez
>>> UM/CIMAS/RSMAS NOAA/AOML/PHOD
>>> 4301 Rickenbacker Causeway,
>>> Miami, FL 33149, USA
>>> Phone: (305) 361-4329
>>> 
>>> From: gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on behalf of David Stanfel [dstanfel at ualberta.ca]
>>> Sent: Thursday, June 19, 2014 12:07 AM
>>> To: GrADS Users Forum
>>> Subject: Re: [gradsusr] Displaying a .nc file
>>> 
>>> It did prompt a list of variables including u, v, w, and z. It still doesn't want to display them.
>>> 
>>> ga-> q file
>>> File 1 : 6 Months Sample Model Output
>>>   Descriptor: cont.ctl
>>>   Binary: atmos_month.nc.0000
>>>   Type = Gridded
>>>   Xsize = 96  Ysize = 80  Zsize = 18  Tsize = 804  Esize = 1
>>>   Number of Variables = 7
>>>      u  18  0  u
>>>      v  18  0  v
>>>      w  18  0  v
>>>      t  18  0  v
>>>      sh  18  0  v
>>>      rh  18  0  v
>>>      z  18  0  v
>>> ga-> d v
>>> Data Request Error:  Error for variable 'v'
>>>   Error ocurred at column 1
>>> DISPLAY error:  Invalid expression 
>>>   Expression = v
>>> ga-> d sh
>>> Error: Variable sh not in netcdf file
>>> Data Request Error:  Error for variable 'sh'
>>>   Error ocurred at column 1
>>> DISPLAY error:  Invalid expression 
>>>   Expression = sh
>>> 
>>> Thanks,
>>> 
>>> David
>>> 
>>> 
>>> On Wed, Jun 18, 2014 at 11:58 PM, James T. Potemra <jimp at hawaii.edu> wrote:
>>> If you enter "q file" at the GrADS prompt it should list the variables.
>>> 
>>> 
>>> On 6/18/14 5:52 PM, David Stanfel wrote:
>>>> How do I know what variable name will work? I've tried u, v, w, and z and still only get:
>>>> 
>>>> ga-> d v
>>>> Error: Variable v not in netcdf file
>>>> Data Request Error:  Error for variable 'v'
>>>>   Error ocurred at column 1
>>>> DISPLAY error:  Invalid expression 
>>>>   Expression = v
>>>> 
>>>> Thanks,
>>>> 
>>>> David
>>>> 
>>>> 
>>>> On Wed, Jun 18, 2014 at 11:13 PM, Hosmay Lopez <hlopez at rsmas.miami.edu> wrote:
>>>> David,
>>>> 
>>>> You should let GrADS know that the file is a netCDF. You do that by adding the following text line in your control file:
>>>> 
>>>> DTYPE netcdf
>>>> 
>>>> Insert such after the UNDEF line.
>>>> 
>>>> Good luck!
>>>> 
>>>> Hosmay Lopez
>>>> UM/CIMAS/RSMAS NOAA/AOML/PHOD
>>>> 4301 Rickenbacker Causeway,
>>>> Miami, FL 33149, USA
>>>> Phone: (305) 361-4329
>>>> 
>>>> From: gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on behalf of David Stanfel [dstanfel at ualberta.ca]
>>>> Sent: Wednesday, June 18, 2014 10:58 PM
>>>> To: GrADS Users Forum
>>>> Subject: [gradsusr] Displaying a .nc file
>>>> 
>>>> So I figured out how to use a descriptor file but I am still having troubles opening the file. My descriptor file is as follows: 
>>>> 
>>>> DSET   ^atmos_month.nc.0000
>>>> UNDEF  1.e-10
>>>> TITLE 6 Months Sample Model Output
>>>> *
>>>> XDEF 96 LINEAR  0.0   3.75
>>>> *
>>>> YDEF 80 GAUSR30 1
>>>> *
>>>> ZDEF 18 LEVELS  1000 950 900 850 800 750 700 650 600 550 500 450 400 350 300
>>>> 250 200 150 
>>>> *
>>>> TDEF 804  LINEAR JAN0 1MO
>>>> *
>>>> VARS 7
>>>> u   18   0  u
>>>> v   18   0  v
>>>> w   18   0  v
>>>> t   18   0  v
>>>> sh   18   0  v
>>>> rh   18   0  v
>>>> z   18   0  v
>>>> ENDVARS
>>>> 
>>>> It was able to open it without issue:
>>>> 
>>>> ga-> open cont.ctl                           
>>>> Scanning description file:  cont.ctl
>>>> Data file atmos_month.nc.0000 is open as file 1
>>>> LON set to 0 360 
>>>> LAT set to -88.29 88.29 
>>>> LEV set to 1000 1000 
>>>> Time values set: 0:1:1:0 0:1:1:0 
>>>> E set to 1 1 
>>>> 
>>>> However, I am having trouble displaying the data. I tried to use the display command (d) with this result:
>>>> 
>>>> ga-> d atmos_month.nc.0000
>>>> Syntax error: Bad file number for variable atmos_month 
>>>>   Error ocurred at column 1
>>>> DISPLAY error:  Invalid expression 
>>>>   Expression = atmos_month.nc.0000
>>>> 
>>>> Is my syntax off?
>>>> 
>>>> Thanks,
>>>> 
>>>> David
>>>> 
>>>> _______________________________________________
>>>> gradsusr mailing list
>>>> gradsusr at gradsusr.org
>>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>>> 
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> gradsusr mailing list
>>>> gradsusr at gradsusr.org
>>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>> 
>>> 
>>> _______________________________________________
>>> gradsusr mailing list
>>> gradsusr at gradsusr.org
>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> gradsusr mailing list
>>> gradsusr at gradsusr.org
>>> http://gradsusr.org/mailman/listinfo/gradsusr
>>> 
>>> 
>>> _______________________________________________
>>> gradsusr mailing list
>>> gradsusr at gradsusr.org
>>> http://gradsusr.org/mailman/listinfo/gradsusr
>> 
>> --
>> Jennifer M. Adams
>> Center for Ocean-Land-Atmosphere Studies (COLA)
>> 111 Research Hall, Mail Stop 2B3
>> George Mason University
>> 4400 University Drive
>> Fairfax, VA 22030 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>> 
>> 
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
> 
> --
> Jennifer M. Adams
> Center for Ocean-Land-Atmosphere Studies (COLA)
> 111 Research Hall, Mail Stop 2B3
> George Mason University
> 4400 University Drive
> Fairfax, VA 22030 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
> 
> 
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr

--
Jennifer M. Adams
Center for Ocean-Land-Atmosphere Studies (COLA)
111 Research Hall, Mail Stop 2B3
George Mason University
4400 University Drive
Fairfax, VA 22030 





-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20140620/1ffb1319/attachment-0001.html 


More information about the gradsusr mailing list