netcdf test_map {
dimensions:
// dimensions for mesh 1
nMesh1_node = 3 ;
nMesh1_edge = 2 ;
nMaxMesh1_contour_pts = 99 ;
nMesh1_cell = 2 ;
nMesh1_interface = 2 ;
// dimensions for mesh 2
nMesh2_node = 6 ;
nMesh2_edge = 7 ;
nMesh2_face = 2 ;
nMesh2_edge_nodes = 7;
nMesh2_face_nodes = 4;
nMesh2_face_links = 1;
nMaxMesh2_face_nodes = 4;
nMaxMesh2_contour_pts = 99 ;
// dimensions for mesh 3
nMesh3_node = 6 ;
nMesh3_edge = 7 ;
nMesh3_face = 2 ;
nMesh3_edge_nodes = 7;
nMesh3_face_nodes = 4;
nMesh3_face_links = 1;
nMaxMesh3_face_nodes = 4;
nMaxMesh3_contour_pts = 99 ;
nMesh3_layer = 3 ;
nMesh3_interface = 4;
// common dimensions
Two = 2;
time = UNLIMITED ; // (1 currently)
variables:
// Basic mesh data (coordinates independent of computational cells whatsoever)
double Mesh1_node_x(nMesh1_node) ;
Mesh1_node_x:standard_name = "projection_x_coordinate" ;
Mesh1_node_x:long_name = "netnodal x-coordinate" ;
Mesh1_node_x:units = "m" ;
Mesh1_node_x:bounds = "Mesh1_node_contour_x" ;
double Mesh1_node_y(nMesh1_node) ;
Mesh1_node_y:standard_name = "projection_y_coordinate" ;
Mesh1_node_y:long_name = "netnodal y-coordinate" ;
Mesh1_node_y:units = "m" ;
Mesh1_node_y:bounds = "Mesh1_node_contour_y" ;
double Mesh1_edge_x(nMesh1_edge) ;
Mesh1_edge_x:standard_name = "projection_x_coordinate" ;
Mesh1_edge_x:long_name = "Center coordinate of net link (velocity point)." ;
Mesh1_edge_x:units = "m" ;
double Mesh1_edge_y(nMesh1_edge) ;
Mesh1_edge_y:standard_name = "projection_y_coordinate" ;
Mesh1_edge_y:long_name = "Center coordinate of net link (velocity point)." ;
Mesh1_edge_y:units = "m" ;
double Mesh1_node_contour_x(nMesh1_node, nMaxMesh1_contour_pts) ;
Mesh1_node_contour_x:standard_name = "projection_x_coordinate" ;
Mesh1_node_contour_x:long_name = "List of x-points that form outline of flow volume" ;
Mesh1_node_contour_x:units = "m" ;
double Mesh1_node_contour_y(nMesh1_node, nMaxMesh1_contour_pts) ;
Mesh1_node_contour_y:standard_name = "projection_y_coordinate" ;
Mesh1_node_contour_y:units = "m" ;
Mesh1_node_contour_y:long_name = "List of y-points that form outline of flow volume" ;
// Basic mesh topology
integer Mesh1_edge_nodes(nMesh1_edge, Two) ;
Mesh1_edge_nodes:long_name = "links between two nodes" ;
integer Mesh1 ;
Mesh1:long_name = "Topology data of Mesh1" ;
Mesh1:dimensionality = 1 ;
Mesh1:locations = "link node" ;
Mesh1:node_coordinates = "Mesh1_node_x Mesh1_node_y" ;
Mesh1:edge_coordinates = "Mesh1_edge_x Mesh1_edge_y" ;
Mesh1:edge_nodes = "Mesh1_edge_nodes" ;
Mesh1:parent_mesh = "CombinedMesh" ;
// Similar for Mesh2
double Mesh2_node_x(nMesh2_node) ;
Mesh2_node_x:standard_name = "projection_x_coordinate" ;
Mesh2_node_x:long_name = "netnodal x-coordinate" ;
Mesh2_node_x:units = "m" ;
double Mesh2_node_y(nMesh2_node) ;
Mesh2_node_y:standard_name = "projection_y_coordinate" ;
Mesh2_node_y:long_name = "netnodal y-coordinate" ;
Mesh2_node_y:units = "m" ;
double Mesh2_face_x(nMesh2_face) ;
Mesh2_face_x:standard_name = "projection_x_coordinate" ;
Mesh2_face_x:long_name = "Flow element circumcenter x" ;
Mesh2_face_x:units = "m" ;
Mesh2_face_x:bounds = "Mesh2_face_contour_x" ;
double Mesh2_face_y(nMesh2_face) ;
Mesh2_face_y:standard_name = "projection_y_coordinate" ;
Mesh2_face_y:long_name = "Flow element circumcenter y" ;
Mesh2_face_y:units = "m" ;
Mesh2_face_y:bounds = "Mesh2_face_contour_y" ;
double Mesh2_face_contour_x(nMesh2_face, nMaxMesh2_contour_pts) ;
Mesh2_face_contour_x:standard_name = "projection_x_coordinate" ;
Mesh2_face_contour_x:long_name = "List of x-points that form outline of flow volume" ;
Mesh2_face_contour_x:units = "m" ;
double Mesh2_face_contour_y(nMesh2_face, nMaxMesh2_contour_pts) ;
Mesh2_face_contour_y:standard_name = "projection_y_coordinate" ;
Mesh2_face_contour_y:units = "m" ;
Mesh2_face_contour_y:long_name = "List of y-points that form outline of flow volume" ;
double Mesh2_edge_x(nMesh2_edge) ;
Mesh2_edge_x:standard_name = "projection_x_coordinate" ;
Mesh2_edge_x:long_name = "Center coordinate of net link (velocity point)." ;
Mesh2_edge_x:units = "m" ;
double Mesh2_edge_y(nMesh2_edge) ;
Mesh2_edge_y:standard_name = "projection_y_coordinate" ;
Mesh2_edge_y:long_name = "Center coordinate of net link (velocity point)." ;
Mesh2_edge_y:units = "m" ;
integer Mesh2_edge_nodes(nMesh2_edge, Two) ;
Mesh2_edge_nodes:long_name = "link between two nodes" ;
integer Mesh2_face_nodes(nMesh2_face, nMaxMesh2_face_nodes) ;
Mesh2_face_nodes:long_name = "Mapping from net face to net nodes." ;
integer Mesh2_face_links(nMesh2_face_links, Two) ;
FlowLink:long_name = "link/interface between two flow elements (faces)" ;
integer Mesh2 ;
Mesh2:long_name = "Topology data of Mesh2" ;
Mesh2:dimensionality = 2 ;
Mesh2:locations = "face edge node" ;
Mesh2:node_coordinates = "Mesh2_node_x Mesh2_node_y" ;
Mesh2:edge_coordinates = "Mesh2_edge_x Mesh2_edge_y" ;
Mesh2:edge_nodes = "Mesh2_edge_nodes" ;
Mesh2:face_coordinates = "Mesh2_face_x Mesh2_face_y" ;
Mesh2:face_nodes = "Mesh2_face_nodes" ;
Mesh2:face_connectivity = "Mesh2_face_links" ;
Mesh2:parent_mesh = "CombinedMesh" ;
// Similar for Mesh3
double Mesh3_node_x(nMesh3_node) ;
Mesh3_node_x:standard_name = "projection_x_coordinate" ;
Mesh3_node_x:long_name = "netnodal x-coordinate" ;
Mesh3_node_x:units = "m" ;
double Mesh3_node_y(nMesh3_node) ;
Mesh3_node_y:standard_name = "projection_y_coordinate" ;
Mesh3_node_y:long_name = "netnodal y-coordinate" ;
Mesh3_node_y:units = "m" ;
double Mesh3_face_x(nMesh3_face) ;
Mesh3_face_x:standard_name = "projection_x_coordinate" ;
Mesh3_face_x:long_name = "Flow element circumcenter x" ;
Mesh3_face_x:units = "m" ;
Mesh3_face_x:bounds = "Mesh3_face_contour_x" ;
double Mesh3_face_y(nMesh3_face) ;
Mesh3_face_y:standard_name = "projection_y_coordinate" ;
Mesh3_face_y:long_name = "Flow element circumcenter y" ;
Mesh3_face_y:units = "m" ;
Mesh3_face_y:bounds = "Mesh3_face_contour_y" ;
double Mesh3_face_contour_x(nMesh3_face, nMaxMesh3_contour_pts) ;
Mesh3_face_contour_x:standard_name = "projection_x_coordinate" ;
Mesh3_face_contour_x:long_name = "List of x-points that form outline of flow volume" ;
Mesh3_face_contour_x:units = "m" ;
double Mesh3_face_contour_y(nMesh3_face, nMaxMesh3_contour_pts) ;
Mesh3_face_contour_y:standard_name = "projection_y_coordinate" ;
Mesh3_face_contour_y:units = "m" ;
Mesh3_face_contour_y:long_name = "List of y-points that form outline of flow volume" ;
double Mesh3_edge_x(nMesh3_edge) ;
Mesh3_edge_x:standard_name = "projection_x_coordinate" ;
Mesh3_edge_x:long_name = "Center coordinate of edges (velocity point)." ;
Mesh3_edge_x:units = "m" ;
double Mesh3_edge_y(nMesh3_edge) ;
Mesh3_edge_y:standard_name = "projection_y_coordinate" ;
Mesh3_edge_y:long_name = "Center coordinate of edges (velocity point)." ;
Mesh3_edge_y:units = "m" ;
integer Mesh3_edge_nodes(nMesh3_edge, Two) ;
Mesh3_edge_nodes:long_name = "link between two nodes" ;
integer Mesh3_face_nodes(nMesh3_face, nMaxMesh3_face_nodes) ;
Mesh3_face_nodes:long_name = "Mapping from faces to nodes." ;
integer Mesh3_face_links(nMesh3_face_links, Two) ;
FlowLink:long_name = "link/interface between two flow elements (faces)" ;
double Mesh3_layers(Mesh3_layers) ;
Mesh3_layers:standard_name = "ocean_sigma_coordinate" ;
Mesh3_layers:long_name = "sigma at layer midpoints" ;
Mesh3_layers:positive = "up" ;
Mesh3_layers:formula_terms = "sigma: Mesh3_layers eta: Mesh3_zwl depth: Mesh3_depth" ;
double Mesh3_interfaces(Mesh3_interfaces) ;
Mesh3_interfaces:standard_name = "ocean_sigma_coordinate" ;
Mesh3_interfaces:long_name = "sigma at layer interfaces" ;
Mesh3_interfaces:positive = "up" ;
Mesh3_interfaces:formula_terms = "sigma: Mesh3_interfaces eta: Mesh3_zwl depth: Mesh3_depth" ;
integer Mesh3 ;
Mesh3:long_name = "Topology data of Mesh3" ;
Mesh3:dimensionality = 2 ;
Mesh3:locations = "face edge node" ;
Mesh3:node_coordinates = "Mesh3_node_x Mesh3_node_y" ;
Mesh3:edge_coordinates = "Mesh3_edge_x Mesh3_edge_y" ;
Mesh3:edge_nodes = "Mesh3_edge_nodes" ;
Mesh3:face_coordinates = "Mesh3_face_x Mesh3_face_y" ;
Mesh3:face_nodes = "Mesh3_face_nodes" ;
Mesh3:face_connectivity = "Mesh3_face_links" ;
Mesh3:parent_mesh = "CombinedMesh" ;
integer CombiMesh_edge_mesh(nCombiMesh_contacts, Two) ;
CombiMesh_edge_mesh:long_name = "Mesh number of contact" ;
CombiMesh_edge_mesh:valid_range = 0, 2;
CombiMesh_edge_mesh:valid_values = 0, 1, 2;
CombiMesh_edge_mesh:flag_meanings = "Mesh1 Mesh2 Mesh3" ;
integer CombiMesh_edge(nCombiMesh_contacts, Two) ;
CombiMesh_edge:long_name = "Edge number of contact" ;
integer CombinedMesh(nCombinedMesh_contacts, Four) ;
CombinedMesh:long_name = "Topology data of CombinedMesh" ;
CombinedMesh:sub_meshes = "Mesh1 Mesh2 Mesh3" ;
CombinedMesh:contact = "CombiMesh_edge_mesh CombiMesh_edge" ;
double time(time) ;
time:standard_name = "time" ;
time:units = "seconds since 1992-08-31 00:00:00" ;
// 1D mesh nodes may be merged with 2D mesh faces. Or 2D mesh faces may be masked and omitted in
// solution output. As a result, allow for a map between flow node numbers and basic mesh entities/numbers).
//
// Relation between basic mesh (nodes/edges/faces) and computational mesh (corners/interfaces/cells)
// (For cell center data, nMesh1_cell <= nMesh1_node, nMesh2_cell <= nMesh2_face)
// (In case of identity maps, leave out the location_map, and specify coordinates, grid and location
// directly in attributes of solution variable.)
double Mesh1_cell_x(nMesh1_cell) ;
Mesh1_cell_x:standard_name = "projection_x_coordinate" ;
Mesh1_cell_x:long_name = "flow cell circumcenter x-coordinate" ;
Mesh1_cell_x:units = "m" ;
double Mesh1_cell_y(nMesh1_cell) ;
Mesh1_cell_y:standard_name = "projection_y_coordinate" ;
Mesh1_cell_y:long_name = "flow cell circumcenter y-coordinate" ;
Mesh1_cell_y:units = "m" ;
double Mesh1_flownode(nMesh1_cell) ;
Mesh1_cell_node:long_name = "map from flowcell to 1D mesh node" ;
Mesh1_cell_node:grid = "Mesh1" ;
Mesh1_cell_node:location = "node" ; // location of flow cell on topological mesh entity.
double Mesh1_flowlink(nMesh1_interface) ;
Mesh1_cell_node:long_name = "map from flowlink to 1D mesh edge" ;
Mesh1_cell_node:grid = "Mesh1" ;
Mesh1_cell_node:location = "edge" ; // location of flow link on topological mesh entity.
double Mesh1_zwl(time, nMesh1_cell) ;
Mesh1_zwl:standard_name = "sea_surface_height_above_geoid" ;
Mesh1_zwl:units = "m" ;
Mesh1_zwl:location_map = "Mesh1_flownode" ;
Mesh1_zwl:coordinates = "Mesh1_cell_x Mesh1_cell_y" ;
double Mesh1_u(time, nMesh1_interface) ;
Mesh1_zwl:standard_name = "sea_water_speed" ;
Mesh1_u:long_name = "Velocity (along the edge)" ;
Mesh1_u:units = "m s-1" ;
Mesh1_u:location_map = "Mesh1_flowlink" ;
Mesh1_u:coordinates = "Mesh1_interface_x Mesh1_interface_y" ;
double Mesh2_depth(nMesh2_node) ;
Mesh2_depth:standard_name = "sea_floor_depth_below_geoid" ;
Mesh2_depth:units = "m" ;
Mesh2_depth:positive = "down" ;
Mesh2_depth:grid = "Mesh2"
Mesh2_depth:location = "node" ;
Mesh2_depth:coordinates = "Mesh2_node_x Mesh2_node_y" ;
double Mesh2_zwl(time, nMesh2_face) ;
Mesh2_zwl:standard_name = "sea_surface_height_above_geoid" ;
Mesh2_zwl:units = "m" ;
Mesh2_zwl:grid = "Mesh2"
Mesh2_zwl:location = "face" ;
Mesh2_zwl:coordinates = "Mesh2_face_x Mesh2_face_y" ;
double Mesh2_ucx(time, nMesh2_face) ;
Mesh2_ucx:standard_name = "eastward_sea_water_velocity" ;
Mesh2_ucx:units = "m s-1" ;
Mesh2_ucx:grid = "Mesh2"
Mesh2_ucx:location = "face" ;
Mesh2_ucx:coordinates = "Mesh2_face_x Mesh2_face_y" ;
double Mesh2_ucy(time, nMesh2_face) ;
Mesh2_ucy:standard_name = "northward_sea_water_velocity" ;
Mesh2_ucy:units = "m s-1" ;
Mesh2_ucy:grid = "Mesh2"
Mesh2_ucy:location = "face" ;
Mesh2_ucy:coordinates = "Mesh2_face_x Mesh2_face_y" ;
double Mesh2_unorm(time, nMesh2_edge) ;
Mesh2_unorm:long_name = "Normal component of velocity at the interface" ;
Mesh2_unorm:units = "m s-1" ;
Mesh2_unorm:grid = "Mesh2"
Mesh2_unorm:location = "edge" ;
Mesh2_unorm:coordinates = "Mesh2_edge_x Mesh2_edge_y" ;
todo: meaning?
integer Mesh2_edgetype(nMesh2_edge) ;
Mesh2_edgetype:long_name = "Type of edge" ;
Mesh2_edgetype:valid_range = 0, 2;
Mesh2_edgetype:valid_values = 0, 1, 2;
Mesh2_edgetype:flag_meanings = "closed_edge open_internal_edge open_boundary_edge" ;
Mesh2_edgetype:grid = "Mesh2"
Mesh2_edgetype:location = "edge" ;
Mesh2_edgetype:coordinates = "Mesh2_edge_x Mesh2_edge_y" ;
double Mesh3_depth(nMesh3_node) ;
Mesh3_depth:standard_name = "sea_floor_depth_below_geoid" ;
Mesh3_depth:units = "m" ;
Mesh3_depth:positive = "down" ;
Mesh3_depth:grid = "Mesh3"
Mesh3_depth:location = "node" ;
Mesh3_depth:coordinates = "Mesh3_node_x Mesh3_node_y" ;
double Mesh3_zwl(time, nMesh3_face) ;
Mesh3_zwl:standard_name = "sea_surface_height_above_geoid" ;
Mesh3_zwl:units = "m" ;
Mesh3_zwl:grid = "Mesh3"
Mesh3_zwl:location = "face" ;
Mesh3_zwl:coordinates = "Mesh3_face_x Mesh3_face_y" ;
double Mesh3_ucx(time, nMesh3_face, nMesh3_layer) ;
Mesh3_ucx:standard_name = "eastward_sea_water_velocity" ;
Mesh3_ucx:units = "m s-1" ;
Mesh3_ucx:grid = "Mesh3"
Mesh3_ucx:location = "face" ;
Mesh3_ucx:coordinates = "Mesh3_face_x Mesh3_face_y Mesh3_layers" ;
double Mesh3_ucy(time, nMesh3_face, nMesh3_layer) ;
Mesh3_ucy:standard_name = "northward_sea_water_velocity" ;
Mesh3_ucy:units = "m s-1" ;
Mesh3_ucy:grid = "Mesh3"
Mesh3_ucy:location = "face" ;
Mesh3_ucy:coordinates = "Mesh3_face_x Mesh3_face_y Mesh3_layers" ;
double Mesh3_unorm(time, nMesh3_edge, nMesh3_layer) ;
Mesh3_unorm:long_name = "Normal component of velocity at the interface" ;
Mesh3_unorm:units = "m s-1" ;
Mesh3_unorm:grid = "Mesh3"
Mesh3_unorm:location = "edge" ;
Mesh3_unorm:coordinates = "Mesh3_edge_x Mesh3_edge_y Mesh3_layers" ;
TODO: meaning
integer Mesh3_edgetype(nMesh3_edge) ;
Mesh3_edgetype:long_name = "Type of edge" ;
Mesh3_edgetype:valid_range = 0, 2;
Mesh3_edgetype:valid_values = 0, 1, 2;
Mesh3_edgetype:flag_meanings = "closed_edge open_internal_edge open_boundary_edge" ;
Mesh3_edgetype:grid = "Mesh3"
Mesh3_edgetype:location = "edge" ;
Mesh3_edgetype:coordinates = "Mesh3_edge_x Mesh3_edge_y" ;
// global attributes:
:institution = "Deltares" ;
:references = "http://www.deltares.nl" ;
:source = "UNSTRUC" ;
:history = "Created on 2010-04-12, Bert Jagers\n",
"2010-06-01, distinguish basic mesh/net and flow mesh, include mapping between the two, Arthur van Dam" ;
:Conventions = "CF-1.4:Deltares-0.1" ;
|