[gradsusr] Displaying a .nc file

David Stanfel dstanfel at ualberta.ca
Fri Jun 20 16:17:22 EDT 2014


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20140620/56eac5db/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2014-06-20 at 4.09.17 PM.png
Type: image/png
Size: 43145 bytes
Desc: not available
Url : http://gradsusr.org/pipermail/gradsusr/attachments/20140620/56eac5db/attachment-0001.png 


More information about the gradsusr mailing list