20   const char* 
const mackenzie_t  =  
"Mackenzie";
 
   21   const char* 
const coppens_t    =  
"Coppens";
 
   22   const char* 
const unesco_t     =  
"UNESCO";
 
   23   const char* 
const delgrosso_t  =  
"DelGrosso";
 
   34   inline double getVelocity(
const double D, 
const double S, 
const double T, 
const std::string& 
model)
 
   36     const double latitude = 36.0 + 16.0/60.0;                  
 
   39     if      (
model == mackenzie_t)
 
   41     else if (
model == coppens_t)
 
   43     else if (
model == unesco_t)
 
   45     else if (
model == delgrosso_t)
 
   58 int main(
int argc, 
char **argv)
 
   72     JParser<> zap(
"Example program to plot UNESCO sound velocity.");
 
   76     zap[
'S'] = 
make_field(S,     
"Salinity [ppk]")    = 38.7;
 
   77     zap[
'T'] = 
make_field(T,     
"Temperature [C]")   = 14.0;
 
   78     zap[
'M'] = 
make_field(
model, 
"model")             = mackenzie_t, coppens_t, unesco_t, delgrosso_t;
 
   83   catch(
const exception &error) {
 
   84     FATAL(error.what() << endl);
 
   88   const double Z[] = { 2000.0, 3450.0 };
 
   91          << setw(10) << left << 
model << right << 
' ' 
   92          << 
FIXED(9,2) <<  getVelocity(Z[0], S, T, 
model) << 
' ' 
   93          << 
SCIENTIFIC(12,3) << (getVelocity(Z[0], S, T, 
model) - getVelocity(Z[1], S, T, 
model)) / (Z[1] - Z[0]) << 
' ' 
   94          << 
FIXED(9,2) << -Z[0] << endl);
 
   99   TH2D h2(
MAKE_CSTRING(
"h2 [" << 
model << 
"]"), NULL, 1000, 10.0, 20.0, 1000, 25.0, 40.0);
 
  101   for (Int_t ix = 1; ix <= h1.GetXaxis()->GetNbins(); ++ix) {
 
  103     const Double_t D  = h1.GetXaxis()->GetBinCenter(ix);
 
  104     const double   V  = getVelocity(D, S, T, 
model);
 
  106     h1.SetBinContent(ix, V);
 
  109   for (Int_t ix = 1; ix <= h2.GetXaxis()->GetNbins(); ++ix) {
 
  110     for (Int_t iy = 1; iy <= h2.GetXaxis()->GetNbins(); ++iy) {
 
  112       const Double_t T  = h2.GetXaxis()->GetBinCenter(ix);
 
  113       const Double_t S  = h2.GetYaxis()->GetBinCenter(iy);
 
  115       const double   V  = getVelocity(D, S, T, 
model);
 
  117       h2.SetBinContent(ix, iy, V);
 
General purpose messaging.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
#define MAKE_CSTRING(A)
Make C-string.
 
Sound velocity according UNESCO equation.
 
int main(int argc, char **argv)
 
Utility class to parse command line options.
 
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 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 getVelocityUNESCO(const double P, const double S, const double T)
Get sound velocity.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
Auxiliary data structure for floating point format specification.