MOM6
mom_eos::calculate_tfreeze Interface Reference

Detailed Description

Calculates the freezing point of sea water from T, S and P.

Definition at line 81 of file MOM_EOS.F90.

Private functions

subroutine calculate_tfreeze_scalar (S, pressure, T_fr, EOS)
 Calls the appropriate subroutine to calculate the freezing point for scalar inputs. More...
 
subroutine calculate_tfreeze_array (S, pressure, T_fr, start, npts, EOS)
 Calls the appropriate subroutine to calculate the freezing point for a 1-D array. More...
 

Functions and subroutines

◆ calculate_tfreeze_array()

subroutine mom_eos::calculate_tfreeze::calculate_tfreeze_array ( real, dimension(:), intent(in)  S,
real, dimension(:), intent(in)  pressure,
real, dimension(:), intent(out)  T_fr,
integer, intent(in)  start,
integer, intent(in)  npts,
type(eos_type), pointer  EOS 
)
private

Calls the appropriate subroutine to calculate the freezing point for a 1-D array.

Parameters
[in]sSalinity [ppt]
[in]pressurePressure [Pa]
[out]t_frFreezing point potential temperature referenced to the surface [degC]
[in]startStarting index within the array
[in]nptsThe number of values to calculate
eosEquation of state structure

Definition at line 309 of file MOM_EOS.F90.

309  real, dimension(:), intent(in) :: S !< Salinity [ppt]
310  real, dimension(:), intent(in) :: pressure !< Pressure [Pa]
311  real, dimension(:), intent(out) :: T_fr !< Freezing point potential temperature referenced
312  !! to the surface [degC]
313  integer, intent(in) :: start !< Starting index within the array
314  integer, intent(in) :: npts !< The number of values to calculate
315  type(EOS_type), pointer :: EOS !< Equation of state structure
316 
317  if (.not.associated(eos)) call mom_error(fatal, &
318  "calculate_TFreeze_scalar called with an unassociated EOS_type EOS.")
319 
320  select case (eos%form_of_TFreeze)
321  case (tfreeze_linear)
322  call calculate_tfreeze_linear(s, pressure, t_fr, start, npts, &
323  eos%TFr_S0_P0, eos%dTFr_dS, eos%dTFr_dp)
324  case (tfreeze_millero)
325  call calculate_tfreeze_millero(s, pressure, t_fr, start, npts)
326  case (tfreeze_teos10)
327  call calculate_tfreeze_teos10(s, pressure, t_fr, start, npts)
328  case default
329  call mom_error(fatal, &
330  "calculate_TFreeze_scalar: form_of_TFreeze is not valid.")
331  end select
332 

◆ calculate_tfreeze_scalar()

subroutine mom_eos::calculate_tfreeze::calculate_tfreeze_scalar ( real, intent(in)  S,
real, intent(in)  pressure,
real, intent(out)  T_fr,
type(eos_type), pointer  EOS 
)
private

Calls the appropriate subroutine to calculate the freezing point for scalar inputs.

Parameters
[in]sSalinity [ppt]
[in]pressurePressure [Pa]
[out]t_frFreezing point potential temperature referenced to the surface [degC]
eosEquation of state structure

Definition at line 283 of file MOM_EOS.F90.

283  real, intent(in) :: S !< Salinity [ppt]
284  real, intent(in) :: pressure !< Pressure [Pa]
285  real, intent(out) :: T_fr !< Freezing point potential temperature referenced
286  !! to the surface [degC]
287  type(EOS_type), pointer :: EOS !< Equation of state structure
288 
289  if (.not.associated(eos)) call mom_error(fatal, &
290  "calculate_TFreeze_scalar called with an unassociated EOS_type EOS.")
291 
292  select case (eos%form_of_TFreeze)
293  case (tfreeze_linear)
294  call calculate_tfreeze_linear(s, pressure, t_fr, eos%TFr_S0_P0, &
295  eos%dTFr_dS, eos%dTFr_dp)
296  case (tfreeze_millero)
297  call calculate_tfreeze_millero(s, pressure, t_fr)
298  case (tfreeze_teos10)
299  call calculate_tfreeze_teos10(s, pressure, t_fr)
300  case default
301  call mom_error(fatal, &
302  "calculate_TFreeze_scalar: form_of_TFreeze is not valid.")
303  end select
304 

The documentation for this interface was generated from the following file: