Fill du_stress / dv_stress with the surface stress
acceleration tau / (rho_0 * h_top) at k = nz. Outer-shim:
hoist the derived-type derefs (this%tau_x, this%du_stress%data,
ms%h_layer, ms%wet_mask) to the host, dispatch to flat-impl.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hgrid_t), | intent(in) | :: | grid | |||
| type(ocean_surface_stress_t), | intent(inout) | :: | this | |||
| type(multilayer_state_t), | intent(in) | :: | ms |
subroutine ocean_surface_stress_compute_tendencies(grid, this, ms) !! Fill `du_stress` / `dv_stress` with the surface stress !! acceleration `tau / (rho_0 * h_top)` at k = nz. Outer-shim: !! hoist the derived-type derefs (`this%tau_x`, `this%du_stress%data`, !! `ms%h_layer`, `ms%wet_mask`) to the host, dispatch to flat-impl. type(hgrid_t), intent(in) :: grid type(ocean_surface_stress_t), intent(inout) :: this type(multilayer_state_t), intent(in) :: ms if (this%direct_stress .and. this%hmix_stress > 0.0_wp) then call surfstress_distributed_impl( & ms%h_layer, ms%wet_mask, & this%tau_x, this%tau_y, & this%du_stress%data, this%dv_stress%data, & this%rho0, this%h_min, this%hmix_stress, & grid%nx_total, grid%ny_total, ms%nz_ml) else call surfstress_compute_impl( & ms%h_layer, ms%wet_mask, & this%tau_x, this%tau_y, & this%du_stress%data, this%dv_stress%data, & this%rho0, this%h_min, & grid%nx_total, grid%ny_total, ms%nz_ml) end if end subroutine ocean_surface_stress_compute_tendencies