Home / Science / Weather, ocean and climate / Physical oceanography / Ocean currents calculatorTool #507

Ocean currents calculator: Ekman transport and spiral, coastal upwelling, geostrophic current, thermal wind and Rossby radius

Work out wind-driven and geostrophic ocean currents: wind stress from the bulk formula, Ekman transport, depth, surface current and spiral; coastal upwelling and Ekman pumping from wind stress curl; geostrophic current from a sea-level slope; thermal-wind current profile across two stations from density or dynamic height; Coriolis parameter and Rossby radii.

Keep it one tap away for everyday use.

Bookmark Ocean currents calculator?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Latitude
  2. Wind
  3. Ekman
  4. Currents
Nothing is uploadedWorks offline once open

Place and sea water

The Coriolis parameter f = 2Ω sin(latitude) sets how strongly the Earth's spin turns moving water: to the right in the northern hemisphere, to the left in the southern. These formulas need f, so they do not work within about 2° of the equator.

Wind and the Ekman layer

Wind direction is where it blows from, as in weather reports (0 = a north wind blowing south). Stress τ = ρair Cd U²; Cd is often between 0.001 and 0.0025 and grows with wind speed, so 0.0013 is only an example. Az is the vertical eddy viscosity, which is not well known and varies a lot; 0.01 m²/s is an example.

The Ekman spiral seen from above: the arrow tips of the current at depth, with east to the right and north up. Each step down turns the current further and makes it weaker; at the Ekman depth it is 4 % of the surface speed and runs the opposite way.

Coastal upwelling

The bearing points from the coast out to sea (270 for a coast facing west, like California or Portugal). Coastal upwelling speed = Ekman transport away from the coast ÷ the width of the zone it comes up in, often taken as about one baroclinic Rossby radius. The offshore wind gives the wind stress curl (same direction, different speed), and Ekman pumping w = curl τ ÷ (ρ₀ f); the change of f with latitude (β) is left out.

Geostrophic current from sea level

Use negative numbers for a fall. In geostrophic balance the pressure gradient is balanced by the Coriolis force: u = −(g/f) ∂η/∂y, v = (g/f) ∂η/∂x. The flow runs along the slope with high sea level on its right in the north (left in the south). Satellite altimetry maps η this way.

Section between two stations (thermal wind)

Rows of depth (m, positive down), station A, station B. Thermal wind: f ∂v/∂z = −(g/ρ₀) ∂ρ/∂x, so v(z) = vref − g/(ρ₀ f L) ∫ (ρB − ρA) dz from z down to the reference level (trapezoid rule). With dynamic heights (relative to one deep level), v = 10 (DB − DA)/(f L). The current is across the section; positive means to the left of the direction A → B. Only the shear is known: the level of no motion is an assumption. The example numbers are made up.

Rossby radius

The Rossby radius is the distance over which rotation starts to matter as much as gravity waves: the size of eddies, fronts and coastal upwelling zones. Barotropic: √(gH)/|f|. Two-layer baroclinic: √(g′ h₁h₂/H)/|f| with reduced gravity g′ = gΔρ/ρ₀. From the stratification: NH/(π|f|) for the first mode.

Report

All the results above in one file.

Report

What it does

Most ocean currents near the surface are driven by the wind and steered by the Earth’s rotation. This page works out the classic textbook results from a few numbers you type:

  • Coriolis parameter f = 2Ω sin(latitude), which turns moving water to the right in the northern hemisphere and to the left in the southern.
  • Wind stress from the bulk formula τ = ρair Cd U², with your air density and drag coefficient.
  • Ekman layer: the transport τ/(ρ₀|f|) at 90° to the wind, the Ekman depth π√(2Az/|f|), the surface current τ/(ρ₀√(Az|f|)) at 45° to the wind, and the Ekman spiral drawn from above. The empirical formulas from Ekman (1905) are shown beside them.
  • Coastal upwelling: how much of the Ekman transport goes away from (or towards) a straight coast, and the upwelling speed over a zone you choose; and Ekman pumping from the wind stress curl when the wind is stronger offshore.
  • Geostrophic current from the slope of the sea surface, as satellite altimetry measures it.
  • Thermal wind: the current profile across a section between two stations from their density (or dynamic height) profiles, relative to a level of no motion.
  • Rossby radius: barotropic, two-layer baroclinic and from the buoyancy frequency N.

How to use it

  1. Type the latitude and the sea water density (1025 kg/m³ is typical).
  2. Type the wind speed at 10 m and where it blows from. Change the air density, drag coefficient and eddy viscosity if you have better values; the defaults are examples.
  3. For a coast, give the compass bearing from the coast out to sea and the width of the upwelling zone. For the curl, give a wind speed further offshore and the distance.
  4. For the geostrophic current, type how much the sea surface rises eastward and northward over a distance.
  5. For a section, paste depth, station A, station B (density in kg/m³ or dynamic height in dynamic metres), the distance and the bearing from A to B, and the level of no motion.
  6. Download the report (image, PDF or Word) or the section profile as CSV.

Worked example

At 40° N, f = 9.37 × 10⁻⁵ s⁻¹. A 10 m/s wind from the north with ρair = 1.22 kg/m³ and Cd = 0.0013 gives τ = 0.159 N/m².

  • Ekman transport: 0.159 ÷ (1025 × 9.37 × 10⁻⁵) = 1.65 m²/s towards the west. With Az = 0.01 m²/s the Ekman depth is 45.9 m and the surface current 0.16 m/s towards the south-west (225°). The empirical formulas give 0.158 m/s and 53.6 m.
  • On a coast with the sea to the west (270°), all of that transport goes offshore. Spread over 20 km it gives upwelling of 8.25 × 10⁻⁵ m/s, about 7.1 m a day. With 12 m/s 50 km offshore, the wind stress curl is 1.40 × 10⁻⁶ N/m³ and Ekman pumping adds about 1.25 m a day.
  • A sea surface that rises 50 cm over 100 km towards the east drives a geostrophic current of 0.52 m/s towards the north.
  • The example density section (stations 50 km apart, A to B towards the east) gives 0.54 m/s towards the south at the surface relative to no motion at 1000 m: lighter water lies to the west, on the current’s right.
  • For H = 4000 m, a 500 m upper layer and Δρ = 2 kg/m³, the two-layer Rossby radius is 30.9 km; the barotropic one is 2,113 km.

Tips

  • The Ekman formulas assume a steady wind, deep water and a constant eddy viscosity. Real Ekman layers are shallower and turn less than 45°, but the transport τ/(ρ₀f) holds well.
  • Near the equator f goes to zero and these balances break down; the page stops within 2°.
  • Thermal wind gives only the change of current with depth. The answer depends on the level of no motion you choose, or a measured current at one depth.

FAQ

Why does the transport go at 90° to the wind when the surface current goes at 45°? The current keeps turning with depth along the spiral; added up over the whole layer, the flow comes out at right angles to the wind.

What is a dynamic metre? A unit of geopotential: 1 dynamic metre = 10 J/kg. Differences in dynamic height between two stations divided by f and the distance give the geostrophic current.

Which sign is the section current? Positive is to the left of the direction from A to B, negative to the right. The page also names the compass direction.

Where the numbers come from

  • Ekman, V. W. (1905) On the influence of the earth's rotation on ocean currents. Arkiv för Matematik, Astronomi och Fysik 2(11); Ekman transport, depth and spiral as in standard texts such as Pond, S. and Pickard, G. L. (1983) Introductory Dynamical Oceanography, 2nd ed., and Talley, L. D. et al. (2011) Descriptive Physical Oceanography, 6th ed. (the empirical surface current and depth formulas are from Pond and Pickard).
  • Geostrophic balance, thermal wind, dynamic height and Rossby radii are standard results of geophysical fluid dynamics, written here as formulas by fibub.
  • Coriolis parameter checked against the TEOS-10 Gibbs SeaWater toolbox (gsw.f); everything else against independent NumPy and SciPy versions. Example inputs, including the density section, are made up.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Water wave calculator #139 From a wave's period, height and the water depth, get the wavelength (solving the dispersion relation exactly), phase and group speed, energy and power, orbital velocity at the bed, then follow the wave into shallow water with shoaling and refraction to find where and how high it breaks, and the breaker type. Skew-T sounding plotter #136 Paste a radiosonde sounding (or the University of Wyoming text list) and get a skew-T log-P diagram with the lifted parcel, CAPE and CIN shading, LCL, LFC and EL, lifted index, Showalter, K index, total totals, precipitable water, freezing level, wind barbs and bulk shear. Psychrometric and heat stress calculator #34 From the air temperature and humidity (or dew point, or wet bulb), get every moist air property with the ASHRAE equations, a psychrometric chart, the heat index and the humidex. Tide predictor and harmonic analyser #832 Type or paste tidal constituents (amplitude and phase) and get the predicted water level, the times and heights of high and low water and the windows when the water is deep enough, with nodal corrections for the 18.6-year lunar cycle. Paste a water-level record to get its constituents back by least squares. Not for navigation. 1D Schrödinger solver #923 Choose a textbook potential, type a formula or draw your own, and get the lowest energy levels and wavefunctions of the one-dimensional Schrödinger equation by the matrix (finite-difference) method, with the exact levels alongside for the box, harmonic oscillator, finite well, Morse, linear and Pöschl–Teller potentials. Adduct and neutral loss calculator #984 Type a formula or a neutral monoisotopic mass and get the m/z of 25 common electrospray adducts in positive and negative mode, the ions left after common neutral losses (water, ammonia, CO2, sugars, phosphate and your own), and match a list of observed m/z values within a ppm tolerance. With no molecule, it turns observed m/z values into candidate neutral masses.