Changes between Version 1 and Version 2 of Cmorisation


Ignore:
Timestamp:
08/04/11 15:25:58 (13 years ago)
Author:
acosce
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Cmorisation

    v1 v2  
    4747 * !OutCmor  --> contiendra le journal de sortie de ts2ipcc  
    4848 
     49==== Description du job CMORizeIt.job ====  
     50 * initialisation de différentes variables 
     51 * déclaration du path de libIGCM 
     52 * source fichier IPSL-DRSrc dans lequel  pour chaque type de table sont déclarées les variables ipsl_freq_path, cmor_frequency et ipsl_freq_file 
     53 
     54   * ipsl_freq_path = [TS_MO, TS_DA, TS_HF, TS_YR] --> noms des répertoires dans lesquels sont stockés les différents Time Series créées avec libIGCM 
     55   * cmor_frequency = [yr, mon, day, da, 6hr, 3hr, subhr, fx]  --> fréquences standard définies par cmor 
     56   * ipsl_freq_file = [1M, 1Y, 1D] --> nomenclature libIGCM lors de la création des fichiers de sorties (ex: abrupt4xCO22_18500101_19491231_1M_iwcon.nc) 
     57 
     58 * création des répertoires de RUN (je ne sais pas vers quoi pointe RUN_DIR_PATH, donc je l'ai remplacé par $SCRATCHDIR/CMORizeIt pour avoir la main dessus) 
     59 * copie dans le répertoire de RUN du config.def, de la table.def et de la grille (les grilles ORCA sont nécessaires lorsque l'on tourne avec NEMO) 
     60 * mise à jour du config.def à partir des variables déclarée plus haut (avec la commande CMOR_sed). Utile lorsque l'on veut utiliser le même config.def pour plusieurs tables.   
     61 * Repère la liste des variables déclarée dans la colonne IPSL  
     62{{{ 
     63liste_var=$( cat table.def | grep -v \# | grep -v ^" "| awk -F\| '{print $1}' ) 
     64}}} 
     65 * Boucle sur les différentes variables : 
     66   * pour chacune d'entre elles on va trouver le nom cmor de cette variable avec la commande 
     67{{{ 
     68cmor_var=$( cat table.def | grep -v \# | grep ^"${var} " | awk -F\| '{print $4}' ) 
     69}}} 
     70   * et  son modèle avec la commande 
     71{{{ 
     72cmor_realm=$( cat table.def | grep -v \# | grep ^"${var} " | awk -F\| '{print $6}' | awk "-F " '{print $1}' ) 
     73}}} 
     74   * établie la correspondance entre les modèles cmor et les composantes libIGCM  
     75{{{ 
     76ex :  
     77    [ ${cmor_realm} = atmos ]     && ipsl_comp=ATM 
     78}}} 
     79   * définition du cmor_path qui est la nomenclature sous laquelle seront stockés les fichiers finaux.  
     80   * définition du ipsl_path qui pointe vers le répertoire Analyse/ contenant les TS à cmoriser.  
     81   *  Boucle sur ipsl_freq_path (rappel les différents type de TS) et pour chacun on teste le cmor_frequency. 
     82      * Si cmor_frequency = fx on va analyser le fichier LMDZ96x95x39.nc (qui contient les variables aire et phis), sinon on va chercher la TS correspondant à la variable. 
     83      * On appelle ce fichier (LMDZ96x95x39 ou TS) candidat. Si il y a plusieurs variables définies dans la table, candidat est alors une liste de fichiers TS.  
     84      * Si cmor_frequency n'est pas fx on analyse le nom du candidat pour connaître la date de début et la date de fin de la période (yearBeg, monthBeg, yearEnd, monthEnd) 
     85      * on définit cmor_file qui sera le nom du fichier final à la norme Cmor (contient le nom du modèle, la fréquence, le nom du répertoire parent, la date de début et la date de fin de la période étudiée)  
     86      * candidat devient data.nc qui sera le fichier d'entrée de ts2ipcc 
     87      * Si la variable à cmoriser est en 3D il faut récupérer la TS de psol qui sera renommée pression.nc et utilisée également par ts2ipcc 
     88 
     89 * pour finir on lance ts2ipcc 
     90{{{ 
     91        if [ ${cmor_frequency} = "fx" ]; then 
     92            ./ts2ipcc data.nc ${var} > ${POST_DIR}/${OutFile} 2>&1 
     93        elif [ ${cmor_frequency} = "yr" ]; then 
     94            cdo -settime,12:00 -setday,2 -setmon,7 -settunits,seconds data.nc data2.nc 
     95            ncrename -d time,time_counter -v time,time_counter data2.nc 
     96            mv data2.nc data.nc 
     97            CMOR_sed config.def force_timebnds true 
     98            ./ts2ipcc data.nc > ${POST_DIR}/${OutFile} 2>&1 
     99        else 
     100            ./ts2ipcc data.nc > ${POST_DIR}/${OutFile} 2>&1 
     101        fi 
     102}}}