Saturday, July 7, 2018

Proof of Concept - 10

Fig. 1 Thermosteric Principles
I. Background

Regular readers will remember the graphic at Fig. 1 as a general depiction of the thermal dynamics of water in response to heat being added to it or removed from it.

The central point to remember is the maximum density event.

That is, once the maximum density is reached there can be no more contraction (density increase) whether heat is added or heat is removed.

At that point whether heat is added or removed, the water will expand (volume increase).

The other main point to remember, as a consequence of that characteristic of water, is that one must know the temperature of the water at the time heat is added or removed in order to know whether volume increase or volume decrease will take place.

The reason for that is, as the Fig. 1 graphic shows, if the water temperature is below the maximum density temperature, adding heat will cause the volume to diminish (thermal contraction).

But if the temperature is above the maximum density temperature when more heat is added, it will cause the volume to increase (thermal expansion).

II. A Program To Illustrate The Point

I wrote an example C++ program to illustrate this point.

It uses the TEOS-10 thermodynamics of seawater library functions as shown by the following source code:

#include <iostream>

/** TEOS-10 header file */
#include <gswteos-10.h>

using namespace std;

const unsigned maxIterations = 15;
const double CTchg = 0.8;
const char *reportFileName = "./output-files/data.txt";

/*********************************************
This program calculates specific volume
as the seawater temperature changes.
--//--
The beginning seawater temperature is
the maximum density temperature.
--//--
Adding or removing heat from the seawater
both increase the volume of the seawater.
**********************************************/
int main()
{
/****************
in situ values
*****************/
double SP = 33; /** practical salinity */
double T = 10; /** temperature (deg C) */
double depth = 100; /** meters */
double lat = 55; /** latitude */
double lon = -140; /** longitude */

/***************************
TEOS-10 calculations
(http://www.teos-10.org/)
****************************/
/** calculate TEOS "height" */
double Z = gsw_z_from_p (depth, lat);

/** pressure P from height Z */
double P = gsw_p_from_z (Z, lat);

/** calculate TEOS Absolute Salinity */
double SA = gsw_sa_from_sp (SP, P, lon, lat);

/** calculate TEOS Conservative Temperature */
double CT = gsw_ct_from_t (SA, T, P);

/** Conservative Temperature @ max density */
double CT_of_max_density = gsw_ct_maxdensity (SA, P);

/** redirect cout from screen to report file */
freopen(reportFileName, "w", stdout);

/** print beginning values */
cout << "SP = " << SP << endl
<< "T = " << T << endl
<< "Z = " << Z << endl
<< "lat = " << lat << endl
<< "lon = " << lon << endl
<< "SA = " << SA << endl
<< "CT = " << CT << endl
<< "P = " << P << endl
<< "maximum density CT = "
<< CT_of_max_density << endl
<< endl;

/** Conservative temperature variable */
double ct = CT_of_max_density;

/** volume variables */
double begin_volume, volume;

/** print beginning CT value */
cout << "***** increasing CT (from: "
<< ct << " deg C):" << endl;

for (unsigned tc = 0; tc < maxIterations; tc++)
{
volume = gsw_specvol (SA, ct, P);
if (tc == 0) begin_volume = volume;

cout << volume
<< " (" << ct << " deg C)"
<< endl;

ct += CTchg;
}

cout << endl << "[ volume change: " << volume - begin_volume
<< " ]" << endl << endl;

/** reset ct variable */
ct = CT_of_max_density;

cout << "***** decreasing CT (from: "
<< ct << " deg C):" << endl;

for (unsigned tc = 0; tc < maxIterations; tc++)
{
volume = gsw_specvol (SA, ct, P);
if (tc == 0) begin_volume = volume;

cout << volume
<< " (" << ct << " deg C)"
<< endl;

ct -= CTchg;
}

cout << endl << "[ volume change: " << volume - begin_volume
<< " ]" << endl << endl;

return 0;
}

III. The Print Out

The program prints out the following:
SP = 33
T = 10
Z = -99.0747
lat = 55
lon = -140
SA = 33.1606
CT = 10.0152
P = 100
maximum density CT = -3.59432

***** increasing CT (from: -3.59432 deg C):
0.000973644 (-3.59432 deg C)
0.000973648 (-2.79432 deg C)
0.000973662 (-1.99432 deg C)
0.000973684 (-1.19432 deg C)
0.000973715 (-0.394319 deg C)
0.000973754 (0.405681 deg C)
0.000973801 (1.20568 deg C)
0.000973855 (2.00568 deg C)
0.000973918 (2.80568 deg C)
0.000973988 (3.60568 deg C)
0.000974065 (4.40568 deg C)
0.00097415 (5.20568 deg C)
0.000974241 (6.00568 deg C)
0.00097434 (6.80568 deg C)
0.000974445 (7.60568 deg C)

[ volume change: 8.00854 x 10-7 (0.000000800854) ]

***** decreasing CT (from: -3.59432 deg C):
0.000973644 (-3.59432 deg C)
0.000973648 (-4.39432 deg C)
0.000973663 (-5.19432 deg C)
0.000973686 (-5.99432 deg C)
0.00097372 (-6.79432 deg C)
0.000973764 (-7.59432 deg C)
0.000973819 (-8.39432 deg C)
0.000973884 (-9.19432 deg C)
0.000973961 (-9.99432 deg C)
0.00097405 (-10.7943 deg C)
0.00097415 (-11.5943 deg C)
0.000974263 (-12.3943 deg C)
0.000974389 (-13.1943 deg C)
0.000974528 (-13.9943 deg C)
0.000974681 (-14.7943 deg C)

[ volume change: 1.03719 x 10-6 (0.00000103719) ]
IV. The Point

What this program illustrates is that the volume increases when heat is added or taken away, because the beginning temperature is the maximum density temperature.

The seawater cannot become any more dense, so whether heat is added or taken away the water volume is going to increase (as shown in Fig. 1).

Notice that the removal of heat caused more volume increase (1.03719 x 10-6) than the addition of heat did (8.00854 x 10-7) by 2.36 x 10-7 even though 8 is larger than 1 (notice the exponents).

V. The Significance

The significant fact here is that the mantra "water expands when it is warmed" is not an axiom, it is a half-truth (Proof of Concept - 9).

Many writers in the warming science commentariat do not seem to know that thermal contraction is also a factor in thermosteric sea level change (The Warming Science Commentariat, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11).

VI. Conclusion

I am going to expand this software logic to the WOD in situ measurements database so as to see how it applies in different parts of the world ocean.

Example programs are ok, but real world measurements from the World Ocean Database are the best.

Keep learning.

The previous post in this series is here.

No comments:

Post a Comment