37 const double sal_corr_a = 0.017674;
39 const double sal_corr_b = 10.754;
41 const double sal_corr_c = 2140.7;
43 return std::exp(-salinity_ppt * (sal_corr_a - (sal_corr_b / temperature_k) +
44 (sal_corr_c / (temperature_k * temperature_k))));
63 const double a0 = -173.4292;
64 const double a1 = 249.6339;
65 const double a2 = 143.3483;
66 const double a3 = -21.8492;
67 const double oxygen_conversion = 1.42905;
68 const double temp_scale = 100.0;
70 double scaled_temp = temperature_k / temp_scale;
73 a0 + a1 * (temp_scale / temperature_k) + a2 * std::log(scaled_temp) + a3 * scaled_temp;
75 return oxygen_conversion * std::exp(ln_do);
99 double pressure_mmhg = 760.0)
101 const double kelvin_offset = 273.15;
102 double temperature_k = temperature_celsius + kelvin_offset;
107 return do_saturation * salinity_factor * pressure_factor;
126 return (do_raw / do_max) * 100.0;
double salinity_correction(double temperature_k, double salinity_ppt)
Computes the salinity correction factor for dissolved oxygen solubility.
double calculate_do_saturation_fresh(double temperature_k)
Calculates the saturation concentration of dissolved oxygen in freshwater at 1 atm and 0 ppt salinity...
double calculate_dissolved_oxygen_solubility(double temperature_celsius, double salinity_ppt, double pressure_mmhg=760.0)
Calculates the dissolved oxygen (DO) solubility in mg/L, corrected for temperature,...
double calculate_do_saturation_percent(double do_raw, double do_max)
Calculates dissolved oxygen (DO) percent saturation.
double pressure_correction(double pressure_mmhg=760.0)
Approximates the effect of barometric pressure on dissolved oxygen (DO) solubility.