field_labelled_sums_base Subroutine

public subroutine field_labelled_sums_base(self, sums, g, label, a, b, c)

Computes this rank's sums of ga, gb and g*c separately for each label in a single pass over DIR_X fields. label holds integer values stored as reals; points labelled l in 1..size(sums, 2) add to sums(:, l) and all other points are skipped. No MPI reduction is done, so the caller can reduce all labels together in one MPI call.

Type Bound

base_backend_t

Arguments

Type IntentOptional Attributes Name
class(base_backend_t) :: self
real(kind=dp), intent(out) :: sums(:,:)
class(field_t), intent(in) :: g
class(field_t), intent(in) :: label
class(field_t), intent(in) :: a
class(field_t), intent(in) :: b
class(field_t), intent(in) :: c

Calls

proc~~field_labelled_sums_base~~CallsGraph proc~field_labelled_sums_base m_base_backend::base_backend_t%field_labelled_sums_base proc~abort_run m_logger::abort_run proc~field_labelled_sums_base->proc~abort_run interface~str m_logger::str proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized

Called by

proc~~field_labelled_sums_base~~CalledByGraph proc~field_labelled_sums_base m_base_backend::base_backend_t%field_labelled_sums_base proc~project_forces_adm m_adm::adm_t%project_forces_adm proc~project_forces_adm->proc~field_labelled_sums_base