[MITgcm-devel] netcdf units in diagnostics pkg

Martin Losch Martin.Losch at awi.de
Tue Apr 22 04:39:10 EDT 2008


Hi,
is there a reason (other than "hasn't been done yet"), why the netcdf  
output of the diagnostics package has the following issues?

1. there are no "coordinate variables" for the vertical dimension,  
Xp1 and Yp1, only for time, x, and y:  T(T), X(X), Y(Y). One could  
easily have Xp1(Xp1), Yp1(Yp1) and Zmd??????(Zmd?????) etc. for all  
vertical coordinate dimensions. That would make the netcdf files only  
slightly larger (1D data arrays), but much easier to handle (by third  
party software and the user).
2. X(X) and Y(Y) don't have any attributes (such as long names and  
units). I suggest to supply long names such as "X/Y-coordinate of C- 
points" and units "m" for cartesian grids, "Longitute/Latitude of C- 
points" and "degE/N" for spherical grids and "i/j-index" and "no  
units" for curvilinear grids.
3. some diagnostics fill land points (or zeros in general) with 1e 
+15  (e.g. SI_Thick), but there is no "fill value" attribute (by  
COADS conventions "_FillValue" or "missing_value"), that makes these  
variable very difficult to read and process (just zero would be  
simpler than 1e+15). Also for SI_Thick not only land values are  
filled with 1e+15 but also places of zero thickness, which does not  
seem right to me. We do have land-sea masks in the code.
4. in general, there could be an attribute _FillValue for each  
variable in netcdf files and land points could be filled with  
_FillValue. It would require a loop like this
where ( maskC == 0. ) field = fillvalue
before "field" is passed to the actual writing routine. Is that too  
expensive?

I have not had a close look at the combination of mnc and  
diagnostics, but maybe it's very simple to make these changes. But I  
don't know if there are any principle reasons for not having these  
features in there in the first place (such as disagreement which  
convention to follow ...)

Martin






More information about the MITgcm-devel mailing list