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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(out), | pointer, contiguous, dimension(:, :, :) | :: | u_dev | ||
| class(field_t), | intent(in) | :: | u |