namelist : NAMOBSTAT     statkind =
     Dans Olive, la namelist est produite par la procédure obstat.py.
     Modification possible (via gnam) : "Build parameters/namelist directory" en déposant sous le répertoire
           gnam.xxx avec xxx = calc, calcdiff, merge, plot-obstat


I. Les fichiers      → tableau sta(idx)%xxx
  1. cstatinFname     input ascii stat.def file
  2. lecture des caractéristiques pour le calcul des statistiques
    lecture des valeurs statistiques calculées précédemment pour lmerge ou lplot =.true.
    défaut : cstatinFname = 'statin.txt' (code F90)
    Olive :
         fichier par défaut pour calcul initial = /home/verolive/diagnostic/obstat/STATdef/stat.def.odb
         pour le merge ou le plot, définition à partir des informations de Date and time, experiment et reference

  3. cstatoutFname      output ascii stat-file ( kind ≠ 8)
  4. Ecriture des valeurs statistiques calculées
    défaut : cstatoutFname = 'statout.txt' (code F90)
    Olive : noms définis à partir des informations de Date and time, experiment et reference
               TXT_*_yyymmddhh[mn] pour le calcul des statistiques
               TXTD_*-yyy* pour un fichier de type ploterrorbar
               TXT*_*_yyyymmddhh[mn]-yyyymmddhh[mn] pour le merge
    remarque : première ligne de cstatoutFname
               #obstat version num # EXPE modX.yyyy nbres datedeb-datefin # nbslots   tslot (unit)   timeslot

  5. cstat2Fname      secondary stat input file - lmerge=.true. ou lplot=.true.
  6. défaut : cstat2Fname = 'none'
II. Paramètres généraux
  1. cgenecfgFname      general definitions file
  2. défaut : cgenecfgFname = 'general.cfg' (code F90)
    Olive : fichier par défaut /home/verolive/diagnostic/obstat/config/general.cgf
         adaptation avec Build parameters/config directory (répertoire personnel de fichiers de configuration)
    Définitions de rmspressures, areanames, plotdef, plotdefk8, plotattributes, plotbigsat, plotgps

  3. ccodecfgFname      observation codes definitions file
  4. défaut : ccodecfgFname = 'odbcodes.cfg' (code F90)
    Olive : fichier par défaut /home/verolive/diagnostic/obstat/config/odbcodes.cfg
         adaptation avec Build parameters/config directory (répertoire personnel de fichiers de configuration)
    Définitions de subtypes, params, mixtparams, instruments, flags, items, datastreams, phases

  5. iverb      verbosity level in printouts
  6. défaut : iverb = 0
    valeurs : iverb = 0, 1 ou 2
    Olive : Build parameters/verbose

  7. gpsvertbin      gps vertical binning
  8. défaut : gpsvertbin = 1000 (1km)
    Olive : gnam.calc, gnam.plot_obstat
III. Paramètres de calculs
  1. lupdstat      update the statistics
  2. défaut : lupdstat = .false.
    contrôles : ERR si merge=.true. ou lplot=.true.
    Olive : lupdstat=.true. si OBSTAT_PRECALC (Use pre-calculated obs-model) ="no" ou
         ="yes" mais le fichier de statistiques n'existe pas

  3. carchformat      format du fichier
  4. valeurs : netcdf (défaut) ou netepy
    Olive : Statistics definition/type netcdf

  5. cbestwind      for scatt wind selection
  6. détection bestwind par rapport à andep ou fgdep (for scatterometer datas)
    défaut : '2an'
    remarque : ajout de l'information dans sta()%comment
    Olive : gnam.calc

  7. cexpver      experiment version
  8. → indication dans le fichier (kind ≠ 8)
        kind = 8 : initialisation du nom de fichier, attribut expver dans le fichier, ligne 4 du titre du tracé
    défaut : xxxx (calcul)
    remarque : cexpver='xxxx' (globvar), cexpver(maxfiles,3)='' (globvar1 - plot kind=8)
    Olive : cexpver=${OBSTAT_EXPERIMENT_XPID} (Experiment ID)
                               ${OBSTAT_REFERENCE_XPID} (Reference ID)

  9. cobsformat      selects the input obs format
  10. défaut : cobsformat = 'undef'
    valeurs : 'ODB'    'USER'
         pour odb2 (cobsformat='ODB') initaliser également odbfiletype (MFP ou OFB)
    Olive : cobsformat = 'ODB' (calcul des statistiques à partir de bases de données odb)

  11. cstream      ${modele}${cutoff}.${vconf}
  12. → indication dans le fichier (kind ≠ 8)
        kind = 8 : initialisation du nom de fichier
    défaut : xxxx
    Olive : cstream='${OBSTAT_EXPERIMENT_MODEL}${OBSTAT_EXPERIMENT_CUTOFF}'
         OBSTAT_EXPERIMENT_MODEL = 'arp','aro','ald' (Experiment model)
         OBSTAT_EXPERIMENT_CUTOFF = 'A', 'P', 'C' (Experiment cut-off)
         OBSTAT_EXPERIMENT_VCONF = '4dvarfr', '3dvarfr', 'pifrance', 'aearp', 'courtfr', ...

  13. datecycle      date réseau (yyyymmddhhmn)
  14. défaut : datecycle = '999999999999'
    Olive : Date and time

  15. hsris_calc      type de calcul (airs/iasi/cris)
  16. défaut : hsris_calc = 3 (channel number)
    remarque : valeurs entre 1 et 5 (voir airs_channels, iasi_channels, cris_channels, description)
         1 → presure (Pa)
         2 → channel index
         3 → channel number
         4 → wave number (cm-1)
         5 → frequency (microns)
    Olive : gnam.calc

  17. imaxread      stop obs decoding after that many reads
  18. défaut : imaxread = 999999999
    remarque : limitation du nombre d'observations lues par pool
    Olive : gnam.calc

  19. laddglobal     calcul global des statistiques
  20. défaut : laddglobal = .false.
    remarque : action si sta()%areatag ='NH.Tr.SH'
        → calcul pour "N.Hemis", "Tropics", "S.Hemis" et "GLOBE"

  21. lcalcdiag      calculs des diagnostics Desroziers
  22. défaut : lcalcdiag = .true.
    remarque : initialisation de %ldiag(item)
                       calcul des items 11, 28, 12 et 40 (cf diagnostics)
    Olive : Statistics definition/Calc. Desroziers diag.

  23. lgeogrid_norm      normalisation des calculs en haute résolution
  24. défaut : lgeogrid_norm = .true.
    remarque : information archivée dans le fichier netcdf GEO* ("normalised :" True/False)
    Olive : gnam.calc

  25. lminute      use time steps as minutes instead of hours
  26. défaut : lminute = .false.
    remarque : information archivée dans l'entête du fichier TXT*
    Olive : lminute = .true. si Date and time/step = 15mn

  27. lnanqcheck      with this option unrealistic values will be filtered
  28. défaut : lnanqcheck = .false. (cf odbread.F90, odb2read.F90)

  29. lobstat_ecmwf      pas top    -    différences avec cep
  30. défaut : lobstat_ecmwf = .true.
    remarque : calcul différent dans dataqc.F90
    Olive : lobstat_ecmwf = .false.

  31. lprthard      print hard statistics
  32. défaut : lprthard = .true.
    Olive : lprthard = .false. pour lmerge = .true. et lplot =.true.
    remarque : écriture sur unité 6 ; chunk==pool
         Référence de toutes les données dans la partie "== BEGIN TPI STATISTICS =="

  33. lscaling (à partir du cycle 37)      activate scaling of values
  34. défaut : lscaling = .true. (appel odbscaling.F90)
    remarques :
         pour codetype 1,29,57,58,181,182,183,184,185,186,188,206,193 et 250
             (cf odbcode.cfg PARAMS)
         types 1, 57 : géopotential → mètre géopotentiel
         types 29, 58 : humidité relative → %
         types 285, 206 : ozone kg/m2 → Dobson
         types 181 : NO2 → NO2 * 1308900 (1015 molecules/cm2)
         types 182 : SO2 kg/m2 → Dobson
         types 183 : CO → CO * 2150 (1018 molecules/cm2)
         types 184 : HCHO → HCHO * 2004008 (1015 molecules/cm2)
         types 186 : CO2 → CO2 * 10000000
         types 188 : CH4 → CH4 * 10**9
         types 250 : gps → gps * 10**6

  35. lwrtempty      write out missing data
  36. défaut : lwrtempty = .false.
    limitations : kind = 1, sta()%nbin /= 0 et sta()%nbin2 = 0
    Ecriture des niveaux de valeurs manquantes (-9999.) sur cstatoutFname (statout.txt)

  37. odbfiletype
  38. ECMA,CCMA pour odb ; format MFB ou OFB pour odb2

  39. obstat_nbslot      nombre de slots pour obstat
  40. nombre de divisions dans window_length_4d pour le calcul obstat → définir timeslot (calcul sur une seule tranche horaire)
    défaut : obstat_nbslot = 1

  41. specialsql      get specific values to cater for studid Graeme fix
  42. défaut : specialsql = 'none'
    Olive : specialsql = '$OBSTAT_SQL' (Build parameters/SQL request)
    fonction : conditionne l'appel à la requête obstat_xxx.sql
         xxx définis : 'conv', 'fcdep', 'fdcdep_gpsro', 'geos', 'gpsro', 'mwimg', 'radar',
             'resat', 'satob', 'scatt', 'smos', 'smos_land', 'tovs'

  43. timeslot      numéro du timeslot utilisé
  44. défaut : timeslot = 999
    remarques : timeslot=0, 999 ou nbslots=1 → calculs sur tous les slots → même résultats
                  différence dans la première ligne
    exemple : window_length_4d=6, obstat_nblot=6, timelost=2 → calcul sur deuxième heure de la période
    Olive : passage argument initialisation par gnam.calc

  45. window_length_4d      4d-var total window length
  46. défaut : window_length_4d = 999
    remarque : → sta()%nbr_tslot (window_length/tslot)
    Olive : définition automatique à partir du choix du modèle

  47. window_offset_4d      4d-var offset time
  48. défaut : window_offset_4d = 3
    remarque : → calcul des pas de temps
IV. Paramètres de merge    (kind ≠ 8)
  1. lmerge      merge stats into main stats (→ version 3)
  2. défaut : lmerge = .false.
    limitation : nproc = 1     
    remarques :
         lecture des données statistiques dans les fichiers de type TXT* (1 réseau, fichier mergé)
         lcalcdiff = .false. → calculs de moyennes temporelles → noms de fichiers TXT*_datdeb-datfin
                       = .true. → calculs pour ploterrorbars → noms de fichiers TXTD_*
         La première ligne du fichier indique le nombre de réseaux et la date de début et de fin des données

  3. lcalcdiff      calculs pour tracé de type ploterrorbars
  4. défaut : lcalcdiff = .false.
    remarques :
         ⇒ lmerge = .true.
         données en sortie TXTD_* (version 5)

  5. runningmean      number of cycles used for estimating running mean
  6. défaut : runningmean = 0 (  pas de running mean)
    remarque : coeff. = (nb1+nb2)*zscale/(nb1+nb2)   zscale=runningmean/(runningmean+1.)
V. Paramètres de tracés    (kind ≠ 8)
  1. lplot      to generate plots
  2. contrôles : if (nproc > 1) lplot=.false.
    Peut être complété par les options loverlay, lplotdiff ou lploterrorbars

  3. plotmode
  4. plotmode=0   1 graphe par fichier sauf airs,iasi,cris
    plotmode=1   tous les graphes dans le même fichier
    plotmode=2   1 graphe par fichier

  5. cgroupparam      liste des paramètres à grouper 'x1,x2'
  6. défaut : cgroupparam = 'none'
    x1[,x2] : numéro indiqué dans cstat2Fname params

  7. cgroupstat      liste des statistiques ` grouper 'x1,x2,...'
  8. défaut : cgroupstat = 'none'
    x1,x2,... : numéro d'ordre dans cstat2Fname ; peut être différent de celui de "BEGIN STATDEF xx"

  9. clayout      plot layout option
  10. défaut : clayout = 'A4'
    valeurs : clayout = A4, A3, EPS
    Olive : $OBSTAT_LAYOUT

  11. coeff_plt      pour gérer l'axe des X avec lploterrorbars
  12. Bornes du tracé = coeff_plt * sigma(répartition des valeurs) si coeff_plt > 0.
    défaut : 0.

  13. ctitle      titre du tracé
  14. Première ligne du titre pour kind=8
    kind=1 à 4 : utilisation des informations contenues dans le fichier de statistiques (statout.txt) dans les procédures olive ou d'exécutions directes
    défaut : ctitle = 'untitled' → "." sur le plot (Pb magics)

  15. cmax,cmin,cint      bornes du tracé
  16. défaut : -99.

  17. hsris_band_split (à partir du cycle 37)      split hsris into 4 spectral bands (LW,O3,WV and SW)
  18. défaut : hsris_band_split = .true.
    remarque : valeurs entre 1 et 5

  19. hsris_plot (à partir du cycle 37)      hsris (airs/iasi/cris) plot type
  20. défaut : hsris_plot = 3
    remarque : valeurs entre 1 et 5 (voir airs_channels, iasi_channels, cris_channels, description)
         1 → presure (Pa)
         2 → channel index
         3 → channel number
         4 → wave number (cm-1)
         5 → frequency (microns)
    Olive : gnam.plot

  21. humminlev      limit TEMP humidity from Surface to humminlev hPa
  22. défaut : humminlev = 70
    remarque : uniquement pour kind = 1 (cstatinFname - stat.def.odb)
        utilisation pour subtype (odb) ≥ 35 et ≤ 40 , = 135 (subtypes)
                   paramètre 7 (odb) = humidité spécifique (params)
                   paramètres 2 et 7 (odb) = température et humidité spécifique (params)
        limitation du tracé aux pressions > humminlev

  23. lautoscale      échelle des axes à partir des valeurs
  24. défaut : lautoscale = .true.
    lautoscale = .false. → échelle à partir des valeurs définies dans cmin/cmax.cint ou dans general.cfg

  25. lfixYaxis      keep axes scales constant en Y airs/iasi/cris
  26. défaut : lfixYaxis = .false.

  27. loghistogram      use log scaling for histogram bar plots
  28. défaut : loghistogram = .false.
    remarque : uniquement pour kind = 2 (cstatinFname - stat.def.odb)

  29. loverlay      overlay plot with 2ndary stats
  30. défaut : loverlay = .false.
    Olive : OBSTAT_Oplotype
    remarques :
         loverlay =.true. → cstat2Fname existe
             lectures et calculs en "sommes" sur sta2()
         tracé en rouge , noté "ref"

  31. lsymxaxis      keep x-axes for bias from min to max for most cases
  32. défaut : lsymxaxis = .true.
    remarque : uniquement pour kind = 1,2 (cstatinFname - stat.def.odb)
        pas pour lploterrorbars/rms
        lsymxaxis = .false. → échelle asymétrique

  33. minpop      min. population required to plot rms/bias
  34. défaut : minpop = 5
    Olive : $OBSTAT_MINPOP
    remarque : uniquement pour kind = 1 (cstatinFname - stat.def.odb)
        comparaison avec la valeur de "number" dans statout.txt"

  35. lplotdiff      plot différence entre deux expériences
  36. défaut : lplotdiff = .false.

  37. lplotdiag      plot diagnostics Desroziers (pour lploterrorbars = .false.)
  38. défaut : lplotdiag = .false.

  39. lplotempty      plot dataless plots avec plotmode=1
  40. défaut : lplotempty = .false.

  41. lploterrorbars      plot avec barre d'erreur
  42. défaut : lploterrorbars = .false.
    remarques :
         pour kind=1 uniquement
         → lplotdiag=.true.
         → utilisation de fichier TXTD_* pour la référence et TXT_* pour l'expérience
         TXT_* expérience et référence → TXTD_* avec un merge lcalcdiff=.true.

  43. lplotisol      plot isolated levels for airs, iasi, cris
  44. défaut : lplotisol = .false.
    remarque : uniquement pour kind = 1 (cstatinFname - stat.def.odb)

  45. lplotnorm      avec deux expériences
  46. défaut : lplotnorm = .false.

  47. lplotobs      plot curves with observations
  48. plot item idval/obsvalue@body (8) s'il est présent
    défaut : lplotobs = .false.
    remarque : pour kind = 1,2,3 (cstatinFname - stat.def.odb)

  49. lstdev      plot standard deviation instead of rms
  50. défaut : lstdev = .false.
    Olive : $OBSTAT_STDEV
    remarque : uniquement pour kind = 1,5 (cstatinFname - stat.def.odb)

  51. lwarning      change axis colour to red if data outside bounds
  52. défaut : lwarning = .true.

  53. lwhiskers      plot box-and-whiskers over histograms
  54. défaut : lwhiskers = .true.