So I went ahead and derived such a formula, based on ocean water characteristic data from the Argo database. More specifically, I used the ensemble mean grid made available by Asia-Pacific Data-Research Center of the University of Hawaii.
For each depth file, I calculated temperature means for 3 different latitude groups, which I've called 0S, 30S, and 60S. The 0S group includes latitudes -15S to 15N. The 30S group includes -45S to -15S. The last group includes -75S to -45S. Data is not available for all latitudes, so the mean values obtained should not be considered latitudinal averages; that's not the purpose of this exercise.
Let's start by looking at a graph of mean temperature at a given depth for each of the groups.
It doesn't look very easy, does it? Clearly, the temperature of ocean water must depend on variables other than the sea surface temperature and depth. But I was able to come up with a model that fits the data quite well (R2=0.988.) The formulas follow.
- S is the sea surface temperature plus 0.338, in degrees Celsius.
- D is the depth in meters.
- T(D) is the temperature at a given depth D, in degrees Celsius.
The model was empirically derived. The first thing I noticed is that the depth D is approximately inversely proportional to T(D). In fact, the following formula is a rough approximation of temperature at a given depth.
The problem with this formula is that it doesn't work very well at shallow depths. You might have noticed in the figure that the temperature is roughly stable at a depth of 30 meters or less. In order to fix this problem, the approach I came up with is to transform D into D', where D' tends to zero when D is small, but tends to D when D is big.
If we multiply D by a logistic function, we obtain something close to the desired result for D'.
Once I had the general form of the equation, all I had to do is figure out the 4 coefficients involved. I used genetic programming to solve this.