wiki:IntegrationNEMO4

Integration NEMO4

Cette page fournit quelques informations sur les premiers essais d'intégration de NEMO4 dans le couplé IPSLCM. 2 versions de NEMO4 co-existent :

  • IPSLCM6.5.1 avec NEMOv4.0.7
  • IPSLCM6.5_work avec NEMOv4.2

Les principales nouveautés de NEMO4 par rapport sont listées ici : http://forge.ipsl.jussieu.fr/nemo/wiki/Users/Agenda/2018-07-11#Releasenotes mais on retenir essentiellement

  • un nouveau modèle de glace de mer Si3 qui remplace LIMx
  • introduction de schéma d'advection d'ordre 4
  • une version de PISCES en plus ( PISCES-QUOTA avec rapports stochiométriques variables ). On conserve la version standard
  • les informations de la grille se lisent dans un fichier domain_cfg.nc. On le construit à partir des anciens fichiers bathy_meter.nc et coordinates.nc et un outil dans NEMO : tools/DOMAINcfg
./maketools -n DOMAINcfg -m X64_JEANZAY -j 4

module load python/2.7.16
ln -sf eORCA1.2_ClosedSeas_bathy_meter.nc bathy_meter.nc
cp $NEMO/tools/DOMAINcfg/make_* .
./make_domain_cfg.exe
mv domain_cfg.nc eORCA1.2_ClosedSeas_domain_cfg.nc
./make_closea_masks.py -h
./make_closea_masks.py -c eORCA1 -d eORCA1.2_ClosedSeas_domain_cfg.nc

Les évolutions majeures de v4.2 par rapport à la v4.0 sont listées ici : https://sites.nemo-ocean.io/user-guide/changes.html

On peut retenir :

  • un nouveau système de coordonnées verticale ( QCO pour quasi-eulerian coordinates ) : c'est équivalent à vvl mais on optimise le calcul des facteurs d'échelles verticaux. Activation par une clé CPP key_qco
compute e3t/u/v/w/f on the fly from e3_0(:,:,:,Ktl) * ( 1 + ssh(:,:,Ktl) / h_0( :,: ) * mask( :,:,: ) instead of storing e3t/u/v/w/f...
  • la suppression de bandes de recouvrement dans tous les fichiers d'entrée
  • nouvel interfaçage des apports de nutriments de PISCES avec la dynamique ( namelist_top_cfg plutôt que namelist_pisces_cfg ). C'est géré dans le module de transport et plus du tout dans PISCES + modification des rapports stochiométriques
!----------------------------------------------------------------------
&namtrc_bc       !   data for boundary conditions
!-----------------------------------------------------------------------
!                !  file name        ! frequency (hours) ! variable      ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask !
!                !                   !  (if <0  months)  !   name        !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      !
   sn_trcsbc(5)  = 'dust.orca.new'   ,       -1          , 'dustpo4'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trcsbc(7)  = 'dust.orca.new'   ,       -1          , 'dustsi'      ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trcsbc(14) = 'dust.orca.new'   ,       -1          , 'dustfer'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trcsbc(23) = 'ndeposition.orca',      -12          , 'ndep'        ,  .false.     , .true. , 'yearly'  , ''       , ''    , ''
   rn_trsfac(5)  = 7.9258065e-02    !  (  0.021 / 31. * 117 )
   rn_trsfac(7)  = 3.1316726e-01    !  ( 8.8   / 28.1 )
   rn_trsfac(14) = 6.2667860e-04    !  (  0.035 / 55.85 )
   rn_trsfac(23) = 5.2232143e-01    !  ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.3125/14 )
   rn_sbc_time   = 1.               !  Time scaling factor for SBC and CBC data (seconds in a day)
   !
   sn_trccbc(1)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(2)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(5)  = 'river.orca'      ,    120            , 'riverdip'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(7)  = 'river.orca'      ,    120            , 'riverdsi'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(10) = 'river.orca'      ,    120            , 'riverdoc'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(14) = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   sn_trccbc(23) = 'river.orca'      ,    120            , 'riverdin'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , ''
   rn_trcfac(1)  = 8.333333e+01      !  ( data in Mg/m2/yr : 1e3/12/ryyss)
   rn_trcfac(2)  = 8.333333e+01      !  ( 1e3 /12 )
   rn_trcfac(5)  = 3.774193e+03   !  ( 1e3 / 31. * 117 )
   rn_trcfac(7)  = 3.558719e+01   !  ( 1e3 / 28.1 )
   rn_trcfac(10) = 8.333333e+01   !  ( 1e3 / 12
   rn_trcfac(14) = 4.166667e-03   !  ( 1e3 / 12 * 5e-5 )
   rn_trcfac(23) = 5.223214e+02   !  (  1e3 / 14 * 7.3125 )
   rn_cbc_time   = 3.1536e+7      !  Time scaling factor for CBC data (seconds in a year)
/

Intermonitoring des simulations IPSLCM avec NEMO4. Toutes les simulations démarrent de scratch. On peut travailler sur la construction des états initiaux d'océan compatibles avec CM6.2. Un exemple se trouve ici : /ccc/work/cont003/gencmip6/p48ethe/ICMC-TOOLS/CPLRESTART/eORCA1.4xLMD144142/README

https://thredds-su.ipsl.fr/thredds/fileServer/ipsl_thredds/cetlod/interMonitoring/CM65work_IDRIS_InterMonit/index.html


CM62-LR-pi-JZ-01 : CM62 Anciens poids

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   6594      
 * LMDZ6/trunk                      revision   3651
 * NEMO_v3.6_STABLE                 revision   9455 
 * Shaconemo                        revision   287  


CM65v6-LR-pi-JZ-03 : CM65 Anciens poids

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   6594      
 * LMDZ6/trunk                      revision   3651
 * NEMOv4.0.3                       revision   14491 


CM65v406-LR-pi-06 : CM65 Nouveaux poids avec bug sur le calving dans cpl_mod.F90

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   6594      
 * LMDZ6/trunk                      revision   3651
 * NEMOv4.0.6                       revision   14599 


CM65v406-LR-pi-NWGHT-02 : CM65 Nouveaux poids v1 et correction du bug sur le calving

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   6594      
 * LMDZ6/trunk                      revision   3651 + modif cpl_mod.F90
 * NEMOv4.0.6                       revision   14599 


CM65v407-LR-pi-01 : CM65 Nouveaux poids v2 et correction du bug sur le calving

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   6594      
 * LMDZ6/trunk                      revision   3651 + modif cpl_mod.F90
 * NEMOv4.0.7                       revision   14599 


CM65v420-LR-SKL-pi-05 : CM65 Nouveaux poids

 * branches/ORCHIDEE_2_2/ORCHIDEE   revision   7576      
 * LMDZ6/trunk                      revision   4125
 * NEMOv4.2.0/tag                   revision   HEAD

CR Réunion 15/03/2022 au LSCE (Olivier M, Christian, Arnaud)

Le but de la réunion est de faire le point et d'établir une feuille de route concernant l'intégration de NEMO4 dans les configurations couplées IPSLCM. L'objectif final de ce travail est la mise en place du modèle IPSLCM7 (ICOLMDZOR + NEMO4).

  • Configurations couplées LMDZOR (grille régulière) + NEMO
    • IPSLCM6.2 : LMDZOR + NEMO 3.6 (couplé standard)
    • IPSLCM6.5.1 : LMDZOR + NEMO 4.0.7 (validation en cours, plusieurs centaines d'années de run : simulation CM65v406-LR-pi-NWGHT-02 )
      • A faire pour la résolution standard LR
        • générer les poids MOSAIX en version v2 + correction bug mer fermées puis lancer une nouvelle simulation à partir de l'état de l'année 2100 de la simulation CM65v406-LR-pi-NWGHT-02 (DONE : simulation CM65v407-LR-pi-01)
        • lancer une simulation partant de l'état de démarrage par défaut d'une CM6.2 (restart piControl CMIP6) pour les variables T et S (Christian)
        • mettre à jour IPSLCM6.5.1 dans mod.def (DONE)
        • répartition optimales des charges de calcul entre atm et oce (Arnaud)
    • IPSLCM6.5_work : LMDZOR + NEMO 4.2 (validation en cours, simulation CM65v420-LR-SKL-pi-05 )
      • A faire pour la résolution standard LR
        • adapter l'outil MOSAIX pour traiter correctement la nouvelle grille eORCA1.4.2 sans halos (DONE)
        • générer les poids MOSAIX en version v2 puis lancer une nouvelle simulation
        • mettre à jour IPSLCM6.5_work dans mod.def (Christian)
        • répartition optimales des charges de calcul entre atm et oce (Arnaud)
      • Version NEMO 4.2 intéressante à tester en climat froid
  • Configurations couplées ICOLMDZOR (grille icosaédrique) avec routage simple + NEMO
    • IPSLCM6-ICO : ICOLMDZOR + routage simple + NEMO3.6
      • en cours de développement, a tourné 10 ans en LR nbp40 x ORCA1
      • existe techniquement aux résolutions nbp40 x ORCA025, nbp160 x ORCA025, nbp320 x ORCA025 (a tourné 1 mois)
      • A faire : régler le modèle pour la résolution LR
    • IPSLCM7 : ICOLMDZOR + routage simple + NEMO4
      • existe techniquement avec NEMO4.0.7 (a tourné 1 mois)
      • A faire : récupérer la namelist et domain_cfg pour la résolution ORCA025 (sans PISCES, avec le traceur Age) et ORCA 1/12 pour assembler une config ICOLMDZOR x NEMO4.2 et augmenter les résolutions jusqu'à 25 km et 12 km (Arnaud et Christian).

Last modified 18 months ago Last modified on 09/21/22 11:10:16

Attachments (1)

Download all attachments as: .zip