Changes between Version 200 and Version 201 of IPSLCM6/IPSL-CM6A-LR


Ignore:
Timestamp:
07/23/18 14:24:48 (4 years ago)
Author:
glipsl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IPSLCM6/IPSL-CM6A-LR

    v200 v201  
    201201nctime axis $SIMULATION --card $CARD_FILES --set-inc Esubhr:subhrPt=15m --exclude-file ".*_Odec_.*" --exclude-file ".*-clim\.nc" --ignore-errors 004 -l $LOGDIR 
    202202}}} 
    203     * Regarder les dernières lignes du log de sortie {{{nctime-axis-YYYYMMDD-HHmmss.log}}} qui vous informe sur le nombre de fichiers scannés, ignorés et le nombre d'erreurs. Si ce dernier apparaît en rouge, contacter Guillaume L. avec le chemin du log. 
     203     * Regarder les dernières lignes du log de sortie {{{nctime-axis-YYYYMMDD-HHmmss.log}}} qui vous informe sur le nombre de fichiers scannés, ignorés et le nombre d'erreurs. Si ce dernier apparaît en rouge, CONTACTER Guillaume L. avec le chemin du log pour vérifier et établir la procédure de correction à suivre. Certaines erreurs critiques peuvent avoir pour conséquence d'avoir à reprendre votre simulation depuis un état antérieur. 
     204     * Erreurs connues que nous ignorons sciemment avec les options utilisées : 
     205      * Les fichiers décennaux (fréquence = "dec") ne comportent pas le bon incrément temporel en sortie d'XIOS (1 an au lieu de 10), ces fichiers doivent être post-processés, pour les ignorer nous utilisons {{{--exclude-file ".*_Odec_.*"}}} 
     206      * Les fichiers de climatologie (avec suffix "-clim.nc") ne comportent pas le bon nombre de pas de temps en sortie d'XIOS (sorties mensuelles au lieu de 12 pas de temps), ces fichiers doivent être post-processés, pour les ignorer nous utilisons {{{--exclude-file ".*-clim\.nc"}}} 
     207      * Plusieurs fichiers instantanés sub-daily présentent des "time_bounds". Après vérification, les time bounds sont identiques aux valeurs de l'axe des temps ce qui n'a pas de conséquences sur les moyennes temporelles via cdo/nco. Pour ignorer cette erreur nous utilisons {{{--ignore-errors 004}}} 
     208      * Les fichiers sous-horaires (fréquence = "subhrPt") de la table CMIP "Esubhr" comporte l'incrément temporel natif de IPSL-CM6, c'est-à-dire 15min. Par défaut, {{{nctime}}} considère les fréquences "subhr" avec un incrément de 30min. Pour changer ce comportement et vérifier les fichiers "Esubhr" avec un incrément de 15min, nous ajoutons {{{--set-inc Esubhr:subhrPt=15m}}}. 
     209     * Erreurs connues que vous pourriez rencontrer 
     210      * Pour la version IPSLCM6.1.2 et antérieures, les fichiers *subhr* non-splités sont très lourds. Ils peuvent générer une erreur mémoire de Python car l'axe des temps est très gros. Si c'est le cas, pour ignorer ces fichiers ajouter {{{--exclude-file ".*subhr.*"}}} 
     211    * Appliquer {{{nctime overlap}}} pour vérifier qu'il n'y a pas de recouvrement entre les dates des noms de fichiers: 
     212{{{ 
     213nctime overlap $SIMULATION --card $CARD_FILES -l $LOGDIR 
     214}}} 
     215     * Regarder les dernières lignes du log de sortie {{{nctime-overlap-YYYYMMDD-HHmmss.log}}} qui vous informe sur le nombre de fichiers scannés, ignorés et le nombre d'erreurs. Si ce dernier apparaît en rouge, contacter Guillaume L. avec le chemin du log. 
     216     *  Erreurs connues que vous rencontrerez peut-être: 
     217      * Les variables *calipso peuvent présenter des overlaps complets. C'est une erreur LMDZ résolue en IPSLCM6.1.5-LR. Laurent Fairhead a préparé un README sur la procédure pour boucher les trous [http://lmdz.lmd.jussieu.fr/utilisateurs/faq/execution/comment-boucher-des-trous-dans-le-workflow-cmip6 ici] .      
     218   * En fin de simulation, il faut: 
     219    * Relancer la séquence précédente ({{{XIOFileCheker}}} + {{{nctime overlap}}} + {{{nctime axis}}}) 
     220    * Appliquer {{{PrePARE}}} pour vérifier la conformité des métadonnées avec les spécification CMIP6: 
     221{{{ 
     222PrePARE $SIMULATION -l $LOGDIR --exclude-file ".*_Nonemon_.*" --exclude-file ".*_HOM.*" 
     223}}} 
    204224    * Erreurs connues que nous ignorons sciemment avec les options utilisées : 
    205      * Les fichiers décennaux (fréquence = "dec") ne comportent pas le bon incrément temporel en sortie d'XIOS (1 an au lieu de 10), ces fichiers doivent être post-processés, pour les ignorer nous utilisons {{{--exclude-file ".*_Odec_.*"}}} 
    206      * Les fichiers de climatologie (avec suffix "-clim.nc") ne comportent pas le bon nombre de pas de temps en sortie d'XIOS (sorties mensuelles au lieu de 12 pas de temps), ces fichiers doivent être post-processés, pour les ignorer nous utilisons {{{--exclude-file ".*-clim\.nc"}}} 
    207      * Plusieurs fichiers instantanés sub-daily présentent des "time_bounds". Après vérification, les time bounds sont identiques aux valeurs de l'axe des temps ce qui n'a pas de conséquences sur les moyennes temporelles via cdo/nco. Pour ignorer cette erreur nous utilisons {{{--ignore-errors 004}}} 
    208      * Les fichiers sous-horaires (fréquence = "subhrPt") de la table CMIP "Esubhr" comporte l'incrément temporel natif de IPSL-CM6, c'est-à-dire 15min. Par défaut, {{{nctime}}} considère les fréquences "subhr" avec un incrément de 30min. Pour changer ce comportement et vérifier les fichiers "Esubhr" avec un incrément de 15min, nous ajoutons {{{--set-inc Esubhr:subhrPt=15m}}}. 
    209     * Erreurs connues que vous pourriez rencontrer 
    210      * Pour la version IPSLCM6.1.2 et antérieures, les fichiers *subhr* non-splités sont très lourds. Ils peuvent générer une erreur mémoire de Python car l'axe des temps est très gros. Si c'est le cas, pour ignorer ces fichiers ajouter {{{--exclude-file ".*subhr.*"}}} 
    211     * Appliquer {{{nctime overlap}}} pour vérifier qu'il n'y a pas de recouvrement entre les dates des noms de fichiers: 
    212 {{{ 
    213 nctime overlap $SIMULATION --card $CARD_FILES -l $LOGDIR 
    214 }}} 
    215     * Regarder les dernières lignes du log de sortie {{{nctime-overlap-YYYYMMDD-HHmmss.log}}} qui vous informe sur le nombre de fichiers scannés, ignorés et le nombre d'erreurs. Si ce dernier apparaît en rouge, contacter Guillaume L. avec le chemin du log. 
    216     *  Erreurs connues que vous rencontrerez peut-être: 
    217      * Les variables *calipso peuvent présenter des overlaps complets. C'est une erreur LMDZ résolue en IPSLCM6.1.5-LR. Laurent Fairhead a préparé un README sur la procédure pour boucher les trous [http://lmdz.lmd.jussieu.fr/utilisateurs/faq/execution/comment-boucher-des-trous-dans-le-workflow-cmip6 ici] .      
    218    * En fin de simulation, relancer la séquence précédente ({{{XIOFileCheker}}} + {{{nctime overlap}}} + {{{nctime axis}}}) 
    219    * Appliquer {{{PrePARE}}} pour vérifier la conformité des métadonnées avec les spécification CMIP6: 
    220 {{{ 
    221 PrePARE $SIMULATION -l $LOGDIR --exclude-file ".*_Nonemon_.*" --exclude-file ".*_HOM.*" 
    222 }}} 
    223     *  Erreurs connues que vous rencontrerez peut-être: 
    224      * Les erreurs dates dans le filename relevées par PrePARE vont souvent de paire avec les fichiers dont l'axe des temps a une erreur (cf. résultat de {{{nctime axis}}}). La résolution de l'axe des temps solutionne PrePARE dans la majorité des cas. 
    225225     * Les tables CMIP "maison" nommée {{{HOME*}}} génèrent plusieurs erreurs PrePARE. Ignorer les fichiers correspondant pour le moment. 
    226226     * Certains fichiers comporte la table {{{_Nonemon_}}} inconnu de la DR et donc de PrePARE. C'est une erreur de XML en cours de résolution. 
    227     * Tous les outils précédents disposent d'un multiprocessing intégré. 4 processes en parallèles sont définis par défaut. Ne pas hésiter à définir un plus grand nombre de processes en ajoutant l'option {{{--max-processes NB_PROCESS}}} disponible pour chaque outil. 
     227   *  Erreurs connues que vous rencontrerez peut-être: 
     228     * Les erreurs dates dans le filename relevées par PrePARE vont souvent de paire avec les fichiers dont l'axe des temps a une erreur (cf. résultat de {{{nctime axis}}}). La résolution de l'axe des temps solutionne PrePARE dans la majorité des cas. 
     229   * Tous les outils précédents disposent d'un multiprocessing intégré. 4 processes en parallèles sont définis par défaut. Ne pas hésiter à définir un plus grand nombre de processes en ajoutant l'option {{{--max-processes NB_PROCESS}}} disponible pour chaque outil. 
    228230   * Pour retrouver votre environnement, désactivez l'environnement Python: 
    229231{{{ 
    230232source deactivate 
    231233}}} 
    232  * En fin simulation, il faut : 
    233    * Corriger les erreurs connues: 
    234     * En cas d'axe des temps incorrect avec l'erreur 003b/008b : la date théorique de fin de l'axe ne correspond pas à la date de fin de la période indiquée par le filename. Contacter Guillaume L. pour vérifier le log et établir la procédure de correction à suivre 
    235     *  Dans certains fichiers, à cause d'une erreur dans Data Request, la casse de l'attribut global {{{:realm = "ocnBgChem" ;}}} est erronée. Il doit être remplacé par {{{:realm = "ocnBgchem" ;}}}. Pour cela appliquer la procédure suivante en prenant soin de modifier la première en ligne avec le chemin de votre simulation: 
    236 {{{ 
    237 SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ 
    238 for file in $(find $SIMULATION -type f \( -name "*_Omon_*.nc" -o -name "*_Oday_*.nc" -o -name "*_Oyr_*.nc" \)); do 
    239     realm=$(ncdump -h ${file} | grep realm | cut -d '"' -f 2) 
    240     if [[ ${realm} = *"ocnBgChem"* ]]; then 
    241         new_realm=$(echo "${realm/ocnBgChem/ocnBgchem}") 
    242         echo "Replace \"${realm}\" by \"${new_realm}\" in ${file}" 
    243         ncatted -O -a realm,global,m,c,"${new_realm}" ${file} 
    244     fi 
    245     echo $file done 
    246 done 
    247 }}} 
    248     *  Il manque certains attributs globaux netCDF dans les fichiers des simulations qui n'ont pas de "parent" (ex. piControl, piControl-spinup, etc.). Si vous avez passer PrePARE sans soucis et que votre simulation dispose d'un "parent" vous pouvez ignorer cette procédure. Si non pour corriger cela appliquer la procédure suivante en prenant soin de modifier la première en ligne avec le chemin de votre simulation. Modifier également la valeur des attributs {{{EXPID}}} et {{{model_version}}} en suivant l'exemple ci-dessous:  
    249 {{{ 
    250 SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/piControl-spinup/CM61-pre-pi-01/CMIP6/ 
    251 for file in $(find $SIMULATION -type f -name "*.nc"); do 
    252     echo "Process: ${file}" 
    253     if ! ncdump -h ${file} | grep -q ":branch_method ="; then 
    254         ncatted -O -a branch_method,global,c,c,"none" ${file} 
    255     fi 
    256     if ! ncdump -h ${file} | grep -q ":branch_time_in_child ="; then 
    257         ncatted -O -a branch_time_in_child,global,c,c,"N/A" ${file} 
    258     fi 
    259     if ! ncdump -h ${file} | grep -q ":branch_time_in_parent ="; then 
    260         ncatted -O -a branch_time_in_parent,global,c,d,0. ${file} 
    261     fi 
    262     if ! ncdump -h ${file} | grep -q ":CMIP6_CV_version ="; then 
    263         ncatted -O -a CMIP6_CV_version,global,c,c,"cv=6.2.3.5-2-g63b123e" ${file} 
    264     fi 
    265     if ! ncdump -h ${file} | grep -q ":dr2xml_md5sum ="; then 
    266         ncatted -O -a dr2xml_md5sum,global,c,c,"00e1a4f623b35a33620b9828c66bd1c8" ${file} 
    267     fi 
    268     if ! ncdump -h ${file} | grep -q ":EXPID ="; then 
    269         ncatted -O -a EXPID,global,c,c,"piControl-spinup" ${file} 
    270     fi 
    271     if ! ncdump -h ${file} | grep -q ":model_version ="; then 
    272         ncatted -O -a model_version,global,c,c,"6.1.1" ${file} 
    273     fi 
    274     if ! ncdump -h ${file} | grep -q ":parent_activity_id ="; then 
    275         ncatted -O -a parent_activity_id,global,c,c,"N/A" ${file} 
    276     fi 
    277     if ! ncdump -h ${file} | grep -q ":parent_experiment_id ="; then 
    278         ncatted -O -a parent_experiment_id,global,c,c,"N/A" ${file} 
    279     fi 
    280     if ! ncdump -h ${file} | grep -q ":parent_mip_era ="; then 
    281         ncatted -O -a parent_mip_era,global,c,c,"N/A" ${file} 
    282     fi 
    283     if ! ncdump -h ${file} | grep -q ":parent_source_id ="; then 
    284         ncatted -O -a parent_source_id,global,c,c,"N/A" ${file} 
    285     fi 
    286     if ! ncdump -h ${file} | grep -q ":parent_time_units ="; then 
    287         ncatted -O -a parent_time_units,global,c,c,"N/A" ${file} 
    288     fi 
    289     if ! ncdump -h ${file} | grep -q ":parent_variant_label ="; then 
    290         ncatted -O -a parent_variant_label,global,c,c,"N/A" ${file} 
    291     fi 
    292 done 
    293 }}} 
    294     *  Il manque un attribut {{{coordinates}}} pour la variable {{{area}}} dans certains fichiers océan. Pour corriger cela appliquer la procédure suivante en prenant soin de modifier la première en ligne avec le chemin de votre simulation: 
    295 {{{ 
    296 SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ 
    297 for file in $(find $SIMULATION -type f -name "*.nc"); do 
    298     if ncdump -h ${file} | grep -q "float nav_lat(y, x) ;" && ncdump -h ${file} | grep -q "float nav_lon(y, x) ;" && ncdump -h ${file} | grep -q "float area(y, x) ;"; then 
    299         if  ncdump -h ${file} | grep -v -q "area:coordinates = "; then 
    300             echo "Process: ${file}" 
    301             ncatted -O -a coordinates,area,o,c,"nav_lon nav_lat" ${file} 
    302         fi 
    303         echo $file done 
    304     fi 
    305 done 
    306 }}} 
    307     *  Avec IPSL-CM6.1.3 ou antérieur, la dimension décrivant les passages océaniques est une liste d'entiers au lieu d'une liste de noms des passages. Cela affecte la variable {{{mfo}}} uniquement. Pour corriger cette erreur, appliquer la procédure suivante en prenant soin de modifier la première ligne avec le chemin de votre simulation: 
    308 {{{ 
    309 SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ 
    310 for file in $(find $SIMULATION -type f -name "mfo_*"); do 
    311     if ncdump -h ${file} | grep -q "float mfo(time, section) ;"; then 
    312         cp ${file} ${file}.corr 
    313         chmod u+w ${file}.corr 
    314         ncks -v mfo ${file}.corr ~/out.nc 
    315         ncrename -d section,line ~/out.nc ~/out2.nc 
    316         ncks -O -v mfo ~/out2.nc ${file}.corr 
    317         ncks -A -v sector $GENCMIP6_ALL_CCCWORKDIR/references/OCEAN_PASSAGES.nc ${file}.corr 
    318         ncatted -O -a coordinates,mfo,m,c,"sector" ${file}.corr 
    319         rm -fr ~/out.nc ~/out2.nc 
    320         mv ${file}.corr ${file} 
    321         echo $file done 
    322     fi 
    323 done 
    324 }}} 
    325     *  Avec IPSL-CM6.1.3 ou antérieur, la dimension décrivant les PFTs continentaux est une liste d'entiers au lieu d'une liste de noms des PFTs. Cela affecte la variable {{{landCoverFrac}}} uniquement. Pour corriger cette erreur, appliquer la procédure suivante en prenant soin de modifier la première ligne avec le chemin de votre simulation: 
    326 {{{ 
    327 SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ 
    328 for file in $(find $SIMULATION -type f -name "landCoverFrac_*"); do 
    329     if ncdump -h ${file} | grep -q "float veget(veget) ;"; then 
    330         ncrename -d veget,type ${file} ${file}.corr 
    331         ncks -A -v sector $GENCMIP6_ALL_CCCWORKDIR/references/PFTs.nc ${file}.corr 
    332         ncatted -O -a coordinates,landCoverFrac,m,c,"sector" ${file}.corr 
    333         ncks -O -x -v veget ${file}.corr ${file} 
    334         echo $file done 
    335     fi 
    336 done 
    337 }}} 
    338     *  Avec IPSL-CM6.1.4 ou antérieur, il peut arriver que certaines séries temporelles de variables soient incomplètes (a priori les variables cl?calipso issues du simulateur COSP dans LMDZ). Il est nécessaire de reboucher les trous constatés dans ces séries temporelles en rejouant les années manquantes en suivant la procédure décrite [http://lmdz.lmd.jussieu.fr/utilisateurs/faq/execution/comment-boucher-des-trous-dans-le-workflow-cmip6 ici] 
    339     *  La variable {{{rld}}} n'a pas le bon signe. Pour corriger cette erreur, lancer le script batch disponible ici : [[attachment:batch_change_sign_rld.sh]] en modifiant la ligne {{{SIMULATION=}}}. 
    340     *  Supprimer les fichiers {{{rld_Efx_*.nc}}} s'ils existent avec {{{find $SIMULATION -type f -name "rld_Efx_*.nc" -delete}}} 
     234   * Corriger les erreurs connues sur les fichiers. La liste complète de ces erreurs est disponible: [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit#gid=1259857872 ici]. Pour ce faire, lancer le script batch disponible ici : [[attachment:batch_correct_issues.sh]] afin de corriger les erreurs connues sur votre simulation. Veillez à modifier dans le script les variables {{{$SIMULATION}}} et {{{$LOGDIR}}} suivant le chemin de votre simulation. Ce script corrige les erreurs 01 à 08 de la liste. 
    341235   * Donner les droits en écriture sur vos fichiers à Guillaume L. et Sébastien D. pour migration dans l'espace partagé CMIP6. Pour cela exécuter les deux commandes suivante en modifiant la première ligne avec le chemin de votre simulation: 
    342236{{{ 
     
    345239setfacl -Rdm u:levavasg:rwX,u:p86denv:rwX $SIMULATION 
    346240}}} 
    347    * Mettre à jour le Google Sheet sur le suivi des simulations: [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit?usp=sharing ici] 
     241   * Mettre à jour le Google Sheet sur le suivi des simulations: [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit#gid=893380781 ici] 
    348242 
    349243 * Réunions type bocal régulières pour lancer ensemble les nouvelles simulations.