How fast a wave crosses water is decided by the depth divided by the wavelength, and there are two rules rather than one. Where the depth is at most a twentieth of a wavelength the speed is sqrt(g x d) and the wavelength does not matter; where it is at least a half the speed is sqrt(g x lambda / 2pi) and the depth does not matter. This free water wave speed calculator uses the full relation that both of those come from, so it also answers the cases in between, and it prints both shortcuts with a signed percentage so you can see which one you could have used. Point Solve for at the speed, the period, the wavelength or the depth.
Every button writes all four boxes in their default units, so whichever quantity the Solve for menu is pointing at, the remaining three already agree with it. The line underneath quotes back whatever the widget works out from that, so nothing in it is stored text.
Pick a sea state above, or type your own numbers.

The water wave speed calculator is a free online tool for the question the usual shortcut cannot answer on its own. The relation it solves is c = sqrt((g x lambda / 2pi) x tanh(2pi x d / lambda)), with g = 9.81 m/s2, and the two formulas usually quoted instead of it are its two limiting cases. Give the tool any suitable pair of a water depth, a wavelength, a wave speed and a period, and it returns the fourth in whichever unit that box was set to.
The famous square root of g times depth is a limit, not the law. It holds once the depth is at most about a twentieth of the wavelength, and it is roughly 1.6 per cent high right at that threshold. Outside the condition it can be enormously wrong: for a 100 metre wave under 4000 metres of ocean it claims 198.09 metres per second where the true figure is 12.50. The same 4000 metres is shallow water for a 200 kilometre tsunami, where the same shortcut is right to a quarter of a per cent.
Four boxes and four unknowns means one box is ignored in every mode, and the tool says which rather than leaving it to be guessed. Asking for the speed or the period reads the depth and the wavelength; asking for the wavelength reads the depth and the period; asking for the depth reads the speed and the wavelength. The ignored quantity is then recomputed from the answer and printed beside it, so the state on screen is always self-consistent.
Six readings sit beside the headline, all of them worked out from the complete state with the solved value substituted back. They are the speed from the full relation in two units, the regime word with the ratio that decided it, what each of the two shortcut formulas would have said with a signed percentage error, the period, and the speed the energy travels at. Both shortcuts are upper bounds at every depth and every wavelength, so neither of those percentages is ever negative.
The depth mode has a hard physical ceiling and it is the most useful thing here. Because the hyperbolic tangent never reaches one, sqrt(g x lambda / 2pi) is the fastest a wave of that wavelength can travel at any depth whatsoever. Ask for more and no depth exists, so the tool declines and prints the ceiling for your wavelength: at a 100 metre wavelength that is 12.50 metres per second, which is why 20 metres per second is refused and 12 is not.
The wavelength mode is solved numerically rather than by rearrangement, because the wavelength appears both inside the hyperbolic tangent and outside it. The tool brackets the answer and halves the bracket two hundred times, then shows the answer fed back through the forward relation so the period can be checked. Both inverse modes are sensitive to a rounded input, and the worked-example table carries a row for each showing by how much.
What the model leaves out, the page says. Linear theory carries no wave height at all, so no amplitude, energy or run-up figure appears anywhere and nothing here predicts when a wave breaks — which is precisely the point at which the theory stops applying. The depth is one constant number rather than a sloping bed, there is no wind, current or viscosity, and below roughly 1.7 centimetres of wavelength surface tension takes over and this is the wrong model entirely.
| Symbol | Quantity | Default unit | Also accepts | Example value |
|---|---|---|---|---|
| d | Water depth | m | cm, ft, km | 10 |
| lam | Wavelength | m | km, ft | 100 |
| c | Wave speed | m/s | km/h, kn, mph | 9.3246077 |
| T | Period | s | min, h | 10.7243118 |
shallow water, deep water or in between, with the ratio that decided it. Those words are about the ratio of depth to wavelength and never about the water on its own.sqrt(g x d) and the other sqrt(g x lambda / 2pi), each with a signed percentage against the full relation. Whichever is close is the regime you are in.This page exists for the one step that turns a depth and a wavelength into a speed. The water waves guide is the prose half of it, with the two rules set out separately, the shoaling chain worked through and the problems. Where a wave speed comes from in a different medium is a separate question answered on a separate page: the guide to wave speed in other media is that one, and nothing on this calculator leaves water.
Three mistakes account for most wrong answers here. The first is calling water shallow or deep by eye instead of by the ratio — 4000 m of ocean is shallow water for a 200 km wave and deep water for a 100 m one. The second is typing a period rounded to two decimals and expecting the wavelength back to two decimals; the third is reading a refusal in the depth mode as a fault, when it means the speed you asked for is above the ceiling for that wavelength.
in between — and the two shortcut chips are out by +6.22% and +34.00%, which is why the full relation is the one the page uses.The table starts at the defaults, moves the unknown through all four modes, then loads the five sea states, walks every unit menu, shows the rounded-input effect in both inverse modes, and finally reaches the entries the calculator declines. Every answer and chip cell was read out of the running widget rather than worked out by hand. Where a cell and the tool ever part company, believe the tool.
| Step | Solving for | What you type | Headline answer | Which water is this | What sqrt(g x d) gives | What sqrt(g x lambda / 2pi) gives | Period of this wave |
|---|---|---|---|---|---|---|---|
| The page as it opens | Wave speed | 10 m deep, 100 m wavelength | 9.32461 m/s | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| The same state, solved for the period | Period | 10 m deep, 100 m wavelength | 10.7243 s | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| The same state, solved for the wavelength | Wavelength | 10 m deep, 10.7243118 s period | 100 m | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| The same state, solved for the depth | Water depth | 9.3246077 m/s at 100 m wavelength | 10 m | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| Swell rolling onto a beach | Wave speed | 2 m deep, 50 m wavelength | 4.38373 m/s | shallow water, d / lam = 0.0400 | 4.43 m/s, +1.04% against the full relation | 8.84 m/s, +101.55% | 11.41 s |
| Wind waves far out at sea | Wave speed | 4000 m deep, 100 m wavelength | 12.4952 m/s | deep water, d / lam = 40.0000 | 198.09 m/s, +1485.33% against the full relation | 12.50 m/s, +0.00% | 8.00 s |
| Tsunami crossing the deep ocean | Wave speed | 4000 m deep, 200000 m wavelength | 197.572 m/s | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| The same tsunami on the shelf | Wave speed | 10 m deep, 10000 m wavelength | 9.90448 m/s | shallow water, d / lam = 0.0010 | 9.90 m/s, +0.00% against the full relation | 124.95 m/s, +1161.57% | 1009.64 s (16.83 min) |
| Harbour chop, neither one nor the other | Wave speed | 2 m deep, 10 m wavelength | 3.64324 m/s | in between, d / lam = 0.2000 | 4.43 m/s, +21.58% against the full relation | 3.95 m/s, +8.46% | 2.74 s |
| The tsunami period, from the same two boxes | Period | 4000 m deep, 200000 m wavelength | 1012.29 s | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| The swell wavelength from its EXACT period | Wavelength | 2 m deep, 11.405816 s period | 50 m | shallow water, d / lam = 0.0400 | 4.43 m/s, +1.04% against the full relation | 8.84 m/s, +101.55% | 11.41 s |
| The same, from the DISPLAYED 11.41 s | Wavelength | 2 m deep, 11.41 s period | 50.0187 m | shallow water, d / lam = 0.0400 | 4.43 m/s, +1.04% against the full relation | 8.84 m/s, +101.59% | 11.41 s |
| The same swell further out, in 50 m of water | Wavelength | 50 m deep, 11.405816 s period | 189.001 m | in between, d / lam = 0.2645 | 22.15 m/s, +33.65% against the full relation | 17.18 m/s, +3.67% | 11.41 s |
| The swell depth from its EXACT speed | Water depth | 4.383728 m/s at 50 m wavelength | 2 m | shallow water, d / lam = 0.0400 | 4.43 m/s, +1.04% against the full relation | 8.84 m/s, +101.55% | 11.41 s |
| The same, from the DISPLAYED 4.38 m/s | Water depth | 4.38 m/s at 50 m wavelength | 1.99645 m | shallow water, d / lam = 0.0399 | 4.43 m/s, +1.04% against the full relation | 8.84 m/s, +101.72% | 11.42 s |
| A depth from a speed just under the ceiling | Water depth | 12 m/s at 100 m wavelength | 25.5321 m | in between, d / lam = 0.2553 | 15.83 m/s, +31.89% against the full relation | 12.50 m/s, +4.13% | 8.33 s |
| The depth typed in feet | Wave speed | 32.8084 ft deep, 100 m wavelength | 9.32461 m/s | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| The depth typed in centimetres | Wave speed | 1000 cm deep, 100 m wavelength | 9.32461 m/s | in between, d / lam = 0.1000 | 9.90 m/s, +6.22% against the full relation | 12.50 m/s, +34.00% | 10.72 s |
| The depth typed in kilometres | Wave speed | 4 km deep, 100 m wavelength | 12.4952 m/s | deep water, d / lam = 40.0000 | 198.09 m/s, +1485.33% against the full relation | 12.50 m/s, +0.00% | 8.00 s |
| The wavelength typed in kilometres | Wave speed | 4000 m deep, 200 km wavelength | 197.572 m/s | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| The speed box set to km/h | Wave speed | 4000 m deep, 200000 m wavelength, speed box in km/h | 711.26 km/h | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| The speed box set to knots | Wave speed | 4000 m deep, 200000 m wavelength, speed box in kn | 384.049 kn | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| The period box set to minutes | Period | 4000 m deep, 200000 m wavelength, period box in min | 16.8715 min | shallow water, d / lam = 0.0200 | 198.09 m/s, +0.26% against the full relation | 558.80 m/s, +182.84% | 1012.29 s (16.87 min) |
| A speed no depth can give you | Water depth | 20 m/s at 100 m wavelength | no answer | - | - | - | - |
| A speed just over the ceiling | Water depth | 12.4953 m/s at 100 m wavelength | no answer | - | - | - | - |
| A zero depth is declined | Wave speed | 0 m deep | no answer | - | - | - | - |
| A negative wavelength is declined | Wave speed | -100 m wavelength | no answer | - | - | - | - |
| A depth past the deepest ocean is declined | Wave speed | 12000 m deep | no answer | - | - | - | - |
| A zero period is declined in the wavelength mode | Wavelength | 0 s period | no answer | - | - | - | - |
| A speed past the box range is declined | Water depth | 600 m/s at 100 m wavelength | no answer | - | - | - | - |
Rows 1 to 4 are one state — 10 m of water carrying a 100 m wave — with the Solve for menu in each of its four positions. All four chip columns are identical down all four rows, because the chips describe the state rather than the mode. That is not free: they are worked out from the answer substituted back, so the mode in which the wavelength is the unknown still has a wavelength to take a ratio of.
Rows 5 to 9 are the five sea states, and rows 6 and 7 are the whole argument of this page in two lines. Both are in 4000 m of water, sqrt(g x d) returns the identical 198.09 m/s for both, and it is +1485.33% out for the 100 m wave and +0.26% out for the 200 km one. Row 9 is the case neither shortcut handles: +21.58% from one and +8.46% from the other.
Rows 11 and 12 are the rounding warning, measured. The same 2 m shelf with the swell's exact 11.405816 s period returns 50 m; with the displayed 11.41 s it returns 50.0187 m. Row 13 takes that same period out into 50 m of water and gets 189.001 m, which is how a single swell is followed from offshore to the beach.
Rows 14 to 16 invert the relation for the depth. The swell's exact 4.383728 m/s returns 2 m and the displayed 4.38 m/s returns 1.99645 m — the same rounding effect in the other direction. Row 16 asks for 12 m/s at a 100 m wavelength, which is just under the ceiling, and gets 25.5321 m.
Rows 17 to 23 change nothing but the units, and every one returns the same physical answer. A 10 m depth typed as 32.8084 ft or 1000 cm gives the identical 9.32461 m/s; a 200 km wavelength is the same wave as a 200000 m one; and the tsunami reads 711.26 km/h or 384.049 kn depending only on which unit the speed box was showing.
Rows 24 and 25 are the refusal worth understanding: at a 100 m wavelength the ceiling is 12.495239 m/s, which the notice under the widget rounds to 12.50 m/s, and every speed at or above it is declined — 20 m/s by a mile, 12.4953 m/s by the fourth decimal. A speed a hair below the ceiling is answered instead, and the answer is always some deep-water depth: 12.4952 m/s returns 100.87 m, a shade over one wavelength, and that figure climbs without bound as you creep closer still, which is the sense in which the ceiling itself would need infinitely deep water. Rows 26 to 30 are the ordinary refusals: a zero depth, a negative wavelength, a depth past the deepest ocean, a zero period and a speed past what the box accepts.
One relation does all the work: c = sqrt((g x lambda / 2pi) x tanh(2pi x d / lambda)), with g = 9.81 m/s2. Everything else on this page is that relation rearranged, or a limit of it, or a quantity derived from it.
The two formulas usually quoted instead are its two limits, and each needs its condition stated with it. When the depth is at most a twentieth of a wavelength the hyperbolic tangent is close to its own argument and the relation collapses to c = sqrt(g x d), with the wavelength gone. When the depth is at least a half the tangent is close to 1 and it collapses to c = sqrt(g x lambda / 2pi), with the depth gone.
Those two behave in opposite ways, and that is the interesting part. In shallow water every wavelength travels at the same speed, so the water is non-dispersive; in deep water a longer wave travels faster, and four times the wavelength is exactly twice the speed — 12.50 m/s at 100 m against 24.99 m/s at 400 m. What the wavelength itself is, as a quantity with its own units, is set out in the wavelength formula and units guide rather than here.
The period follows from the speed as T = lambda / c, and reading it backwards is the useful direction: a stopwatch at a fixed post gives you the period without measuring a length at all. If you arrive with a frequency instead, the frequency formula guide is the conversion. The depth mode then inverts the whole relation with an inverse hyperbolic tangent, which is where the ceiling comes from.
| Symbol | Meaning | SI unit | Values used on this page |
|---|---|---|---|
| c | Phase speed of the wave — how fast a crest advances across the water. It is the speed of the pattern and not of the water itself, and not of the energy | metre per second | Boxes take m/s, km/h, kn or mph: 9.32461 m/s is the default, with 4.38 m/s for a beach swell and 197.57 m/s for a tsunami. |
| d | Depth of still water under the wave, surface to bed. The model treats it as one number that is the same everywhere | metre | Boxes take m, cm, ft or km: 10 m is the default, which is 1000 cm, 32.8084 ft and 0.01 km. |
| lam | Wavelength — the crest-to-crest distance along the direction of travel. Written out as a word everywhere on this page, because the result and chip labels are uppercased by CSS and that destroys a Greek letter | metre | Boxes take m, km or ft: 100 m is the default, which is 0.1 km and 328.084 ft; a tsunami runs to 200000 m. |
| T | Period — the time between one crest and the next at a fixed point. The one quantity that does not change when the same wave runs into shallower water | second | Boxes take s, min or h: 10.7243 s is the default, with 11.41 s for a beach swell and 1012.29 s for a tsunami. |
| d / lam | The ratio that decides which rule applies, tested on the figure as displayed to four decimals. At or below 0.05 is shallow water; at or above 0.5 is deep water | dimensionless | A chip: in between, d / lam = 0.1000 at the defaults; 0.0400 for a beach swell and 40.0000 far out at sea. |
| g | Acceleration of free fall, the restoring force behind every figure on this page. A stated constant here rather than a field | metre per second squared | Fixed at 9.81 m/s2 throughout, and never varied on this page. |
The hyperbolic tangent is the whole story. tanh(2pi x d / lambda) rises almost in a straight line while its argument is small and flattens out at 1 once the argument passes about 3, so the relation has two different shapes at the two ends and no single shortcut covers both. Everything else on this page is a consequence of that one curve.
At the shallow end the tangent is close to its own argument, the wavelength cancels out, and the speed depends on the depth alone. At the deep end the tangent is close to 1, the depth drops out, and the speed depends on the wavelength alone. The ratio of depth to wavelength is the only thing that decides which end you are at, which is why the words shallow and deep on this page never describe the water by itself.
That is also why the same body of water can be both at once. Load Tsunami crossing the deep ocean and then Wind waves far out at sea: both are 4000 m deep, and sqrt(g x d) returns the identical 198.09 m/s for both. It is right to +0.26% for the 200 km wave and out by a factor of 15.85 for the 100 m one, because the first is in shallow water and the second is in deep water.
A wave feels the bottom because the water underneath a crest moves in closed orbits that reach down into the depth, and once the bed interrupts them the depth starts to matter — which is the only role particle motion plays on this page. What type of wave a water wave is is answered there and not here. For a wave arriving at a boundary between two different media rather than a change of depth, the wave speed simulator is the one to open.
The last consequence of the curve is that the crests and the energy travel at different speeds. In deep water the energy moves at exactly half the crest speed, so a group of waves advances at half the rate its individual crests do; in shallow water the two speeds coincide. The energy chip prints both as a fraction so you can watch it move from a half to one as you deepen the water relative to the wave.
sqrt(g x d) as the water wave speed formula. In 4000 m of ocean it claims 198.09 m/s for a 100 m wave that actually travels at 12.50 m/s — +1485.33%.The arithmetic here is exact to the last digit a double can hold. What goes wrong is physical: a model with no wave height in it, a bed the boxes assume is flat, and a shortest wavelength below which gravity is no longer the force in charge.
sqrt(g x lambda / 2pi) and there is genuinely no depth that produces it, so the page declines and prints the ceiling for your wavelength instead of inventing a number. The same applies to inputs outside the ranges the boxes accept, to a zero or negative depth, wavelength, speed or period, and to anything that does not parse as a number at all. In every case the refusal is in words rather than an infinity or a NaN.50.00 m to 50.02 m; a speed typed as 4.38 m/s instead of 4.383728 m/s moves a depth answer from 2.00 m to 1.996 m. Keep the digits you have, and prefer timing several crests to timing one.50.00 m, and no length has to be measured at sea to get it. This is the mode worth knowing about, because it is the only one you can run with nothing but a watch.197.57 m/s, which is 711.26 km/h — a jet cruising speed. Then load The same tsunami on the shelf: the same period in 10 m of water gives 9.90 m/s or 35.66 km/h, a road speed. The speed falls by a factor of 19.95 and the wavelength by 20.00, while the period rides the whole move out at 1012.29 s offshore against 1009.64 s on the shelf — 0.26% apart, against twenty-fold on the other two.16.57 m/s in 50 m of water and 4.38 m/s on a 2 m shelf, so a crest arriving at 30 degrees to the normal crosses the shelf at 7.60 degrees. The law that turns one into the other is for the refraction guide rather than this page, and the trap is that the two speeds must be the same wave — the same period, not the same wavelength.in between and the sea you are modelling is shallow water, the tank is answering a different question. The companion lab shows the same idea across 600 fixed states, with each one classified.sqrt(g x lambda / 2pi) for the wavelength described cannot happen at any depth, and the page says which number the ceiling is. At a 100 m wavelength that ceiling is 12.50 m/s, so a claimed 20 m/s for a 100 m wave is not a deep-water figure — it is not a figure at all.
shallow water, and sqrt(g x d) is right to +0.26% — the same formula that was out by a factor of fifteen in the shot above, in the same depth of water.For the two rules set out separately, the decision between them, the shoaling chain worked through and the practice problems, read the water waves guide, which this tool is the arithmetic half of. The guide to wave speed in other media is the separate question of what sets a wave speed outside water, and the transverse and longitudinal waves guide is where what type of wave a water wave is gets answered.
Four more posts pick up what this page deliberately leaves out. The wavelength formula and units guide is the wavelength as a quantity, the frequency formula guide is the period-to-frequency conversion, the amplitude guide is where the height of a wave belongs, and the surface tension guide is the force that takes over below about 1.7 cm. The refraction guide is the law behind crests turning towards the shore, and the diffraction guide is the different thing waves do at a gap.
Two tools sit next to this one. The standing waves calculator is the other wave relation with a boundary in it, and the wave speed simulator is what happens when a wave crosses into a different medium rather than a different depth. The transverse and longitudinal waves simulator draws the particle motion this page only mentions once.
The full physics lab library and the calculator index are open too.
It solves c = sqrt((g lambda / 2pi) tanh(2pi d / lambda)) for any one of four quantities: the speed of a wave on water, its period, its wavelength, or the depth of the water. Beside the answer it prints which regime the wave is in, what each of the two shortcut formulas would have said and by how much they are out, the period, and the speed the energy travels at.
Only when the depth is at most about a twentieth of the wavelength, and the calculator tells you whether it is. That shortcut is right to within 1.62 per cent at the one-twentieth boundary and gets better as the water gets shallower relative to the wave. Outside that condition it can be wildly wrong: for a 100 m wave in 4000 m of ocean it reads 198.09 m/s against a true 12.50 m/s.
Because sqrt(g lambda / 2pi) is the fastest a wave of that wavelength can ever travel, at any depth, so a speed above it has no depth behind it. At a 100 m wavelength that ceiling is 12.50 m/s, which is why 20 m/s is refused and 12 m/s is not. The page prints the ceiling for your wavelength underneath the widget when it declines.
Solving for the speed or the period reads the depth and the wavelength. Solving for the wavelength reads the depth and the period. Solving for the depth reads the speed and the wavelength. The fourth box is ignored in every mode, the working says which one, and the chips recompute that quantity from the answer so you can see the value that is consistent with it.
Because the wavelength appears inside the tanh and outside it at the same time, so the relation cannot be transposed for it. The page brackets the answer between 1e-9 m and 1e9 m and halves the bracket 200 times, which is safe here because the quantity being driven to zero rises steadily with the wavelength. The working shows the answer fed back through the forward relation so you can check it returns your period.
Because this relation is sensitive to the period in that direction. A swell on a 2 m shelf has a period of 11.405816 s and a wavelength of 50.00 m; typing the rounded 11.41 s returns 50.02 m instead. Time several crests and divide rather than timing one, and keep the extra digits when you can.
No, and that omission is in the model rather than in the page. Linear theory carries no wave height at all, so nothing here can produce an amplitude, an energy or a run-up figure, and none is printed. A real wave breaks when it gets too steep for this theory, which is precisely the point at which every formula on this page stops applying.
It uses g = 9.81 m/s2 throughout, as a stated constant rather than an input box. It is not offered as a field because varying it is not what this page is about: the depth and the wavelength are. How much g itself shifts from one place on Earth to another is a separate question, and no figure for that shift is printed or assumed here.
Because the period is what survives a change of depth. Crests keep arriving at the rate they were generated, so when a wave moves into shallower water the speed and the wavelength both fall by the same factor while the period rides it out: the two tsunami rows in the table above print 1012.29 s offshore against 1009.64 s on the shelf, which is 0.26 per cent apart. That is why the crests bunch closer together as they approach a beach.