34 real (r8), 
intent(in) :: sa, pt
    35 real (r8), 
intent(out), 
optional :: ct_sa, ct_pt
    37 real (r8) :: abs_pt, g_sa_mod, g_sa_t_mod, x, y_pt
    43 if (.not. 
present(ct_sa)) 
return    50 g_sa_t_mod = 1187.3715515697959_r8 + &
    51         x*(-1480.222530425046_r8 + x*(2175.341332000392_r8 + x*(-980.14153344888_r8 + 220.542973797483_r8*x) + &
    52         y_pt*(-548.4580073635929_r8 + y_pt*(592.4012338275047_r8 + y_pt*(-274.2361238716608_r8 + 49.9394019139016_r8*y_pt)))) + &
    53         y_pt*(-258.3988055868252_r8 + y_pt*(-90.2046337756875_r8 + y_pt*10.50720794170734_r8))) + &
    54         y_pt*(3520.125411988816_r8  + y_pt*(-1351.605895580406_r8 + &
    55         y_pt*(731.4083582010072_r8  + y_pt*(-216.60324087531103_r8 + 25.56203650166196_r8*y_pt))))
    56 g_sa_t_mod = 0.5_r8*
gsw_sfac*0.025_r8*g_sa_t_mod
    58 g_sa_mod = 8645.36753595126_r8 + &
    59         x*(-7296.43987145382_r8 + x*(8103.20462414788_r8 + &
    60         y_pt*(2175.341332000392_r8 + y_pt*(-274.2290036817964_r8 + &
    61         y_pt*(197.4670779425016_r8 + y_pt*(-68.5590309679152_r8 + 9.98788038278032_r8*y_pt)))) + &
    62         x*(-5458.34205214835_r8 - 980.14153344888_r8*y_pt + &
    63         x*(2247.60742726704_r8 - 340.1237483177863_r8*x + 220.542973797483_r8*y_pt))) + &
    64         y_pt*(-1480.222530425046_r8 + &
    65         y_pt*(-129.1994027934126_r8 + &
    66         y_pt*(-30.0682112585625_r8 + y_pt*(2.626801985426835_r8 ))))) + &
    67         y_pt*(1187.3715515697959_r8 + &
    68         y_pt*(1760.062705994408_r8 + y_pt*(-450.535298526802_r8 + &
    69         y_pt*(182.8520895502518_r8 + y_pt*(-43.3206481750622_r8 + 4.26033941694366_r8*y_pt)))))
    72 ct_sa = (g_sa_mod - abs_pt*g_sa_t_mod)/
gsw_cp0 elemental subroutine gsw_ct_first_derivatives(sa, pt, ct_sa, ct_pt)
 
real(r8), parameter gsw_cp0
 
real(r8), parameter gsw_t0
 
real(r8), parameter gsw_sfac