Exchange-velocity dispatch with the Coriolis parameter taken from
the bundle (par%f_cor). Thin wrapper over
cavity_exchange_velocities_f, which holds the dispatch.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ocean_cavity_exchange_t), | intent(in) | :: | par |
Law selector + parameters. |
||
| type(ocean_cavity_const_t), | intent(in) | :: | const |
Constants bundle. |
||
| real(kind=wp), | intent(in) | :: | u_star |
Friction velocity (m/s), strictly positive. |
||
| real(kind=wp), | intent(in) | :: | l_plus |
Trial viscous Obukhov scale, or |
||
| real(kind=wp), | intent(in) | :: | T_w |
Far-field temperature (degC) — reserved-law argument. |
||
| real(kind=wp), | intent(in) | :: | S_w |
Far-field salinity (g/kg) — reserved-law argument. |
||
| real(kind=wp), | intent(in) | :: | T_b |
Trial interface temperature (degC) — reserved-law argument. |
||
| real(kind=wp), | intent(in) | :: | S_b |
Trial interface salinity (g/kg) — reserved-law argument. |
||
| real(kind=wp), | intent(out) | :: | gamma_t |
Heat exchange velocity (m/s). Zero on any non-OK status. |
||
| real(kind=wp), | intent(out) | :: | gamma_s |
Salt exchange velocity (m/s). Zero on any non-OK status. |
||
| integer, | intent(out) | :: | ierr |
|
pure subroutine cavity_exchange_velocities(par, const, u_star, l_plus, & T_w, S_w, T_b, S_b, gamma_t, gamma_s, ierr) !! Exchange-velocity dispatch with the Coriolis parameter taken from !! the bundle (`par%f_cor`). Thin wrapper over !! `cavity_exchange_velocities_f`, which holds the dispatch. !$acc routine seq type(ocean_cavity_exchange_t), intent(in) :: par !! Law selector + parameters. type(ocean_cavity_const_t), intent(in) :: const !! Constants bundle. real(wp), intent(in) :: u_star !! Friction velocity (m/s), strictly positive. real(wp), intent(in) :: l_plus !! Trial viscous Obukhov scale, or `CAVITY_L_PLUS_NEUTRAL`. real(wp), intent(in) :: T_w !! Far-field temperature (degC) — reserved-law argument. real(wp), intent(in) :: S_w !! Far-field salinity (g/kg) — reserved-law argument. real(wp), intent(in) :: T_b !! Trial interface temperature (degC) — reserved-law argument. real(wp), intent(in) :: S_b !! Trial interface salinity (g/kg) — reserved-law argument. real(wp), intent(out) :: gamma_t !! Heat exchange velocity (m/s). Zero on any non-OK status. real(wp), intent(out) :: gamma_s !! Salt exchange velocity (m/s). Zero on any non-OK status. integer, intent(out) :: ierr !! `CAVITY_MELT_*` status. call cavity_exchange_velocities_f(par, par%f_cor, const, u_star, l_plus, & T_w, S_w, T_b, S_b, gamma_t, gamma_s, ierr) end subroutine cavity_exchange_velocities