User`s manual

Appendix IV: Derived Parameter Formulas
85
sound velocity = [m/sec]
(sound velocity can be calculated as Chen-Millero, DelGrosso, or Wilson)
Sound velocity calculation:
C Computer Code –
// Sound Velocity Chen and Millero
double SndVelC(double s, double t, double p0) /* sound velocity Chen and Millero 1977 */
/* JASA,62,1129-1135 */
// s = salinity, t = temperature deg C ITPS-68, p = pressure in decibars
{
double a, a0, a1, a2, a3;
double b, b0, b1;
double c, c0, c1, c2, c3;
double p, sr, d, sv;
p = p0 / 10.0; /* scale pressure to bars */
if (s < 0.0) s = 0.0;
sr = sqrt(s);
d = 1.727e-3 - 7.9836e-6 * p;
b1 = 7.3637e-5 + 1.7945e-7 * t;
b0 = -1.922e-2 - 4.42e-5 * t;
b = b0 + b1 * p;
a3 = (-3.389e-13 * t + 6.649e-12) * t + 1.100e-10;
a2 = ((7.988e-12 * t - 1.6002e-10) * t + 9.1041e-9) * t - 3.9064e-7;
a1 = (((-2.0122e-10 * t + 1.0507e-8) * t - 6.4885e-8) * t - 1.2580e-5) * t + 9.4742e-5;
a0 = (((-3.21e-8 * t + 2.006e-6) * t + 7.164e-5) * t -1.262e-2) * t + 1.389;
a = ((a3 * p + a2) * p + a1) * p + a0;
c3 = (-2.3643e-12 * t + 3.8504e-10) * t - 9.7729e-9;
c2 = (((1.0405e-12 * t -2.5335e-10) * t + 2.5974e-8) * t - 1.7107e-6) * t + 3.1260e-5;
c1 = (((-6.1185e-10 * t + 1.3621e-7) * t - 8.1788e-6) * t + 6.8982e-4) * t + 0.153563;
c0 = ((((3.1464e-9 * t - 1.47800e-6) * t + 3.3420e-4) * t - 5.80852e-2) * t + 5.03711) * t +
1402.388;
c = ((c3 * p + c2) * p + c1) * p + c0;
sv = c + (a + b * sr + d * s) * s;
return sv;
}
// Sound Velocity Delgrosso
double SndVelD(double s, double t, double p) /* Delgrosso JASA, Oct. 1974, Vol 56, No 4 */
// s = salinity, t = temperature deg C ITPS-68, p = pressure in decibars
{
double c000, dct, dcs, dcp, dcstp, sv;
c000 = 1402.392;
p = p / 9.80665; /* convert pressure from decibars to KG / CM**2 */
dct = (0.501109398873e1 - (0.550946843172e-1 - 0.22153596924e-3 * t) * t) * t;
dcs = (0.132952290781e1 + 0.128955756844e-3 * s) * s;
dcp = (0.156059257041e0 + (0.244998688441e-4 - 0.83392332513e-8 * p) * p) * p;
dcstp = -0.127562783426e-1 * t * s + 0.635191613389e-2 * t * p + 0.265484716608e-7 * t * t *
p * p - 0.159349479045e-5 * t * p * p + 0.522116437235e-9 * t * p * p * p - 0.438031096213e-6 * t *
t * t * p - 0.161674495909e-8 * s * s * p * p + 0.968403156410e-4 * t * t * s + 0.485639620015e-5 *
t * s * s * p - 0.340597039004e-3 * t * s * p;
sv = c000 + dct + dcs + dcp + dcstp;
return sv;
}
// sound velocity Wilson
double SndVelW(double s, double t, double p) /* wilson JASA, 1960, 32, 1357 */
// s = salinity, t = temperature deg C ITPS-68, p = pressure in decibars
{
double pr, sd, a, v0, v1, sv;
pr = 0.1019716 * (p + 10.1325);
sd = s - 35.0;
a = (((7.9851e-6 * t - 2.6045e-4) * t - 4.4532e-2) * t + 4.5721) * t + 1449.14;
sv = (7.7711e-7 * t - 1.1244e-2) * t + 1.39799;
v0 = (1.69202e-3 * sd + sv) * sd + a;
a = ((4.5283e-8 * t + 7.4812e-6) * t - 1.8607e-4) * t + 0.16072;
sv = (1.579e-9 * t + 3.158e-8) * t + 7.7016e-5;
v1 = sv * sd + a;
a = (1.8563e-9 * t - 2.5294e-7) * t + 1.0268e-5;
sv = -1.2943e-7 * sd + a;
a = -1.9646e-10 * t + 3.5216e-9;
sv = (((-3.3603e-12 * pr + a) * pr + sv) * pr + v1) * pr + v0;
return sv;
}