FV3 Bundle
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly.f90
Go to the documentation of this file.
1
!==========================================================================
2
elemental function
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly
(sa, p)
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
35
use
gsw_mod_toolbox
,
only
:
gsw_ct_freezing_poly
,
gsw_enthalpy
36
use
gsw_mod_toolbox
,
only
:
gsw_t_freezing_poly
,
gsw_enthalpy_ice
37
use
gsw_mod_toolbox
,
only
:
gsw_enthalpy_first_derivatives
38
39
use
gsw_mod_kinds
40
41
implicit none
42
43
real (r8)
,
intent(in)
:: sa, p
44
45
real (r8)
::
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly
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
58
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly
= sa*h_hat_ct / &
59
(h - h_ih - sa*h_hat_sa)
60
61
return
62
end function
63
64
!--------------------------------------------------------------------------
gsw_mod_toolbox
Definition:
gsw_mod_toolbox.f90:1
gsw_mod_toolbox::gsw_melting_seaice_equilibrium_sa_ct_ratio_poly
Definition:
gsw_mod_toolbox.f90:819
gsw_mod_toolbox::gsw_t_freezing_poly
Definition:
gsw_mod_toolbox.f90:1473
gsw_mod_toolbox::gsw_enthalpy_ice
Definition:
gsw_mod_toolbox.f90:476
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly
elemental real(r8) function gsw_melting_seaice_equilibrium_sa_ct_ratio_poly(sa, p)
Definition:
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly.f90:3
gsw_mod_toolbox::gsw_enthalpy
Definition:
gsw_mod_toolbox.f90:440
gsw_mod_toolbox::gsw_enthalpy_first_derivatives
Definition:
gsw_mod_toolbox.f90:461
gsw_mod_kinds
Definition:
gsw_mod_kinds.f90:2
gsw_mod_toolbox::gsw_ct_freezing_poly
Definition:
gsw_mod_toolbox.f90:347
src
fv3-bundle
gsw
toolbox
gsw_melting_seaice_equilibrium_sa_ct_ratio_poly.f90
Generated on Tue Nov 6 2018 11:38:37 for FV3 Bundle by
1.8.14