subroutine dyn_mpas_get_global_mesh_dimension(self, &
ncells_global, nedges_global, nvertices_global, nvertlevels, ncells_max, nedges_max, &
sphere_radius)
! Module(s) from MPAS.
use mpas_dmpar, only: mpas_dmpar_max_int, mpas_dmpar_sum_int
class(mpas_dynamical_core_type), intent(in) :: self
integer, intent(out) :: ncells_global, nedges_global, nvertices_global, nvertlevels, ncells_max, nedges_max
real(rkind), intent(out) :: sphere_radius
character(*), parameter :: subname = 'dyn_mpas_subdriver::dyn_mpas_get_global_mesh_dimension'
integer, pointer :: maxedges_pointer
integer, pointer :: ncellssolve_pointer
integer, pointer :: nedgessolve_pointer
integer, pointer :: nverticessolve_pointer
integer, pointer :: nvertlevels_pointer
call self % debug_print(log_level_debug, subname // ' entered')
nullify(maxedges_pointer)
nullify(ncellssolve_pointer)
nullify(nedgessolve_pointer)
nullify(nverticessolve_pointer)
nullify(nvertlevels_pointer)
call self % debug_print(log_level_info, 'Inquiring global mesh dimensions')
call self % get_variable_pointer(maxedges_pointer, 'dim', 'maxEdges')
call self % get_variable_pointer(ncellssolve_pointer, 'dim', 'nCellsSolve')
call self % get_variable_pointer(nedgessolve_pointer, 'dim', 'nEdgesSolve')
call self % get_variable_pointer(nverticessolve_pointer, 'dim', 'nVerticesSolve')
call self % get_variable_pointer(nvertlevels_pointer, 'dim', 'nVertLevels')
call mpas_dmpar_sum_int(self % domain_ptr % dminfo, ncellssolve_pointer, ncells_global)
call mpas_dmpar_sum_int(self % domain_ptr % dminfo, nedgessolve_pointer, nedges_global)
call mpas_dmpar_sum_int(self % domain_ptr % dminfo, nverticessolve_pointer, nvertices_global)
! Vertical levels are not decomposed.
! All tasks have the same number of vertical levels.
nvertlevels = nvertlevels_pointer
call mpas_dmpar_max_int(self % domain_ptr % dminfo, ncellssolve_pointer, ncells_max)
nedges_max = maxedges_pointer
sphere_radius = self % domain_ptr % sphere_radius
nullify(maxedges_pointer)
nullify(ncellssolve_pointer)
nullify(nedgessolve_pointer)
nullify(nverticessolve_pointer)
nullify(nvertlevels_pointer)
call self % debug_print(log_level_debug, subname // ' completed')
end subroutine dyn_mpas_get_global_mesh_dimension