FV3 Bundle
gsw_ct_freezing_poly.f90
Go to the documentation of this file.
1
!==========================================================================
2
elemental function
gsw_ct_freezing_poly
(sa, p, saturation_fraction)
3
!==========================================================================
4
!
5
! Calculates the Conservative Temperature at which seawater freezes.
6
! The error of this fit ranges between -5e-4 K and 6e-4 K when compared
7
! with the Conservative Temperature calculated from the exact in-situ
8
! freezing temperature which is found by a Newton-Raphson iteration of the
9
! equality of the chemical potentials of water in seawater and in ice.
10
! Note that the Conservative temperature freezing temperature can be found
11
! by this exact method using the function gsw_CT_freezing.
12
!
13
! SA = Absolute Salinity [ g/kg ]
14
! p = sea pressure [ dbar ]
15
! ( i.e. absolute pressure - 10.1325 dbar )
16
! saturation_fraction = the saturation fraction of dissolved air in
17
! seawater
18
!
19
! CT_freezing = Conservative Temperature at freezing of seawater [ deg C ]
20
! That is, the freezing temperature expressed in
21
! terms of Conservative Temperature (ITS-90).
22
!--------------------------------------------------------------------------
23
24
use
gsw_mod_teos10_constants
,
only
:
gsw_sso
25
26
use
gsw_mod_freezing_poly_coefficients
27
28
use
gsw_mod_kinds
29
30
implicit none
31
32
real (r8)
,
intent(in)
:: sa, p, saturation_fraction
33
34
real (r8)
::
gsw_ct_freezing_poly
35
36
real (r8)
:: p_r, sa_r, x
37
38
sa_r = sa*1e-2_r8
39
x = sqrt(sa_r)
40
p_r = p*1e-4_r8
41
42
gsw_ct_freezing_poly
=
c0
&
43
+ sa_r*(
c1
+ x*(
c2
+ x*(
c3
+ x*(
c4
+ x*(
c5
+
c6
*x))))) &
44
+ p_r*(
c7
+ p_r*(
c8
+
c9
*p_r)) + sa_r*p_r*(
c10
+ p_r*(
c12
&
45
+ p_r*(
c15
+
c21
*sa_r)) + sa_r*(
c13
+
c17
*p_r +
c19
*sa_r) &
46
+ x*(
c11
+ p_r*(
c14
+
c18
*p_r) + sa_r*(
c16
+
c20
*p_r +
c22
*sa_r)))
47
48
! Adjust for the effects of dissolved air
49
gsw_ct_freezing_poly
=
gsw_ct_freezing_poly
- saturation_fraction* &
50
(1e-3_r8)*(2.4_r8 - a*sa)*(1.0_r8 +
b
*(1.0_r8 - sa/
gsw_sso
))
51
52
return
53
end function
gsw_mod_freezing_poly_coefficients::c11
real(r8), parameter c11
Definition:
gsw_mod_freezing_poly_coefficients.f90:20
gsw_mod_freezing_poly_coefficients::c21
real(r8), parameter c21
Definition:
gsw_mod_freezing_poly_coefficients.f90:30
gsw_mod_freezing_poly_coefficients::c12
real(r8), parameter c12
Definition:
gsw_mod_freezing_poly_coefficients.f90:21
gsw_mod_freezing_poly_coefficients::c5
real(r8), parameter c5
Definition:
gsw_mod_freezing_poly_coefficients.f90:14
gsw_mod_freezing_poly_coefficients::c15
real(r8), parameter c15
Definition:
gsw_mod_freezing_poly_coefficients.f90:24
gsw_mod_freezing_poly_coefficients::c4
real(r8), parameter c4
Definition:
gsw_mod_freezing_poly_coefficients.f90:13
gsw_mod_freezing_poly_coefficients::c8
real(r8), parameter c8
Definition:
gsw_mod_freezing_poly_coefficients.f90:17
gsw_mod_freezing_poly_coefficients::c2
real(r8), parameter c2
Definition:
gsw_mod_freezing_poly_coefficients.f90:11
gsw_mod_teos10_constants
Definition:
gsw_mod_teos10_constants.f90:2
gsw_mod_teos10_constants::gsw_sso
real(r8), parameter gsw_sso
Definition:
gsw_mod_teos10_constants.f90:36
gsw_mod_freezing_poly_coefficients::c16
real(r8), parameter c16
Definition:
gsw_mod_freezing_poly_coefficients.f90:25
gsw_mod_freezing_poly_coefficients::c17
real(r8), parameter c17
Definition:
gsw_mod_freezing_poly_coefficients.f90:26
gsw_mod_freezing_poly_coefficients::c3
real(r8), parameter c3
Definition:
gsw_mod_freezing_poly_coefficients.f90:12
gsw_mod_freezing_poly_coefficients::c18
real(r8), parameter c18
Definition:
gsw_mod_freezing_poly_coefficients.f90:27
gsw_mod_freezing_poly_coefficients::c13
real(r8), parameter c13
Definition:
gsw_mod_freezing_poly_coefficients.f90:22
gsw_mod_freezing_poly_coefficients::c10
real(r8), parameter c10
Definition:
gsw_mod_freezing_poly_coefficients.f90:19
gsw_mod_freezing_poly_coefficients::c0
real(r8), parameter c0
Definition:
gsw_mod_freezing_poly_coefficients.f90:9
gsw_mod_kinds
Definition:
gsw_mod_kinds.f90:2
gsw_mod_freezing_poly_coefficients::c14
real(r8), parameter c14
Definition:
gsw_mod_freezing_poly_coefficients.f90:23
gsw_mod_freezing_poly_coefficients::b
real(r8), parameter b
Definition:
gsw_mod_freezing_poly_coefficients.f90:35
gsw_mod_freezing_poly_coefficients::c6
real(r8), parameter c6
Definition:
gsw_mod_freezing_poly_coefficients.f90:15
gsw_mod_freezing_poly_coefficients::c20
real(r8), parameter c20
Definition:
gsw_mod_freezing_poly_coefficients.f90:29
gsw_mod_freezing_poly_coefficients::c19
real(r8), parameter c19
Definition:
gsw_mod_freezing_poly_coefficients.f90:28
gsw_mod_freezing_poly_coefficients::c9
real(r8), parameter c9
Definition:
gsw_mod_freezing_poly_coefficients.f90:18
gsw_mod_freezing_poly_coefficients::c22
real(r8), parameter c22
Definition:
gsw_mod_freezing_poly_coefficients.f90:31
gsw_mod_freezing_poly_coefficients::c7
real(r8), parameter c7
Definition:
gsw_mod_freezing_poly_coefficients.f90:16
gsw_mod_freezing_poly_coefficients::c1
real(r8), parameter c1
Definition:
gsw_mod_freezing_poly_coefficients.f90:10
gsw_ct_freezing_poly
elemental real(r8) function gsw_ct_freezing_poly(sa, p, saturation_fraction)
Definition:
gsw_ct_freezing_poly.f90:3
gsw_mod_freezing_poly_coefficients
Definition:
gsw_mod_freezing_poly_coefficients.f90:2
src
fv3-bundle
gsw
toolbox
gsw_ct_freezing_poly.f90
Generated on Tue Nov 6 2018 11:38:36 for FV3 Bundle by
1.8.14