FV3 Bundle
gsw_melting_ice_equilibrium_sa_ct_ratio_poly.f90
Go to the documentation of this file.
1 !==========================================================================
2 elemental function gsw_melting_ice_equilibrium_sa_ct_ratio_poly (sa, p)
3 !==========================================================================
4 !
5 ! Calculates the ratio of SA to CT changes when ice melts into seawater
6 ! with both the seawater and the seaice temperatures being almost equal to
7 ! the equilibrium freezing temperature. It is assumed that a small mass
8 ! of ice melts into an infinite mass of seawater. If indeed the
9 ! temperature of the seawater and the ice were both equal to the freezing
10 ! temperature, then no melting or freezing would occur an imbalance
11 ! between these three temperatures is needed for freezing or melting to
12 ! occur (the three temperatures being (1) the seawater temperature,
13 ! (2) the ice temperature, and (3) the freezing temperature.
14 !
15 ! The output, melting_ice_equilibrium_SA_CT_ratio, is dSA/dCT rather than
16 ! dCT/dSA. This is done so that when SA = 0, the output, dSA/dCT is zero
17 ! whereas dCT/dSA would be infinite.
18 !
19 ! SA = Absolute Salinity of seawater [ g/kg ]
20 ! p = sea pressure at which the melting occurs [ dbar ]
21 ! ( i.e. absolute pressure - 10.1325d0 dbar )
22 !
23 ! melting_ice_equilibrium_SA_CT_ratio = the ratio dSA/dCT of SA to CT
24 ! changes when ice melts into seawater, with
25 ! the seawater and seaice being close to the
26 ! freezing temperature. [ g/(kg K) ]
27 !--------------------------------------------------------------------------
28 
32 
33 use gsw_mod_kinds
34 
35 implicit none
36 
37 real (r8), intent(in) :: sa, p
38 
40 
41 real (r8) :: ctf, h, h_ih, t_seaice, h_hat_sa, h_hat_ct
42 
43 real (r8), parameter :: saturation_fraction = 0.0_r8
44 
45 ctf = gsw_ct_freezing_poly(sa,p,saturation_fraction)
46 t_seaice = gsw_t_freezing_poly(sa,p,saturation_fraction)
47 
48 h = gsw_enthalpy(sa,ctf,p)
49 h_ih = gsw_enthalpy_ice(t_seaice,p)
50 call gsw_enthalpy_first_derivatives(sa,ctf,p,h_hat_sa,h_hat_ct)
51  ! note that h_hat_ct is equal to cp0*(273.15 + t)/(273.15 + pt0)
52 
54  / (h - h_ih - sa*h_hat_sa)
55 
56 return
57 end function
58 
59 !--------------------------------------------------------------------------
elemental real(r8) function gsw_melting_ice_equilibrium_sa_ct_ratio_poly(sa, p)