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).