Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For the generation of the boundary conditions we'll need one additional bit of information from the flow model, namely the names of all open boundaries as well as their location and (negative) boundary segment numbers associated them.

Example of a netCDF file with volumes defined the faces of the grid (e.g. Delft3D, D-FLOW Flexible Mesh, ROMS, Untrim):

Code Block

dimensions:
        nMesh2_node = 4 ; // nNodes
        nMesh2_edge = 5 ; // nEdges
        nMesh2_face = 2 ; // nFaces
        nMesh2_face_links = 1 ; // nFacePairs

        Two = 2 ;
        Three = 3 ;

variables:
// Mesh topology
        integer Mesh2 ;
                // as in 2D triangular mesh example
        integer Mesh2_face_nodes(nMesh2_face, Three) ;
                // as in 2D triangular mesh example
        integer Mesh2_edge_nodes(nMesh2_edge, Two) ;
                // as in 2D triangular mesh example

// Optional mesh topology variables
        integer Mesh2_face_edges(nMesh2_face, Three) ;
                // as in 2D triangular mesh example
        integer Mesh2_face_links(nMesh2_face_links, Two) ;
                // as in 2D triangular mesh example

// Mesh node coordinates
        double Mesh2_node_x(nMesh2_node) ;
                // as in 2D triangular mesh example
        double Mesh2_node_y(nMesh2_node) ;
                // as in 2D triangular mesh example

// Optional mesh face and edge coordinate variables
        double Mesh2_face_x(nMesh2_face) ;
                Mesh2_face_x:standard_name = "longitude" ;
                Mesh2_face_x:long_name = "Characteristics longitude of 2D mesh triangle (e.g. circumcenter coordinate)." ;
                Mesh2_face_x:units = "degrees_east" ;
                Mesh2_face_x:bounds = "Mesh2_face_xbnds" ;
        double Mesh2_face_y(nMesh2_face) ;
                Mesh2_face_y:standard_name = "latitude" ;
                Mesh2_face_y:long_name = "Characteristics latitude of 2D mesh triangle (e.g. circumcenter coordinate)." ;
                Mesh2_face_y:units = "degrees_north" ;
                Mesh2_face_y:bounds = "Mesh2_face_ybnds" ;
        double Mesh2_face_xbnds(nMesh2_face,Three) ;
                Mesh2_face_xbnds:standard_name = "longitude" ;
                Mesh2_face_xbnds:long_name = "Longitude bounds of 2D mesh triangle (i.e. corner coordinates)." ;
                Mesh2_face_xbnds:units = "degrees_east" ;
        double Mesh2_face_ybnds(nMesh2_face,Three) ;
                Mesh2_face_ybnds:standard_name = "latitude" ;
                Mesh2_face_ybnds:long_name = "Latitude bounds of 2D mesh triangle (i.e. corner coordinates)." ;
                Mesh2_face_ybnds:units = "degrees_north" ;
        double Mesh2_edge_x(nMesh2_edge) ;
                // as in 2D triangular mesh example
        double Mesh2_edge_y(nMesh2_edge) ;
                // as in 2D triangular mesh example

// Volume and flux data
        double Mesh2_volumes(nMesh2_face) ;
                Mesh2_volumes:long_name = "volumes" ;
                Mesh2_volumes:units = "m3" ;
                Mesh2_volumes:mesh = "Mesh2" ;
                Mesh2_volumes:location = "face" ;
                Mesh2_volumes:coordinates = "Mesh2_face_x Mesh2_face_y" ;
        double Mesh2_fluxes(nMesh2_edge) ;
                Mesh2_fluxes:long_name = "flux across edge" ;
                Mesh2_fluxes:units = "m3 s-1" ;
                Mesh2_fluxes:mesh = "Mesh2"
                Mesh2_fluxes:location = "edge" ;
                Mesh2_fluxes:coordinates = "Mesh2_edge_x Mesh2_edge_y" ;