Arte SheetsLearn. Try. Understand.

Engineering & Science

Ocean Ekman Spiral Depth (DE) & Wind-Driven Ekman Transport Formula

Calculate Vagn Walfrid Ekman’s turbulent upper-ocean boundary layer thickness D_E = PI() * SQRT((2 * A_z) / |f|) (m) and depth-integrated 90°-deflected Ekman mass transport M_E = tau_wind / |f| (kg/(m*s)).

Why coastal winds parallel to shore drive cold nutrient-rich ocean upwelling 90° offshore!

Fridtjof Nansen noticed during the 1893–1896 Fram Arctic drift that sea ice drifted 20°–45° to the right of the wind—prompting Vagn Walfrid Ekman (1905) to solve the balance between vertical turbulent eddy viscosity A_z (m^2/s) and planetary Coriolis acceleration f = 2 * Omega * sin(phi)! Velocity vectors rotate clockwise with depth (in the Northern Hemisphere) across the Ekman Spiral Depth D_E = PI() * SQRT((2 * A_z) / |f|), where current speed decays to EXP(-pi) = 4.3% of its surface value!

Integrating over the entire Ekman layer yields a remarkable oceanography result independent of eddy viscosity A_z: net depth-integrated Ekman Mass Transport M_E = tau_wind / |f| (kg/(m*s)) flows 90° to the right of the wind in the Northern Hemisphere (90° left in the Southern Hemisphere), powering Peru, California, and Benguela coastal fisheries upwelling! At 45° latitude (|f| = 1.0313e-4 s^-1), eddy viscosity A_z = 0.02 m^2/s, and wind stress tau = 0.15 N/m^2, Ekman depth D_E = 61.9 m and offshore Ekman mass transport reaches 1,454.5 kg/(m*s) (~1.42 m^2/s volumetric Sverdrup-per-km transport)!

Upper-Ocean Wind State (45° Lat, tau = 0.15 N/m^2)Eddy Viscosity Az (m^2/s)Ekman Layer Depth DE (m)Ekman Mass Transport ME (kg/(m*s))
Moderate Trade/Westerly Mixing0.02 m^2/s61.9 m1,454.5 kg/(m*s) (90° to wind)
Storm-Enhanced Eddy Mixing (4x Az)0.08 m^2/s123.7 m (2x Deeper)1,454.5 kg/(m*s) (Unchanged!)
Equator (0° Latitude -> f = 0)Any AzCoriolis Singularity Guard"Equatorial / Invalid Ekman Inputs"

Ocean Surface Ekman Boundary-Layer Depth D_E (m) = PI() * SQRT((2 * A_z) / |f|)

Evaluates local Coriolis frequency |f| = 2 * 0.000072921 * ABS(SIN(RADIANS(Latitude))) from latitude B2.

=IF(OR(B2 = 0, ABS(B2) > 90, B3 <= 0, B4 < 0), "Equatorial / Invalid Ekman Inputs", ROUND(PI() * SQRT((2 * B3) / (2 * 0.000072921 * ABS(SIN(RADIANS(B2))))), 1))

Depth-Integrated Ekman Mass Transport M_E (kg/(m*s)) = tau_wind / |f|

Divides surface wind stress tau_wind (N/m^2, cell B4) by |f|.

=IF(OR(B2 = 0, ABS(B2) > 90, B3 <= 0, B4 < 0), "Equatorial / Invalid Ekman Inputs", ROUND(B4 / (2 * 0.000072921 * ABS(SIN(RADIANS(B2)))), 1))

Try the example

Use the original values or change them to test your understanding.

Further reading