[gradsusr] reading NCAR .nc files

Alan Robock robock at envsci.rutgers.edu
Thu Oct 20 13:27:07 EDT 2011


Dear All,

I have run an NCAR GCM, and want to read the output with GrADS.  When I 
tried, I got:

Config: v2.0.a9 little-endian readline printim grib2 netcdf hdf4-sds 
hdf5 opendap-grids,stn geotiff shapefile
Issue 'q config' command for more detailed configuration information
Landscape mode? ('n' for portrait):
GX Package Initialization: Size = 11 8.5
ga-> sdfopen mycase.5.cam2.h1.1902-01-01-00000.nc
Scanning self-describing file:  mycase.5.cam2.h1.1902-01-01-00000.nc
SDF Error: 365 day calendars are no longer supported by sdfopen.
   To open this file with GrADS, use a descriptor file with
   a complete TDEF entry and OPTIONS 365_day_calendar.
   Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html

I can try to figure out how detailed a data descriptor file to write on 
my own, but if someone has already done this, could you send it to me?  
I want to find out if I need only TDEF and OPTIONS, or do I need to make 
it complete with all the dimensions and variables.

Also, once I create the .ddf file, do I use sdfopen, xdfopen, or open?

Thanks.

ncdump gives me:

/ptmp/robock/archive/mycase.5/atm/hist|32> ncdump  
mycase.5.cam2.h1.1902-01-01-00000.nc
netcdf mycase.5.cam2.h1.1902-01-01-00000 { // format variant: 64bit
dimensions:
         lat = 192 ;
         lon = 288 ;
         slat = 191 ;
         slon = 288 ;
         lev = 26 ;
         ilev = 27 ;
         isccp_prs = 7 ;
         isccp_tau = 7 ;
         isccp_prstau = 49 ;
         time = UNLIMITED ; // (365 currently)
         tbnd = 2 ;
         chars = 8 ;
variables:
         double P0 ;
                 P0:long_name = "reference pressure" ;
                 P0:units = "Pa" ;
         double lat(lat) ;
                 lat:long_name = "latitude" ;
                 lat:units = "degrees_north" ;
         double lon(lon) ;
                 lon:long_name = "longitude" ;
                 lon:units = "degrees_east" ;
         double slat(slat) ;
                 slat:long_name = "staggered latitude" ;
                 slat:units = "degrees_north" ;
         double slon(slon) ;
                 slon:long_name = "staggered longitude" ;
                 slon:units = "degrees_east" ;
         double w_stag(slat) ;
                 w_stag:long_name = "staggered latitude weights" ;
         double lev(lev) ;
                 lev:long_name = "hybrid level at midpoints (1000*(A+B))" ;
                 lev:units = "level" ;
                 lev:positive = "down" ;
                 lev:standard_name = 
"atmosphere_hybrid_sigma_pressure_coordinate" ;
                 lev:formula_terms = "a: hyam b: hybm p0: P0 ps: PS" ;
         double ilev(ilev) ;
                 ilev:long_name = "hybrid level at interfaces 
(1000*(A+B))" ;
                 ilev:units = "level" ;
                 ilev:positive = "down" ;
                 ilev:standard_name = 
"atmosphere_hybrid_sigma_pressure_coordinate" ;
                 ilev:formula_terms = "a: hyai b: hybi p0: P0 ps: PS" ;
         double isccp_prs(isccp_prs) ;
                 isccp_prs:long_name = "Mean ISCCP pressure" ;
                 isccp_prs:units = "mb" ;
                 isccp_prs:isccp_prs_bnds = 0., 180., 310., 440., 560., 
680., 800., 1000. ;
         double isccp_tau(isccp_tau) ;
                 isccp_tau:long_name = "Mean ISCCP optical depth" ;
                 isccp_tau:units = "unitless" ;
                 isccp_tau:isccp_tau_bnds = 0., 0.3, 1.3, 3.6, 9.4, 23., 
60., 379. ;
         double isccp_prstau(isccp_prstau) ;
                 isccp_prstau:long_name = "Mean pressure (mb).mean 
optical depth (unitless)/1000" ;
                 isccp_prstau:units = "mixed" ;
         double time(time) ;
                 time:long_name = "time" ;
                 time:units = "days since 1900-01-01 00:00:00" ;
                 time:calendar = "noleap" ;
                 time:bounds = "time_bnds" ;
         double time_bnds(time, tbnd) ;
                 time_bnds:long_name = "time interval endpoints" ;
         char date_written(time, chars) ;
         char time_written(time, chars) ;
         int ntrm ;
                 ntrm:long_name = "spectral truncation parameter M" ;
         int ntrn ;
                 ntrn:long_name = "spectral truncation parameter N" ;
         int ntrk ;
                 ntrk:long_name = "spectral truncation parameter K" ;
         int ndbase ;
                 ndbase:long_name = "base day" ;
         int nsbase ;
                 nsbase:long_name = "seconds of base day" ;
         int nbdate ;
                 nbdate:long_name = "base date (YYYYMMDD)" ;
         int nbsec ;
                 nbsec:long_name = "seconds of base date" ;
         int mdt ;
                 mdt:long_name = "timestep" ;
                 mdt:units = "s" ;
         int nlon(lat) ;
                 nlon:long_name = "number of longitudes" ;
         int wnummax(lat) ;
                 wnummax:long_name = "cutoff Fourier wavenumber" ;
         double hyai(ilev) ;
                 hyai:long_name = "hybrid A coefficient at layer 
interfaces" ;
         double hybi(ilev) ;
                 hybi:long_name = "hybrid B coefficient at layer 
interfaces" ;
         double hyam(lev) ;
                 hyam:long_name = "hybrid A coefficient at layer 
midpoints" ;
         double hybm(lev) ;
                 hybm:long_name = "hybrid B coefficient at layer 
midpoints" ;
         double gw(lat) ;
                 gw:long_name = "gauss weights" ;
         int ndcur(time) ;
                 ndcur:long_name = "current day (from base day)" ;
         int nscur(time) ;
                 nscur:long_name = "current seconds of current day" ;
         int date(time) ;
                 date:long_name = "current date (YYYYMMDD)" ;
         double co2vmr(time) ;
                 co2vmr:long_name = "co2 volume mixing ratio" ;
         double ch4vmr(time) ;
                 ch4vmr:long_name = "ch4 volume mixing ratio" ;
         double n2ovmr(time) ;
                 n2ovmr:long_name = "n2o volume mixing ratio" ;
         double f11vmr(time) ;
                 f11vmr:long_name = "f11 volume mixing ratio" ;
         double f12vmr(time) ;
                 f12vmr:long_name = "f12 volume mixing ratio" ;
         double sol_tsi(time) ;
                 sol_tsi:long_name = "total solar irradiance" ;
                 sol_tsi:units = "W/m2" ;
         int datesec(time) ;
                 datesec:long_name = "current seconds of current date" ;
         int nsteph(time) ;
                 nsteph:long_name = "current timestep" ;
         float MSKtem(time, lat, lon) ;
                 MSKtem:units = "unitless" ;
                 MSKtem:long_name = "TEM mask" ;
                 MSKtem:cell_methods = "time: mean" ;
         float PRECC(time, lat, lon) ;
                 PRECC:units = "m/s" ;
                 PRECC:long_name = "Convective precipitation rate (liq + 
ice)" ;
                 PRECC:cell_methods = "time: mean" ;
         float PRECL(time, lat, lon) ;
                 PRECL:units = "m/s" ;
                 PRECL:long_name = "Large-scale (stable) precipitation 
rate (liq + ice)" ;
                 PRECL:cell_methods = "time: mean" ;
         float PSL(time, lat, lon) ;
                 PSL:units = "Pa" ;
                 PSL:long_name = "Sea level pressure" ;
                 PSL:cell_methods = "time: mean" ;
         float TREFHT(time, lat, lon) ;
                 TREFHT:units = "K" ;
                 TREFHT:long_name = "Reference height temperature" ;
                 TREFHT:cell_methods = "time: mean" ;
         float TREFHTMN(time, lat, lon) ;
                 TREFHTMN:units = "K" ;
                 TREFHTMN:long_name = "Minimum reference height 
temperature over output period" ;
                 TREFHTMN:cell_methods = "time: minimum" ;
         float TREFHTMX(time, lat, lon) ;
                 TREFHTMX:units = "K" ;
                 TREFHTMX:long_name = "Maximum reference height 
temperature over output period" ;
                 TREFHTMX:cell_methods = "time: maximum" ;
         float UV2d(time, lat, lon) ;
                 UV2d:units = "M2/S2" ;
                 UV2d:long_name = "Meridional Flux of Zonal Momentum: 2D 
prj of zon. mean" ;
                 UV2d:cell_methods = "time: mean" ;
         float UW2d(time, lat, lon) ;
                 UW2d:units = "M2/S2" ;
                 UW2d:long_name = "Vertical Flux of Zonal Momentum; 2D 
prj of zon. mean" ;
                 UW2d:cell_methods = "time: mean" ;
         float VTH2d(time, lat, lon) ;
                 VTH2d:units = "MK/S" ;
                 VTH2d:long_name = "Meridional Heat Flux: 2D prj of zon. 
mean" ;
                 VTH2d:cell_methods = "time: mean" ;
         float WTH2d(time, lat, lon) ;
                 WTH2d:units = "MK/S" ;
                 WTH2d:long_name = "Vertical Heat Flux: 2D prj of zon. 
mean" ;
                 WTH2d:cell_methods = "time: mean" ;

// global attributes:
                 :Conventions = "CF-1.0" ;
                 :source = "CAM" ;
                 :case = "mycase.5" ;
                 :title = "UNSET" ;
                 :logname = "robock" ;
                 :host = "be0501en.ucar.ed" ;
                 :Version = "$Name$" ;
                 :revision_Id = "$Id$" ;
                 :initial_file = 
"b40.lgm21ka.1deg.003.cam2.i.1900-01-01-00000.nc" ;
                 :topography_file = 
"/glade/home/robock/mycase.5/SourceMods/src.cam/topo_lgm21ka_remap_09x25.mod.110106.nc" 
;
data:
...


-- 

Alan

[On sabbatical for current academic year, and currently at NCAR.
The best way to contact me is by email, robock at envsci.rutgers.edu, or
at 732-881-1610 (cell) or 303-497-1399 (work).]

Alan Robock, Professor II (Distinguished Professor)
   Editor, Reviews of Geophysics
   Director, Meteorology Undergraduate Program
   Associate Director, Center for Environmental Prediction
Department of Environmental Sciences        Phone: +1-732-932-9800 x6222
Rutgers University                                  Fax: +1-732-932-8644
14 College Farm Road                   E-mail: robock at envsci.rutgers.edu
New Brunswick, NJ 08901-8551  USA      http://envsci.rutgers.edu/~robock




More information about the gradsusr mailing list