5.2 Plate Tectonics
Plate tectonics is the unifying theory of geology. Earth's lithosphere is divided into plates that move, creating ocean basins, mountain ranges, earthquakes, and volcanoes.
Plate Boundaries
Divergent (Spreading)
Plates move apart. Mid-ocean ridges. New oceanic crust forms. ~2-15 cm/yr.
Convergent (Subduction)
Plates collide. Ocean trenches. Volcanic arcs. Earthquakes. Crust destroyed.
Transform
Plates slide past. Strike-slip faults. San Andreas. No crust created/destroyed.
Seafloor Spreading
\( \text{Age} = \frac{\text{Distance from ridge}}{\text{Spreading rate}} \)
Magnetic anomalies and radiometric dating confirm spreading
Evidence
Magnetic stripes, age progression, heat flow, seismicity
Rate
Atlantic: ~2.5 cm/yr; East Pacific Rise: ~15 cm/yr
Wilson Cycle
Ocean basins open and close over ~200 million years:
1. Rifting → 2. Young ocean → 3. Mature ocean → 4. Declining → 5. Terminal → 6. Collision
Atlantic is opening (~young/mature), Pacific is closing (~declining)
Python: Seafloor Age
#!/usr/bin/env python3
"""plate_tectonics.py - Seafloor spreading calculations"""
import numpy as np
import matplotlib.pyplot as plt
def seafloor_age(distance_km, half_rate_cm_yr):
"""Calculate seafloor age from distance and spreading rate"""
# Convert: km to cm, cm/yr to Ma
distance_cm = distance_km * 1e5
age_yr = distance_cm / half_rate_cm_yr
age_Ma = age_yr / 1e6
return age_Ma
# Atlantic Ocean width at different latitudes
# Mid-Atlantic Ridge roughly centered
half_width = 3000 # km from ridge to continent (approximate)
# Different spreading rates
rates = {'Slow (Atlantic)': 1.25, 'Intermediate': 4.0, 'Fast (EPR)': 7.5}
plt.figure(figsize=(10, 6))
distances = np.linspace(0, 5000, 100)
for name, rate in rates.items():
ages = seafloor_age(distances, rate)
plt.plot(distances, ages, label=f'{name}: {rate*2} cm/yr')
plt.xlabel('Distance from Ridge (km)')
plt.ylabel('Seafloor Age (Ma)')
plt.title('Seafloor Age vs Distance')
plt.legend()
plt.grid(True, alpha=0.3)
# Maximum ocean crust age
max_age = 280 # Ma (oldest ocean crust)
print(f"Oldest ocean crust: ~{max_age} Ma (Jurassic)")
print(f"Compared to oldest continental crust: ~4000 Ma")