wiki:ICOLMDZ-LAM

Configuration ICOLMDZOR-LAM (TGCC, IDRIS)


News : 05/04/2024 : Les expériences LAM sont désormais disponibles sous la configuration IPSLCM7.

Nouvelle configuration IPSLCM7

Extraction de la nouvelle configuration IPSLCM7

svn co https://forge.ipsl.fr/igcmg/svn/modipsl/trunk modipsl ; cd modipsl/util ; ./model IPSLCM7_work ou ./model IPSLCM7_work ICOLMDZOR

Les composants suivants composent la configuration:

  • DYNAMICO : master, 374a3c66
  • ICOSA_LMDZ : LMDZ6/trunk, rev 4558
  • LMDZ : LMDZ6/branches/IPSL-CM6A-MR, rev 4876
  • ORCHIDEE : branches/ORCHIDEE_2_2/ORCHIDEE, rev 8468

Compilation de la configuration

cd config/IPSLCM7 ; ./compile_ipslcm7.sh ou ./compile_ipslcm7.sh -subconfig ICOLMDZOR -regular_latlon no

Note : sur Jean-Zay, pensez à vous mettre sur la frontale pp pour compiler via ssh login@jean-zay-pp1.idris.fr.
Note 2 : sur Jean-Zay, il est possible que vous ayez un plantage à la compilation de XIOS en raison d'un manque de ressources. Dans ce cas là, relancez la compilation. Note 3 : les compilations peuvent être très lentes depuis les frontales TGCC ou IDRIS. La compilation en utilisant un noeud de calcul en interactif est plus rapide. Pour faire cela :

  • IDRIS : srun --pty --ntasks=1 --cpus-per-task=20 --hint=nomultithread -t 00:30:00 --account=votre_projet_de_calcul@cpu --qos=qos_cpu-dev bash . Il faut préciser le arch de compilation et donc, par ex, utiliser la commande ./compile_ipslcm7.sh -arch X64_JEANZAY -subconfig ICOLMDZOR -regular_latlon no
  • TGCC : ccc_mprun -s -T 1800 -x -p skylake -Q test -A votre_projet_de_calcul . Il faut préciser le arch de compilation et donc par ex, sur irene SKL, utiliser la commande ./compile_ipslcm7.sh -arch X64_IRENE -subconfig ICOLMDZOR -regular_latlon no

cas particulier du LAM avec la configuration chimie atmosphérique

Pour compiler il faut ajouter l'option indiquant que l'on utilise la chimie (actuellement uniquement dispo pour la configuration chimique "AER" (aérosols atmo + peu de chimie)

./compile_ipslcm7.sh -subconfig ICOLMDZORINCA -chimie AER -regular_latlon no

Exécution

Les 6 expériences disponibles avec 2 types de forçages possibles

Ces 6 expériences sont disponibles avec les configurations ICOLMDZ et ICOLMDZOR (avec ORCHIDEE).

Les expériences tournent par défaut sur la zone France :

  • ICOLMDZ/CREATE_amip (ou ICOLMDZOR/CREATE_amip)
    • Génération de l'état initial et fichier limit global
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_global_France.def
    • Transformée de Schmidt : schmidt_lon=3, schmidt_lat=47, schmidt_factor=4
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/CREATE_amip/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/CREATE_amip/config.card .
    • A modifier si besoin dans config.card : JobName=...
    • puis ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
  • ICOLMDZ/amip (ou ICOLMDZOR/amip)
    • Génération du fichier de forcage nudging_forcing.nc nécéssaire pour tourner la simulation LAM.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_global_France.def
    • Transformée de Schmidt : schmidt_lon=3, schmidt_lat=47, schmidt_factor=4
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip.
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/amip/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/amip/config.card .
    • A modifier config.card : JobName=..., CreateName=le nom donné à la simulation CREATE_amip
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
  • ICOLMDZ/CREATE_amip_LAM (ou ICOLMDZOR/CREATE_amip_LAM)
    • Génération de l'état initial et fichier limit sur l'aire.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_forcing_France.def
    • Utilisation du fichier start généré par l'expérience CREATE_amip globale (start = start_file_interp).
    • Utilisation du fichier nudging_forcing.nc généré par l'expérience amip globale.
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/CREATE_amip_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/CREATE_amip_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • CreateName=le nom donné à la simulation CREATE_amip
      • ForcingName= le nom donné à la simulation amip globale
      • ForcingDate= date contenue dans le nom du fichier nudging_forcing.nc généré par la simulation amip globale.
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
    • Sur Irene, si besoin, pensez à augmenter la mémoire disponible par process : #MSUB -c 2 dans l'entête du Job.
  • ICOLMDZ/amip_LAM (ou ICOLMDZOR/amip_LAM)
    • Les forçages utilisés sont issus d'une simulation amip globale.
    • Simulation LAM qui utilise le fichier de forçage nudging_forcing.nc, issu d'une simulation amip globale.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_forcing_France.def
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip_LAM.
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/amip_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/amip_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • CreateName=le nom donné à la simulation CREATE_amip_LAM
      • ForcingName= le nom donné à la simulation amip globale
      • ForcingDate= date contenue dans le nom du fichier nudging_forcing.nc généré par la simulation amip globale.
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
    • Sur Irene, si besoin, vous pouvez augmenter la mémoire disponible par process : #MSUB -c 2 dans l'entête du Job.
  • ICOLMDZ/CREATE_amip_ERA5_LAM (ou ICOLMDZOR/CREATE_amip_ERA5_LAM)
    • Génération de l'état initial et fichier limit sur l'aire.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_ERA5_France.def
    • Utilisation du fichier ERA5 comme fichier nudging_forcing.nc. Le fichier ERA5_062000.nc utilisé par défaut est stocké sur les comptes communs.
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/CREATE_amip_ERA5_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/CREATE_amip_ERA5_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
    • Sur Irene, si besoin, pensez à augmenter la mémoire disponible par process : #MSUB -c 2 dans l'entête du Job.
  • ICOLMDZ/amip_ERA5_LAM (ou ICOLMDZOR/amip_ERA5_LAM)
    • Les forçages utilisés proviennent des données ERA5.
    • Simulation LAM qui utilise le fichier de forçage ERA5.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_ERA5_France.def
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip_ERA5_LAM.
    • cd config/IPSLCM7 ; cp EXPERIMENTS/ICOLMDZ/LAM/amip_ERA5_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/LAM/amip_ERA5_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • ForcingName= le nom donné au fichier de foçage (defaut : ERA5).
      • ForcingDate= date contenue dans le nom du fichier ERA utilisé (defaut 062000).
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
    • Sur Irene, si besoin, pensez à augmenter la mémoire disponible par process : #MSUB -c 2 dans l'entête du Job.

cas particulier de la chimie atmosphérique

Un seul jeu d'expériences est proposé (création de l'état initial + simu de 5 jours sur la zone France). Elles ont été créées à partir des expériences ICOLMDZOR/CREATE_amip_ERA5_LAM et ICOLMDZOR/amip_ERA5_LAM décrites ci-dessus.

  • EXPERIMENTS/ICOLMDZORINCA/LAM/CREATE_amip_ERA5_AER_LAM
    • Génération de l'état initial et fichier limit sur l'aire.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_ERA5_France.def
    • Utilisation du fichier ERA5 comme fichier nudging_forcing.nc. Le fichier ERA5_062000.nc utilisé par défaut est stocké sur les comptes communs.
    • Utilisation du fichier ${R_IN}/CHM/CE0L_ICO/AER_mmr_ce0l_ico.nc pour définir les concentrations des espèces chimiques et aérosols dans l'atmosphère. Ce fichier peut être remplacé par n'importe quel fichier mmr_ce0l_ico.nc issu d'une simulation en grille régulière avec le modèle INCA.
  • EXPERIMENTS/ICOLMDZORINCA/LAM/amip_ERA5_AER_LAM
    • Les forçages utilisés proviennent des données ERA5.
    • Simulation LAM qui utilise le fichier de forçage ERA5.
    • Utilisation du run_dynamico.def : PARAM/DYNAMICO/LAM/run_dynamico_lam_ERA5_France.def
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip_ERA5_AER_LAM.
    • Utilisation des fichiers d'émissions CMIP6 pour les espèces chimiques et aérosols (voir fichier inca.card)

Liste des espèces calculées dans cette version de Inca

rn222, pb210, no2, no3, hno3, n2o5, so2, h2s, dms, dmso, nh3, dustci, no3ci, ci, bcai, oaai, 
ai, sscs, so4cs, nh4cs, msacs, no3cs, cs, ssas, bcas, oaas, so4as, nh4as, msaas, no3as, as, ssss, ss

La chimie des espèces suivante est fixée :

M, N2, O2, H2O, CO2, OH, NO3 (force de rappel), O3, H2O2, O1D, HNO3 (force de rappel), NO2 (force de rappel)

Ancienne configuration ICOLMDZOR

Extraction de l'ancienne configuration

svn co https://forge.ipsl.fr/igcmg/svn/modipsl/trunk modipsl ; cd modipsl/util ; ./model ICOLMDZOR_v7_LAM.1

Les composants suivants composent la configuration:

  • DYNAMICO : trunk2master, b18ad822
  • ICOSA_LMDZ : aquaplanet/ICOSA_LMDZ, rev 455
  • LMDZ : LMDZ6/branches/IPSL-CM6A-MR, rev 3855
  • ORCHIDEE : branches/ORCHIDEE_Quest/ORCHIDEE, rev 7086

Il est possible d'utiliser une configuration avec des révisions des composantes plus à jour :

svn co https://forge.ipsl.fr/igcmg/svn/modipsl/trunk modipsl ; cd modipsl/util ; ./model ICOLMDZOR_v7_LAM_work

Les composants suivants composent cette configuration:

  • DYNAMICO master, 34d2c048
  • ICOSA_LMDZ, aquaplanet/ICOSA_LMDZ , rev 457
  • LMDZ6, trunk, rev 4305
  • ORCHIDEE, branches/ORCHIDEE_2_2, rev 7820

Compilation de la configuration

cd config/ICOLMDZOR_v7 ; ./compile_icolmdzor.sh

Note : sur Jean-Zay, pensez à vous mettre sur la frontale pp pour compiler via ssh login@jean-zay-pp1.idris.fr

Exécution

Les 6 expériences disponibles avec 2 types de forçages possibles

Ces 6 expériences sont disponibles avec les configurations ICOLMDZ et ICOLMDZOR (avec ORCHIDEE).

Les expériences tournent par défaut sur la zone France :

  • ICOLMDZ/CREATE_amip (ou ICOLMDZOR/CREATE_amip)
    • Génération de l'état initial et fichier limit global
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_global_France.def
    • Transformée de Schmidt : schmidt_lon=3, schmidt_lat=47, schmidt_factor=4
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/CREATE_amip/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/CREATE_amip/config.card .
    • A modifier si besoin dans config.card : JobName=...
    • puis ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
  • ICOLMDZ/amip (ou ICOLMDZOR/amip)
    • Génération du fichier de forcage nudging_forcing.nc nécéssaire pour tourner la simulation LAM.
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_global_France.def
    • Transformée de Schmidt : schmidt_lon=3, schmidt_lat=47, schmidt_factor=4
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip.
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/amip/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/amip/config.card .
    • A modifier config.card : JobName=..., CreateName=le nom donné à la simulation CREATE_amip
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
  • ICOLMDZ/CREATE_amip_LAM (ou ICOLMDZOR/CREATE_amip_LAM)
    • Génération de l'état initial et fichier limit sur l'aire.
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_lam_forcing_France.def
    • Utilisation du fichier start généré par l'expérience CREATE_amip globale (start = start_file_interp).
    • Utilisation du fichier nudging_forcing.nc généré par l'expérience amip globale.
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/CREATE_amip_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/CREATE_amip_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • CreateName=le nom donné à la simulation CREATE_amip
      • ForcingName= le nom donné à la simulation amip globale
      • ForcingDate= date contenue dans le nom du fichier nudging_forcing.nc généré par la simulation amip globale.
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
    • Sur Irene, pensez à augmenter la mémoire disponible par process : #MSUB -c 4 dans l'entête du Job.
  • ICOLMDZ/amip_LAM (ou ICOLMDZOR/amip_LAM)
    • Les forçages utilisés sont issus d'une simulation amip globale.
    • Simulation LAM qui utilise le fichier de forçage nudging_forcing.nc, issu d'une simulation amip globale.
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_lam_forcing_France.def
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip_LAM.
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/amip_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/amip_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • CreateName=le nom donné à la simulation CREATE_amip_LAM
      • ForcingName= le nom donné à la simulation amip globale
      • ForcingDate= date contenue dans le nom du fichier nudging_forcing.nc généré par la simulation amip globale.
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
    • Sur Irene, pensez à augmenter la mémoire disponible par process : #MSUB -c 4 dans l'entête du Job.
  • ICOLMDZ/CREATE_amip_ERA5_LAM (ou ICOLMDZOR/CREATE_amip_ERA5_LAM)
    • Génération de l'état initial et fichier limit sur l'aire.
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_lam_ERA5_France.def
    • Utilisation du fichier ERA5 comme fichier nudging_forcing.nc. Le fichier ERA5_062000.nc utilisé par défaut est stocké sur les comptes communs.
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/CREATE_amip_ERA5_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/CREATE_amip_ERA5_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName
    • Sur Irene, pensez à augmenter la mémoire disponible par process : #MSUB -c 4 dans l'entête du Job.
  • ICOLMDZ/amip_ERA5_LAM (ou ICOLMDZOR/amip_ERA5_LAM)
    • Les forçages utilisés proviennent des données ERA5.
    • Simulation LAM qui utilise le fichier de forçage ERA5.
    • Utilisation du run_dynamico.def : PARAM/run_dynamico_lam_ERA5_France.def
    • Utilisation des fichier start.nc, startphy.nc et limit.nc générés par l'expérience CREATE_amip_ERA5_LAM.
    • cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZ/amip_ERA5_LAM/config.card .
      • ou si avec ORCHIDEE : cd config/ICOLMDZOR_v7 ; cp EXPERIMENTS/ICOLMDZOR/amip_ERA5_LAM/config.card .
    • A modifier dans config.card :
      • JobName= nom de la simulation
      • ForcingName= le nom donné au fichier de foçage (defaut : ERA5).
      • ForcingDate= date contenue dans le nom du fichier ERA utilisé (defaut 062000).
    • ../../libIGCM/ins_job ; cd JobName ; ccc_msub (ou sbatch) Job_JobName}}}
    • Sur Irene, pensez à augmenter la mémoire disponible par process : #MSUB -c 4 dans l'entête du Job.

Informations générales sur le LAM

Vue d'ensemble

Parametres importants du run_dynamico.def pour configurer le LAM (zone et resolution)

  • metric_type = icosa_area ==> definition de la métrique du maillage ; choix possible : icosa_global (default) pour le global / icosa_area pour le LAM
  • area_center_lon = 3 ==> pour le LAM : longitude (degrés) du centre du LAM (centre hexagone)
  • area_center_lat = 47 ==> pour le LAM : latitude (degrés) du centre du LAM (centre hexagone)
  • area_radius = 800 ==> pour le LAM : rayon du lam en Km (centre -> sommet hexagone)

# ------------------------------- Transformee de Schmidt---------------------------------

  • #schmidt_lon=3 ==> transformée de schmidt : longitude du centre d'origine
  • #schmidt_lat=47 ==> transformée de schmidt : latitude du centre d'origine
  • #schmidt_factor=4 ==> transformée de schmidt : facteur d'échelle de la transformée

#---------------- Guidage ----------------

  • guided_type = nudging ==> type de guidage ; choix possible : <none> pas de guidage (default), <nudging> guidage, <nudging_forcing> création des fichiers de forçage pour une zone spécifique
  • itau_nudging = 120 ==> fréquence de guidage en pas de temps correspondant à la fréquence de lecture des données dans les fichiers de forçage
  • nudging_zone = area ==> zone sur laquelle on guide : choix possible : <global> guidage sur le global, <lonlat> zone de guidage type longitude/latitude, <circular> zone de guidage circulaire (centre et rayon), <area> zone définie par le bord du LAM
  • nudging_stiffness=8 ==> taille de la zone de transition (en nombre de maille) entre la partie non-guidé et la zone guidée
  • # nudging_lon_start ==> pour nudging_zone=lonlat ou guided_type=nudging_forcing : définition de la zone longitude-latitude : longitude du bord ouest
  • # nudging_lat_start ==> pour nudging_zone=lonlat ou guided_type=nudging_forcing : définition de la zone longitude-latitude : latitude du bord sud
  • # nudging_lon_end ==> pour nudging_zone=lonlat ou guided_type=nudging_forcing : définition de la zone longitude-latitude : longitude du bord est
  • # nudging_lat_end ==> pour nudging_zone=lonlat ou guided_type=nudging_forcing : définition de la zone longitude-latitude : latitude du bord nord
  • # nudging_freq=3600 ==> pour guided_type=nudging_forcing : fréquence en seconde du fichier de forçage généré
  • # nudging_lon_delta=0.25 ==> pour guided_type=nudging_forcing : résolution en longitude du fichier de forçage généré
  • # nudging_lat_delta=0.25 ==> pour guided_type=nudging_forcing : résolution en latitude du fichier de forçage généré
  • # nudging_lon_center = 3 ==> pour nudging_zone=circular : définition de la zone circulaire à guider : longitude du centre
  • # nudging_lat_center = 47 ==> pour nudging_zone=circular : définition de la zone circulaire à guider : latitude du centre
  • # nudging_radius = 800 ==> pour nudging_zone=circular : définition de la zone circulaire à guider : rayon en Km
  • # guide_PS = y ==> guidage de la pression ; choix possible <yes> or <no>, config LAM default <yes>, other default <no>
  • # guide_T = y ==> guidage de la temperature ; choix possible <yes> or <no>, config LAM default <yes>, other default <no>
  • # guide_U = y ==> guidage des vents ; choix possible <yes> or <no>, config LAM default <yes>, other default <no>
  • # guide_Q =y ==> guidage des traceurs ; choix possible <yes> or <no>, config LAM default <yes>, other default <no>

  • PS_relax_out=3600 ==> temps de relaxation (seconds) de la zone extérieure (frontière pour le LAM) pour la pression ; default == 1 pas de temps dynamique
  • T_relax_out=3600 ==> temps de relaxation (seconds) de la zone extérieure (frontière pour le LAM) pour la température ; default == 1 pas de temps dynamique
  • U_relax_out=3600 ==> temps de relaxation (seconds) de la zone extérieure (frontière pour le LAM) pour les vents ; default == 1 pas de temps dynamique
  • Q_relax_out=3600 ==> temps de relaxation (seconds) de la zone extérieure (frontière pour le LAM) pour les traceurs ; default == 1 pas de temps dynamique

  • #PS_relax_in=3600 ==> temps de relaxation (seconds) de la zone intérieure pour la pression ; valeur possible : valeur > 0 ou -1 => temps de relaxtion infini (default)
  • #T_relax_in=3600 ==> temps de relaxation (seconds) de la zone intérieure pour la température ; valeur possible : valeur > 0 ou -1 => temps de relaxtion infini (default)
  • #U_relax_in=3600 ==> temps de relaxation (seconds) de la zone intérieure pour les vents ; valeur possible : valeur > 0 ou -1 => temps de relaxtion infini (default)
  • #Q_relax_in=3600 ==> temps de relaxation (seconds) de la zone intérieure pour les traceurs ; valeur possible : valeur > 0 ou -1 => temps de relaxtion infini (default)
  • nudging_vertical_levels = pressure ==> guidage des champs 3D ; valeurs possibles : <pressure> (default) les champs de guidage sont en niveau de pression, <model> les champs de guidage sont en niveau modèle et nécessitent un champ de pression pour interpoler verticalement

  • nbp=40 ==> résolution horizontale, taille d'une tuile-losange de nbp*nbp mailles (default=40). 10 tuiles pour le global, 3 tuiles pour le LAM
    # nbp pour le global
    # nbp                 20  40  80 160
    # T-edge length (km) 500 250 120  60
    
  • llm = 79 ==> nombre de niveaux verticaux
  • nqtot=4 ==> nombre de traceus
  • nsplit_i=4 ==> découpage en sous-losange pour le parallélisme (direction i) : nb total de sous-losange == 10*nsplit_i*nsplit_j pour le global, 3*nsplit_i*nsplit_j pour le LAMà distribuer pour les tâches MPI
  • nsplit_j=4 ==> découpage en sous-losange pour le parallélisme (direction j) : nb total de sous-losange == 10*nsplit_i*nsplit_j pour le global, 3*nsplit_i*nsplit_j pour le LAMà distribuer pour les tâches MPI
  • omp_level_size=1 ==> nombre de tâches openmp sur la verticale
  • read_metric = n ==> lecture de la métrique du maillage dans le start.nc (default=n)
  • optim_it= 0 ==> optimisation du maillage en nombre d'itérations
  • dt = 30. ==> pas de temps de la dynamique en secondes, adapter en fonction de la résolution horizontale pour satisfaire les critères CFL
  • run_length = 86400 ==> durée de la simulation en secondes

# ---------------------------------- Dissipation --------------------------------- # à adapter en fonction de la résolution

  • tau_graddiv = 3600
  • nitergdiv = 1
  • tau_gradrot = 21600
  • nitergrot=2
  • tau_divgrad=10800
  • niterdivgrad=2

# -------------------------------- Physics -------------------------------------

  • physics=phys_external ==> type de physique : valeurs possibles : <none> pas de physique (default), <phys_external> physique externe (nécessite un driver), <held_suarez>, ...
  • itau_physics=30 ==> fréquence d'appel à la physique en pas de temps

# Following parameters are changed by options set in dynamico.card

  • create_etat0_limit = no ; creation de l'état initial et des condition limites pour LMDZ non structuré (indépendant de dynamico)
  • etat0 = start_file => type de démarage : valeurs possibles : <start_file> démarre du fichier de restart start.nc, <start_interp> démarre d'un fichier de restart à une résolution différente, <database> démarre à partir de fichier de forçage
  • etat0_database_type = ERA5_forcing ==> pour etat0=etat0_database, type de forçage. Valeurs possibles : <legacy> forçage standard type LMDZ, <ERA5_forcing> forçage à partir de fichier ERA5 (cohérence pour le LAM condition initiale - forçage aux frontières)

Format du fichier de forçage de type ERA5

Definition d'une nouvelle zone : exemple sur la zone Antarctique

  • Résolution sur la zone (1°).
  • Fréquence de forçage 6h
  • Domaine centré sur le point (longitude 0°, latitude -90°)
  • Rayon du domaine Rlam = 4000km
  • 30 jours de simulation

Paramètres du run_dynamico.def pour la génération des forçages (run global zoomée 1° sur l'antarctique )

 * metric_type = icosa_global
 * schmidt_lon=0   
 * schmidt_lat=-90     
 * schmidt_factor=2  
 * nbp=40

 * guided_type = nudging_forcing  
 * nudging_lon_start =-180  
 * nudging_lat_start = -90 
 * nudging_lon_end = 180 
 * nudging_lat_end = -60  
 * nudging_freq = 21600  
 * nudging_lon_delta=0.25  
 * nudging_lat_delta=0.25  
 * nudging_radius = 4000  
 * dt = 225
 * run_length = 2592000  # (30j) 

 * tau_graddiv = 1800
 * nitergdiv = 1
 * tau_gradrot = 10800
 * nitergrot=2
 * tau_divgrad=5400
 * niterdivgrad=2 
 * itau_physiq = 4
# création état initial (géré par modipsl)
 etat0 = database
 create_etat0_limit=y
# exécution du run (géré par modipsl)
  etat0=database
  create_etat0_limit=n

Paramètres du run_dynamico.def pour l'éxécution du LAM (run LAM 1° sur l'antarctique ==> nbp=40)

 * metric_type = icosa_area  
 * area_center_lon = 0  
 * area_center_lat = -90
 * area_radius = 4000   
 * nbp=40
 * dt = 225
 * run_length = 2592000  # (30j) 
 * tau_graddiv = 1800
 * nitergdiv = 1
 * tau_gradrot = 10800
 * nitergrot=2
 * tau_divgrad=5400
 * niterdivgrad=2 
 * itau_physiq = 4

 * guided_type = nudging
 * itau_nudging = 96    # 6h
 * nudging_zone = area
 * nudging_stiffness=8 
 * PS_relax_out = 21600  
 * T_relax_out = 21600   
 * U_relax_out = 21600   
 * Q_relax_out = 21600
 * nudging_vertical_levels = model
 * itau_physics = 4 

# création état initial (géré par modipsl)
 etat0 = database
 create_etat0_limit=y
# exécution du run (géré par modipsl)
  etat0=database
  create_etat0_limit=n

Adaptation du fichier XML nudging_dynamico.xml (modeles/DYNAMICO/xml/nudging_dynamico.xml)

  • Ajustement de la fréquence de lecture en rapport avec la fréquence du fichier de forçage

<file id="nudging_in" name="nudging_forcing" enabled="false" output_freq="6h" mode="read" record_offset="1" time_counter_name="time" cyclic="true">

<field_group operation="instant" freq_offset="1ts" >

<field id="ps_nudged_read" name="sp" domain_ref="domain_nudged" />
<field id="p_nudged_read" name="pressure" domain_ref="domain_nudged" axis_ref="axis_nudged" enabled="false" />
<field id="ulon_nudged_read" name="u" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="ulat_nudged_read" name="v" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="temp_nudged_read" name="t" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="H2O-g_nudged_read" name="q" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="H2O-l_nudged_read" name="clwc" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="H2O-s_nudged_read" name="ciwc" domain_ref="domain_nudged" axis_ref="axis_nudged" />
<field id="q_nudged_read" name="q" grid_ref="grid_q_nudged" enabled="false"/>

</field_group>

</file>

Adaptation du fichier XML PARAM/context_lmdz.xml (et PARAM/context_orchidee.xml )

  • Zone à interpoler de la grille ico vers la grille régulière (sorties hist*.nc)

<domain id="dom_regular" ni_glo="300" nj_glo="232" type="rectilinear" >

<generate_rectilinear_domain lat_start="38" lat_end="55" lon_start="-9" lon_end="13"/>
<interpolate_domain order="1" renormalize="true" detect_missing_value="true"/>

</domain>

Utilisation outil graphique VTK_Mapper pour visualiser les champs sur la grille icosaédrique

Partage d'information : howto,…

Last modified 4 weeks ago Last modified on 05/27/24 15:54:15

Attachments (4)