fill_thermal_driving Subroutine

public subroutine fill_thermal_driving(state_handle, buf)

T* = T_far − T_f(S_far, p_top) (degC) — the far-field temperature above the IN-SITU freezing point at the interface pressure. Positive drives melting. This is the single number the melt rate is roughly linear in, so it is the first thing to look at when a melt rate looks wrong.

Arguments

Type IntentOptional Attributes Name
class(*), intent(in) :: state_handle
real(kind=wp), intent(inout) :: buf(:,:,:)

Calls

proc~~fill_thermal_driving~~CallsGraph proc~fill_thermal_driving fill_thermal_driving proc~thermal_driving_impl thermal_driving_impl proc~fill_thermal_driving->proc~thermal_driving_impl proc~eos_freezing_point eos_freezing_point proc~thermal_driving_impl->proc~eos_freezing_point

Source Code

   subroutine fill_thermal_driving(state_handle, buf)
      !! `T* = T_far − T_f(S_far, p_top)` (degC) — the far-field
      !! temperature above the IN-SITU freezing point at the interface
      !! pressure.  Positive drives melting.  This is the single number
      !! the melt rate is roughly linear in, so it is the first thing to
      !! look at when a melt rate looks wrong.
      class(*), intent(in) :: state_handle
      real(wp), intent(inout) :: buf(:, :, :)
      select type (state => state_handle)
      class is (ocean_state_t)
         call thermal_driving_impl(state%cavity_flux%t_far, state%cavity_flux%s_far, &
                                   state%multilayer%p_top, state%cavity_flux%active, &
                                   state%eos, buf)
      end select
   end subroutine fill_thermal_driving