continuity_enter_data Subroutine

private subroutine continuity_enter_data(this)

Bare copyin(this) removed (stack-descriptor map → AMD cross-slot overlap; see ocean_surfstress_enter_data). The face buffers attach below; ct-descriptor presence (so DCs touching ct%h_face_left_x%data don’t per-launch memcpy) comes from the root copyin(state) in ocean_state_enter_data. A V100 A/B with copyin(this) gone is bit-identical and faster overall, so the root copy fully covers it.

Type Bound

continuity_t

Arguments

Type IntentOptional Attributes Name
class(continuity_t), intent(inout) :: this

Calls

proc~~continuity_enter_data~~CallsGraph proc~continuity_enter_data continuity_t%continuity_enter_data proc~continuity_enter_data_impl continuity_enter_data_impl proc~continuity_enter_data->proc~continuity_enter_data_impl proc~scratch_3d_buffer_enter_data_impl scratch_3d_buffer_enter_data_impl proc~continuity_enter_data_impl->proc~scratch_3d_buffer_enter_data_impl

Source Code

   subroutine continuity_enter_data(this)
      !! Bare `copyin(this)` removed (stack-descriptor map → AMD cross-slot
      !! overlap; see ocean_surfstress_enter_data).  The face buffers attach
      !! below; ct-descriptor presence (so DCs touching ct%h_face_left_x%data
      !! don't per-launch memcpy) comes from the root copyin(state) in
      !! ocean_state_enter_data.  A V100 A/B with copyin(this) gone is
      !! bit-identical and faster overall, so the root copy fully covers it.
      class(continuity_t), intent(inout) :: this
      select type (this)
      type is (continuity_t)
         call continuity_enter_data_impl(this)
      end select
   end subroutine continuity_enter_data