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 (en cours)

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 technique 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.

Implémentation dans Lmdz :

  • Dans le code :
    • 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 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 avec Ecrad :
    • Les différents scripts de compilations ont été adaptés pour compiler avec le code ECRAD en utilisant l'option :
      • makelmdz/makelmdz_fcm -rad ecrad
    • Pour tourner une simulation LMDZ -rad ecradLes 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). 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

  • Simulation 1D avec Ecrad:
    • 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 : vous devez partir d'une version récente de LMDZ pour tourner avec Ecrad
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

  • Simulation 3D avec Ecrad :
    • 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 

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

  • Pour tourner Ecrad offline avec les sorties Lmdz :

    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

     

Validation 1D :

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 :