= IPSL-CM6A-LR = [[TOC(heading=Table of contents,depth=3)]] == Model IPSL-CM6A-LR == * Fixed on 25 mai 2018 * See ticket #120 * set for curie, modification required for ada == Change Log == * 6.1.5 : 29 juin 2018 * LMDZ : correctif Calipso, plus de trou. * irene inclus * 6.1.4 : 14 juin 2018 * libIGCM : * clean_latestPackperiod adapted for 1Y * norerun ajouté dans les jobs pour que le job ne se relance pas automatiquement * XIOS : possibilité de tourner avec !PeriodLength=1M * NEMO : 2D ===> scalar ice variables et Reproafterrestart=y par defaut * LMDZ : rangement des champs 3D et 2D pour histins (facilitera les extractions de points de plantage) * !AddNoise available (COMP/oasis.card) * 6.1.3 : 25 mai 2018 * nouvelle revision LMDZ : ajout des parametres tau_gl et iflag_cycle_diurne pour AMIP * utilisation de la dernière version de dr2xml pour résoudre certains problèmes (nom et infos sur les axes, contournement de problèmes liés à la DR utilisée (nb de sections et ordre des sections ocean),...) * rangement des xml dans IGCM/CMIP6/IPSLCM6.1.3-LR/IPSL-CM6A-LR/NOM_DE_L_EXPERIENCE/MEMBRE * modifications sur les xml de NEMO pour modifier le nom des axes verticaux * utilisation d'une "DR maison" afin de garantir les sorties les plus importantes et pallier les eventuels ratés de la DR. A été validé par les composantes NEMO et ORCHIDEE (retour en cours sur des variables manquantes). * expériences disponibles : * les *_CMIP6 : piControl_CMIP6, piControl-spinup_CMIP6 and historical_CMIP6 (2009 en date de fin, documenter comment faire 2010-2014) * une nouvelle expérience piControl_TEST sans workflow CMIP6 pour tests qualités * Plus de dates dans les Restart du compte commun (1869, 1879, ...) du CM61-LR-pi-03 * 6.1.2 : 2 mai 2018 * ajouts diagnostics océan * DR2XML revus * XML disponibles pour piControl (500 ans) et historical * experiences disponibles en plus : historical_CMIP6 * relance reproductible (N+1=+1). * dans opa9.card : {{{Reproducibility_after_restart= y}}}. To be changed manually. * Attention aux années bissextiles! * reproductibilité KO au bout de 57 ans * passage à la révision 3321 de LMDZ pour inclure les sorties par défaut des aérosols pour vérification des forçages. Les aérosols plume sont aussi intégrés * 6.1.1 : 13 avril 2018 * compression (level=4) sur les fichiers IPSL Output/MO * ping modifiés avec des diagnostics en plus * reproductibilité KO au bout de 39 ans * piControl_CMIP6 OK * DR2XML à revoir (axes netcdf non géo-référencé) * 6.1.0 : 29 mars 2018 * pas de compression sur les fichiers IPSL Output/MO * reproductibilité KO au bout de 1 ou 2 ans * piControl-spinup_CMIP6 OK == Documentation == Rappel du lien vers la documentation: http://forge.ipsl.jussieu.fr/igcmg_doc/wiki/Doc == Environment == === curie === * Compilateur 2017 (4h de compilation ...) à utiliser avec ces commandes à passer IMPERATIVEMENT avant de compiler ou à mettre dans votre .bashrc : {{{ module purge . /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_intel17.0.2_curie . /ccc/cont003/home/igcmg/igcmg/MachineEnvironment/curie/env_netcdf4.3.3.1_curie }}} * RAPPEL sur les commandes à passer pour installer le modèle : {{{ mkdir YOUR_DIRECTORY ; cd YOUR_DIRECTORY svn_ano # svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl cd modipsl/util ./model IPSLCM6.1.4-LR # si c'est la premiere fois : il faut trouver les 2 mots de passe ORCHIDEE et NEMO. # Pour ORCHIDEE : voir la session "SVN et ORCHIDEE" du cours : https://forge.ipsl.jussieu.fr/orchidee/wiki/GroupActivities/Training # Pour NEMO : voir "Get NEMO code" là : https://www.nemo-ocean.eu/ qui pointe sur : http://forge.ipsl.jussieu.fr/nemo/wiki/Users. # Répondre (RETURN) puis le user puis le mot de passe. cd ../config/IPSLCM6 gmake ... # attendre 4h . Pour garder la trace de la compilation : gmake 2>&1|tee compile.out ... cp EXPERIMENTS/IPSLCM/piControl_CMIP6/config.card . vi config.card # modifications dates, restart, ... Voir checklist plus loin. ../../libIGCM/ins_job ... # répondre en donnant la sous-imputation cmip6 concernée. }}} == Checklist == * SE DEGAGER DU TEMPS POUR LE CONTROLE QUALITE ET LES EVENTUELS CORRECTIFS QUI RECLAMENT DE LA MINUTIE * Avoir l'autorisation de commencer son MIP * Vérifier la nomenclature de la simulation : https://search.es-doc.org/ * Remplir la page des simulations là : [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit#gid=893380781 CMIP6 IPSL ] * Choisir un nom unique (en prenant le préfixe CM61-LR) et le signaler sur la page MIP. Voir plus loin. * Vérifier le protocole : forcages, état de redémarrage choisi. * Décrire l'expérience succinctement sur la page MIP. Voir plus loin. * Demander rendez-vous à Sébastien Denvil et Arnaud Caubel pour construire et vérifier la disponibilité des fichiers DR2XML là : IGCM/CMIP6/IPSLCM6.1.4-LR/IPSL-CM6A-LR/NOM_DE_L_EXPERIENCE/MEMBRE * commencer à remplir les éléments descriptifs de la simulation en prenant exemple sur: {{{ciclad:/home/sdipsl/DataRequest.CMIP6/simulationSettings/settings_AOGCM_piControl_r1.py}}} * Organiser de quoi faire une peer review avant le lancement de chaque expérience. Avec les personnes impliquées dans le MIP et avec, au moins, une personne du groupe plate-forme. * A faire systématiquement : * config.card * Mettre PROD dans config.card * S'assurer que {{{ExpType}}} dans config.card contienne le mot clé CMIP6 (dans le cas inverse la simulation part sans le workflow CMIP6 par exemple pour un test) * Mettre à jour Member=rXi1p1f1 (defaut : r1i1p1f1 A CHANGER) * Préciser {{{DateBegin=1850-01-01, DateEnd=XXXX-12-31}}} * Indiquer et documenter les Restart pris. * Préciser {{{OverRule=y}}} si toutes les composantes repartent d'une même simu à la même date. * Préciser, une fois si !OverRule=y, ou pour chaque composante {{{ RestartDate=....-12-31, RestartJobName=CM61-pi... et RestartPath=/.../IPSLCM6/PROD/piControl }}} * Repartir d'un état de redémarrage rebuildé (pour les composantes océan : OCE, ICE et MBG) et mis sur le compte commun. Voir : IGCM/RESTART/IPSLCM6/PROD/*/* * Au 15/6/2018 sont disponibles : * CM61-pre-pi-01 1849 * CM61-LR-pi-03 18691231 18791231 18891231 18991231 19091231 19191231 19291231 19391231 19491231 19591231 19691231 19791231 19891231 19991231 20091231 20191231 20291231 20391231 20491231 20591231 20691231 20791231 20891231 20991231 21091231 21191231 21291231 21391231 21491231 21591231 21691231 21791231 21891231 21991231 22091231 22191231 22291231 * Enlever le HF pour ATM si on ne souhaite pas conserver les données à 3 heures pour faire du ORCHIDEE offline par la suite {{{ [ATM] WriteFrequency="1M HF" }}} * COMP : * vérifier 2 fois l'existence des fichiers dr2xml * vérifier 2 fois que les cards COMP/opa9.card, COMP/lmdz.card, COMP/orchidee.card utilisent ces fichiers dr2xml et ajuster leurs chemins si nécessaire * Job * Mettre la sous-imputation du MIP concerné * Pour aerchemmip : checmip6 ou strcmip6, pour les autres : c4mcmip6 , cfmcmip6 , cm5cmip6 , daacmip6 , dcpcmip6 , dekcmip6 , dmrcmip6 , fafcmip6 , geocmip6 , gmmcmip6 , hircmip6 , ismcmip6 , ls3cmip6 , lumcmip6 , omicmip6 , pmicmip6 , rfmcmip6 , solcmip6 ou volcmip6 * Pour connaître les sous-imputations cmip6 de votre login {{{ groups }}} * Pour connaître les logins de toutes les sous-imputations cmip6 : {{{ getent group | grep cmip6: | cut -d : -f 1,4 }}} * Préciser la priorité intra CMIP6 : * -U high pour les simulations longues seulement (!PiControl et PMIP) * -U medium par défaut * -U low pour les simulations en surbooking * Mettre {{{PeriodNb=10}}} (ou 5) dans Job_xxx * Mettre postProcessingStopLevel=2 pour que le job principal s’arrête dès qu'un post-processing job s'est planté (=3 quand atlas seront OK) * Attention, pour les simulations type historical, vous avez besoin de monitorer les forçages liés aux aerosols dans votre expérience, il faut appliquer les patchs suivants * sur le fichier modeles/LMDZ/DefLists/file_def_histmth_lmdz.xml : http://web.lmd.jussieu.fr/trac/changeset?reponame=&new=3321%40LMDZ6%2Fbranches%2FIPSLCM6.0.15&old=3318%40LMDZ6%2Fbranches%2FIPSLCM6.0.15 * sur le fichier COMP/lmdz.card : rajouter la liste de variables (topswad, toplwad, topswai, toplwai, topswad0, toplwad0, solswad, sollwad, solswai, sollwai, solswad0, sollwad0) dans le bloc [Post_1M_histmth] : {{{ [Post_1M_histmth] Patches= () GatherWithInternal = (lon, lat, presnivs, time_counter, time_centered, time_centered_bounds, aire) TimeSeriesVars2D = (...,topswad, toplwad, topswai, toplwai, topswad0, toplwad0, solswad, sollwad, solswai, sollwai, solswad0, sollwad0,...) ChunckJob2D = NONE TimeSeriesVars3D = (temp, theta, ovap, geop, vitu, vitv, vitw, pres, rneb, rhum, paprs, ec550aer, concoa, concbc, concso4, concss, concdust) ChunckJob3D = 100Y Seasonal=ON }}} * dans le fichier POST/monitoring01_lmdz.cfg, rajouter les lignes : {{{ topswai_forcing | "topswai" | "" | "topswai[d=1]" | "AIE at TOA SW" | "W/m^2" | "aire[d=1]" solswai_forcing | "solswai" | "" | "solswai[d=1]" | "AIE at SRF SW" | "W/m^2" | "aire[d=1]" topswad_forcing | "topswad" | "" | "topswad[d=1]" | "ADE at TOA SW" | "W/m^2" | "aire[d=1]" solswad_forcing | "solswad" | "" | "solswad[d=1]" | "ADE at SRF SW" | "W/m^2" | "aire[d=1]" topswad0_forcing | "topswad0" | "" | "topswad0[d=1]" | "ADE at TOA SW ClearSky" | "W/m^2" | "aire[d=1]" solswad0_forcing | "solswad0" | "" | "solswad0[d=1]" | "ADE at SRF SW ClearSky" | "W/m^2" | "aire[d=1]" toplwai_forcing | "toplwai" | "" | "toplwai[d=1]" | "AIE at TOA LW" | "W/m^2" | "aire[d=1]" sollwai_forcing | "sollwai" | "" | "sollwai[d=1]" | "AIE at SRF LW" | "W/m^2" | "aire[d=1]" toplwad_forcing | "toplwad" | "" | "toplwad[d=1]" | "ADE at TOA LW" | "W/m^2" | "aire[d=1]" sollwad_forcing | "sollwad" | "" | "sollwad[d=1]" | "ADE at SRF LW" | "W/m^2" | "aire[d=1]" toplwad0_forcing | "toplwad0" | "" | "toplwad0[d=1]" | "ADE at TOA LW ClearSky" | "W/m^2" | "aire[d=1]" sollwad0_forcing | "sollwad0" | "" | "sollwad0[d=1]" | "ADE at SRF LW ClearSky" | "W/m^2" | "aire[d=1]" }}} * Important : ce patch implique un double appel au rayonnement et pénalise donc les performances en temps de calcul du modèle * Enregistrement des expériences sur svn CMIP6 là : browser:CMIP6 * Exemple de différences entre deux simulations DECK : [http://forge.ipsl.jussieu.fr/igcmg/changeset?old_path=%2FCMIP6%2FDECK%2FCM61-LR-pi-03&old=3898&new_path=%2FCMIP6%2FDECK%2FCM61-LR-1pctCO2-01&new=3898 View Changes ...] * Mode d'emploi pour créer un répertoire dédié qui sera enregistré {{{ > cp -pr CM61-MASIMU CM61-MASIMU-POUR-COMMIT # ménage dans ce répertoire pour ne garder que config.card COMP, PARAM, DRIVER et POST > svn import CM61-MASIMU-POUR-COMMIT svn+ssh://MONLOGINDEVSURFORGE@forge.ipsl.jussieu.fr/ipsl/forge/projets/igcmg/svn/CMIP6/MONMIP/CM61-MASIMU }}} == Vérifications en cours de simulation == * Pendant une simulation, il faut la suivre : * Faire systématiquement un intermonitoring à 10 ans avec au moins le piControl CM61-LR-pi-03 (dsm) pour documenter/vérifier l'expérience lancée * Vérifier les monitoring et lancer qq intermonitoring pour vérifier que la simu est bien celle voulue * Lancer les atlas CLIMAF * En cours de simulation lancer régulièrement les vérifications des fichiers au format CMIP6 avec la séquence suivante: * Charger l'environment virtuel python donnant accès aux outils et aux variables d'environnement nécessaires: {{{ module load datadir/gencmip6 export PATH=$GENCMIP6_ALL_CCCWORKDIR/miniconda/bin:$PATH source activate cmip6 }}} * Définir le chemin de la simulation à tester (voir exemple ci-dessous) {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ }}} * Définir le chemin de vos {{{run.card}}} et {{{config.card}}} (voir exemple ci-dessous) {{{ CARD_FILES=$GENCMIP6_HOME/IPSLCM6.1.2/modipsl/config/IPSLCM6/CM61-LR-1pctCO2-01/ }}} * Définir le répertoire à utiliser pour conserver les logs si des erreurs sont rencontrées. Conserver les logs de préférence à la base des fichiers netCDF CMIP6 (voir exemple ci-dessous): {{{ LOGDIR=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/ }}} * Si vous rencontrer des erreurs sur les fichiers netCDF, communiquer les logs à Guillaume Levavasseur (glipsl@ipsl.fr) et/ou Sébastien Denvil (sdipsl@ipsl.fr) * Appliquer {{{XIOFileChecker}}} pour vérifier que XIOS a bien produit ce que les XML indiquent: * Veillez à ce que les attributs suivant soient bien renseignés dans la section {{{UserChoices}}} de votre {{{config.card}}} : {{{ExperimentName}}}, {{{LongName}}}, {{{Member}}} {{{ XIOFileChecker $SIMULATION --card $CARD_FILES -l $LOGDIR }}} * Erreurs connues que vous rencontrerez peut-être: * Pour la version IPSLCM6.1.3 et antérieures, la variable intpcalcite (Omon) n'est pas sortie par XIOS mais se trouve par erreur dans les XML * Pour la version IPSLCM6.1.3 et antérieures, les variables Odec sont manquantes en sorties XIOS, c'est une erreur définitive. * Appliquer {{{nctime overlap}}} pour vérifier qu'il n'y a pas de recouvrement entre les dates des noms de fichiers: {{{ nctime overlap $SIMULATION --card $CARD_FILES -l $LOGDIR }}} * Erreurs connues que vous rencontrerez peut-être: * Les variables *calipso peuvent présenter des overlaps complets. C'est une erreur LMDZ en cours de résolution. Laurent Fairhead proposera une procédure de correction en bocal. * Appliquer {{{nctime axis}}} pour vérifier les axes des temps des fichiers netCDF. {{{nctime axis}}} peut être long si vous avez beaucoup de fichiers haute fréquence (sub-daily), il est recommandé de faire lancer la commande en batch avec un minimum de 10 processes en parallèles. Un example de script batch est disponible ici : [[attachment:batch_nctime_axis.sh]]. {{{ nctime axis $SIMULATION --card $CARD_FILES --set-inc dec=1Y --ignore-errors 004 -l $LOGDIR }}} * Erreurs connues que nous ignorons sciemment avec les options utilisées : * 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), pour vérifier les fichiers avec un incrément d'un an nous utilisons {{{--set-inc dec=1Y}}} * Pour la version IPSLCM6.1.3 et antérieures, plusieurs fichiers instantanés présentent par erreur des "time_bounds", les fichiers seront corrigés. Pour ignorer cette erreur nous utilisons {{{--ignore-errors 004}}} * Erreurs connues que vous pourriez rencontrer * Pour la version IPSLCM6.1.2 et antérieures, les fichiers *subhr* non-splités sont très lourd. 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.*"}}} * 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 vérifier les fichiers "Esubhr" avec un incrément de 15min, vous devez ajouter {{{--set-inc subhrPt=15m}}}. * En fin de simulation, relancer la séquence précédente ({{{XIOFileCheker}}} + {{{nctime overlap}}} + {{{nctime axis}}}) * Appliquer {{{PrePARE}}} pour vérifier la conformité des métadonnées avec les spécification CMIP6: {{{ PrePARE $SIMULATION -l $LOGDIR }}} * Erreurs connues que vous rencontrerez peut-être: * Les erreurs dates dans le filename relevées par PrePARE vont souvent de pair avec les fichiers dont l'axe des temps à une erreur (cf. résultat de {{{nctime axis}}}). La résolution de l'axe des temps solutionne PrePARE dans la majorité des cas. * Les tables CMIP "maison" nommée {{{HOME*}}} génèrent plusieurs erreurs PrePARE. Ignorer les fichiers correspondant pour le moment. * 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. * Tous les outils précédents dispose 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. * Pour retrouver votre environnement, désactivez l'environnement Python: {{{ source deactivate }}} * Corrigez les erreurs connues: * En cas d'axe des temps incorrect avec l'erreur 004 : la variable {{{time_bnds}}} est inutile pour une donnée "instantanée" et peut porter à confusion. Contacter Guillaume L pour correction. * En cas d'axe des temps incorrect avec l'erreur 003b : 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. AVANT DE CORRIGER, contacter Guillaume L. pour vérifier que la procédure suivante est bien adaptée. Le fichier nécessite alors d'être renommé. Pour ce faire utiliser la procédure suivante en prenant soin de modifier les deux premières lignes en lien avec votre simulation: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ CARD_FILES=$GENCMIP6_CCCWORKDIR/IPSLCM6.1/IPSLCM6.1.2-T20180430/modipsl/config/IPSLCM6/CM61-LR-1pctCO2-01 # Creation d'une sauvegarde des fichiers (un peu long) cd $SIMULATION mkdir bkp for f in $(cat ../nctime-axis-20180615-163616.log | grep ".nc$"); do find $SIMULATION -type f -name $f >> a_corriger.txt done for f in $(cat a_corriger.txt); do cp $f bkp/. done # Correction avec nctime for f in $(cat a_corriger.txt); do nctime axis $f --card $CARD_FILES --ignore-errors 004 -w done # Vérification de la correction: le diagnostic doit cette fois-ci revenir "vert" for f in $(cat a_corriger.txt); do nctime axis $f --card $CARD_FILES --ignore-errors 004 done }}} * 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: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ for file in $(find $SIMULATION -type f \( -name "*_Omon_*.nc" -o -name "*_Oday_*.nc" -o -name "*_Oyr_*.nc" \)); do realm=$(ncdump -h ${file} | grep realm | cut -d '"' -f 2) if [[ ${realm} = *"ocnBgChem"* ]]; then new_realm=$(echo "${realm/ocnBgChem/ocnBgchem}") echo "Replace \"${realm}\" by \"${new_realm}\" in ${file}" ncatted -O -a realm,global,m,c,"${new_realm}" ${file} fi done }}} * Il manque certains attributs globaux netCDF dans les fichiers des simulations qui n'ont pas de "parent" (ex. piControl, piControl-spinup, etc.). 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: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/piControl-spinup/CM61-pre-pi-01/CMIP6/ for file in $(find $SIMULATION -type f -name "*.nc"); do echo "Process: ${file}" if ! ncdump -h ${file} | grep -q ":branch_method ="; then ncatted -O -a branch_method,global,c,c,"none" ${file} fi if ! ncdump -h ${file} | grep -q ":branch_time_in_child ="; then ncatted -O -a branch_time_in_child,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":branch_time_in_parent ="; then ncatted -O -a branch_time_in_parent,global,c,d,0. ${file} fi if ! ncdump -h ${file} | grep -q ":CMIP6_CV_version ="; then ncatted -O -a CMIP6_CV_version,global,c,c,"cv=6.2.3.5-2-g63b123e" ${file} fi if ! ncdump -h ${file} | grep -q ":dr2xml_md5sum ="; then ncatted -O -a dr2xml_md5sum,global,c,c,"00e1a4f623b35a33620b9828c66bd1c8" ${file} fi if ! ncdump -h ${file} | grep -q ":EXPID ="; then ncatted -O -a EXPID,global,c,c,"piControl-spinup" ${file} fi if ! ncdump -h ${file} | grep -q ":model_version ="; then ncatted -O -a model_version,global,c,c,"6.1.1" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_activity_id ="; then ncatted -O -a parent_activity_id,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_experiment_id ="; then ncatted -O -a parent_experiment_id,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_mip_era ="; then ncatted -O -a parent_mip_era,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_source_id ="; then ncatted -O -a parent_source_id,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_time_units ="; then ncatted -O -a parent_time_units,global,c,c,"N/A" ${file} fi if ! ncdump -h ${file} | grep -q ":parent_variant_label ="; then ncatted -O -a parent_variant_label,global,c,c,"N/A" ${file} fi done }}} * 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: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ for file in $(find $SIMULATION -type f -name "*.nc"); do 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 if ncdump -h ${file} | grep -v -q "area:coordinates = "; then echo "Process: ${file}" ncatted -O -a coordinates,area,o,c,"nav_lon nav_lat" in.nc fi fi done }}} * 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: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ for file in $(find $SIMULATION -type f -name "mfo_*"); do if ncdump -h ${file} | grep -q "float mfo(time, section) ;"; then cp ${file} ${file}.corr chmod u+w ${file}.corr ncks -v mfo ${file}.corr ~/out.nc ncrename -d section,line ~/out.nc ~/out2.nc ncks -O -v mfo ~/out2.nc ${file}.corr ncks -A -v sector $GENCMIP6_ALL_CCCWORKDIR/references/OCEAN_PASSAGES.nc ${file}.corr ncatted -O -a coordinates,mfo,m,c,"sector" ${file}.corr rm -fr ~/out.nc ~/out2.nc mv ${file}.corr ${file} fi done }}} * 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: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ for file in $(find $SIMULATION -type f -name "landCoverFrac_*"); do if ncdump -h ${file} | grep -q "float veget(veget) ;"; then ncrename -d veget,type ${file} ${file}.corr ncks -A -v sector $GENCMIP6_ALL_CCCWORKDIR/references/PFTs.nc ${file}.corr ncatted -O -a coordinates,landCoverFrac,m,c,"sector" ${file}.corr mv ${file}.corr ${file} fi done }}} * La variable {{{rld}}} n'a pas le bon signe. Pour corriger cette erreur, appliquer la procédure suivante en prenant soin de modifier la première ligne avec le chemin de votre simulation: {{{ SIMULATION=$GENCMIP6_CCCWORKDIR/IGCM_OUT/IPSLCM6/PROD/1pctCO2/CM61-LR-1pctCO2-01/CMIP6/ for file in $(find $SIMULATION -type f -name "rld_*.nc"); do val=$(ncks -H -d time,0 -d presnivs,0 -d lat,0 -d lon,0 -v rld ${file} | grep rld | cut -d "=" -f 6) if [[ $(echo "${val} <= -1" | bc) -eq 1 ]] ; then tmpfile=$(echo ${file/.nc/.nc.tmp}) cdo mulc,-1 ${file} ${tmpfile} mv ${tmpfile} ${file} fi done }}} * Réunions type bocal régulières pour lancer ensemble les nouvelles simulations. * 16/03/2018 : création de cette page et liste des dernières actions * 23/03/2018 : 1e réunion bocal, explication du workflow (voir image suivante) * 18/04/2018 : 2e réunion bocal * 02/05/2018 : 3e réunion bocal : XML pour 1pctCO2 (150 ans) et abrupt4xCO2 (300 ans) * 09/05/2018 : 4e réunion bocal * 17/05/2018 : préparation des simulations à lancer avec 6.1.2 : [[Image(wiki:IPSLCM6/IPSL-CM6A-LR:simus612.jpg, 100px)]] * 24/05/2018 : préparation des simulations à lancer avec 6.1.3. Création tableau de travail collectif : doc : [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit#gid=893380781 commentaires possibles ] * 31/05/2018 : simulations à lancer, contrôle qualité en direct des simulations de chacun * 07/06/2018 : poursuite du contrôle qualité en direct, discussion sur bouchage des trous, préparation 6.1.4 * 14/06/2018 : poursuite suivi des simulations, y compris irene * 21/6/2018 : panique après maintenance : accès aux répertoires exemples et certains résultats * 28/6/2018 : suivis des simus en machine, à lancer et contrôle qualité == Quelques questions ? == === Comment faire une simulation de sensibilité hors !WorkFlow CMIP6 === * Les différences entre le piControl_CMIP6 et piControl_TEST vues par svn : * Lien vers toutes les différences : [https://forge.ipsl.jussieu.fr/igcmg/changeset?old_path=%2FCONFIG%2FUNIFORM%2Fv6%2FIPSLCM6%2FEXPERIMENTS%2FIPSLCM%2FpiControl_CMIP6&old=3950&new_path=%2FCONFIG%2FUNIFORM%2Fv6%2FIPSLCM6%2FEXPERIMENTS%2FIPSLCM%2FpiControl_TEST&new=3950 entre piControl avec et sans Workflow CMIP6] * Dans les card : * Plus de fichier dr2xml * Plus de restart XIOS * Dans config.card : * Enlever _CMIP6 dans !ExpType * Changer le nombre de tâches MPI de XIOS * Refaire le job (ins_job) pour prendre en compte le nouveau nombre de coeur === Procédure pour finir un historical === Pour un historical CMIP6, il faut soumettre à la main pack_output.job. Vous trouverez ici la documentation du lancement d'un pack_output manuellement: http://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocGmonitor#RestartPack_output Utilisez les paramètres suivants. {{{libIGCM=${libIGCM:=::modipsl::/libIGCM} # path of the libIGCM library}}} {{{MASTER=${MASTER:=curie} # machine on which you work}}} {{{DateBegin=${DateBegin:=20100101} # start date of the period to be packed}}} {{{DateEnd=${DateEnd:=20141231} # end date of the period to be packed}}} {{{PeriodPack=${PeriodPack:=5Y} # pack frequency}}} === Procédure pour dépasser un hgardfou === Il peut arriver que le modèle atmosphèrique plante en simulant des températures hors d'un intervalle de validité. Dans ce cas là, le modèle se plantera avec un message du type {{{ i,k,temperature,lon,lat,pourc ter,lic,oce,sic = 2 15 421.113420631975 75.0000000000000 36.7605633802817 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 in abort_physic Stopping in physiq Reason = Plantage hgardfou Houston, we have a problem, ierr = 1 }}} On peut dépasser ce plantage par un effet papillon sur les fichiers restart du coupleur ainsi : * à partir de IPSLCM6 6.1.4 et en mettant {{{ByPass_addnoise_sst= y}}} dans COMP/oasis.card. * selon la procédure ci-dessous (pour 612 613) : {{{ # On se place dans le répertoire contenant les fichiers restart CPL de la simulation qui a planté # ici c'est la simulation CM61-LR-XXXX cd /.../scratch/.../IGCM_OUT/IPSLCM6/PROD/.../CM61-LR-XXXX/CPL/Restart/ # On sauvegarde le fichier restart à modifier (au cas où ...) cp CM61-LR-XXXX_19941231_sstoc.nc CM61-LR-XXXX_19941231_sstoc.nc.orig # On n'oublie pas de modifier les droits sur le fichier à modifier, la procédure va ré-écrire dedans chmod 644 CM61-LR-XXXX_19941231_sstoc.nc # On rajoute un léger bruit sur la SST du restart pour que la simulation parte sur une trajectoire légèrement différente /ccc/cont003/home/igcmg/igcmg/Tools/curie/bin/AddNoise CM61-LR-XXXX_19941231_sstoc.nc O_SSTSST 0.01 # On peut maintenant relancer la simulation par la procédure habituelle ... }}} == Le workflow == [[Image(wiki:IPSLCM6/IPSL-CM6A-LR:Workflow1.jpg, 360px)]] == Remplissage de curie == * Lien vers le fichier détaillant la prévision d'occupation de la machine : [https://docs.google.com/spreadsheets/d/1hF2edFrYwVw1ttPgpRg1NnlbwMpjRqU3o0DJt3SRMC4/edit?usp=sharing commentaires possibles] * A retenir : * Installer en machine dès que possible les simulations longues : piControl et PMIP * Etre prêts à lancer les simulations courtes et 100-200 ans * Lancer les simulations dès que possible en surveillant l'occupation :/ccc/store/cont003/gencmip6/p86fair/IGCM_OUT/IPSLCM6/PROD/abrupt-2xCO2/ * Au delà de 20 000 coeurs d'utilisation, se mettre en low * En cas de besoin mettre quelques simulations MR en forcé [[Image(wiki:IPSLCM6/IPSL-CM6A-LR:charge-curie-20180413.jpg, 360px)]] * Pour surveiller le nombre de simus en machine {{{ccc_mstat -f | grep cmip6 | grep CM61 | awk -v OFS='\t\t' '{print substr($2,1,7), substr($3,1,8), $9, $14}'}}} * Pour visualiser la consommation {{{cd /ccc/cont003/home/gencmip6/oboucher/CONSO ; python conso.py}}} == Quality check == === 6.1.5 29 juin 2018 === RAS : * 1D+1D pas égale à 5D, 5D+5D égale 1M, 1M +1M =1Y sur période de 2Y. * Voir intermonitoring là : http://webservices2017.ipsl.fr/interMonitoring_fromHermes/tmp/interMonitoring_plot01_RmrBuD_prod/ * reproductibilité de 6.1.4 : OK === 6.1.4 : 14 juin 2018 === RAS : * 1D+1D pas égale à 5D, 5D+5D égale 1M, 1M +1M =1Y sur période de 2Y. * reproductibilité de 6.1.3 : OK === 6.1.3 : 25 mai 2018 === Voir détails du contrôle qualité là : [http://wiki.ipsl.jussieu.fr/Pole/ESCI/GT/IPSLCM6/ControleQualiteTechnique] (Accès Intranet) Résultats des tests pour IPSLCM6.1.3 : 25 mai 2018 * reproductibilité de 6.1.2 : OK ||'''Configuration IPSL-CM6-LR''' || ||'''''Critère contrôlé''''' ||'''''Repro piControl''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''' (A1C=A4C) '' ||'''''Repro historique''' (H1C=H2C) '' ||'''''Ada''''' ||'''''Couplage''''' || ||Résultats || OK || OK || OK || || || || ||Commentaires || toujours souci à plusieurs années) || Toujours pas bon pour 1D+1D+...=5D || Need in COMP/opa9.card Reproducibility_after_restart= y || || || || === 6.1.2 : 27 avril 2018 === Voir détails du contrôle qualité là : [http://wiki.ipsl.jussieu.fr/Pole/ESCI/GT/IPSLCM6/ControleQualiteTechnique] (Accès Intranet) Résultats des tests pour IPSLCM6.1.2 : 27 avril 2018 * reproductibilité de 6.1.1 : OK ||'''Configuration IPSL-CM6-LR''' || ||'''''Critère contrôlé''''' ||'''''Repro piControl''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''' (A1C=A4C) '' ||'''''Repro historique''' (H1C=H2C) '' ||'''''Ada''''' ||'''''Couplage''''' || ||Résultats || OK || OK || OK || || || || ||Commentaires || Différences au bout de 57 ans ... || Toujours pas bon pour 1D+1D+...=5D || Need in COMP/opa9.card Reproducibility_after_restart= y || || || || -- ||'''Configuration LMDZOR ''' || ||'''''Critère contrôlé Curie''''' ||'''''Repro''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''' (A1C=A4C) '' ||'''''Nb de MPI-OMP''' (A1C=A5C) '' ||'''''Restart Debug'''(B1C=B2C)'' || ||Résultats || || || || || || ||Commentaires || || || || || || ||'''''Critère contrôlé Ada''''' ||'''''Repro''' (A1A=A2A) '' ||'''''Restart''' (A1A=A3A) '' ||'''''+1=+1''' (A1A=A4A) '' ||'''''Nb de MPI-OMP''' (A1A=A5A) '' ||'''''Restart Debug'''(B1A=B2A)'' || ||Résultats || || || || || || ||Commentaires || || || || || || -- ||'''Configuration eORCA1_LIM3_PISCES ''' || ||'''''Critère contrôlé Curie''''' ||'''''Repro''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''''' ||'''''Nb de MPI''' (A1C=A4C) '' ||'''''Debug''''' ||'''''Ada''''' || ||Résultats || || || || || || || ||Commentaires || || || || || || || === 6.1.1 : 13 avril 2018 === Voir détails du contrôle qualité là : [http://wiki.ipsl.jussieu.fr/Pole/ESCI/GT/IPSLCM6/ControleQualiteTechnique] (Accès Intranet) Résultats des tests pour IPSLCM6.1.1 : 13 avril 2018 ||'''Configuration IPSL-CM6-LR''' || ||'''''Critère contrôlé''''' ||'''''Repro piControl''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''' (A1C=A4C) '' ||'''''Repro historique''' (H1C=H2C) '' ||'''''Ada''''' ||'''''Couplage''''' || ||Résultats || KO || || || || || || ||Commentaires || Voir : CM61B-pi-T???-1?. Différences au bout de 39 ans. 1/3600 mois || 1M+1M+... = 1Y || KO mais on va y arriver!!! || || || || === 6.1.0 : 29 mars 2018 === Voir détails du contrôle qualité là : [http://wiki.ipsl.jussieu.fr/Pole/ESCI/GT/IPSLCM6/ControleQualiteTechnique] (Accès Intranet) Résultats des tests pour IPSLCM6.1.0 : 29 mars 2018 ||'''Configuration IPSL-CM6-LR''' || ||'''''Critère contrôlé''''' ||'''''Repro piControl''' (A1C=A2C) '' ||'''''Restart''' (A1C=A3C) '' ||'''''+1=+1''' (A1C=A4C) '' ||'''''Repro historique''' (H1C=H2C) '' ||'''''Ada''''' ||'''''Couplage''''' || ||Résultats || KO || OK || KO || KO || OK || || ||Commentaires || NON 1 simu /4 pas reproductible sur curie. Voir CM61-pi-T???-1? différence au bout de 4 12 14 mois, avec et sans ozone v1 et v2 || || || || || || == Simulations avec modèle IPSLCM6.1.2 : 27 avril 2018 == Figure pour comprendre : * CM61-LR-pi-03 et CM61-pre-pi-01 se superposent. CM61-LR-pi-01 et CM61-pre-pi-01 ne se superposent pas. * CM61-LR-hist-01 démarre de 1870 de CM61-LR-pi-01 [[Image(wiki:IPSLCM6/IPSL-CM6A-LR:interMonitoring_plot01_CM61-pre-pi-superposition.jpg, 100px)]] === piControl === ||Num || Priorité||Nom || Résumé || Membre || Personne || Description || Page d'information Hermes pour retrouver les infos : mise en place, sorties sur curie, etc ... || || 1.1 || H || CM61-LR-pi-03 || piControl 3 || r1i1p1f1 || Marie-Alice || prend la suite de CM61-pre-pi-01, 1849, (compte commun) Reproducibility_after_restart= y , BUT : se superpose avec CM61-pre-pi-01 sur 1850-... , STOP si différence dans solver.stat , STOP 1907 ==> CM61-pre-pi-01 refaite à partir de 1899. OK en 1907, Ajout de 3000.0 dans PARAM/iodef.xml pour refaire 1907. ATTENTION : sur espace DSM et pas CMIP6 || https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=f1327c81-3357-4375-a810-914da4798d5b || == Simulations avec modèle IPSLCM6.1.1 : 13 avril 2018 == === piControl === ||Num || Priorité||Nom || Dépendances || Membre || Personne || Description || Page d'information Hermes pour retrouver les infos : mise en place, sorties sur curie, etc ... || || 1.1 || H || CM61-LR-pi-01 || prend la suite de CM61-pre-pi-01 || r1i1p1f1 || Sébastien || piControl 1 || || || 1.2 || H || CM61-LR-pi-02 || prend la suite de CM61-pre-pi-02 || r1i1p1f1 || Laurent || piControl 2 || || || 2 || H || CM61-LR-hist-01 || historical partant de CM61-LR-pi-01 en 1869-12-31, soit après 20 ans de piControl || || Thibaut || historical || || == Simulations avec modèle IPSLCM6.1.0 : 29 mars 2018 == === piControl spinup === ||Num || Priorité||Nom || Dépendances || Membre || Personne || Description || Page d'information Hermes pour retrouver les infos : mise en place, sorties sur curie, etc ... || || 1.1 || H || CM61-pre-pi-01 || prend la suite de CM6015S-pi-REDO-03 || r1i1p1f1 || Sébastien || pre_piControl 1, restart 10 ans avant la fin de CM6015S-pi-REDO-03: 2279-12-31 || https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=5ef97dd4-91c6-4012-be91-ccbaed76834e || || 1.2 || H || CM61-pre-pi-02 || prend la suite de CM6015S-pi-REDO-03-24XX || r1i1p1f1 || Laurent || pre_piControl 2, restart 10 ans avant la fin de CM6015S-pi-REDO-03-24XX: 2589-12-31 || https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=07f5e9a1-eaf9-4686-904f-af3428fd24bc || || 1.3 || H || CM61-pre-pi-03 || prend la suite de CM6015S-pi-REDO-03-28XX à la date 2929-12-31 || r1i1p1f1 || Arnaud || pre_piContrl 3, restart 10 ans avant la fin de CM6015S-pi-REDO-03-28XX: 2929-12-31 || https://hermes.ipsl.upmc.fr/static/simulation.detail.html?uid=c22e10d4-d98e-4488-93e2-16889ab4dfaf || == Simulations avec modèle PREIPSLCM6.1 == ||Num || Priorité||Nom || Personne || Description || Page d'information Hermes pour retrouver les infos : mise en place, sorties sur curie, etc ... || || 1 || H || CM61-pi-REDO-03-24XX || Laurent || || || Pour la suite des simulation, voir plus loin DECK. == Les MIPs == === DECK/CMIP === [wiki:Simulations/DECK] === AerChemMIP === [wiki:Simulations/AerChemMIP] === C4MIP === [wiki:Simulations/C4MIP] === CFMIP === [wiki:Simulations/CFMIP] === CMIP === [wiki:Simulations/DECK] === DAMIP === [wiki:Simulations/DAMIP] === DCPP === [wiki:Simulations/DCPP] === DECK === [wiki:Simulations/DECK] === FAFMIP === [wiki:Simulations/FAFMIP] === GeoMIP === [wiki:Simulations/GeoMIP] === GMMIP === [wiki:Simulations/GMMIP] === HighResMIP === [wiki:Simulations/HighResMIP] === LS3MIP === [wiki:Simulations/LS3MIP] === LUMIP === [wiki:Simulations/LUMIP] === OMIP === [wiki:Simulations/OMIP] === PMIP === [wiki:Simulations/PMIP] === RFMIP === [wiki:Simulations/RFMIP] === ScenarioMIP === [wiki:Simulations/ScenarioMIP] === VolMIP === [wiki:Simulations/VolMIP] == Environment (suite ) == === ada === * dans config.card enlever les 2 niveaux de serveurs XIOS c'est à dire: {{{ IOS= (xios_server.exe, xios.x, 1MPI) }}} * dans libIGCM_comp/libIGCM_comp.ksh, s'affranchir du test sur la version du compilateur en mettant Print au lieu de Exit ligne 1033 : {{{ - IGCM_debug_Exit "IPSLCM6.0.13 ... must be compiled with intel 2017 compiler" + IGCM_debug_Print "IPSLCM6.0.13 ... must be compiled with intel 2017 compiler" }}} == Pour mémoire : Modifications dans IPSL-CM6.1.0-LR par rapport à 6015 == Voir le ticket #120 pour connaitre les détails techniques liés à cette version (version des sources, fichiers d'entrées, etc...) * LMDz * Passage à v2 des fichiers ozone * iflag_phytrac=0 => pas de traceur Aga * ajoute cdnc_min=10., changement des valeurs pour cld_lc_lsc et cld_lc_con de 0.0004 en 0.00065 * ORCHIDEE * Corrections de diags pour les variables qui utilisent xios_default_val (surtout variable lut et neige). * NEMO * sources : quelques bugfix ( le heat content, CFC ) & calcul du transport de glace à travers les détroits * rajout des traceurs CFC's * xml pour les diags CMIP6 * paramètres : ré-activation du controle des bilans de nutritifs dans PISCES * Coupleur