1#ifndef __JACOUSTICS__JUNESCO__ 
    2#define __JACOUSTICS__JUNESCO__ 
   27    const double sd  = sin(phi * PI / 180.0);
 
   28    const double s2  = sd*sd;
 
   29    const double s4  = s2*s2;
 
   31    return 9.780318 * (1.0 + 5.2788e-3*s2 + 2.36e-5*s4);
 
 
   55            - 1.025e-2  * T * (S - 35)
 
   56            - 7.139e-13 * T*D*D*D);
 
 
   73    const double t = T * 0.1;
 
   74    const double d = D * 1.0e-3;
 
   75    const double c = 1449.05 + 45.7 * t - 5.21 * t*t + 0.23 * t*t*t + (1.333 - 0.126*t + 0.009 * t*t)*(S - 35);
 
   78            (16.23 + 0.253*t) * d    + 
 
   79            (0.213 - 0.1*t)   * d*d  + 
 
   80            (0.016 + 0.0002*(S-35))*(S - 35)*t*d);
 
 
   97    const double A00  =         1.389;
 
   98    const double A01  =     -1.262E-2;
 
   99    const double A02  =      7.166E-5;
 
  100    const double A03  =      2.008E-6;
 
  101    const double A04  =      -3.21E-8;
 
  102    const double A10  =     9.4742E-5;
 
  103    const double A11  =    -1.2583E-5;
 
  104    const double A12  =    -6.4928E-8;
 
  105    const double A13  =     1.0515E-8;
 
  106    const double A14  =   -2.0142E-10;
 
  107    const double A20  =    -3.9064E-7;
 
  108    const double A21  =     9.1061E-9;
 
  109    const double A22  =   -1.6009E-10;
 
  110    const double A23  =     7.994E-12;
 
  111    const double A30  =     1.100E-10;
 
  112    const double A31  =     6.651E-12;
 
  113    const double A32  =    -3.391E-13;
 
  114    const double B00  =     -1.922E-2;
 
  115    const double B01  =      -4.42E-5;
 
  116    const double B10  =     7.3637E-5;
 
  117    const double B11  =     1.7950E-7;
 
  118    const double C00  =      1402.388;
 
  119    const double C01  =       5.03830;
 
  120    const double C02  =   -5.81090E-2;
 
  121    const double C03  =     3.3432E-4;
 
  122    const double C04  =   -1.47797E-6;
 
  123    const double C05  =     3.1419E-9;
 
  124    const double C10  =      0.153563;
 
  125    const double C11  =     6.8999E-4;
 
  126    const double C12  =    -8.1829E-6;
 
  127    const double C13  =     1.3632E-7;
 
  128    const double C14  =   -6.1260E-10;
 
  129    const double C20  =     3.1260E-5;
 
  130    const double C21  =    -1.7111E-6;
 
  131    const double C22  =     2.5986E-8;
 
  132    const double C23  =   -2.5353E-10;
 
  133    const double C24  =    1.0415E-12;
 
  134    const double C30  =    -9.7729E-9;
 
  135    const double C31  =    3.8513E-10;
 
  136    const double C32  =   -2.3654E-12;
 
  137    const double D00  =      1.727E-3;
 
  138    const double D10  =    -7.9836E-6;
 
  140    const double T2 = T  * T;
 
  141    const double T3 = T2 * T;
 
  142    const double T4 = T3 * T;
 
  143    const double T5 = T4 * T;
 
  145    const double P2 = P  * P;
 
  146    const double P3 = P2 * P;
 
  149      (C00 + C01 * T + C02 * T2 + C03 * T3 + C04 * T4 + C05 * T5) +
 
  150      (C10 + C11 * T + C12 * T2 + C13 * T3 + C14 * T4) * P        +
 
  151      (C20 + C21 * T + C22 * T2 + C23 * T3 + C24 * T4) * P2       +
 
  152      (C30 + C31 * T + C32 * T2) * P3;
 
  155      (A00 + A01 * T + A02 * T2 + A03 * T3 + A04 * T4)     +
 
  156      (A10 + A11 * T + A12 * T2 + A13 * T3 + A14 * T4) * P +
 
  157      (A20 + A21 * T + A22 * T2 + A23 * T3) * P2           +
 
  158      (A30 + A31 * T + A32 * T2) * P3;
 
  160    const double B = B00 + B01 * T + (B10 + B11 * T) * P;
 
  162    const double D = D00 + D10 * P;
 
  164    return Cw + A*S + B*S*sqrt(S) + D*S*S;
 
 
  184    const double C000   =        1402.392;
 
  185    const double CT1    =     0.5012285E1;
 
  186    const double CT2    =    -0.551184E-1;
 
  187    const double CT3    =     0.221649E-3;
 
  188    const double CS1    =     0.1329530E1;
 
  189    const double CS2    =    0.1288598E-3;
 
  190    const double CP1    =       0.1560592;
 
  191    const double CP2    =    0.2449993E-4;
 
  192    const double CP3    =   -0.8833959E-8;
 
  193    const double CST    =   -0.1275936E-1;
 
  194    const double CTP    =    0.6353509E-2;
 
  195    const double CT2P2  =    0.2656174E-7;
 
  196    const double CTP2   =   -0.1593895E-5;
 
  197    const double CTP3   =    0.5222483E-9;
 
  198    const double CT3P   =   -0.4383615E-6;
 
  199    const double CS2P2  =   -0.1616745E-8;
 
  200    const double CST2   =    0.9688441E-4;
 
  201    const double CS2TP  =    0.4857614E-5;
 
  202    const double CSTP   =   -0.3406824E-3;
 
  206    const double f  = 1.019716;
 
  207    const double P  = p * f;
 
  209    const double T2 = T  * T;
 
  210    const double T3 = T2 * T;
 
  212    const double S2 = S  * S;
 
  214    const double P2 = P  * P;
 
  215    const double P3 = P2 * P;
 
  217    const double DCT   = CT1 * T + CT2 * T2 + CT3 * T3;
 
  218    const double DCS   = CS1 * S + CS2 * S2;
 
  219    const double DCP   = CP1 * P + CP2 * P2 + CP3 * P3;
 
  220    const double DCSTP = CTP * T*P + CT3P * T3*P + CTP2 * T*P2 + CT2P2 * T2*P2 + CTP3 * T*P3 + CST * S*T + CST2 * S*T2 + CSTP * S*T*P + CS2TP * S2*T*P + CS2P2 * S2*P2;
 
  222    return C000 + DCT + DCS + DCP + DCSTP;
 
 
  237  inline double getDepth(
const double P, 
const double phi, 
const bool option = 
true)
 
  239    const double sd  = sin(phi * PI / 180.0);
 
  240    const double g   = 9.780318 * (1.0 + 5.2788e-3 * sd*sd + 2.363e-5 * sd*sd*sd*sd);
 
  241    const double z   = (9.72659e2 * P - 2.2512e-1 * P*P + 2.279e-4 * P*P*P - 1.82e-7 * P*P*P*P) / (g + 1.092e-4 * P);
 
  242    const double dz  = -7e-2 * P + 2e-3* (P*P);
 
  244    return z + (option ? dz : 0.0);
 
 
  259  inline double getPressure(
const double z, 
const double phi, 
const bool option = 
true)
 
  261    const double sd  = sin(phi * PI / 180.0);
 
  262    const double g   = 9.78031 * (1.0 + 5.3e-3 * sd*sd);
 
  263    const double h45 = 1.00818e-2 * z + 2.465e-8 * z*z - 1.25e-13 * z*z*z + 2.8e-19 * z*z*z*z;
 
  264    const double k   = (g - 2e-5*z) / (9.80612 - 2e-5 * z);
 
  265    const double dp  = -8.5e-6 * z + 1.4e-9 * z*z;
 
  267    return h45 * k - (option ? dp : 0.0);
 
 
Auxiliary classes and methods for acoustic position calibration.
 
double getPressure(const double z, const double phi, const bool option=true)
Get pressure.
 
double getVelocityDelGrosso(const double p, const double S, const double T)
Get sound velocity.
 
double getGravity(const double phi)
Get gravitational constant.
 
double getVelocityCoppens(const double D, const double S, const double T)
Get sound velocity.
 
double getVelocityMackenzie(const double D, const double S, const double T)
Get sound velocity.
 
double getDepth(const double P, const double phi, const bool option=true)
Get depth.
 
double getVelocityUNESCO(const double P, const double S, const double T)
Get sound velocity.
 
static const double PI
Mathematical constants.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).