23 real (r8),
intent(in) :: sa, ct
27 real (r8) :: a5ct, b3ct, ct_factor, pt_num, pt_recden, ct_diff
28 real (r8) :: pt, pt_old, ptm, dpt_dct, s1
30 real (r8),
parameter :: a0 = -1.446013646344788e-2_r8
31 real (r8),
parameter :: a1 = -3.305308995852924e-3_r8
32 real (r8),
parameter :: a2 = 1.062415929128982e-4_r8
33 real (r8),
parameter :: a3 = 9.477566673794488e-1_r8
34 real (r8),
parameter :: a4 = 2.166591947736613e-3_r8
35 real (r8),
parameter :: a5 = 3.828842955039902e-3_r8
37 real (r8),
parameter :: b0 = 1.0_r8
38 real (r8),
parameter :: b1 = 6.506097115635800e-4_r8
39 real (r8),
parameter :: b2 = 3.830289486850898e-3_r8
40 real (r8),
parameter :: b3 = 1.247811760368034e-6_r8
47 ct_factor = (a3 + a4*s1 + a5ct)
48 pt_num = a0 + s1*(a1 + a2*s1) + ct*ct_factor
49 pt_recden = 1.0_r8/(b0 + b1*s1 + ct*(b2 + b3ct))
52 dpt_dct = (ct_factor + a5ct - (b2 + b3ct + b3ct)*pt)*pt_recden
59 pt = pt_old - ct_diff*dpt_dct
60 ptm = 0.5_r8*(pt + pt_old)
64 pt = pt_old - ct_diff*dpt_dct
real(r8), parameter gsw_cp0
real(r8), parameter gsw_t0
elemental real(r8) function gsw_pt_from_ct(sa, ct)
real(r8), parameter gsw_ups