<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
<FONT COLOR="#000000">Hi,</FONT><BR>
<BR>
<FONT COLOR="#000000">I am an occasional reader of this list and have a query/proposal about the CF description of partial cells in (ocean) models</FONT> with z-coordinates<FONT COLOR="#000000">.</FONT><BR>
<BR>
<FONT COLOR="#000000">As it stands </FONT>in the CF convention (as I understand it), <FONT COLOR="#000000">when using partial cells the </FONT>different <FONT COLOR="#000000">volume of cell</FONT>s<FONT COLOR="#000000"> i</FONT>s <FONT COLOR="#000000">accounted for by in</FONT>cluding <FONT COLOR="#000000"> a 3-D array </FONT>of <FONT COLOR="#000000">the size of the full grid to describe the volume of each cell</FONT> as well as a cell measure attribute in the variable:<BR>
<BR>
<FONT COLOR="#000000">dimensions:</FONT><BR>
<FONT COLOR="#000000">deptht = 301 ;</FONT><BR>
<FONT COLOR="#000000">y = 149 ;</FONT><BR>
<FONT COLOR="#000000">x = 182 ;</FONT><BR>
<FONT COLOR="#000000">variables:</FONT><BR>
<FONT COLOR="#000000">float deptht(deptht) ;</FONT><BR>
<FONT COLOR="#000000">deptht: long_name = “depth” ;</FONT><BR>
<FONT COLOR="#000000">deptht: units = “m” ;</FONT><BR>
<FONT COLOR="#000000">float lon(x,y) ;</FONT><BR>
<FONT COLOR="#000000">lon: long_name = “longitude” ;</FONT><BR>
<FONT COLOR="#000000">lon: units = “degrees_east” ;</FONT><BR>
<FONT COLOR="#000000">float lat(x,y) ;</FONT><BR>
<FONT COLOR="#000000">lat: long_name = “latitude” ;</FONT><BR>
<FONT COLOR="#000000">lat: units = “degrees_north” ;</FONT><BR>
<FONT COLOR="#000000">double volumet(y, x) ;</FONT><BR>
<FONT COLOR="#000000">volumet :units = "m3" ;</FONT><BR>
<FONT COLOR="#000000">volumet :long_name = "volume of grid cell" ;</FONT><BR>
<FONT COLOR="#000000">volumet :standard_name = "cell_volume”;</FONT><BR>
<FONT COLOR="#000000">float votemper(deptht, y, x) ;</FONT><BR>
<FONT COLOR="#000000">votemper:units = "degC" ;</FONT><BR>
<FONT COLOR="#000000">votemper:long_name = "Temperature" ;</FONT><BR>
<FONT COLOR="#000000">votemper:coordinates = "deptht lat lon" ;</FONT><BR>
<FONT COLOR="#000000">votemper:cell_measures = "volume: volumet" ;</FONT><BR>
<FONT COLOR="#000000">votemper:standard_name = "sea_water_potential_temperature" ;</FONT><BR>
<BR>
<BR>
My query/suggestion is about the need for a 3-D array for the thickness of the partial cell. The information on the thickness of the partial cell is essentially 2-D and the "volumet" array in the example above is almost doubling the size of the file. It would be entirely possible to fully define grid cell volumes using level thickness, grid cell area and information on the level and thickness of the partial cell. In the below example the "deptht_bounds" is used to find level thickness while the grid cell area is given in the 2-D array "areat". These two can be used for volume of every cell except the partial cells. To deal with the volume of the partial cells a new <I>cell_measure</I> of "partial_cell_thickness" could be used. In such a case the thickness and level of the partial cell can be specifed in a single number. For example of if the 24th level was the partial cell and it was 0.4 of the original thickness a "partial_cell_th
ickness" of 23.4 would specify the levels and thickness, i.e 23 full levels and 0.4 of the 24th. The thickness of the partial cell being 0.4 of the thickness determined from the 24th levels of "deptht_bounds" which would act as a refference. This in combination with the "areat" array would describe the cell volumes.<BR>
<BR>
e.g. <BR>
<BR>
<FONT COLOR="#000000">dimensions:</FONT><BR>
<FONT COLOR="#000000">deptht = 301 ;</FONT><BR>
<FONT COLOR="#000000">y = 149 ;</FONT><BR>
<FONT COLOR="#000000">x = 182 ;</FONT><BR>
<FONT COLOR="#000000">ndepth_bounds = 2 ;</FONT><BR>
<FONT COLOR="#000000">variables:</FONT><BR>
<FONT COLOR="#000000">float deptht(deptht) ;</FONT><BR>
<FONT COLOR="#000000">deptht: long_name = “depth” ;</FONT><BR>
<FONT COLOR="#000000">deptht: units = “m” ;</FONT><BR>
<FONT COLOR="#000000">deptht: bounds = “deptht_bounds" ;</FONT><BR>
<FONT COLOR="#000000">float lon(x,y) ;</FONT><BR>
<FONT COLOR="#000000">lon: long_name = “longitude” ;</FONT><BR>
<FONT COLOR="#000000">lon: units = “degrees_east” ;</FONT><BR>
<FONT COLOR="#000000">float lat(x,y) ;</FONT><BR>
<FONT COLOR="#000000">lat: long_name = “latitude” ;</FONT><BR>
<FONT COLOR="#000000">lat: units = “degrees_north” ;</FONT><BR>
<FONT COLOR="#000000">double deptht_bounds(deptht, ndepth_bounds) ;</FONT><BR>
<FONT COLOR="#000000">deptht_bounds:units = "m" ;</FONT><BR>
<FONT COLOR="#000000">deptht_bounds:long_name = "depth boundaries of cells" ;</FONT><BR>
<FONT COLOR="#000000">double areat(y, x) ;</FONT><BR>
<FONT COLOR="#000000">areat:units = "m2" ;</FONT><BR>
<FONT COLOR="#000000">areat:long_name = "area of grid cell" ;</FONT><BR>
<BR>
<BR>
I'm aware that this would require some extra processing to calculate a 3-D array of cell volumes whereas keeping the 3-D volume array is foolproof, but the calculation is simple and it would greatly reduce the over head if many files were stored at higher vertical resolutions as in the above example.<BR>
<BR>
I'd be keen to hear people opinions on this or possible alternatives if I've missed something about possible ways to deal with this that are already used.<BR>
<BR>
Regards<BR>
<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
--
Dan Bernie
HadGEM Physical Processes and Coupling Scientist
Met Office Hadley Centre, FitzRoy Road, Exeter, EX1 3PB
Tel: +44 (0)1392 884862 Fax: +44 (0)1392 885681
E-mail: <A HREF="mailto:dan.bernie@metoffice.gov.uk">dan.bernie@metoffice.gov.uk</A> <A HREF="http://www.metoffice.gov.uk">http://www.metoffice.gov.uk</A>
</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>