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