dyn_mpas_get_local_mesh_dimension Subroutine

private subroutine dyn_mpas_get_local_mesh_dimension(self, ncells, ncells_solve, nedges, nedges_solve, nvertices, nvertices_solve, nvertlevels)

This subroutine returns local mesh dimensions, including: * Numbers of local mesh cells, edges, vertices, and vertical levels on each individual task, both with/without halo points.

Type Bound

mpas_dynamical_core_type

Arguments

Type IntentOptional Attributes Name
class(mpas_dynamical_core_type), intent(in) :: self
integer, intent(out) :: ncells
integer, intent(out) :: ncells_solve
integer, intent(out) :: nedges
integer, intent(out) :: nedges_solve
integer, intent(out) :: nvertices
integer, intent(out) :: nvertices_solve
integer, intent(out) :: nvertlevels

Calls

proc~~dyn_mpas_get_local_mesh_dimension~~CallsGraph proc~dyn_mpas_get_local_mesh_dimension mpas_dynamical_core_type%dyn_mpas_get_local_mesh_dimension none~get_variable_pointer mpas_dynamical_core_type%get_variable_pointer proc~dyn_mpas_get_local_mesh_dimension->none~get_variable_pointer proc~dyn_mpas_debug_print mpas_dynamical_core_type%dyn_mpas_debug_print proc~dyn_mpas_get_local_mesh_dimension->proc~dyn_mpas_debug_print proc~dyn_mpas_get_variable_pointer_c0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_c0 proc~dyn_mpas_get_variable_pointer_c1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_c1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_c1 proc~dyn_mpas_get_variable_pointer_i0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i0 proc~dyn_mpas_get_variable_pointer_i1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i1 proc~dyn_mpas_get_variable_pointer_i2 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i2 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i2 proc~dyn_mpas_get_variable_pointer_i3 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_i3 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_i3 proc~dyn_mpas_get_variable_pointer_l0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_l0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_l0 proc~dyn_mpas_get_variable_pointer_r0 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r0 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r0 proc~dyn_mpas_get_variable_pointer_r1 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r1 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r1 proc~dyn_mpas_get_variable_pointer_r2 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r2 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r2 proc~dyn_mpas_get_variable_pointer_r3 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r3 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r3 proc~dyn_mpas_get_variable_pointer_r4 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r4 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r4 proc~dyn_mpas_get_variable_pointer_r5 mpas_dynamical_core_type%dyn_mpas_get_variable_pointer_r5 none~get_variable_pointer->proc~dyn_mpas_get_variable_pointer_r5 proc~stringify stringify proc~dyn_mpas_debug_print->proc~stringify mpas_pool_get_array mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_c0->mpas_pool_get_array mpas_pool_get_config mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_c0->mpas_pool_get_config proc~dyn_mpas_get_pool_pointer mpas_dynamical_core_type%dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_c0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_c1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_c1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_config mpas_pool_get_dimension mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i0->mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i1->mpas_pool_get_dimension proc~dyn_mpas_get_variable_pointer_i1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i2->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i2->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_i3->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_i3->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_l0->mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_l0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r0->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r0->mpas_pool_get_config proc~dyn_mpas_get_variable_pointer_r0->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r1->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r1->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r2->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r2->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r3->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r3->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r4->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r4->proc~dyn_mpas_get_pool_pointer proc~dyn_mpas_get_variable_pointer_r5->mpas_pool_get_array proc~dyn_mpas_get_variable_pointer_r5->proc~dyn_mpas_get_pool_pointer mpas_pool_get_subpool mpas_pool_get_subpool proc~dyn_mpas_get_pool_pointer->mpas_pool_get_subpool

Called by

proc~~dyn_mpas_get_local_mesh_dimension~~CalledByGraph proc~dyn_mpas_get_local_mesh_dimension mpas_dynamical_core_type%dyn_mpas_get_local_mesh_dimension proc~dyn_inquire_mesh_dimensions dyn_inquire_mesh_dimensions proc~dyn_inquire_mesh_dimensions->proc~dyn_mpas_get_local_mesh_dimension proc~model_grid_init model_grid_init proc~model_grid_init->proc~dyn_inquire_mesh_dimensions

Variables

Type Visibility Attributes Name Initial
integer, private, pointer :: ncells_pointer
integer, private, pointer :: ncellssolve_pointer
integer, private, pointer :: nedges_pointer
integer, private, pointer :: nedgessolve_pointer
integer, private, pointer :: nvertices_pointer
integer, private, pointer :: nverticessolve_pointer
integer, private, pointer :: nvertlevels_pointer
character(len=*), private, parameter :: subname = 'dyn_mpas_subdriver::dyn_mpas_get_local_mesh_dimension'

Source Code

    subroutine dyn_mpas_get_local_mesh_dimension(self, &
            ncells, ncells_solve, nedges, nedges_solve, nvertices, nvertices_solve, nvertlevels)
        class(mpas_dynamical_core_type), intent(in) :: self
        integer, intent(out) :: ncells, ncells_solve, nedges, nedges_solve, nvertices, nvertices_solve, nvertlevels

        character(*), parameter :: subname = 'dyn_mpas_subdriver::dyn_mpas_get_local_mesh_dimension'
        integer, pointer :: ncells_pointer
        integer, pointer :: ncellssolve_pointer
        integer, pointer :: nedges_pointer
        integer, pointer :: nedgessolve_pointer
        integer, pointer :: nvertices_pointer
        integer, pointer :: nverticessolve_pointer
        integer, pointer :: nvertlevels_pointer

        call self % debug_print(log_level_debug, subname // ' entered')

        nullify(ncells_pointer)
        nullify(ncellssolve_pointer)
        nullify(nedges_pointer)
        nullify(nedgessolve_pointer)
        nullify(nvertices_pointer)
        nullify(nverticessolve_pointer)
        nullify(nvertlevels_pointer)

        call self % debug_print(log_level_info, 'Inquiring local mesh dimensions')

        call self % get_variable_pointer(ncells_pointer, 'dim', 'nCells')
        call self % get_variable_pointer(ncellssolve_pointer, 'dim', 'nCellsSolve')
        call self % get_variable_pointer(nedges_pointer, 'dim', 'nEdges')
        call self % get_variable_pointer(nedgessolve_pointer, 'dim', 'nEdgesSolve')
        call self % get_variable_pointer(nvertices_pointer, 'dim', 'nVertices')
        call self % get_variable_pointer(nverticessolve_pointer, 'dim', 'nVerticesSolve')
        call self % get_variable_pointer(nvertlevels_pointer, 'dim', 'nVertLevels')

        ncells = ncells_pointer                  ! Number of cells, including halo cells.
        ncells_solve = ncellssolve_pointer       ! Number of cells, excluding halo cells.
        nedges = nedges_pointer                  ! Number of edges, including halo edges.
        nedges_solve = nedgessolve_pointer       ! Number of edges, excluding halo edges.
        nvertices = nvertices_pointer            ! Number of vertices, including halo vertices.
        nvertices_solve = nverticessolve_pointer ! Number of vertices, excluding halo vertices.

        ! Vertical levels are not decomposed.
        ! All tasks have the same number of vertical levels.
        nvertlevels = nvertlevels_pointer

        nullify(ncells_pointer)
        nullify(ncellssolve_pointer)
        nullify(nedges_pointer)
        nullify(nedgessolve_pointer)
        nullify(nvertices_pointer)
        nullify(nverticessolve_pointer)
        nullify(nvertlevels_pointer)

        call self % debug_print(log_level_debug, subname // ' completed')
    end subroutine dyn_mpas_get_local_mesh_dimension