FV3 Bundle
gsw_alpha.f90
Go to the documentation of this file.
1 !==========================================================================
2 elemental function gsw_alpha (sa, ct, p)
3 !==========================================================================
4 !
5 ! Calculates the thermal expansion coefficient of seawater with respect to
6 ! Conservative Temperature using the computationally-efficient expression
7 ! for specific volume in terms of SA, CT and p (Roquet et al., 2014).
8 !
9 ! SA = Absolute Salinity [ g/kg ]
10 ! CT = Conservative Temperature (ITS-90) [ deg C ]
11 ! p = sea pressure [ dbar ]
12 ! ( i.e. absolute pressure - 10.1325 dbar )
13 !
14 ! alpha = thermal expansion coefficient [ 1/K ]
15 ! with respect to Conservative Temperature
16 !--------------------------------------------------------------------------
17 
18 use gsw_mod_toolbox, only : gsw_specvol
19 
21 
23 
24 use gsw_mod_kinds
25 
26 implicit none
27 
28 real (r8), intent(in) :: sa, ct, p
29 
30 real (r8) :: gsw_alpha
31 
32 real (r8) :: xs, ys, z, v_ct_part
33 
34 xs = sqrt(gsw_sfac*sa + offset)
35 ys = ct*0.025_r8
36 z = p*1e-4_r8
37 
38 v_ct_part = a000 + xs*(a100 + xs*(a200 + xs*(a300 + xs*(a400 + a500*xs)))) &
39  + ys*(a010 + xs*(a110 + xs*(a210 + xs*(a310 + a410*xs))) &
40  + ys*(a020 + xs*(a120 + xs*(a220 + a320*xs)) + ys*(a030 &
41  + xs*(a130 + a230*xs) + ys*(a040 + a140*xs + a050*ys )))) &
42  + z*(a001 + xs*(a101 + xs*(a201 + xs*(a301 + a401*xs))) &
43  + ys*(a011 + xs*(a111 + xs*(a211 + a311*xs)) + ys*(a021 &
44  + xs*(a121 + a221*xs) + ys*(a031 + a131*xs + a041*ys))) &
45  + z*(a002 + xs*(a102 + xs*(a202 + a302*xs)) + ys*(a012 &
46  + xs*(a112 + a212*xs) + ys*(a022 + a122*xs + a032*ys)) &
47  + z*(a003 + a103*xs + a013*ys + a004*z)))
48 
49 gsw_alpha = 0.025_r8*v_ct_part/gsw_specvol(sa,ct,p)
50 
51 return
52 end function
53 
54 !--------------------------------------------------------------------------
elemental real(r8) function gsw_alpha(sa, ct, p)
Definition: gsw_alpha.f90:3