[gradsusr] Displaying a .nc file

David Stanfel dstanfel at ualberta.ca
Fri Jun 20 17:11:12 EDT 2014


I got the file as an output from running the Molecular Ocean Model (ESM2M
type). There are 30 files that I am wanting to analyze for surface
conditions such as temperature, wind and precipitation. This is what I got
after the set gout print command:

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-> set gxout print

ga-> d zsurf

Printing Grid -- 435 Values -- Undef = -9.99e+08

2.94578e+34 2.94578e+34 2.94578e+34 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

2.94578e+34 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0

Thanks,

David


On Fri, Jun 20, 2014 at 4:44 PM, Jennifer Adams <jma at cola.iges.org> wrote:

> Well, I am sorry to say I have no suggestion for the problems with the
> variables that have a 'time' dimension. Where did you get this data file?
>
> As for zsurf -- notice that you are able to get a display a variable that
> doesn't have a time axis -- try using 'set gxout print' and see what the
> data values are. Maybe that will settle the undef question. But even if you
> do figure out the proper undef, it's still very weird that the default
> contour intervals change after a repeat display of the same thing. I've
> never seen that happen before, and I want to blame your funky data file.
> --Jennifer
>
>
> On Jun 20, 2014, at 4:17 PM, David Stanfel wrote:
>
> Yay progress!
>
> I changed what you suggested for the temp but with similar results.
> Apparently the time dimension wasn't the issue:
>
> dstanfel:bin ninjawarrior343$ cat test.ctl
> DSET   ^atmos_month.nc.0000
> UNDEF  -9.99e8 missing_value
> 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  z,y,x  temperature (K)
> zsurf  0  y,z   surface height (m)
> ENDVARS
> 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
> 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
>
> I set the GADDIR environment which did get rid of the stroke error. With
> the zsurf just outputting now:
>
> ga-> d zsurf
>
> Contouring: 0 to 2.7e+34 interval 3e+33
>
> With the output graphic which I have attached.
>
> Changing the UNDEF to 1e33 didn't seem to do much either. I tried
> displaying it 4 times and it seems to go back and forth with a different
> contouring interval:
>
> ga-> d zsurf
> Contouring: 0 to 2.7e+34 interval 3e+33
> ga-> d zsurf
> Contouring: 0 to 2.2e+77 interval 2e+76
> ga-> d zsurf
> Contouring: 0 to 2.7e+34 interval 3e+33
> ga-> d zsurf
>
> Contouring: 0 to 2.2e+77 interval 2e+76
>
> And same with the temperature, getting rid of the time dimension in the
> slp variable did not change the error:
>
> ga-> d slp
> gancgrid error: nc_get_vara_double failed; NetCDF: Index exceeds dimension
> bound
> Data Request Error:  Error for variable 'slp'
>   Error ocurred at column 1
> DISPLAY error:  Invalid expression
>
>   Expression = slp
>
> Thanks,
>
> David
>
>
> On Fri, Jun 20, 2014 at 3:21 PM, Jennifer Adams <jma at cola.iges.org> wrote:
>
>> 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 listgradsusr at gradsusr.orghttp://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
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>>
> <Screen Shot 2014-06-20 at 4.09.17 PM.png>
> _______________________________________________
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20140620/25c91a47/attachment-0001.html 


More information about the gradsusr mailing list