cavity_solve_melt_f with the Coriolis parameter taken from the
bundle (par%f_cor) — the scalar entry point every host caller
and the kernel suite use.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | T_w |
Far-field temperature (degC). |
||
| real(kind=wp), | intent(in) | :: | S_w |
Far-field salinity (g/kg). Must exceed |
||
| real(kind=wp), | intent(in) | :: | p_b |
Interface pressure (Pa). |
||
| real(kind=wp), | intent(in) | :: | u_star |
Friction velocity (m/s), strictly positive — from
|
||
| real(kind=wp), | intent(in) | :: | S_i |
Ice salinity (g/kg), >= 0. |
||
| type(ocean_cavity_exchange_t), | intent(in) | :: | par |
Exchange-law bundle. |
||
| type(ocean_cavity_ice_t), | intent(in) | :: | ice |
Ice-conduction bundle. |
||
| type(eos_t), | intent(in) | :: | eos |
Shared EOS handle — the liquidus. |
||
| type(ocean_cavity_const_t), | intent(in) | :: | const |
Constants bundle. |
||
| type(ocean_cavity_solution_t), | intent(out) | :: | sol |
Interface state, fluxes and solver diagnostics. On any non-OK
status this carries the safe state ( |
||
| integer, | intent(out) | :: | ierr |
|
pure subroutine cavity_solve_melt(T_w, S_w, p_b, u_star, S_i, par, ice, eos, const, & sol, ierr) !! `cavity_solve_melt_f` with the Coriolis parameter taken from the !! bundle (`par%f_cor`) — the scalar entry point every host caller !! and the kernel suite use. !$acc routine seq real(wp), intent(in) :: T_w !! Far-field temperature (degC). real(wp), intent(in) :: S_w !! Far-field salinity (g/kg). Must exceed `S_i`. real(wp), intent(in) :: p_b !! Interface pressure (Pa). real(wp), intent(in) :: u_star !! Friction velocity (m/s), strictly positive — from !! `cavity_ustar`. real(wp), intent(in) :: S_i !! Ice salinity (g/kg), >= 0. type(ocean_cavity_exchange_t), intent(in) :: par !! Exchange-law bundle. type(ocean_cavity_ice_t), intent(in) :: ice !! Ice-conduction bundle. type(eos_t), intent(in) :: eos !! Shared EOS handle — the liquidus. type(ocean_cavity_const_t), intent(in) :: const !! Constants bundle. type(ocean_cavity_solution_t), intent(out) :: sol !! Interface state, fluxes and solver diagnostics. On any non-OK !! status this carries the safe state (`m_mass` exactly zero). integer, intent(out) :: ierr !! `CAVITY_MELT_*` status. call cavity_solve_melt_f(T_w, S_w, p_b, u_star, S_i, par, par%f_cor, ice, eos, & const, sol, ierr) end subroutine cavity_solve_melt