# generate schematic diagram with shapes and curved path

I wish to generate the following figure:

So far I have managed:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\begin{document}
\begin{tikzpicture}[transition/.style = {rectangle,draw = black!50, fill = black!20, thick}]
\draw [>=stealth, ->](0,0) -- (0cm,-10cm) node[left, midway] {Depth};
\draw [>=stealth, ->](0cm,0cm) -- (10cm,0cm) node[above, midway] {Temperature [$^{o}$C]};
\draw[dashed] (1.99,0) -- (1.99,-10);
\draw (10,0).. controls (9.5,-2) and (8,-4) .. (7,-4) .. controls (5,-5) and (3,-7) .. (2.5,-8);
\end{tikzpicture}
\end{document}


Where as you can see I am struggling with generating the curved line. It seems like there must be a better way of generating a line like this, other than the method I have chosen.

In addition, I am unsure of how to generate the rectangle in the middle of the diagram (when I try to do this, the rectangle appears in the top left hand corner of the page).

Furthermore, how can I specify the node 'Temperature' to be above the numbers? Note that I have scaled the diagram so that 20 on the diagram is equal to 10 cm, thus I can use this to space the values shown.

-

This curve you are trying to draw is a single Bezier curve.

The line between an endpoint of a Bezier curve and the corresponding control point is tangential to the curve in the endpoint. Thus, your control points must have the same x coordinate as the corresponding endpoints.

The length of the line segment between an endpoint and the corresponding control point determines "how long" the curve fill "follow" the control segment. Since your curve is symmetric, the control segments should be of equal length. Other than that, I have determined the y position of the control points experimentally below.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\begin{document}

\begin{tikzpicture}
[
x=2mm,y=7mm,
transition/.style = {rectangle,draw = black!50, fill = black!20,thick},
]
\draw [>=stealth, ->](0,0) -- (0,-10) node[left, midway] {Depth};
\draw [>=stealth, ->](0,0) -- (42,0) node[above=7mm, midway] {Temperature [$^{o}$C]};
\foreach \x in {0,4,10,20} { \draw(\x,-2mm)--(\x,2mm) node[above]{\x};}
\draw[transition] (0,-6) rectangle (40,-2);
\draw[thick] (0,-4) -- (41,-4) node[anchor=west]{Thermocline};
\draw[dashed] (4,0) -- (4,-10);
\draw (4,-10) .. controls (4,-4)  and (18,-4) .. (18,0);
\end{tikzpicture}


The rest of the code should be self-explanatory. The only big change from your original is that I have set the xy coordinate system, so the units used can be the actual physical units. (Well, I had no idea about the depth unit.)

-