Version 2 (modified by dstuebe, 13 years ago) (diff)

--

Variables

Variables are variables, they should be very similar to the existing CF Conventions, but certain meta data should be added due the complexity of unstructured grid data.

Variable Meta Data additions for unstructured grids

• Connectivity variables
• The coordinate variables
• the name of the mesh it belongs to
• Data variables
• the name of the mesh it belongs to
• The location of the data on the cell

Examples

Edge Index CDL

Index of the edges which belong to each cell in an order which is specified for each type of cell. This describes which edge data belong to which cell similar to the connectivity that describes which nodes belong to which cell.

```int  EDGES(nEdges,Cells)
EDGES:MESH = "MESH A"
EDGES:EDGE TYPE = "NOT DEFINED YET?"
EDGES:X edge coordinate = "x_edge"   ! Should the xyz location be standard?
EDGES:Y edge coordinate = "y_edge"
EDGES:Z edge coordinate = "z_edge"
```

Should there be an EDGE TYPE attribute? What would its purpose be?

Faces Index CDL

Index of the faces which belong to each 3D solid cells in the mesh. The order of faces is specified in for each type of cell similar to the connectivity that describes which nodes belong to which cell.

```int  FACES(nFaces,Cells)     ! Data: List of faces for each cell:
FACES:MESH = "MESH A"    !        [face1, face2, face3, ... face4]
FACES:FACE TYPE = "NOT DEFINED YET?"
FACES:X face coordinate = "x_face"   ! Should the xyz location be standard?
FACES:Y face coordinate = "y_face"
FACES:Z face coordinate = "z_face"
```

Grid Variable CDL

Simple Grid variable data:

```float x_A(Nodes)		! Assuming only one standard set of Dimension names
x_A:standard_name = "nodal x-coordinate"
x_A:units =
Other attributes?

float y_A(Nodes)
y_A:standard_name = "nodal y-coordinate"
y_A:Mesh = "Mesh A"
y_A:units =

float z_A(Nodes)		[optional in case of 2D mesh or sigma coords]
z_A:standard_name = "nodal z-coordinate"
z_A:Mesh = "Mesh A"
z_A:units =
```

Nodal coordinates can vary with time:

```float x_B(time,Nodes)
x_B:standard_name = "nodal x-coordinate"
x_B:Mesh = "Mesh B"
x_B:units =

float y_B(time,Nodes)
y_B:standard_name = "nodal y-coordinate"
y_B:Mesh = "Mesh B"
y_B:units =

float z_B(time,Nodes)		[optional in case of 2D mesh or sigma Coords]
z_B:standard_name = "nodal z-coordinate"
z_B:Mesh = "Mesh B"
z_B:units =
```

Grid variables for an Extruded Mesh:

```float x_C(Nodes)
x_C:standard_name = "nodal x-coordinate"
x_C:units =

float y_C(Nodes)
y_C:standard_name = "nodal y-coordinate"
y_C:units =

float Sigma(Layers)
Sigma:standard_name = "?"
Sigma:Positive = "up"

float Surface(time,Nodes)
Surface:standard_name = "?"
Surface:Units =
Surface:Positive =

float Bottom(Nodes)
Surface:standard_name = "?"
Surface:Units =
Surface:Positive =
```

Data CDL

Data at nodes in a non sigma coordinate mesh

```float SomeData(time,Nodes)
SomeData:standard_name = "this data"
SomeData:Mesh = "MESH A"
SomeData:Location = "NODECENT"
SomeData:valid_min = "xx"
SomeData:valid_max = "yy"
```

Data at nodes in a sigma coordinate mesh

```float MoreData(time,levels, Nodes)
MoreData:standard_name = "that data"
MoreData:Mesh = "MESH B"
MoreData:Location = "NODECENT
MoreData:valid_min = "xx"
MoreData:valid_max = "yy"
```

Data at Cell centers in a sigma coordinate mesh

```float lastData(time, layers, Cells)
lastData:standard_name = "which data?"
lastData:Mesh = "MESH C"
lastData:Location = "CELLCENT"
lastData:valid_min = "xx"
lastData:valid_max = "yy"
```

Data at cell edges

```float LessData(time, Edges)
LessData:standard_name = "whos data?"
LessData:Mesh = "MESH D"
LessData:Location = "EDGECENT
LessData:valid_min = "xx"
LessData:valid_max = "yy"
```

Data at cell faces

```float ItsData(time, Faces)
ItsData:standard_name = "why data?"
ItsData:Mesh = "MESH D"
ItsData:Location = "FACECENT
ItsData:valid_min = "xx"
ItsData:valid_max = "yy"
```