Added adiabatic_temperature_gradient function
This commit is contained in:
parent
fe1b33507b
commit
bd47fb6f18
|
@ -179,3 +179,16 @@ double specific_heat(double salinity, double temperature, double pressure)
|
|||
|
||||
return cp0 + cp1 + cp2;
|
||||
}
|
||||
|
||||
double adiabatic_temperature_gradient(double salinity, double temperature,
|
||||
double pressure)
|
||||
{
|
||||
salinity = salinity - 35.0;
|
||||
|
||||
return (((-2.1687e-16 * temperature + 1.8676e-14) * temperature -
|
||||
4.6206e-13) * pressure + ((2.7759e-12 * temperature - 1.1351e-10) *
|
||||
salinity + ((-5.4481e-14 * temperature + 8.733e-12) * temperature -
|
||||
6.7795e-10) * temperature + 1.8741e-8)) * pressure + (-4.2393e-8 *
|
||||
temperature + 1.8932e-6) * salinity + ((6.6228e-10 * temperature -
|
||||
6.836e-8) * temperature + 8.5258e-6) * temperature + 3.5803e-5;
|
||||
}
|
||||
|
|
|
@ -8,5 +8,7 @@ double specific_volume_anomaly(double salinity, double temperature,
|
|||
double depth(double pressure, double latitude);
|
||||
double freezing_point(double salinity, double pressure);
|
||||
double specific_heat(double salinity, double temperature, double pressure);
|
||||
double adiabatic_temperature_gradient(double salinity, double temperature,
|
||||
double pressure);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -82,6 +82,18 @@ START_TEST(test_specific_heat)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(test_adiabatic_temperature_gradient)
|
||||
{
|
||||
ck_assert(cmp_double(adiabatic_temperature_gradient(25, 0, 0),
|
||||
1.687100e-05));
|
||||
ck_assert(cmp_double(adiabatic_temperature_gradient(30, 20, 9000),
|
||||
2.416120e-04));
|
||||
ck_assert(cmp_double(adiabatic_temperature_gradient(40, 40, 10000),
|
||||
3.255976e-04));
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
Suite *oceanography_suite(void)
|
||||
{
|
||||
Suite *s = suite_create("Oceanography");
|
||||
|
@ -92,6 +104,7 @@ Suite *oceanography_suite(void)
|
|||
tcase_add_test(tc_core, test_depth);
|
||||
tcase_add_test(tc_core, test_freezing_point);
|
||||
tcase_add_test(tc_core, test_specific_heat);
|
||||
tcase_add_test(tc_core, test_adiabatic_temperature_gradient);
|
||||
suite_add_tcase(s, tc_core);
|
||||
|
||||
return s;
|
||||
|
|
Loading…
Reference in New Issue