Offset-copy normal-width input arrays into the wide shadow arrays.
Dispatches to the non-polymorphic _impl body to avoid the
class-box GPU descriptor issue (same pattern as enter/exit_data).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bt_wide_t), | intent(inout) | :: | this | |||
| type(hgrid_t), | intent(in) | :: | grid | |||
| real(kind=wp), | intent(in) | :: | bt_eta(grid%nx_total,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | bt_H_ref(grid%nx_total,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | bt_ubt(grid%nx_total+1,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | bt_vbt(grid%nx_total,grid%ny_total+1) | |||
| real(kind=wp), | intent(in) | :: | bt_ubt_prev(grid%nx_total+1,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | bt_vbt_prev(grid%nx_total,grid%ny_total+1) | |||
| real(kind=wp), | intent(in) | :: | bt_rem_u(grid%nx_total+1,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | bt_rem_v(grid%nx_total,grid%ny_total+1) | |||
| real(kind=wp), | intent(in) | :: | force_u(grid%nx_total+1,grid%ny_total) | |||
| real(kind=wp), | intent(in) | :: | force_v(grid%nx_total,grid%ny_total+1) |
subroutine bt_wide_copy_in(this, grid, & bt_eta, bt_H_ref, bt_ubt, bt_vbt, & bt_ubt_prev, bt_vbt_prev, & bt_rem_u, bt_rem_v, & force_u, force_v) !! Offset-copy normal-width input arrays into the wide shadow arrays. !! Dispatches to the non-polymorphic `_impl` body to avoid the !! class-box GPU descriptor issue (same pattern as enter/exit_data). class(bt_wide_t), intent(inout) :: this type(hgrid_t), intent(in) :: grid real(wp), intent(in) :: bt_eta(grid%nx_total, grid%ny_total) real(wp), intent(in) :: bt_H_ref(grid%nx_total, grid%ny_total) real(wp), intent(in) :: bt_ubt(grid%nx_total + 1, grid%ny_total) real(wp), intent(in) :: bt_vbt(grid%nx_total, grid%ny_total + 1) real(wp), intent(in) :: bt_ubt_prev(grid%nx_total + 1, grid%ny_total) real(wp), intent(in) :: bt_vbt_prev(grid%nx_total, grid%ny_total + 1) real(wp), intent(in) :: bt_rem_u(grid%nx_total + 1, grid%ny_total) real(wp), intent(in) :: bt_rem_v(grid%nx_total, grid%ny_total + 1) real(wp), intent(in) :: force_u(grid%nx_total + 1, grid%ny_total) real(wp), intent(in) :: force_v(grid%nx_total, grid%ny_total + 1) select type (this) type is (bt_wide_t) call bt_wide_copy_in_impl(this, grid, & bt_eta, bt_H_ref, bt_ubt, bt_vbt, & bt_ubt_prev, bt_vbt_prev, & bt_rem_u, bt_rem_v, force_u, force_v) end select end subroutine bt_wide_copy_in