NOAA

Geophysical Fluid
Dynamics Laboratory

Skip to: [content] [navigation]
search gfdl:

If you are using Navigator 4.x or Internet Explorer 4.x, this site will not render correctly!

  Model Output Overview  

  Model Components  

  Control & Transient Forcing Experiments

References & Citations

If you have comments or questions regarding these GFDL R30 Coupled Climate Model webpages please e-mail Keith.Dixon @ noaa.gov

[NOAA Logo] [GFDL Logo]

GFDL R30 COUPLED CLIMATE MODELS:

An introduction to the R30 coupled model output available on GFDL's NOMADS Server
http://nomads.gfdl.noaa.gov/nomads/forms/climate.html

A Guide To Accessing R30 Model Output Stored On GFDL's NOMADS Server for DecCen Climate Research


 

GFDL R30 COUPLED MODEL OUTPUT OVERVIEW

(continued)

[NOAA bullet] 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/


A smallerbiggerreset
last modified: November 16 2004.
this page visited: 498 times