|
If you have comments or questions regarding these
GFDL R30 Coupled Climate Model webpages
please e-mail Keith.Dixon @ noaa.gov
|
GFDL R30 COUPLED CLIMATE MODELS:
A Guide To Accessing R30 Model Output
Stored On GFDL's NOMADS Server
for DecCen Climate Research
GFDL R30 COUPLED MODEL OUTPUT OVERVIEW
(continued)
Sample ncdump -h output for file ats_v72_m_y111_250.nc
The common netCDF utility "ncdump -h" reveals much of the self-documenting
information contained in the netCDF data files prduced by the GFDL R30 coupled
climate model. Here is an example of the information the command "ncdump -h"
provides us for this file ats_v72_m_y111_250.nc located in
http://nomads.gfdl.noaa.gov/dods-data/DecCen/r30/coupled/IPCC_B2_01/atm/ts/mon/raw/140yr/.
The output has been annotated with "**" symbols to denote lines of
particular importance -ainformation that can be used by the user
to confirm that the file contains the type of data that was expected.)
.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% ncdump -h ats_v72_m_y111_250.nc
netcdf ats_v72_m_y111_250 { **1**
dimensions:
longitude = 96 ;
latitude = 80 ;
sigma_full = 14 ;
sigma_half = 13 ;
sigma_sfc = 1 ;
sigma_top = 1 ;
time = UNLIMITED ; // (1680 currently) **2**
sigma_ts = 1 ;
variables:
float longitude(longitude) ;
longitude:long_name = "longitude, first point at Greenwich, pos to east" ;
longitude:cartesian_axis = "X" ;
longitude:units = "degrees_E" ;
longitude:ipositive = 1 ;
longitude:modulo = "global longitude" ;
float latitude(latitude) ;
latitude:long_name = "latitude, first point near SP, pos to north" ;
latitude:cartesian_axis = "Y" ;
latitude:units = "degrees_N" ;
latitude:ipositive = 1 ;
float sigma_full(sigma_full) ;
sigma_full:long_name = "sigma full levels" ;
sigma_full:cartesian_axis = "Z" ;
sigma_full:units = "sigma_level" ;
sigma_full:ipositive = -1 ;
sigma_full:positive = "down" ;
float sigma_half(sigma_half) ;
sigma_half:long_name = "sigma half levels" ;
sigma_half:cartesian_axis = "Z" ;
sigma_half:units = "sigma_level" ;
sigma_half:ipositive = -1 ;
sigma_half:positive = "down" ;
float sigma_sfc(sigma_sfc) ;
sigma_sfc:long_name = "sigma at sfc" ;
sigma_sfc:cartesian_axis = "Z" ;
sigma_sfc:units = "sigma_level" ;
sigma_sfc:ipositive = -1 ;
sigma_sfc:positive = "down" ;
float sigma_top(sigma_top) ;
sigma_top:long_name = "sigma at top" ;
sigma_top:cartesian_axis = "Z" ;
sigma_top:units = "sigma_level" ;
sigma_top:ipositive = -1 ;
sigma_top:positive = "down" ;
double time(time) ;
time:long_name = "time" ;
time:cartesian_axis = "T" ;
time:units = "days since 0001-01-01 00:00:00.0" ;
time:ipositive = 1 ;
time:calendar_type = "common" ;
float sigma_ts(sigma_ts) ;
sigma_ts:long_name = "sigma_level_for_time_series_field" ;
sigma_ts:cartesian_axis = "Z" ;
sigma_ts:units = "sigma_level" ;
sigma_ts:ipositive = -1 ;
sigma_ts:positive = "down" ;
float LSEA(latitude, longitude) ;
LSEA:long_name = "land-sea mask" ;
LSEA:units = "0=land, 1=sea" ;
LSEA:valid_range = 0.f, 1.f ;
LSEA:missing_value = -9.999999e-30f ;
LSEA:vbl_k_level = 14 ;
LSEA:vbl_grid_type = "gr" ;
LSEA:vbl_vert_coor = "full" ;
LSEA:vbl_aver_period = "instan" ;
LSEA:vbl_earths_surface_type = "all " ;
float ZSTAR(latitude, longitude) ;
ZSTAR:long_name = "elevation of the surface" ;
ZSTAR:units = "cm" ;
ZSTAR:valid_range = -50000.f, 600000.f ;
ZSTAR:missing_value = -9.999999e-30f ;
ZSTAR:vbl_k_level = 14 ;
ZSTAR:vbl_grid_type = "gr" ;
ZSTAR:vbl_vert_coor = "full" ;
ZSTAR:vbl_aver_period = "instan" ;
ZSTAR:vbl_earths_surface_type = "all " ;
float TEMP(time, sigma_ts, latitude, longitude) ; **3**
TEMP:long_name = "temperature" ;
TEMP:units = "deg_K" ;
TEMP:valid_range = 0.f, 400.f ;
TEMP:missing_value = -9.999999e-30f ;
TEMP:time_avg_info = "TEMP_T1,TEMP_T2,TEMP_NITEMS" ;
TEMP:vbl_k_level = 14 ; **4**
TEMP:vbl_grid_type = "gr" ;
TEMP:vbl_vert_coor = "full" ;
TEMP:vbl_aver_period = "instan" ;
TEMP:vbl_earths_surface_type = "all " ;
double TEMP_T1(time) ;
TEMP_T1:long_name = "Start time for avg period" ;
TEMP_T1:units = "days since 0001-01-01 00:00:00.0" ;
double TEMP_T2(time) ;
TEMP_T2:long_name = "End time for avg period" ;
TEMP_T2:units = "days since 0001-01-01 00:00:00.0" ;
int TEMP_NITEMS(time) ;
TEMP_NITEMS:long_name = "Number of items in avg period" ;
TEMP_NITEMS:units = "none" ;
// global attributes:
:title = "IPCC_B2_01" ; **5**
:Conventions = "COARDS" ;
:GFDL_NCIR_VER_NO = "0.7beta1" ;
:missing_value = -9.999999e-30f ;
:latitude_direct_spctrl_trunc_jtrun = 30 ;
:longitude_direct_spctrl_trunc_mtrun = 30 ;
:Number_of_hemispheres_nhem = 2 ;
:timestep_length_in_sec_idt = 1080 ;
:version_number_as_date = "19960122" ;
:data_type = "atmosphere" ; **6**
:Radiative_forcing_Seasonal_Annual_Jan_etc = "Seasonal" ;
:Model_time_of_data = "monthly_mean_timeseries" ; **7**
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
**1** ats_v72_m_y111_250 **1**
**6**
**7**
(a) The first thing that one can check is to see if the file name
itself is correct ... it is reproduced here in the first line
dumped out by ncdump -h" (omitting the .nc suffix).
(b) If one wanted to check that the file was in the correct
subdirectory according to fluid type and time averaging period,
one could look at the "ats" (atmosphere time series) as opposed
to "ots" (ocean time series, and the "_a_" portion of the name
that signifies "annual" mean data (as opposed to "_m_" for
monthly means). This could be triple-checked using
**6** ("atmosphere" or "ocean") and
**7** ("annual_mean_timeseries" or "monthly_mean_timeseries").
**2** time = UNLIMITED ; // (1680 currently) **2**
Following netCDF conventions, the time axis here is listed
as UNLIMITED, but it is reported that the file current contains
1680 time levels of data. Since this is a time series of monthly
means, that tells us that the years listed in the file name should
differ by (1680/12 - 1) years, (e.g., 250 - 111 = 139).
**3** and **4**
TEMP:long_name = "temperature" ; **3**
TEMP:vbl_k_level = 14 ; **4**
One can check that the proper variable is in the file by looking
at some combination of these lines, and comparing them to the
contents of the file "ats_catalog". The file "ats_catalog"
serves as a kind of Rosetta stone for the atmospheric variables
(there's an "ots_catalog" for the ocean). One can use the ts_catalog files (formerly
called cheat_sheets) to figure out what 2-D variable is contained in which netCDF
file. Since there's just one line per 2-D variable in the ts_catalog
files, the descriptions are short, but they should be sufficient.
The shortnames and longnames should match in the ts_catalog and
the netCDF files (in this case "TEMP" and "temperature").
The "vbl_k_level = 14" bit refers to the vertical level ... in this
case the 14th sigma level is closest to the surface.
**5**
// global attributes:
:title = "IPCC_B2_01" ; **5**
Here's the experiment name ... the same as the subdirectory name.
The trailing "_01" refers to the fact that this is the first
(and as it turns out, the only) SRES B2 experiment we have conducted using
GFDL's coupled R30 model (the R30 refers to model's spectral resolution
which is rhomboidal 30).
This is a documentation file for R30 coupled model output available on GFDL's NOMADS Server
http://nomads.gfdl.noaa.gov/dods-data/DecCen/r30/coupled/
|