You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Example of a combination of connected 1D network, 2D mesh and 3D mesh.

The variable and dimension names used in this example differ slightly from those used in the examples on Unstructured grids. Please find a translation table below:

Unstructured grids

This example

NetNode

node

NetLink

edge/edge_nodes

NetElem/NetCell

face

NetElemNode/NetCellNode

face_nodes

NetElemLink/NetCellLink/FlowLink

face_links

netcdf test_map {  

dimensions:  
        // dimensions for mesh 1
        nMesh1_node = 3 ;
        nMesh1_edge = 2 ;
        nMaxMesh1_contour_pts = 99 ;
        // 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 ;
        Mesh3_layers = 3 ;
        Mesh3_interfaces = 4;
        // common dimensions
        Two = 2;
        time = UNLIMITED ; // (1 currently)  

variables:  

        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" ;  
        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" ;

        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" ;

        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" ;  

        double Mesh1_zwl(time, nMesh1_node) ;  
                Mesh1_zwl:standard_name = "sea_surface_height_above_geoid" ;
                Mesh1_zwl:units = "m" ;
                Mesh1_zwl:grid = "Mesh1"
                Mesh1_zwl:location = "face" ;
                Mesh1_zwl:coordinates = "Mesh1_node_x Mesh1_node_y" ;
        double Mesh1_u(time, nMesh1_edge) ;  
                Mesh1_zwl:standard_name = "sea_water_speed" ;
                Mesh1_u:long_name = "Velocity (along the edge)" ; 
                Mesh1_u:units = "m s-1" ;  
                Mesh1_u:grid = "Mesh1"
                Mesh1_u:location = "edge" ;  
                Mesh1_u:coordinates = "Mesh1_edge_x Mesh1_edge_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" ;  
        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, Mesh3_layers) ;  
                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, Mesh3_layers) ;  
                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, Mesh3_layers) ;  
                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" ;  
        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" ;  
                :Conventions = "CF-1.4:Deltares-0.1" ;  
  • No labels