wiki:IPSLCM5ACo2

Version 21 (modified by mmaipsl, 14 years ago) (diff)

--

IPSLCM5A et CO2 interactif

Choix du Nom pour ce couplé

JLD a choisi IPSLCM5A-C. Le nom du modèle reste IPSL-CM5A-LR dans CMOR.

Martial : Le nom IPSLCM5A-C est impossible a utilisé avec un couplé car il y a le script fait_config qui utilise ce nom pour des variables et le '-' est interdit dans un nom de variable shell.
Je propose le changement de nom : IPSLCM5A_C pour la config.
voir la sortie du shell : /work/cont003/p86manci/IPSLCM5A-C/config/shell_install_erreur:fait_config

Martial va créer une copie de travail IPSLCM5A/piControl vers IPSLCM5A/CpiControl sur le svn à ce nom.

Mise en place d'une première version

réunion du 18/11/2010 : présent Laurent Bopp, Christian Ethé, Martial Mancip.

Deux versions de couplé avec CO2 interactif pour CMIP5 sont prévues :

  • une première version avec la version IPSLCM5A avec un CO2 atmosphérique moyen (pas de transport ATM, flux océaniques et continentaux moyennés spatialement et temporellement) : comme IPSLCM4_LOOP
  • une seconde version "IPSLCM5_ESM" avec les flux de carbone spatialisés et transportés en haute fréquence (jusqu'à la demi-heure pour la surface).

Nous établissons ici la liste des modifications à apporter au couplé IPSLCM5A (modèle et scripts) :

  1. on doit rajouter la lecture d'un fichier d'émissions ff (fossil fuel),
  2. on doit récupérer les flux moyens de PISCES et d'ORCHIDEE,
  3. à la place de la lecture des concentrations IPCC_CO2 imposées, on va calculer la concentration moyenne mensuelle (ou annuelle).
  4. on doit conserver ces valeurs de co2 (une ligne par mois)
      CumulPeriod | PeriodDateBegin |   PeriodDateEnd | Monthly CO2 for Period | Previous Monthly CO2 | fossil flux | PISCES flux | ORCHIDEE NEP | ORCHIDEE LUC 
    
  5. Tests et lancement des deux simulations en PROD.

Pour mettre en place la configuration IPSLCM5A en IPSLCM5A_C modifiée,

  • Martial doit commiter les modifs modipsl présentes dans /work/cont003/p86manci/IPSLCM5A-C :
    1. mod.def ; pour la description de la configuration IPSLCM5A_C (tag de ORCHIDEE orchidee_1_9_5_1 et rev de NEMO/PISCES changée)
    2. model ; pour le rajout de la config IPSLCM5A_C et appel correct à fait_config.
  • Christian doit commiter modeles/UTIL/fait_config et donner la nouvelle révision après ce commit.

fichier fuel

modifications des modèles

Les flux d'émission de CO2 dans PISCES sont écrites dans ocean.output et si on rajoute la sortie tco2flux dans iodef.xml, il sera sauvé.

        WRITE(numout,*) 'Total Flux of Carbon out of the ocean :'
        WRITE(numout,*) '-------------------- : ',t_oce_co2_flx
        WRITE(numout,*) '(GtC/yr)'

Pour l'instant ce flux de CO2 global n'est sauvé qu'en moyenne mensuelle. L'affichage du flux est dans le ocean.output du mois de décembre. On va devoir modifier PISCES pour afficher ce CO2 calculé tous les mois (à faire).
MM: récupération de ces affichages faite par lmdz_analyse_opa_out.awk. A voir : refaire pour le nouvel affichage

voir /work/cont003/p86manci/IPSLCM5A-C/config/ pour les tests.

Les flux d'émission de CO2 (NEP) dans ORCHIDEE sont écrits par processus MPI dans les sorties out_orchidee_000? :

 net_co2_flux_monthly (Peta gC/month)  =   

Dans ORCHIDEE, il faut modifier la sortie du flux de co2 cumulé mensuel et imprimer le flux de LAND USE co2_fluc (moyenné par mois). Dans la version 1.9.5.1, on aura, par exemple :

  • dans out_orchidee_0000
     net cflux_prod_total_sum (Peta gC/month)  =  5.6934618773805835E-8
     GLOBAL net cflux_prod_total_sum (Peta gC/month) (Peta gC/month)  =  9.662333990224707E-8
     net_co2_flux_monthly (Peta gC/month)  =  0.003845278542203147
     GLOBAL net_co2_flux_monthly (Peta gC/month)  =  0.005059629812181452
    
  • dans out_orchidee_0001
     net cflux_prod_total_sum (Peta gC/month)  =  3.968872112844124E-8
     GLOBAL net cflux_prod_total_sum (Peta gC/month) (Peta gC/month)  =  9.662333990224707E-8
     net_co2_flux_monthly (Peta gC/month)  =  0.0012143512699783043
     GLOBAL net_co2_flux_monthly (Peta gC/month)  =  0.005059629812181452
    

Les valeurs GLOBAL net... sont donc les grandeurs sommées totales et identiques pour toutes les sorties.
MM: récupération de ces affichages faite par lmdz_analyse_stomate_out.awk.

voir /work/cont003/p86manci/IPSLCM5A-C/config/ pour les tests.

On devra donc obligatoirement modifier ces deux modèles pour créer cette version du couplé CO2.

On ne peut pas passer par les fichiers NetCDF sur les machines SX. On doit donc passer par les fichiers textes.

Le calcul de la concentration mensuelle

Il se fait dans ATM_Update

   co2_ppm = co2_ppm_prec + ( fco2_ff + t_oce_co2_flx + net_co2_flux_monthly + fco2_luc ) / 2.12

2.12 est le nombre de PetaGC / ppm.

Attention aux signes des flux : convention atmosphérique. Ils doivent être comptés positivement si ils forment une source de carbone pour l'atmosphère. Pour l'océan, on doit le vérifier :

        ! Conversion in GtC/yr ; negative for outgoing from ocean
        t_oce_co2_flx = (-1.) * t_oce_co2_flx  * 12. / 1.e15

Pour la surface, c'est OK :

       ! CO2 flux in gC/m**2/sec (positive towards the atmosphere) is sum of:
      co2_flux(:,:) = resp_hetero(:,:) + resp_maint(:,:) + resp_growth(:,:) &
            & + (co2_fire(:,:)-co2_to_bm_dgvm(:,:))*veget_cov_max(:,:)/one_day &
            & - gpp(:,:)

A voir ensuite: les signes des flux totaux de déforestation. La NBP est IPCC est positive pour la surface.

       nbp(:)=(SUM((gpp_daily-(resp_maint+resp_growth+resp_hetero)-co2_fire) &
            &        *veget_max,dim=2)-cflux_prod_total-harvest_above)/1e3/one_day*contfrac

fichier co2.log

On fait un cat dans un fichier co2.log du SUBMIT_DIR comme indiqué ci-dessus. On doit alors récupérer chaque mois le co2_prec=co2 du mois précédent pour appliquer la formule.

La condition du co2_prec est un nouveau paramètre dans la lmdz.card : lmdz_UserChoices_co2_init.

Tests et runs

On part de la fin du piControl2 : 31/12/2500. Le run piControl2 ici

/work/cont003/p86caub/CMIP5/modipsl/config/IPSLCM5A/piControl2

Les tests de développement sont :

  • calcul du flux, sauvegarde, mais conservation du co2 imposé + diagnostique sur le flux moyen
  • introduction du co2 moyen (pour compenser le transport du co2 dans le routage qui manque au modèle de surface).

JLD propose de tester :

  • 1 mois binaire-compatible : comparaison solver.stat, comme dans le trusting (qui tourne avec EXP00 compatible PdControl?)
  • puis 10 ans de piControl2 pour avoir le même modèle en CO2 pré-industriel forcé.

Les productions seront :

  • un run historique
  • un run RCP 8.5

Les étapes de développements :

  1. test de compilation Nemo avec la clé key_cpl_carbon_cycle (CE et MM) : fait dans
    /work/cont003/p86manci/CMIP5/HISTO3/config/IPSLCM5A
  2. test de run avec la clé loop sur 3 ans et les bons restarts (MM) : fait dans
    /work/cont003/p86manci/CMIP5/HISTO3/config/IPSLCM5A/historical3testLOOP et
    /dmnfs11/cont003/p86manci/IGCM_OUT/IPSLCM5A/DEVT/historical/histoTLOOP


Pour la version IPSLCM5A avec un CO2 atmosphérique moyen ( calculé offline ), il ne faut pas activer la clé key_cpl_carbon_cycle ( l'océan s'attend à recevoir dans ce cas une pco2 "spatialisée" ) (CE)

  • PISCES est modifié pour diagnostiquer le flux total de carbone océanique cumulé sur la durée du run
          t_oce_co2_flx = t_oce_co2_flx + SUM( oce_co2(:,:) * tmask_i(:,:) ) ! Cumulative Total Flux of Carbon
          IF( kt == nitend ) THEN
             !
             IF( lk_mpp )   CALL mpp_sum( t_oce_co2_flx )             ! sum over the global domain  
             t_oce_co2_flx = (-1.) * t_oce_co2_flx  * 12. / 1.e15     ! Conversion in PgC ; negative for out of the ocean
             !
          ENDIF
    
  • 2 runs tests d'une année pour vérifier que rien n'est modifié :
    • version standard de IPSCM5A :
      /scratch/cont003/p48ethe/IPSLCM5A/STD/modipsl/modeles/NEMO/TOP_SRC/PISCES/p4zflx.F90
      /scratch/cont003/p48ethe/IPSLCM5A/STD/modipsl/config/IPSLCM5A/historical
      /dmnfs10/cont003/p48ethe/IGCM_OUT/IPSLCM5A/DEVT/historical/FLXSTD
      
    • version modifiée ( diagnostique des flux de carbone ) de IPSCM5A :
      /scratch/cont003/p48ethe/IPSLCM5A/DEV/modipsl/modeles/NEMO/TOP_SRC/PISCES/p4zflx.F90
      /scratch/cont003/p48ethe/IPSLCM5A/DEV/modipsl/config/IPSLCM5A/historical
      /dmnfs10/cont003/p48ethe/IGCM_OUT/IPSLCM5A/DEVT/historical/FLXDEV
      
  • Comparaison des solver.stat
    cd /dmnfs10/cont003/p48ethe/IGCM_OUT/IPSLCM5A/DEVT/historical/
    sdiff -s FLXSTD/OCE/Debug/FLXSTD_18501201_18501231_solver.stat FLXDEV/OCE/Debug/FLXDEV_18501201_18501231_solver.stat
    

On récupère la valeur du flux total de carbone océanique dans le fichier ocean.output :

  Cumulative total Flux of Carbon out of the ocean (PgC) : -4.884764275789542D-02