[gradsusr] Writing .ctl file

Charles Seman - NOAA Federal charles.seman at noaa.gov
Fri Jul 25 16:39:58 EDT 2014


David,

This file looks like it's from a GFDL model?  Based on the names of the 
coordinates, and the global attributes "grid_type" and "grid_tile", it 
looks like it is a "history" file which is on the model grid and has yet 
to be regridded to a lat/lon grid.  I'm not a user of the ocean data, 
but am working with a GFDL history data file from the atmospheric model 
on the cubed-sphere model grid tile4.  Be very careful!  The grid 
coordinates xt_ocean and yt_ocean may need to be mapped into actual 
global coordinates.  To get a view of the data, have you tried opening 
the file in GrADS without using a GrADS ctl file?  GrADS is able to open 
and view the tile4 file I'm working with, but one must be aware that the 
map background that GrADS assigns is not physically correct.  Can you 
use post-processed "pp" data (if you have this, it should be in a "pp" 
subdirectory)?  These "pp" data have been put on a physical grid.
I talked with someone here at GFDL who works with ocean data, and he 
says Ferret is able to open the datasets he works with...

Here's an example of what's in a pp/ocean/ocean.static.nc file.  Note 
how the tracer latitude and longitudes are functions of 
yt_ocean,xt_ocean: geolat_t(yt_ocean,xt_ocean) and 
geolon_t(yt_ocean,xt_ocean).  So the lat and lon are themselves 
functions of grid coordinate variables. Here's an example of 
two-dimensional lat, lon coordinates: 
http://cfconventions.org/Data/cf-convetions/cf-conventions-1.6/build/cf-conventions.html#idp5559280

netcdf ocean.static { 

dimensions: 

         xu_ocean = 360 ; 

         yu_ocean = 200 ; 

         xt_ocean = 360 ; 

         yt_ocean = 200 ; 

variables: 

         double xt_ocean(xt_ocean) ; 

                 xt_ocean:long_name = "tcell longitude" ; 

                 xt_ocean:units = "degrees_E" ; 

                 xt_ocean:cartesian_axis = "X" ; 

         double yt_ocean(yt_ocean) ; 

                 yt_ocean:long_name = "tcell latitude" ; 

                 yt_ocean:units = "degrees_N" ; 

                 yt_ocean:cartesian_axis = "Y" ; 

         double xu_ocean(xu_ocean) ; 

                 xu_ocean:long_name = "ucell longitude" ; 

                 xu_ocean:units = "degrees_E" ; 

                 xu_ocean:cartesian_axis = "X" ; 

         double yu_ocean(yu_ocean) ; 

                 yu_ocean:long_name = "ucell latitude" ; 

                 yu_ocean:units = "degrees_N" ; 

                 yu_ocean:cartesian_axis = "Y" ; 

         float ht(yt_ocean, xt_ocean) ; 

                 ht:long_name = "ocean depth on t-cells" ; 

                 ht:units = "m" ; 

                 ht:valid_range = -1.e+09f, 1.e+09f ; 

                 ht:missing_value = -1.e+20f ; 

                 ht:_FillValue = -1.e+20f ; 

                 ht:cell_methods = "time: point" ; 

                 ht:coordinates = "geolon_t geolat_t" ; 

                 ht:standard_name = "sea_floor_depth_below_geoid" ; 

         float hu(yu_ocean, xu_ocean) ; 

                 hu:long_name = "ocean depth on u-cells" ; 

                 hu:units = "m" ; 

                 hu:valid_range = -1.e+09f, 1.e+09f ; 

                 hu:missing_value = -1.e+20f ; 

                 hu:_FillValue = -1.e+20f ; 

                 hu:cell_methods = "time: point" ; 

                 hu:coordinates = "geolon_c geolat_c" ; 

         float geolat_c(yu_ocean, xu_ocean) ; 

                 geolat_c:long_name = "uv latitude" ; 

                 geolat_c:units = "degrees_N" ; 

                 geolat_c:valid_range = -91.f, 91.f ; 

                 geolat_c:missing_value = 1.e+20f ; 

                 geolat_c:_FillValue = 1.e+20f ; 

                 geolat_c:cell_methods = "time: point" ; 

                 geolat_c:coordinates = "geolon_c geolat_c" ; 

         float geolon_c(yu_ocean, xu_ocean) ; 

                 geolon_c:long_name = "uv longitude" ; 

                 geolon_c:units = "degrees_E" ; 

                 geolon_c:valid_range = -281.f, 361.f ; 

                 geolon_c:missing_value = 1.e+20f ; 

                 geolon_c:_FillValue = 1.e+20f ; 

                 geolon_c:cell_methods = "time: point" ; 

                 geolon_c:coordinates = "geolon_c geolat_c" ; 

         float geolat_t(yt_ocean, xt_ocean) ; 

                 geolat_t:long_name = "tracer latitude" ; 

                 geolat_t:units = "degrees_N" ; 

                 geolat_t:valid_range = -91.f, 91.f ; 

                 geolat_t:missing_value = 1.e+20f ; 

                 geolat_t:_FillValue = 1.e+20f ; 

                 geolat_t:cell_methods = "time: point" ; 

                 geolat_t:coordinates = "geolon_t geolat_t" ; 

         float geolon_t(yt_ocean, xt_ocean) ; 

                 geolon_t:long_name = "tracer longitude" ; 

                 geolon_t:units = "degrees_E" ; 

                 geolon_t:valid_range = -281.f, 361.f ; 

                 geolon_t:missing_value = 1.e+20f ; 

                 geolon_t:_FillValue = 1.e+20f ; 

                 geolon_t:cell_methods = "time: point" ; 

                 geolon_t:coordinates = "geolon_t geolat_t" ; 

         float area_t(yt_ocean, xt_ocean) ; 

                 area_t:long_name = "tracer cell area" ; 

                 area_t:units = "m^2" ; 

                 area_t:valid_range = 0.f, 1.e+15f ; 

                 area_t:missing_value = 1.e+20f ; 

                 area_t:_FillValue = 1.e+20f ; 

                 area_t:cell_methods = "time: point" ; 

                 area_t:coordinates = "geolon_t geolat_t" ; 

         float area_u(yu_ocean, xu_ocean) ; 

                 area_u:long_name = "velocity cell area" ; 

                 area_u:units = "m^2" ; 

                 area_u:valid_range = 0.f, 1.e+15f ; 

                 area_u:missing_value = 1.e+20f ; 

                 area_u:_FillValue = 1.e+20f ; 

                 area_u:cell_methods = "time: point" ; 

                 area_u:coordinates = "geolon_c geolat_c" ; 

         float kmt(yt_ocean, xt_ocean) ; 

                 kmt:long_name = "number of depth levels on t-grid" ; 

                 kmt:units = "dimensionless" ; 

                 kmt:valid_range = -10.f, 1.e+09f ; 

                 kmt:missing_value = -1.e+20f ; 

                 kmt:_FillValue = -1.e+20f ; 

                 kmt:cell_methods = "time: point" ; 

                 kmt:coordinates = "geolon_t geolat_t" ; 

         float kmu(yu_ocean, xu_ocean) ; 

                 kmu:long_name = "number of depth levels on u-grid" ; 

                 kmu:units = "dimensionless" ; 

                 kmu:valid_range = -10.f, 1.e+09f ; 

                 kmu:missing_value = -1.e+20f ; 

                 kmu:_FillValue = -1.e+20f ; 

                 kmu:cell_methods = "time: point" ; 

                 kmu:coordinates = "geolon_c geolat_c" ; 

         float geo_heat(yt_ocean, xt_ocean) ; 

                 geo_heat:long_name = "Geothermal heating" ; 

                 geo_heat:units = "W/m^2" ; 

                 geo_heat:valid_range = -10.f, 1000000.f ; 

                 geo_heat:missing_value = -1.e+20f ; 

                 geo_heat:_FillValue = -1.e+20f ; 

                 geo_heat:cell_methods = "time: point" ; 

                 geo_heat:coordinates = "geolon_t geolat_t" ; 

                 geo_heat:standard_name = 
"upward_geothermal_heat_flux_at_sea_floor" ; 

         float pbot0(yt_ocean, xt_ocean) ; 

                 pbot0:long_name = "reference bottom pressure t-cells" ; 

                 pbot0:units = "dbar" ; 

                 pbot0:valid_range = -1.e+08f, 1.e+08f ;
                 pbot0:missing_value = -1.e+20f ;
                 pbot0:_FillValue = -1.e+20f ;
                 pbot0:cell_methods = "time: point" ;
                 pbot0:coordinates = "geolon_t geolat_t" ;

// global attributes:
                 :NCX = "1.1.1" ;
}

I hope this is helpful.  I don't think I can be of much more help, but 
hope this points you in the right direction.

Chuck

On 07/25/2014 12:26 AM, David Stanfel wrote:
> Hello,
>
> I decided to try a different file. Here is the ncdump -c of said file:
>
> dstanfel:bin ninjawarrior343$ ncdump -c 19800101.ocean_neutral.nc
> <http://19800101.ocean_neutral.nc>
>
> netcdf \19800101.ocean_neutral {
>
> dimensions:
>
> xt_ocean = 24 ;
>
> yt_ocean = 35 ;
>
> Time = UNLIMITED ; // (1 currently)
>
> nv = 2 ;
>
> st_ocean = 18 ;
>
> st_edges_ocean = 19 ;
>
> variables:
>
> double xt_ocean(xt_ocean) ;
>
> xt_ocean:long_name = "tcell longitude" ;
>
> xt_ocean:units = "degrees_E" ;
>
> xt_ocean:cartesian_axis = "X" ;
>
> double yt_ocean(yt_ocean) ;
>
> yt_ocean:long_name = "tcell latitude" ;
>
> yt_ocean:units = "degrees_N" ;
>
> yt_ocean:cartesian_axis = "Y" ;
>
> double Time(Time) ;
>
> Time:long_name = "Time" ;
>
> Time:units = "days since 1980-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 st_ocean(st_ocean) ;
>
> st_ocean:long_name = "tcell pstar" ;
>
> st_ocean:units = "dbars" ;
>
> st_ocean:cartesian_axis = "Z" ;
>
> st_ocean:positive = "down" ;
>
> st_ocean:edges = "st_edges_ocean" ;
>
> double st_edges_ocean(st_edges_ocean) ;
>
> st_edges_ocean:long_name = "tcell pstar edges" ;
>
> st_edges_ocean:units = "dbars" ;
>
> st_edges_ocean:cartesian_axis = "Z" ;
>
> st_edges_ocean:positive = "down" ;
>
> float agm(Time, yt_ocean, xt_ocean) ;
>
> agm:long_name = "GM diffusivity at surface" ;
>
> agm:units = "m^2/sec" ;
>
> agm:valid_range = -10.f, 1.e+10f ;
>
> agm:missing_value = -1.e+20f ;
>
> agm:_FillValue = -1.e+20f ;
>
> agm:cell_methods = "time: mean" ;
>
> agm:time_avg_info = "average_T1,average_T2,average_DT" ;
>
> agm:coordinates = "geolon_t geolat_t" ;
>
> agm:standard_name = "ocean_tracer_bolus_laplacian_diffusivity" ;
>
> float rossby(Time, yt_ocean, xt_ocean) ;
>
> rossby:long_name = "Rossby radius used in neutral physics" ;
>
> rossby:units = "m" ;
>
> rossby:valid_range = -10.f, 1.e+10f ;
>
> rossby:missing_value = -1.e+20f ;
>
> rossby:_FillValue = -1.e+20f ;
>
> rossby:cell_methods = "time: mean" ;
>
> rossby:time_avg_info = "average_T1,average_T2,average_DT" ;
>
> rossby:coordinates = "geolon_t geolat_t" ;
>
> float slope31(Time, st_ocean, yt_ocean, xt_ocean) ;
>
> slope31:long_name = "neutral slope -(rho_x/rho_z)" ;
>
> slope31:units = "dimensionless" ;
>
> slope31:valid_range = -1.e+10f, 1.e+10f ;
>
> slope31:missing_value = -1.e+20f ;
>
> slope31:_FillValue = -1.e+20f ;
>
> slope31:cell_methods = "time: mean" ;
>
> slope31:time_avg_info = "average_T1,average_T2,average_DT" ;
>
> slope31:coordinates = "geolon_t geolat_t" ;
>
> float slope32(Time, st_ocean, yt_ocean, xt_ocean) ;
>
> slope32:long_name = "neutral slope -(rho_y/rho_z)" ;
>
> slope32:units = "dimensionless" ;
>
> slope32:valid_range = -1.e+10f, 1.e+10f ;
>
> slope32:missing_value = -1.e+20f ;
>
> slope32:_FillValue = -1.e+20f ;
>
> slope32:cell_methods = "time: mean" ;
>
> slope32:time_avg_info = "average_T1,average_T2,average_DT" ;
>
> slope32:coordinates = "geolon_t geolat_t" ;
>
> double average_T1(Time) ;
>
> average_T1:long_name = "Start time for average period" ;
>
> average_T1:units = "days since 1980-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 1980-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 = "ocean_neutral.nc <http://ocean_neutral.nc>" ;
>
> :title = "MOM4 box" ;
>
> :grid_type = "regular" ;
>
> :grid_tile = "N/A" ;
>
> data:
>
>
>   xt_ocean = 1.25, 3.75, 6.25, 8.75, 11.25, 13.75, 16.25, 18.75, 21.25,
> 23.75,
>
>      26.25, 28.75, 31.25, 33.75, 36.25, 38.75, 41.25, 43.75, 46.25, 48.75,
>
>      51.25, 53.75, 56.25, 58.75 ;
>
>
>   yt_ocean = 1.25, 3.7488100528717, 6.2393012046814, 8.71919345855713,
>
>      11.1815176010132, 13.6242818832397, 16.0408229827881,
> 18.4296073913574,
>
>      20.784387588501, 23.1042194366455, 25.3833503723145, 27.6215190887451,
>
>      29.813497543335, 31.9597606658936, 34.0555992126465, 36.1022338867188,
>
>      38.0954322814941, 40.0371551513672, 41.9235687255859,
> 43.7573394775391,
>
>      45.5349464416504, 47.259708404541, 48.9283294677734, 50.5447235107422,
>
>      52.1057090759277, 53.6157531738281, 55.0716934204102,
> 56.4785079956055,
>
>      57.8329429626465, 59.1404571533203, 60.3976211547852,
> 61.6103477478027,
>
>      62.7749481201172, 63.8977813720703, 64.9748153686523 ;
>
>
>   Time = 2 ;
>
>
>   nv = 1, 2 ;
>
>
>   st_ocean = 17.75025, 53.25075, 88.75125, 124.25175, 159.75225, 195.25275,
>
>      230.75325, 266.25375, 314.34159289856, 399.171716592407,
>
>      541.922400494385, 759.079548358154, 1061.10117883301,
> 1451.56990550537,
>
>      1926.90292906494, 2476.64250944824, 3084.30280480957,
> 3728.70522619629 ;
>
>
>   st_edges_ocean = 0, 35.5005, 71.001, 106.5015, 142.002, 177.5025,
> 213.003,
>
>      248.5035, 290.29765597229, 356.756654745483, 470.547043066406,
>
>      650.50097442627, 910.090332641602, 1256.33548026123, 1689.23641728516,
>
>      2201.77290498047, 2780.47265712891, 3406.50401550293, 4057.20024763184
>
>
> I wrote a .ctl file:
>
>
> DSET ^19800101.ocean_neutral.nc <http://19800101.ocean_neutral.nc>
>
> UNDEF -9.99e8 missing_value
>
> DTYPE netcdf
>
> CACHESIZE 100000
>
> TITLE Sample Model Output
>
> XDEF 24 LINEAR  1.25   2.5
>
> YDEF 35 levels  1.25, 3.7488100528717, 6.2393012046814, 8.71919345855713,
>
>      11.1815176010132, 13.6242818832397, 16.0408229827881,
> 18.4296073913574,
>
>      20.784387588501, 23.1042194366455, 25.3833503723145, 27.6215190887451,
>
>      29.813497543335, 31.9597606658936, 34.0555992126465, 36.1022338867188,
>
>      38.0954322814941, 40.0371551513672, 41.9235687255859,
> 43.7573394775391,
>
>      45.5349464416504, 47.259708404541, 48.9283294677734, 50.5447235107422,
>
>      52.1057090759277, 53.6157531738281, 55.0716934204102,
> 56.4785079956055,
>
>      57.8329429626465, 59.1404571533203, 60.3976211547852,
> 61.6103477478027,
>
>      62.7749481201172, 63.8977813720703, 64.9748153686523
>
> ZDEF 18 levels  17.75025, 53.25075, 88.75125, 124.25175, 159.75225,
> 195.25275, 230.75327, 266.25375, 314.34159289856, 399.171716592407,
> 541.922400494385, 759.079548358154, 1061.10117883301, 1451.56990550537,
> 1926.90292906494, 2476.64250944824, 3084.30280480957, 3728.70522619629
>
> TDEF 1 LINEAR 01JAN0001 1mo
>
> VARS 4
>
> agm    0  t,y,x  GM diffusivity at surface (m^2/sec)
>
> rossby 0  t,y,x  Rossby radius used in neutral physics (m)
>
> slope31 18 t,z,y,x Neutral slope -(rho_x/rho_z)
>
> slope32 18 t,z,y,x Neutral slope -(rho_y/rho_z)
>
> ENDVARS
>
>
> When trying to display the variables, I get this error:
>
>
> ga-> d agm
>
> Cannot contour grid - all undefined values
>
> ga-> d rossby
>
> Cannot contour grid - all undefined values
>
> ga-> d slope31
>
> Cannot contour grid - all undefined values
>
> ga->
>
>
> What could be going wrong here?
>
> Thanks,
>
> David
>
>
> On Wed, Jul 23, 2014 at 11:23 AM, David Stanfel <dstanfel at ualberta.ca
> <mailto:dstanfel at ualberta.ca>> wrote:
>
>     Also, how do you determine the CACHESIZE?
>
>     Thanks,
>
>     David
>
>
>     On Tue, Jul 22, 2014 at 11:05 PM, David Stanfel
>     <dstanfel at ualberta.ca <mailto:dstanfel at ualberta.ca>> wrote:
>
>         Hello,
>
>         I just ran a climate model which produced some .nc files. I am
>         having trouble writing the .ctl file to read said .nc files.
>         Here is the ncdump -c for one of the files I am trying to read:
>
>         dstanfel:bin ninjawarrior343$ ncdump -c 19800101.ocean_layer.nc
>         <http://19800101.ocean_layer.nc>
>
>         netcdf \19800101.ocean_layer {
>
>         dimensions:
>
>         grid_xt_ocean = 24 ;
>
>         grid_yt_ocean = 35 ;
>
>         theta = 100 ;
>
>         theta_edges = 101 ;
>
>         Time = UNLIMITED ; // (1 currently)
>
>         nv = 2 ;
>
>         xt_ocean = 24 ;
>
>         yt_ocean = 35 ;
>
>         st_ocean = 18 ;
>
>         st_edges_ocean = 19 ;
>
>         potrho = 100 ;
>
>         potrho_edges = 101 ;
>
>         variables:
>
>         double grid_xt_ocean(grid_xt_ocean) ;
>
>         grid_xt_ocean:long_name = "tcell longitude" ;
>
>         grid_xt_ocean:units = "degrees_E" ;
>
>         grid_xt_ocean:cartesian_axis = "X" ;
>
>         double grid_yt_ocean(grid_yt_ocean) ;
>
>         grid_yt_ocean:long_name = "tcell latitude" ;
>
>         grid_yt_ocean:units = "degrees_N" ;
>
>         grid_yt_ocean:cartesian_axis = "Y" ;
>
>         double theta(theta) ;
>
>         theta:long_name = "potential or conservative temperature" ;
>
>         theta:units = "C" ;
>
>         theta:cartesian_axis = "Z" ;
>
>         theta:positive = "up" ;
>
>         theta:edges = "theta_edges" ;
>
>         double theta_edges(theta_edges) ;
>
>         theta_edges:long_name = "potential or conservative temperature
>         edges" ;
>
>         theta_edges:units = "C" ;
>
>         theta_edges:cartesian_axis = "Z" ;
>
>         theta_edges:positive = "up" ;
>
>         double Time(Time) ;
>
>         Time:long_name = "Time" ;
>
>         Time:units = "days since 1980-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 xt_ocean(xt_ocean) ;
>
>         xt_ocean:long_name = "tcell longitude" ;
>
>         xt_ocean:units = "degrees_E" ;
>
>         xt_ocean:cartesian_axis = "X" ;
>
>         double yt_ocean(yt_ocean) ;
>
>         yt_ocean:long_name = "tcell latitude" ;
>
>         yt_ocean:units = "degrees_N" ;
>
>         yt_ocean:cartesian_axis = "Y" ;
>
>         double st_ocean(st_ocean) ;
>
>         st_ocean:long_name = "tcell pstar" ;
>
>         st_ocean:units = "dbars" ;
>
>         st_ocean:cartesian_axis = "Z" ;
>
>         st_ocean:positive = "down" ;
>
>         st_ocean:edges = "st_edges_ocean" ;
>
>         double st_edges_ocean(st_edges_ocean) ;
>
>         st_edges_ocean:long_name = "tcell pstar edges" ;
>
>         st_edges_ocean:units = "dbars" ;
>
>         st_edges_ocean:cartesian_axis = "Z" ;
>
>         st_edges_ocean:positive = "down" ;
>
>         double potrho(potrho) ;
>
>         potrho:long_name = "potential density" ;
>
>         potrho:units = "kg/m^3" ;
>
>         potrho:cartesian_axis = "Z" ;
>
>         potrho:positive = "down" ;
>
>         potrho:edges = "potrho_edges" ;
>
>         double potrho_edges(potrho_edges) ;
>
>         potrho_edges:long_name = "potential density edges" ;
>
>         potrho_edges:units = "kg/m^3" ;
>
>         potrho_edges:cartesian_axis = "Z" ;
>
>         potrho_edges:positive = "down" ;
>
>         float depth_of_theta(Time, theta, grid_yt_ocean, grid_xt_ocean) ;
>
>         depth_of_theta:long_name = "depth of potential temp surface" ;
>
>         depth_of_theta:units = "m" ;
>
>         depth_of_theta:valid_range = 0.f, 1.e+10f ;
>
>         depth_of_theta:missing_value = -1.e+20f ;
>
>         depth_of_theta:_FillValue = -1.e+20f ;
>
>         depth_of_theta:cell_methods = "time: mean" ;
>
>         depth_of_theta:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         float rho(Time, st_ocean, yt_ocean, xt_ocean) ;
>
>         rho:long_name = "in situ density" ;
>
>         rho:units = "kg/m^3" ;
>
>         rho:valid_range = -10.f, 100000.f ;
>
>         rho:missing_value = -1.e+20f ;
>
>         rho:_FillValue = -1.e+20f ;
>
>         rho:cell_methods = "time: mean" ;
>
>         rho:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         rho:coordinates = "geolon_t geolat_t" ;
>
>         float neutral_rho(Time, st_ocean, yt_ocean, xt_ocean) ;
>
>         neutral_rho:long_name = "potential density estimate of neutral
>         density" ;
>
>         neutral_rho:units = "kg/m^3" ;
>
>         neutral_rho:valid_range = -10.f, 100000.f ;
>
>         neutral_rho:missing_value = -1.e+20f ;
>
>         neutral_rho:_FillValue = -1.e+20f ;
>
>         neutral_rho:cell_methods = "time: mean" ;
>
>         neutral_rho:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         neutral_rho:coordinates = "geolon_t geolat_t" ;
>
>         float pot_rho_0(Time, st_ocean, yt_ocean, xt_ocean) ;
>
>         pot_rho_0:long_name = "potential density referenced to 0 dbar" ;
>
>         pot_rho_0:units = "kg/m^3" ;
>
>         pot_rho_0:valid_range = -10.f, 100000.f ;
>
>         pot_rho_0:missing_value = -1.e+20f ;
>
>         pot_rho_0:_FillValue = -1.e+20f ;
>
>         pot_rho_0:cell_methods = "time: mean" ;
>
>         pot_rho_0:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         pot_rho_0:coordinates = "geolon_t geolat_t" ;
>
>         pot_rho_0:standard_name = "sea_water_potential_density" ;
>
>         float salt_on_rho(Time, potrho, grid_yt_ocean, grid_xt_ocean) ;
>
>         salt_on_rho:long_name = "salt on potential density surface" ;
>
>         salt_on_rho:units = "psu" ;
>
>         salt_on_rho:valid_range = 0.f, 1000.f ;
>
>         salt_on_rho:missing_value = -1.e+20f ;
>
>         salt_on_rho:_FillValue = -1.e+20f ;
>
>         salt_on_rho:cell_methods = "time: mean" ;
>
>         salt_on_rho:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         float potrho_mix_depth(Time, yt_ocean, xt_ocean) ;
>
>         potrho_mix_depth:long_name = "Depth of potential density mixed
>         layer" ;
>
>         potrho_mix_depth:units = "m" ;
>
>         potrho_mix_depth:valid_range = -1000000.f, 1000000.f ;
>
>         potrho_mix_depth:missing_value = -1.e+20f ;
>
>         potrho_mix_depth:_FillValue = -1.e+20f ;
>
>         potrho_mix_depth:cell_methods = "time: mean" ;
>
>         potrho_mix_depth:time_avg_info =
>         "average_T1,average_T2,average_DT" ;
>
>         potrho_mix_depth:coordinates = "geolon_t geolat_t" ;
>
>         float potrho_mix_base(Time, yt_ocean, xt_ocean) ;
>
>         potrho_mix_base:long_name = "Potential density at mixed layer
>         base" ;
>
>         potrho_mix_base:units = "kg/m^3" ;
>
>         potrho_mix_base:valid_range = -1000000.f, 1000000.f ;
>
>         potrho_mix_base:missing_value = -1.e+20f ;
>
>         potrho_mix_base:_FillValue = -1.e+20f ;
>
>         potrho_mix_base:cell_methods = "time: mean" ;
>
>         potrho_mix_base:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         potrho_mix_base:coordinates = "geolon_t geolat_t" ;
>
>         float press(Time, st_ocean, yt_ocean, xt_ocean) ;
>
>         press:long_name = "absolute pressure" ;
>
>         press:units = "dbar" ;
>
>         press:valid_range = -10.f, 1000000.f ;
>
>         press:missing_value = -1.e+20f ;
>
>         press:_FillValue = -1.e+20f ;
>
>         press:cell_methods = "time: mean" ;
>
>         press:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         press:coordinates = "geolon_t geolat_t" ;
>
>         float mld(Time, yt_ocean, xt_ocean) ;
>
>         mld:long_name = "mixed layer depth determined by density criteria" ;
>
>         mld:units = "m" ;
>
>         mld:valid_range = 0.f, 1000000.f ;
>
>         mld:missing_value = -1.e+20f ;
>
>         mld:_FillValue = -1.e+20f ;
>
>         mld:cell_methods = "time: mean" ;
>
>         mld:time_avg_info = "average_T1,average_T2,average_DT" ;
>
>         mld:coordinates = "geolon_t geolat_t" ;
>
>         mld:standard_name =
>         "ocean_mixed_layer_thickness_defined_by_sigma_t" ;
>
>         double average_T1(Time) ;
>
>         average_T1:long_name = "Start time for average period" ;
>
>         average_T1:units = "days since 1980-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 1980-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 = "ocean_layer.nc <http://ocean_layer.nc>" ;
>
>         :title = "MOM4 box" ;
>
>         :grid_type = "regular" ;
>
>         :grid_tile = "N/A" ;
>
>         data:
>
>
>           grid_xt_ocean = 1.25, 3.75, 6.25, 8.75, 11.25, 13.75, 16.25,
>         18.75, 21.25,
>
>              23.75, 26.25, 28.75, 31.25, 33.75, 36.25, 38.75, 41.25,
>         43.75, 46.25,
>
>              48.75, 51.25, 53.75, 56.25, 58.75 ;
>
>
>           grid_yt_ocean = 1.25, 3.7488100528717, 6.2393012046814,
>         8.71919345855713,
>
>              11.1815176010132, 13.6242818832397, 16.0408229827881,
>         18.4296073913574,
>
>              20.784387588501, 23.1042194366455, 25.3833503723145,
>         27.6215190887451,
>
>              29.813497543335, 31.9597606658936, 34.0555992126465,
>         36.1022338867188,
>
>              38.0954322814941, 40.0371551513672, 41.9235687255859,
>         43.7573394775391,
>
>              45.5349464416504, 47.259708404541, 48.9283294677734,
>         50.5447235107422,
>
>              52.1057090759277, 53.6157531738281, 55.0716934204102,
>         56.4785079956055,
>
>              57.8329429626465, 59.1404571533203, 60.3976211547852,
>         61.6103477478027,
>
>              62.7749481201172, 63.8977813720703, 64.9748153686523 ;
>
>
>           theta = -1.84, -1.52, -1.2, -0.88, -0.56, -0.24,
>         0.0800000000000003, 0.4,
>
>              0.72, 1.04, 1.36, 1.68, 2, 2.32, 2.64, 2.96, 3.28, 3.6,
>         3.92, 4.24, 4.56,
>
>              4.88, 5.2, 5.52, 5.84, 6.16, 6.48, 6.8, 7.12, 7.44, 7.76,
>         8.08, 8.4,
>
>              8.72, 9.04, 9.36, 9.68000000000001, 10, 10.32, 10.64,
>         10.96, 11.28, 11.6,
>
>              11.92, 12.24, 12.56, 12.88, 13.2, 13.52, 13.84, 14.16,
>         14.48, 14.8,
>
>              15.12, 15.44, 15.76, 16.08, 16.4, 16.72, 17.04, 17.36,
>         17.68, 18, 18.32,
>
>              18.64, 18.96, 19.28, 19.6, 19.92, 20.24, 20.56, 20.88,
>         21.2, 21.52,
>
>              21.84, 22.16, 22.48, 22.8, 23.12, 23.44, 23.76, 24.08,
>         24.4, 24.72,
>
>              25.04, 25.36, 25.68, 26, 26.32, 26.64, 26.96, 27.28, 27.6,
>         27.92, 28.24,
>
>              28.56, 28.88, 29.2, 29.52, 29.84 ;
>
>
>           theta_edges = 1028, 1028.1, 1028.2, 1028.3, 1028.4, 1028.5,
>         1028.6, 1028.7,
>
>              1028.8, 1028.9, 1029, 1029.1, 1029.2, 1029.3, 1029.4,
>         1029.5, 1029.6,
>
>              1029.7, 1029.8, 1029.9, 1030, 1030.1, 1030.2, 1030.3,
>         1030.4, 1030.5,
>
>              1030.6, 1030.7, 1030.8, 1030.9, 1031, 1031.1, 1031.2,
>         1031.3, 1031.4,
>
>              1031.5, 1031.6, 1031.7, 1031.8, 1031.9, 1032, 1032.1,
>         1032.2, 1032.3,
>
>              1032.4, 1032.5, 1032.6, 1032.7, 1032.8, 1032.9, 1033,
>         1033.1, 1033.2,
>
>              1033.3, 1033.4, 1033.49999999999, 1033.59999999999,
>         1033.69999999999,
>
>              1033.79999999999, 1033.89999999999, 1033.99999999999,
>         1034.09999999999,
>
>              1034.19999999999, 1034.29999999999, 1034.39999999999,
>         1034.49999999999,
>
>              1034.59999999999, 1034.69999999999, 1034.79999999999,
>         1034.89999999999,
>
>              1034.99999999999, 1035.09999999999, 1035.19999999999,
>         1035.29999999999,
>
>              1035.39999999999, 1035.49999999999, 1035.59999999999,
>         1035.69999999999,
>
>              1035.79999999999, 1035.89999999999, 1035.99999999999,
>         1036.09999999999,
>
>              1036.19999999999, 1036.29999999999, 1036.39999999999,
>         1036.49999999999,
>
>              1036.59999999999, 1036.69999999999, 1036.79999999999,
>         1036.89999999999,
>
>              1036.99999999999, 1037.09999999999, 1037.19999999999,
>         1037.29999999999,
>
>              1037.39999999999, 1037.49999999999, 1037.59999999999,
>         1037.69999999999,
>
>              1037.79999999999, 1037.89999999999, 1037.99999999999 ;
>
>
>           Time = 2 ;
>
>
>           nv = 1, 2 ;
>
>
>           xt_ocean = 1.25, 3.75, 6.25, 8.75, 11.25, 13.75, 16.25, 18.75,
>         21.25, 23.75,
>
>              26.25, 28.75, 31.25, 33.75, 36.25, 38.75, 41.25, 43.75,
>         46.25, 48.75,
>
>              51.25, 53.75, 56.25, 58.75 ;
>
>
>           yt_ocean = 1.25, 3.7488100528717, 6.2393012046814,
>         8.71919345855713,
>
>              11.1815176010132, 13.6242818832397, 16.0408229827881,
>         18.4296073913574,
>
>              20.784387588501, 23.1042194366455, 25.3833503723145,
>         27.6215190887451,
>
>              29.813497543335, 31.9597606658936, 34.0555992126465,
>         36.1022338867188,
>
>              38.0954322814941, 40.0371551513672, 41.9235687255859,
>         43.7573394775391,
>
>              45.5349464416504, 47.259708404541, 48.9283294677734,
>         50.5447235107422,
>
>              52.1057090759277, 53.6157531738281, 55.0716934204102,
>         56.4785079956055,
>
>              57.8329429626465, 59.1404571533203, 60.3976211547852,
>         61.6103477478027,
>
>              62.7749481201172, 63.8977813720703, 64.9748153686523 ;
>
>
>           st_ocean = 17.75025, 53.25075, 88.75125, 124.25175, 159.75225,
>         195.25275,
>
>              230.75325, 266.25375, 314.34159289856, 399.171716592407,
>
>              541.922400494385, 759.079548358154, 1061.10117883301,
>         1451.56990550537,
>
>              1926.90292906494, 2476.64250944824, 3084.30280480957,
>         3728.70522619629 ;
>
>
>           st_edges_ocean = 0, 35.5005, 71.001, 106.5015, 142.002,
>         177.5025, 213.003,
>
>              248.5035, 290.29765597229, 356.756654745483, 470.547043066406,
>
>              650.50097442627, 910.090332641602, 1256.33548026123,
>         1689.23641728516,
>
>              2201.77290498047, 2780.47265712891, 3406.50401550293,
>         4057.20024763184 ;
>
>
>           potrho = 1028.05, 1028.15, 1028.25, 1028.35, 1028.45, 1028.55,
>         1028.65,
>
>              1028.75, 1028.85, 1028.95, 1029.05, 1029.15, 1029.25,
>         1029.35, 1029.45,
>
>              1029.55, 1029.65, 1029.75, 1029.85, 1029.95, 1030.05,
>         1030.15, 1030.25,
>
>              1030.35, 1030.45, 1030.55, 1030.65, 1030.75, 1030.85,
>         1030.95, 1031.05,
>
>              1031.15, 1031.25, 1031.35, 1031.45, 1031.55, 1031.65,
>         1031.75, 1031.85,
>
>              1031.95, 1032.05, 1032.15, 1032.25, 1032.35, 1032.45,
>         1032.55, 1032.65,
>
>              1032.75, 1032.85, 1032.95, 1033.05, 1033.15, 1033.25,
>         1033.35, 1033.45,
>
>              1033.54999999999, 1033.64999999999, 1033.74999999999,
>         1033.84999999999,
>
>              1033.94999999999, 1034.04999999999, 1034.14999999999,
>         1034.24999999999,
>
>              1034.34999999999, 1034.44999999999, 1034.54999999999,
>         1034.64999999999,
>
>              1034.74999999999, 1034.84999999999, 1034.94999999999,
>         1035.04999999999,
>
>              1035.14999999999, 1035.24999999999, 1035.34999999999,
>         1035.44999999999,
>
>              1035.54999999999, 1035.64999999999, 1035.74999999999,
>         1035.84999999999,
>
>              1035.94999999999, 1036.04999999999, 1036.14999999999,
>         1036.24999999999,
>
>              1036.34999999999, 1036.44999999999, 1036.54999999999,
>         1036.64999999999,
>
>              1036.74999999999, 1036.84999999999, 1036.94999999999,
>         1037.04999999999,
>
>              1037.14999999999, 1037.24999999999, 1037.34999999999,
>         1037.44999999999,
>
>              1037.54999999999, 1037.64999999999, 1037.74999999999,
>         1037.84999999999,
>
>              1037.94999999999 ;
>
>
>           potrho_edges = 1028, 1028.1, 1028.2, 1028.3, 1028.4, 1028.5,
>         1028.6, 1028.7,
>
>              1028.8, 1028.9, 1029, 1029.1, 1029.2, 1029.3, 1029.4,
>         1029.5, 1029.6,
>
>              1029.7, 1029.8, 1029.9, 1030, 1030.1, 1030.2, 1030.3,
>         1030.4, 1030.5,
>
>              1030.6, 1030.7, 1030.8, 1030.9, 1031, 1031.1, 1031.2,
>         1031.3, 1031.4,
>
>              1031.5, 1031.6, 1031.7, 1031.8, 1031.9, 1032, 1032.1,
>         1032.2, 1032.3,
>
>              1032.4, 1032.5, 1032.6, 1032.7, 1032.8, 1032.9, 1033,
>         1033.1, 1033.2,
>
>              1033.3, 1033.4, 1033.49999999999, 1033.59999999999,
>         1033.69999999999,
>
>              1033.79999999999, 1033.89999999999, 1033.99999999999,
>         1034.09999999999,
>
>              1034.19999999999, 1034.29999999999, 1034.39999999999,
>         1034.49999999999,
>
>              1034.59999999999, 1034.69999999999, 1034.79999999999,
>         1034.89999999999,
>
>              1034.99999999999, 1035.09999999999, 1035.19999999999,
>         1035.29999999999,
>
>              1035.39999999999, 1035.49999999999, 1035.59999999999,
>         1035.69999999999,
>
>              1035.79999999999, 1035.89999999999, 1035.99999999999,
>         1036.09999999999,
>
>              1036.19999999999, 1036.29999999999, 1036.39999999999,
>         1036.49999999999,
>
>              1036.59999999999, 1036.69999999999, 1036.79999999999,
>         1036.89999999999,
>
>              1036.99999999999, 1037.09999999999, 1037.19999999999,
>         1037.29999999999,
>
>              1037.39999999999, 1037.49999999999, 1037.59999999999,
>         1037.69999999999,
>
>              1037.79999999999, 1037.89999999999, 1037.99999999999 ;
>
>         }
>
>
>         I am having trouble deciding which will be the xdef, ydef, zdef,
>         and tdef values. Also, how do I find what UNDEF number to use.
>         Your help will be greatly appreciated.
>
>         Thanks,
>
>         David
>
>
>
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>

-- 

Please note that Charles.Seman at noaa.gov should be considered my NOAA
email address, not cjs at gfdl.noaa.gov.

********************************************************************
  Charles Seman                                Charles.Seman at noaa.gov
  U.S. Department of Commerce / NOAA / OAR
  Geophysical Fluid Dynamics Laboratory         voice: (609) 452-6547
  201 Forrestal Road                              fax: (609) 987-5063
  Princeton, NJ  08540-6649            http://www.gfdl.noaa.gov/~cjs/
********************************************************************

"The contents of this message are mine personally and do not reflect any
official or unofficial position of the United States Federal Government,
the United States Department of Commerce, or NOAA."


More information about the gradsusr mailing list