MOM6
mom_eos::calculate_tfreeze Interface Reference

Detailed Description

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

Definition at line 50 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 (PSU)
[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 187 of file MOM_EOS.F90.

187  real, dimension(:), intent(in) :: s !< Salinity (PSU)
188  real, dimension(:), intent(in) :: pressure !< Pressure (Pa)
189  real, dimension(:), intent(out) :: t_fr !< Freezing point potential temperature referenced to the surface (degC)
190  integer, intent(in) :: start !< Starting index within the array
191  integer, intent(in) :: npts !< The number of values to calculate
192  type(eos_type), pointer :: eos !< Equation of state structure
193 
194  if (.not.associated(eos)) call mom_error(fatal, &
195  "calculate_TFreeze_scalar called with an unassociated EOS_type EOS.")
196 
197  select case (eos%form_of_TFreeze)
198  case (tfreeze_linear)
199  call calculate_tfreeze_linear(s, pressure, t_fr, start, npts, &
200  eos%TFr_S0_P0, eos%dTFr_dS, eos%dTFr_dp)
201  case (tfreeze_millero)
202  call calculate_tfreeze_millero(s, pressure, t_fr, start, npts)
203  case (tfreeze_teos10)
204  call calculate_tfreeze_teos10(s, pressure, t_fr, start, npts)
205  case default
206  call mom_error(fatal, &
207  "calculate_TFreeze_scalar: form_of_TFreeze is not valid.")
208  end select
209 

◆ 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 (PSU)
[in]pressurePressure (Pa)
[out]t_frFreezing point potential temperature referenced to the surface (degC)
eosEquation of state structure

Definition at line 162 of file MOM_EOS.F90.

162  real, intent(in) :: s !< Salinity (PSU)
163  real, intent(in) :: pressure !< Pressure (Pa)
164  real, intent(out) :: t_fr !< Freezing point potential temperature referenced to the surface (degC)
165  type(eos_type), pointer :: eos !< Equation of state structure
166 
167  if (.not.associated(eos)) call mom_error(fatal, &
168  "calculate_TFreeze_scalar called with an unassociated EOS_type EOS.")
169 
170  select case (eos%form_of_TFreeze)
171  case (tfreeze_linear)
172  call calculate_tfreeze_linear(s, pressure, t_fr, eos%TFr_S0_P0, &
173  eos%dTFr_dS, eos%dTFr_dp)
174  case (tfreeze_millero)
175  call calculate_tfreeze_millero(s, pressure, t_fr)
176  case (tfreeze_teos10)
177  call calculate_tfreeze_teos10(s, pressure, t_fr)
178  case default
179  call mom_error(fatal, &
180  "calculate_TFreeze_scalar: form_of_TFreeze is not valid.")
181  end select
182 

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