Aller au contenu. | Aller à la navigation

Outils personnels

Navigation
Vous êtes ici : Accueil / Membres / Abderrahmane IDELKADI / Implémentation du code de transfert radiatif ECRAD dans le modèle LMDZ

Implémentation du code de transfert radiatif ECRAD dans le modèle LMDZ

Note technique décrivant le travail d'implémentation de Ecrad dans LMDZ

Introduction :

Ecrad (ECMWF Radiation scheme) est un code de transfert radiatif atmosphérique conçu pour calculer les flux du rayonnement solaire (shortwave) et thermique irradiances infrarouges (longwave) de la surface jusqu'à la mésosphère moyenne. Il est intégré au modèle de prévision météorologique  Integrated Forecasting System (IFS), utilisé de manière opérationnelle par le Centre européen de Prévisions météorologiques à moyen terme (ECMWF), dans lesquelles il est utilisé pour calculer les taux de chauffage et de refroidissement radiatifs de l'atmosphère et de la surface.
Un aperçu scientifique d'ecRad a été fourni par Hogan et Bozzo (2018). Il intègre le Rapid Radiatif Modèle de transfert pour les MCG (RRTMG ; Iacono et al., 2008) pour représenter l'absorption par les gaz atmosphériques et un traitement flexible des propriétés optiques des particules d'aérosol. Trois solveurs différents capables de représenter les effets de la structure des nuages ​​de sous-grille : McICA (Pincus et al., 2003), Tripleclouds (Shonk et Hogan, 2008) et SPARTAQUE (Hogan et al., 2016).

ECRAD dispose de toute une gamme d’options, lui permettant d’une part de reproduire au plus près les paramétrisations antérieures (SRTM et RRTM), en les remplaçant avantageusement grâce à de meilleures performances (30%de gain en coût de calcul en moins pour IFS :SRTM-ECRAD ). D'autre part, il donne accès à différentes options supplémentaires.

Sur le plan informatique, Ecrad est codé en Fortran orienté objet (2003) de manière efficace et flexible. Il est constitué de quatre modules pratiquement indépendants :

  • Optique des gaz
  • Optique des aérosols
  • Optique des nuages
  • Solveur

 

Dans cette page, sera décrit le travail d'implémentation du code Ecrad dans le modèle LMDZ. Les différentes étapes suivies seront décrites dans le but de faciliter l'utilisation du modèle avec le code radiatif ECRAD.

 

Version "online" :

Les sources du code Ecrad ont été implémenté dans le modèle LMDZ. Les fichiers sont regroupés dans le répertoire :

../LMDZ//libf/phylmd/ecrad

Le code ECRAD est compilé sous une clés CPP (CPP_ECRAD).

Les différents scripts de compilations ont été adaptés pour compiler avec le code ECRAD en utilisant l'option : "-rad ecrad".

Les appels aux différents codes de transfert radiatifs dans LMDZ, sont gérés dans la routine radlwsw_m.F90 via la clés logique iflag_rrtm (0 pour l'ancien code, 1 pour RRTM et 2 pour ECRAD).Pour tourner ainsi une simulation LMDZ avec ECRAD, il faut mettre iflag_rrtm=2 dans physiq.def

Le script install_lmdz.sh est également adapté pour installer, compiler et tourner une simulation test avec Ecrad (install_lmdz.sh -rad ecrad).

Validation 1D :

En utilisant le script install_lmdz.sh, pour installer le modèle LMDZ, le compiler en mode debug avec le code de transfert radiatif ECRAD et tourner la version 1D, voici comment procéder :

ATTENTION : la dernière mise à jours des sources ECRAD de LMDZ est faite dans la trunk svn  4116. Vous devez partir d'une version LMDZ postérieur à cette révesion ou mettre à jours la version que vous utiliser.

wget http://www.lmd.jussieu.fr/~lmdz/pub/install_lmdz.sh
chmod +x install_lmdz.sh
./install_lmdz.sh -rad ecrad -debug -bench 0 -SCM

Dans la suite, j'ai utilisé le cas 1D "ARMCU" pour faire les différents tests. J'ai activé le calcule de transfert radiatif dans le modèle (iflag_radia=1 dans cas.def) et j'ai mis en place une batterie de tests, pour comparer les résultats online-offline, avec ECRAD et RRTM et en testant le doublement de CO2.

Comparaison online-offline :

Pour comparer les résultats obtenus à partir des simulations online et offline avec le code ECRAD, j'ai utilisé la démarche suivante :

Dans la simulation LMDZ où Ecrad est activé, je sauvegarde, juste avant chaque appel à Ecrad,  dans un fichier Netcdf tous les champs climatiques  nécessaires pour tourner Ecrad en mode débranché. Je sauvegarde également dans un fichier Netcdf les flux radiatifs juste après chaque appel à Ecrad.Les champs climatiques archivés lors de cette simulation en ligne sont utilisés pour tourner Ecrad en mode débranché.

On compare ensuite les flux radiatifs obtenus à partir des 2 simulations en mode en ligne et en mode débranché. Voici le lien vers les figures montrant les différences entre les flux offline et online :

Comparaison LMDZ avec RRTM / ECRAD :

Dans le cas 1D "ARMCU", j'ai mis en place 2 simulations 1D avec LMDZ. L'une en utilisant le code radiatif ECRAD et la seconde en utilisant RRTM. Ensuite, j'ai comparé les différents flux radiatifs obtenus à partir des 2 simulations. Voici le lien vers les résultats obtenus :

SW and LW radiative net flux :

SW and LW downward and upward radiation :

        SW and LW upward and downward at Surface :

        SW and LW upward and downward at TOA :

        Tendances radiatives :

Tendances à 12:00 (t0) :

Tendances moyennées dans le temps :

Sensibilité au doublement de CO2 (comparaison RRTM / ECRAD) :

A partir de ces simulations de référence, j'ai également mis en place 2 simulations pour tester la sensibilité au doublement de CO2 en utilisant Ecrad et Rrtm. Voici quelques résultats obtenus à partir de ces simulation :

SW and LW net flux :

                 SW and LW downward and upward radiation :

                SW and LW upward and downward at Surface :

                SW and LW upward and downward at TOA :

 

Validation 3D :

 

En utilisant le script install_lmdz.sh, pour installer le modèle LMDZ, le compiler avec le code de transfert radiatif ECRAD et tourner une simulations test 3D, voici comment procéder :

ATTENTION : la dernière mise à jours des sources ECRAD de LMDZ est faite dans la trunk svn  4116. Vous devez partir d'une version LMDZ postérieur à cette révesion ou mettre à jours la version que vous utiliser.

wget http://www.lmd.jussieu.fr/~lmdz/pub/install_lmdz.sh
chmod +x install_lmdz.sh
./install_lmdz.sh -rad ecra

3D en Parallèle : (en cours)

 J'ai intégré dans le code Ecrad les directives nécessaires pour le parallélisme MPI/OpenMP, notamment pour la partie "initialisation". Ensuite, j'ai mis en place une série de tests pour m'assurer d'avoir les mêmes résultats avec les différents modes de parallélisme (MPI seul, OpenMP seul et mixte MPI/OpenMP).

Comparaison Ecrad/Rrtm : (à faire)

J'ai mis en place 2 simulations Amip guidées, l'une en utilisant le code RRTM et l'autre en utilsant ECRAD.

Comparaison online-offline : (à faire)

 

Couplage avec les aérosols : (à faire)

 

Version "offline"

Vesion 1D :

Pour pouvoir tourner le code Ecrad sur les sorties 1D du modèle LMDZ. Voici les étapes à suivre :

    • Installer la version offline du code Ecrad :
git clone https://github.com/ecmwf/ecrad
cd ecrad
make PROFILE=gfortran

  • Installer un utilitaire permettant d'adapter les sorties LMDZ (tmp_lmdz_std.nc) à Ecrad (lmdz_pour_ecrad.nc) :
wget http://www.lmd.jussieu.fr/~lmdz/dephy2ecRad.tar .
tar -
xzvf dephy2ecRad.tar
cd dephy2ecRad
./make_ecRad_input.sh lmdz_pour_ecrad_armcu.nc
  • Tourner Ecrad sur les sorties de LMDZ:
../ecrad/bin/ecrad namelists/config_all_parameters.nam lmdz_pour_ecrad.nc out.nc

 Vesion 3D : (à faire)

 

Ajouter un commentaire

Vous pouvez ajouter un commentaire en complétant le formulaire ci-dessous. Le format doit être plain text. Les commentaires sont modérés.

Enter the word