subroutine ocean_surfflux_enter_data_impl(this)
type(ocean_surface_flux_t), intent(inout) :: this
!$acc enter data copyin(this%Q_heat, this%Q_salt)
!$acc update device(this%Q_heat, this%Q_salt)
if (this%use_components) then
!$acc enter data copyin(this%q_sw, this%q_lw, this%q_lat, this%q_sens, &
!$acc& this%heat_added, this%heat_cavity, this%evap, &
!$acc& this%lprec, this%fprec, &
!$acc& this%vprec, this%lrunoff, this%frunoff, this%seaice_melt, &
!$acc& this%heat_content_lprec, this%heat_content_fprec, &
!$acc& this%heat_content_vprec, this%heat_content_lrunoff, &
!$acc& this%heat_content_frunoff, this%heat_content_seaice_melt, &
!$acc& this%heat_content_massin, this%heat_content_massout, &
!$acc& this%salt_flux, this%salt_cavity, &
!$acc& this%p_surf_atm, this%p_surf)
!$acc update device(this%q_sw, this%q_lw, this%q_lat, this%q_sens, &
!$acc& this%heat_added, this%heat_cavity, this%evap, &
!$acc& this%lprec, this%fprec, &
!$acc& this%vprec, this%lrunoff, this%frunoff, this%seaice_melt, &
!$acc& this%heat_content_lprec, this%heat_content_fprec, &
!$acc& this%heat_content_vprec, this%heat_content_lrunoff, &
!$acc& this%heat_content_frunoff, this%heat_content_seaice_melt, &
!$acc& this%heat_content_massin, this%heat_content_massout, &
!$acc& this%salt_flux, this%salt_cavity, &
!$acc& this%p_surf_atm, this%p_surf)
end if
end subroutine ocean_surfflux_enter_data_impl