Réchauffement climatique et hausse du niveau des mers

Pourquoi le niveau moyen des mers augmente-t-il

Le réchauffement climatique est, ou devrait être, au centre de nos préoccupations et de l'actualité. La hausse de la température moyenne du globe est constatée et ses causes ne font plus guère de doute, sauf pour quelques irréductibles septiques. Le débat sur les causes du réchauffement climatique n'est pas mon sujet ici. J'ai plutôt l'intention d'en aborder un des effets les plus dramatiques à terme : la hausse du niveau des océans et mers.

Les causes

On peut imaginer trois principales causes de la hausse du niveau marin : la fonte des banquises arctiques et antarctiques, la fonte des glaces terrestres du Groënland et de l'Antarctique, la dilatation thermique de l'eau des océans et des mers. On peut en imaginer d'autres : la tectonique des plaques en modifiant le plancher des bassins océaniques, les éruptions volcaniques, etc.

Examinons chacune des principales causes que je viens de mentionner. Pour approfondir le sujet, vous trouverez une étude complète sur le site Wikipedia.

La fonte des banquises

Evacuons tout de suite cette cause. Par définition, les banquises sont formées par l'eau de mer qui gèle, un gros glaçon en somme. Souvent, les médias font leur "une" sur la fonte anormalement importante des banquises arctiques ou antarctiques et font allusion à la hausse du niveau des mers. Cette fonte est préoccupante, en ceci qu'elle constitue un indicateur de l'augmentation de la température moyenne de l'atmosphère, mais certainement pas en ce qui concerne la hausse du niveau des mers ! 

Faites une petite expérience toute simple : placez un glaçon dans un verre et remplissez-le d'eau à ras bord. Laissez fondre le glaçon. L'eau a-t-elle débordée du verre ? Non. L'explication de ce fait est multimillénaire puisque due à Archimède ! Le glaçon flotte, déplaçant ainsi un volume d'eau équivalent à la masse dudit glaçon, lui aussi constitué d'eau. Lorsque le glaçon fond, le volume total (glaçon + eau du verre) ne varie pas.

En première approximation, la fonte des banquises ne participe pas à la hausse du niveau marin. En fait, il faudrait tenir compte de la différence de masse volumique entre l'eau de fonte des glaces (qui est pure) et l'eau de mer (qui est salée), mais c'est tout à fait négligeable.

La fonte des glaces terrestres

Gros problème ! C'est même le principal sujet de préoccupation. C'est que la quantité de glace accumulée sur les iles (Groënland essentiellement) et l'Antarctique est colossale ! On estime que la fonte totale de la calotte glacière antarctique provoquerait une hausse du niveau marin de 60 mètres environ, celle de la calotte groëlandaise une hausse de 7 mètres (voir le site CNRS). Et encore, je néglige la fonte des autres glaciers terrestres...

Outre la hausse du niveau moyen des mers, cette fonte aurait d'autres conséquences fâcheuses. La glace des calottes est composée d'eau douce. Une telle quantité d'eau douce déversée dans les mers provoquerait une diminution non négligeable de la salinité moyenne. Quand on sait que les courants marins dépendent en grande partie de la salinité (le moteur de plongée d'un courant marin est la différence de masse volumique due à la température et la salinité : c'est la circulation thermohaline), on a du soucis à se faire...

La dilatation thermique de l'eau

L'eau est un liquide très particulier. Mais comme tous les corps, la masse volumique de l'eau varie en fonction de la température. Comme la quantité de matière ne varie pas en fonction de la température, c'est donc le volume occupé par cette quantité de matière qui varie. Selon la température, le volume d'eau diminue ou augmente. Une bonne explication du problème sur ce site.

Aujourd'hui, la dilatation thermique de l'eau des océans est une des principales causes de la hausse du niveau marin. D'après le site MétéoFrance, on estime l'élévation du niveau moyen des mers à environ 1,7 mm par an en moyenne entre 1901 et 2011, et à 3,2 mm par an entre 1993 et 2014. Soit une élévation moyenne du niveau des mers de 17 cm pendant le vingtième siècle.

D'après le même site, durant la même période, la température moyenne du globe a augmenté d'environ 0,6 °C.

D'après le site du CNRS, la contribution de la dilatation thermique à la hausse du niveau des océans est d'environ 25%. Au cours de la dernière décennie du vingtième siècle, cette contribution a augmenté pour atteindre 50%.

On peut donc estimer que pendant le vingtième siècle, sur 17 cm de hausse du niveau marin, la dilatation thermique contribue pour 5 à 6 cm.

Modéliser la hausse due à la dilatation thermique

Dans la suite, je propose un modèle très primaire de la dilatation thermique des océans, qui permet de se faire une idée de ce qui nous attend avec une augmentation de quelques degrés de la température atmosphérique. Pour le valider, je l'appliquerai d'abord aux données du vingtième siècle, c'est à dire une élévation de 0,6 °C, pour une élévation du niveau des mers d'environ 6 cm due à la dilatation thermique.

La physique

La donnée de base de l'étude de la dilatation thermique des océans est une grandeur thermodynamique que l'on appelle coefficient de dilatation thermique, noté \( \alpha \). Ce coefficient est caractérisé par la variation de la masse volumique d'un corps en fonction de la température, soit :

\( \alpha = - \dfrac{1}{\rho} \dfrac{\partial{\rho}}{\partial T} \)

avec \( \rho \) la masse volumique du corps (en kg.m-3), dans notre cas l'eau. Le signe "-" indique que la masse volumique diminue avec la température (pour la plupart des corps). L'unité de \( \alpha \) est le \( K^{-1} \). Le coefficient de dilatation volumique de l'eau dépend de la température et aussi de la salinité. Pour fixer les idées, il est de l'ordre de \( 10 ^{-4} K^{-1} \), ce qui est loin d'être négligeable.

La masse volumique varie donc en fonction de la température selon la formule \( \dfrac{\partial{\rho}}{\rho} = - \alpha \partial T \) ou encore, si nous nous souvenons que \( \rho =  \dfrac{m}{V} \), l'expression devient avec un petit calcul de différentielles : \( \dfrac{\partial{V}}{V} = \alpha \partial T \). En ne considérant que les variations dues à la température, je peux supprimer la dérivée partielle et écrire :

\( \dfrac{dV}{V} = \alpha dT \)

En d'autres termes, lorsque la température s'élève le volume des océans augmente, et comme le contenant de ces océans ne bouge pas vraiment, le niveau marin augmente.

A partir de cette physique très simple (voire simpliste), essayons de construire un modèle qui nous fournira quelques indications sur l'augmentation du niveau marin en fonction du réchaufement de la température de l'atmosphère.

Les approximations

Pour construire mon modèle, j'ai fait beaucoup d'approximations simplificatrices. Le résultat obtenu sera donc approximatif mais pourra être comparé avec les variations constatées à ce jour. Les principales approximations faites sont :

La hauteur de la colonne d'eau

Les mesures de la température de l'eau en fonction de la profondeur montrent que les variations de la température atmosphérique n'affectent pas la température de l'eau de la même manière selon la profondeur. Près de la surface, disons entre 0 et 200 m, la température de l'air et de l'eau sont semblables. Entre 0 et 1 000 m, on admet que l'océan et l'atmosphère sont en équilibre thermique, c'est la couche thermocline. En dessous de cette couche, la température est sensiblement constante.

Dans mon modèle, pour alléger les calculs, je ne considérerai que la couche d'eau comprise entre 0 et 1 000 m, en fixant la thermocline à 1 000 m, comme c'est le cas en moyenne sous nos latitudes pour le bassin Atlantique Nord.

La salinité

Je négligerai la variation du coefficient de dilatation thermique en fonction de la salinité de l'eau de mer. Vous pouvez trouver sur internet une table du CDT en fonction de la salinité et modifier le modèle pour en tenir compte...

La géométrie des bassins océaniques

Dans mon modèle, je considère implicitement que les bassins océaniques sont des bacs à parois verticales, de profondeur uniforme. C'est bien entendu très approximatif.

Le choix du bassin océanique

Pour déterminer les données dont j'aurai besoin, il faut choisir un bassin océanique et une latitude, sachant que, par exemple, la température de l'eau et l'équilibre thermique atmosphère/océan dépend de cette latitude.

Par choix et par atavisme, j'ai choisi le bassin Atlantique Nord sous nos latitudes (45° Nord).

Les données

La température en fonction de la profondeur

Les tables de mesures de la température en fonction de la profondeur pour l'Atlantique Nord sont assez faciles à se procurer (Ifremer, NOAA, SHOM, etc.). Dans mon modèle, j'utilise la table suivante, présentée sous forme de deux tableaux Numpy, que j'ai construit à partir de courbes des sites NOAA et Ifremer :

xTemp = array([0.0,100.0,200.0,300.0,400.0,500.0,600.0,700.0,800.0,900.0,1000.0,1250.0,1500.0,2000.0,2500.0,3000.0,4000.0,5000.0])
yTemp = array([22.0,22.0,21.8,21.2,18.0,13.5,10.5,8.3,7.0,6.0,5.5,4.8,4.4,4.0,3.7,3.5,3.2,2.9])

A partir de cette table, j'ai construit une courbe d'interpolation (on verra plus bas comment) qui illustre l'évolution de la température de l'eau en fonction de la profondeur.

Variation de la température de l'eau selon la profondeur

La courbe d'interpolation montre clairement les variations de température selon les différentes couches : la couche superficielle entre 0 et 200m, la thermocline entre 200 et 1000 m, puis la couche profonde où la température est presque stable autour de 4 °C.

Le coefficient de dilatation thermique en fonction de la température

Le coefficient de dilatation thermique (CDT) de l'eau pure en fonction de la température est mesuré en laboratoire. J'ai récupéré cette table sur ce site :

xCDT = array([0.0,2.0,4.0,6.0,10.0,20.0,40.0,60.0,80.0,100.0])
yCDT = array([-0.5e-04,-0.5e-04,0.15e-04,0.15e-04,0.6e-04,1.5e-04,3.01e-04, 4.56e-04,5.84e-04,6.82e-04])

A partir de cette table, j'ai construit une courbe d'interpolation qui illustre l'évolution du CDT en fonction de de la température de l'eau.

Variation du CDT de l'eau selon la température

Notez que lorsque la température est inférieure à 4°C, le CDT est négatif, c'est à dire que le volume diminue entre 0 et 4°C, ce qui est propre à l'eau, ce liquide étrange...

Le modèle

Considérons une colonne d'eau cylindrique de hauteur h, que nous allons découper en tranches fines par rapport à h (j'ai choisi des tranches de 1 m). Pour chaque tranche, je vais calculer l'augmentation de volume qu'elle subira suite à une augmentation de température dT.

Pour effectuer ce calcul, je vais me servir de l'équation \( \dfrac{dV}{V} = \alpha dT \), l'augmentation de la hauteur de chaque tranche étant proportionnelle à l'augmentation de volume de la tranche (je pose que l'augmentation de volume se fait par accroissement de la hauteur du cylindre).

Pour une tranche quelconque de profondeur z, il faut que je détermine le CDT applicable, qui dépend de la température à la profondeur z, puis je calculerai pour la tranche l'augmentation dz de la hauteur en appliquant \( \dfrac{dz}{z} = \alpha dT \).

Pour obtenir la variation dZ sur la hauteur totale de la colonne, il me suffira de sommer toutes les augmentations de hauteur "infinitésimales", en bref de faire une intégration sur la hauteur de la colonne.

L'algorithme du programme de calcul est donc très simple :

Passons à la rédaction du script Python qui va dérouler cet algorithme.

Le script python

L'interpolation

Dans l'algorithme présenté ci-dessus, vous avez noté que je découpais la colonne d'eau par petites tranches de 1 m. Pour effectuer mes calculs, j'aurai donc besoin de connaitre la valeur de la température et du CDT pour une profondeur variant entre 0 et 1 000 m, par pas de 1 m. Le seul petit problème, c'est que les tables de données dont je dispose me fournissent des informations sur quelques points seulement...

Par exemple, je connais la température à 300 m de fond (21,2°C) et à 400 m (18.0°C), mais quelle température fait-il à 320 m de fond ? Facile me direz-vous, je fais une "règle de trois" ! Ce faisant, vous faites une interpolation linéaire sans le savoir, comment Monsieur Jourdain.

Interpoler une liste de points, c'est trouver une fonction qui "passe" par tous ces points et qui me permettra donc de calculer la valeur des points intermédiaires. Par exemple, je vais chercher une fonction f telle que f(300) = 21,2 et f(400) = 18.0, ainsi je pourrais calculer f(320). Il existe plusieurs techniques d'interpolations que nous examinerons dans une prochaine page.

Dans mon script, j'utilise la fonction interp1d du module scipy.interpolate, à qui je fournis les deux listes de points xTemp et yTemp à interpoler (les x et les y des mes points de mesure) et qui me retourne la fonction d'interpolation fTemp. L'appel de cette fonction est très simple:

fTemp = interpolate.interp1d(xTemp,yTemp,kind='linear')

Pour trouver la valeur d'une température Ti à une profondeur quelconque i, il me suffit de poser :

Ti = fTemp(i)

Simple non ? Ah oui, j'ai choisi ici d'utiliser l'interpolation linéaire, la plus simple. J'ai essayé des méthodes plus sophistiquées (par des splines cubiques) mais le résultat est quasi-identique, alors pourquoi se compliquer la vie !

Retenez ceci : en physique expérimentale et numérique, il est très souvent utile d'interpoler les points de mesures et de travailler sur la fonction d'interpolation. Mais il est possible que la méthode linéaire ne convienne pas toujours. Essayez-là et si vous n'êtes pas satisfait, passez en spline quadratique ou cubique (voir la documentation de scipy.interpolate.interp1d).

L'intégration

J'ai déjà abordé les techniques d'intégration numérique en FORTRAN dans cette page. Je ne reviens pas dessus, le code FORTRAN étant très facilement transposable en Python.

Pour me simplifier la vie, sachant que j'ai à intégrer une liste de valeurs numériques et pas une fonction, je vais utiliser la méthode de Simpson et la fonction scipy.integrate.simps :

hausseTotale = integrate.simps(zh,x=h)

zh est la liste de valeurs à intégrer sur l'axe h, qui donne également les bornes d'intégration. la valeur retournée est le résultat de l'intégrale.

J'aurais pu utiliser des méthodes d'intégration plus sophistiquées, par exemple la méthode de Romberg. Je l'ai fait, et les résultats sont quasi-identiques. J'aurais également pu interpoler les listes h et zh puis intégrer la fonction d'interpolation, pour un résultat presque identique.

Le script

Le script de calcul est très simple. Je commence par définir les tables de données et les différents paramètres de calcul. Puis je calcule les deux fonctions d'interpolations dont j'aurais besoin :

fTemp = interpolate.interp1d(xTemp,yTemp,kind='linear')
fCDT  = interpolate.interp1d(xCDT,yCDT,kind='linear')

puis j'exécute la boucle de calcul qui recopie l'algorithme :

h = arange(0.0,hColonne,dh)
zh = []
for i in h:
    # chercher la température en fonction de la profondeur
    Ti = fTemp(i)
    # chercher le CDT en fonction de la température
    CDTi = fCDT(Ti)
    # calculer la variation verticale de la tranche i
    dz = CDTi*dT
    zh.append(dz)

et enfin j'intégre et j'affiche le résulat :

hausseTotale = integrate.simps(zh,x=h)
print 'Hausse du niveau de la mer: ',hausseTotale,' m'

Les résultats

Validation avec les données du vingtième siècle

En posant dT = 0.6 °C dans le script, la hausse du niveau marin calculée est de 0.06 m, soit 6 cm. Le calcul est fait sur la thermocline (colonne d'eau de 1 000 m de profondeur).

Le CNRS annonce une contribution d'environ 5 à 6 cm sur le vingtième siècle pour l'ensemble des mers, pour une hausse de la température moyenne de 0.6°C . Mon modèle n'est donc pas si mauvais que ça...

Projection avec une hausse de température moyenne de 2 °C

C'est le scénario le plus optimiste du GIEC pour la hausse de la température moyenne de l'atmosphère. D'après mon modèle, cela correspondrait à une hausse du niveau moyen des mers de 19 cm (sur une colonne d'eau de 1 000 m), rien que pour la contribution thermique. Il faut y rajouter la fonte des glaces terrestres...

19 cm ce n'est pas rien ! Et c'est le scénario le plus optimiste, que l'on dépassera très certainement.

Projection avec une hausse de température moyenne de 5 °C

Une augmentation de la température atmosphérique de 5 °C provoquerait une contribution thermique à la hausse du niveau marin de 47 cm d'après mon modèle.

47 cm, c'est colossal ! Surtout si l'on pense que, d'après le CNRS, cela ne représente qu'une contribution de 50% au plus de la hausse du niveau marin. 5°C, c'est une élévation du niveau marin d'un mètre, toutes contributions confondues ! A supposer bien sur que la fonte des calottes glacières ne s'emballe pas, auquel cas la hausse du niveau marin serait bien plus importante.

Les scripts Python

J'ai développé deux scripts Python qui sont disponibles au téléchargement dans le package HNM.zip :

Contenu et design par Dominique Lefebvre - www.tangenteX.com août 2017   Licence Creative Commons    Contact :

Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France.