Go to the documentation of this file.
10 use gsw_mod_toolbox,
only : gsw_ct_freezing_exact
12 implicit none ;
private
45 real,
intent(in) :: pres
46 real,
intent(out) :: T_Fr
47 real,
intent(in) :: TFr_S0_P0
48 real,
intent(in) :: dTFr_dS
50 real,
intent(in) :: dTFr_dp
53 t_fr = (tfr_s0_p0 + dtfr_ds*s) + dtfr_dp*pres
61 TFr_S0_P0, dTFr_dS, dTFr_dp)
62 real,
dimension(:),
intent(in) :: S
63 real,
dimension(:),
intent(in) :: pres
64 real,
dimension(:),
intent(out) :: T_Fr
65 integer,
intent(in) :: start
66 integer,
intent(in) :: npts
67 real,
intent(in) :: TFr_S0_P0
68 real,
intent(in) :: dTFr_dS
70 real,
intent(in) :: dTFr_dp
74 do j=start,start+npts-1
75 t_fr(j) = (tfr_s0_p0 + dtfr_ds*s(j)) + dtfr_dp*pres(j)
88 real,
intent(in) :: pres
89 real,
intent(out) :: T_Fr
92 real,
parameter :: cS1 = -0.0575, cs3_2 = 1.710523e-3, cs2 = -2.154996e-4
93 real,
parameter :: dTFr_dp = -7.75e-8
95 t_fr = s*(cs1 + (cs3_2 * sqrt(max(s,0.0)) + cs2 * s)) + dtfr_dp*pres
106 real,
dimension(:),
intent(in) :: S
107 real,
dimension(:),
intent(in) :: pres
108 real,
dimension(:),
intent(out) :: T_Fr
109 integer,
intent(in) :: start
110 integer,
intent(in) :: npts
113 real,
parameter :: cS1 = -0.0575, cs3_2 = 1.710523e-3, cs2 = -2.154996e-4
114 real,
parameter :: dTFr_dp = -7.75e-8
117 do j=start,start+npts-1
118 t_fr(j) = s(j)*(cs1 + (cs3_2 * sqrt(max(s(j),0.0)) + cs2 * s(j))) + &
128 real,
intent(in) :: S
129 real,
intent(in) :: pres
130 real,
intent(out) :: T_Fr
133 real,
dimension(1) :: S0, pres0
134 real,
dimension(1) :: tfr0
148 real,
dimension(:),
intent(in) :: S
149 real,
dimension(:),
intent(in) :: pres
150 real,
dimension(:),
intent(out) :: T_Fr
151 integer,
intent(in) :: start
152 integer,
intent(in) :: npts
155 real,
parameter :: Pa2db = 1.e-4
159 real,
parameter :: saturation_fraction = 0.0
161 do j=start,start+npts-1
166 if (s(j) < -1.0e-10) cycle
167 t_fr(j) = gsw_ct_freezing_exact(zs,zp,saturation_fraction)
subroutine calculate_tfreeze_linear_scalar(S, pres, T_Fr, TFr_S0_P0, dTFr_dS, dTFr_dp)
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt],...
subroutine calculate_tfreeze_millero_array(S, pres, T_Fr, start, npts)
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt],...
subroutine calculate_tfreeze_teos10_scalar(S, pres, T_Fr)
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g...
Freezing point expressions.
Compute the freezing point potential temperature [degC] from salinity [PSU] and pressure [Pa] using t...
Compute the freezing point potential temperature [degC] from salinity [ppt] and pressure [Pa] using a...
subroutine calculate_tfreeze_millero_scalar(S, pres, T_Fr)
This subroutine computes the freezing point potential temperature [degC] from salinity [ppt],...
subroutine calculate_tfreeze_teos10_array(S, pres, T_Fr, start, npts)
This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g...
Compute the freezing point conservative temperature [degC] from absolute salinity [g/kg] and pressure...
subroutine calculate_tfreeze_linear_array(S, pres, T_Fr, start, npts, TFr_S0_P0, dTFr_dS, dTFr_dp)
This subroutine computes an array of freezing point potential temperatures [degC] from salinity [ppt]...