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
29
use
gsw_mod_toolbox
,
only
:
gsw_ct_freezing_poly
,
gsw_enthalpy
30
use
gsw_mod_toolbox
,
only
:
gsw_t_freezing_poly
,
gsw_enthalpy_ice
31
use
gsw_mod_toolbox
,
only
:
gsw_enthalpy_first_derivatives
32
33
use
gsw_mod_kinds
34
35
implicit none
36
37
real (r8)
,
intent(in)
:: sa, p
38
39
real (r8)
::
gsw_melting_ice_equilibrium_sa_ct_ratio_poly
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
53
gsw_melting_ice_equilibrium_sa_ct_ratio_poly
= sa*h_hat_ct &
54
/ (h - h_ih - sa*h_hat_sa)
55
56
return
57
end function
58
59
!--------------------------------------------------------------------------
gsw_mod_toolbox
Definition:
gsw_mod_toolbox.f90:1
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_mod_toolbox::gsw_enthalpy
Definition:
gsw_mod_toolbox.f90:440
gsw_mod_toolbox::gsw_melting_ice_equilibrium_sa_ct_ratio_poly
Definition:
gsw_mod_toolbox.f90:783
gsw_mod_toolbox::gsw_enthalpy_first_derivatives
Definition:
gsw_mod_toolbox.f90:461
gsw_mod_kinds
Definition:
gsw_mod_kinds.f90:2
gsw_melting_ice_equilibrium_sa_ct_ratio_poly
elemental real(r8) function gsw_melting_ice_equilibrium_sa_ct_ratio_poly(sa, p)
Definition:
gsw_melting_ice_equilibrium_sa_ct_ratio_poly.f90:3
gsw_mod_toolbox::gsw_ct_freezing_poly
Definition:
gsw_mod_toolbox.f90:347
src
fv3-bundle
gsw
toolbox
gsw_melting_ice_equilibrium_sa_ct_ratio_poly.f90
Generated on Tue Nov 6 2018 11:38:37 for FV3 Bundle by
1.8.14