[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