Subroutine to (re-)count the global number of elements the property.
All elements with the given property are counted across all elements and the nElems setting is updated accordingly.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_prophead_type), | intent(inout) | :: | me |
Property to count and set the number of elements for. |
||
integer(kind=long_k), | intent(in) | :: | elempropertybits(:) |
Propertybits of all elements. |
||
integer, | intent(in) | :: | comm |
MPI communicator within which the mesh is distributed. |
subroutine tem_prop_countelems(me, elempropertybits, comm)
! -------------------------------------------------------------------- !
!> Property to count and set the number of elements for.
type(tem_prophead_type), intent(inout) :: me
!> Propertybits of all elements.
integer(kind=long_k), intent(in) :: elempropertybits(:)
!> MPI communicator within which the mesh is distributed.
integer, intent(in) :: comm
! -------------------------------------------------------------------- !
integer(kind=long_k) :: localElems
integer :: iError
! -------------------------------------------------------------------- !
localElems = count(btest(elempropertybits, me%BitPos))
! MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
call MPI_Allreduce( localElems, me%nElems, 1, MPI_INTEGER8, MPI_SUM, &
& comm, iError )
end subroutine tem_prop_countelems