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 | {{{ |
| 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, 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 | {{{ |
| 222 | PrePARE $SIMULATION -l $LOGDIR --exclude-file ".*_Nonemon_.*" --exclude-file ".*_HOM.*" |
| 223 | }}} |
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. |
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. |