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