resolve_field_t Subroutine

public subroutine resolve_field_t(u_dev, u)

Uses

  • proc~~resolve_field_t~~UsesGraph proc~resolve_field_t m_omptgt_backend::resolve_field_t iso_c_binding iso_c_binding proc~resolve_field_t->iso_c_binding

Views the device storage of u as an array of its current shape. The pointer holds a device address: pass it to a kernel, never index it on the host.

The storage is reached through the type-bound get_dev_ptr, which omptgt_field_t overrides, rather than a select type: CCE was seen to take the class default branch of a select type here for a field that was an omptgt_field_t (perf_transeq, whose fields are host associated into an internal procedure), while dispatching on the same field worked.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), pointer, contiguous, dimension(:, :, :) :: u_dev
class(field_t), intent(in) :: u

Calls

proc~~resolve_field_t~~CallsGraph proc~resolve_field_t m_omptgt_backend::resolve_field_t interface~str m_logger::str proc~resolve_field_t->interface~str proc~abort_run m_logger::abort_run proc~resolve_field_t->proc~abort_run proc~get_dev_ptr m_field::field_t%get_dev_ptr proc~resolve_field_t->proc~get_dev_ptr proc~get_shape m_field::field_t%get_shape proc~resolve_field_t->proc~get_shape 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