![]()
Documentation 02/04/2002 Puech Dominique Météo-France CNRM/GMAP/OBS![]()
I. Tables d'informations générales
I.1. Table DDRS
I.2. Table DESC
I.3. Table INDEXII. Description "de la locomotive"
II.1. Table HDR
II.2. Table SAT
II.3. Données SATOB
II.4. Données RTOVS, ATOVS pré-procéssées
II.5. Données ATOVS brutesIII. Description des wagons
III.1. Table BODY
III.2. Table RTOVS_BODY
III.3. Table ERRSTAT
III.4. Table UPDATEIV. Gestion des listes noires
IV.1. liste LISTE_NOIRE_DIAP
IV.2. liste LISTE_LOC
IV.3. RemarquesV. Annexes
V.1. Tableaux de travail
V.2. Nameliste
V.3. obschar MDBOCH
I. Tables d'informations générales
Cette table contient les données des tableaux d'entête du cmafoc
(XMOBDD1, XMOBDD2 X=M,R et C)
Table DDRS -> tableau implicite ROBDDR(2*3072,4) -> fichier ddrs* pointeur dynamique : MDB_ddrno_AT_ddrs = 1
ROBHDR(1:NLENCD1,MDB_ddrno_AT_ddrs) = 1
ROBHDR(NLENCD1+1:NLENCD2,MDB_ddrno_AT_ddrs) = 2* pointeur dynamique : MDB_wordno_AT_ddrs = 2
ROBHDR(j=1,NLENCD1,MDB_wordno_AT_ddrs) = j
ROBHDR(j=NLENCD1+1,NLENCD2,MDB_wordno_AT_ddrs) = j* pointeur dynamique : MDB_bulkdata_AT_ddrs = 3
pointeur valeur du signification
pointeurNCD1LN 1 longueur du 1er DDR (*)
NCD1NL 8 longueur du DDR suivant (*)
NCD1OT 11 heure du milieu de la période d'observation (hhmnss)
NCD1OD 12 date du milieu de la période d'observation (aaaammjj)
NCD1NPU 15 nombre d'update prévu NRESUPD
NCD1NUP 16 nombre d'update réalisés -1
NCD1RM 22 longueur max d'une observation (*)
NCD1TO 27 nombre total d'observations
NCD1NSY 28 nombre de messages de la catégorie NSYNOP
NCD1NAI 29 nombre de messages de la catégorie NAIREP
NCD1NSA 30 nombre de messages de la catégorie NSATOB
NCD1NDB 31 nombre de messages de la catégorie NDRIBU
NCD1NTE 32 nombre de messages de la catégorie NTEMP
NCD1NPI 33 nombre de messages de la catégorie NPILOT
NCD1NSM 34 nombre de messages de la catégorie NSATEM, hors TOVS
NCD1NT 35 nombre de messages TOVS de la catégorie NSATEM
NCD1NPA 36 nombre de messages de la catégorie NPAOB
NCD1SC 37 nombre de messages de la catégorie NSCATT
NCD1NRR 38 nombre de messages de la catégorie NRARAD
NCD1NSSM 39 nombre de messages de la catégorie NSSMI
NCD1NAT 40 nombre de messages ATOVS de la catégorie NSATEM
NCD1AL 51 longueur totale du fichier cmafoc (hors ddrs) (*)
NCD11DL 57 TOVS : nb niv. inversés dans le 1DVAR = NO1DVLV
NCD11DV 58 TOVS : nb var. inversées - 1DVAR - altitude = NO1DVVA
NCD11DS 59 TOVS : nb var. inversées - 1DVAR - un niveau = NO1DVSLV
NCD11DLS 75 SSMI : nb de niv. inversés dans le 1DVAR = NO1DVLVS
NCD11DVS 76 SSMI : nb var. inversées - 1DVAR - altitude = NO1DVVAS
NCD11DSS 77 SSMI : nb de var. inversées - 1DVAR - un niveau = NO1DSLVS
NCD1SOH 81 indicateur de présence des données
NCD1TSL_numslots 101 time slot information (*)
NCD1TSL_numslots 102 nb de mots par time slot (*)
NCD1TSL_init_date 103 date initiale du 1er time slot (*)
NCD1TSL_init_time 104 heure initiale du 1er time slot (*)
... pour chaque time slot X+NCD1TSL_numslots (*)
"2eme DDR x + 1024*3
NCD2LN 1 longueur du 2eme DDR (*)
NCD1LND 8 longueur du DDR suivant (*)(*) informations nécessaire pour la création un fichier cmafoc
Dans cette table des éléments descriptifs généraux
Table DESC -> tableau implicite ROBHDR(1,8) -> fichier descpointeur valeur du signification
pointeurMDB_andate_AT_desc 2 date du milieu de la période d'observation (aammjj)
MDB_time_AT_desc 3 heure du milieu de la période d'observation (hhmmss)MLNK_desc2ddrs(2) 5 = NLENCD1 + NLENCD2
MLNK_desc2index(2) 7 = nb d'observationsTable permettant un accès pàlus rapide aux données
Table INDEX -> tableau implicite MOBHDR(nb d'obs,8) -> fichier indexpointeur valeur du signification
pointeurMDB_target_AT_index 1 = 1
MDB_procid_AT_index 2 = 1 nb de groupe de données
MDB_tslot_AT_index 3 = 1 (3dvar) numéro de slot pour 4dvar
MDB_kset_AT_index 4 = 0
MDB_abnob_AT_index 5 = int(RABSO)MLNK_index_2hdr(2) 7 = 1
Définition des bornes des time-slots
Utilisation du fichier ficdate initialisé dans le script d'exécution
H_3h, +30mn, +1h, +1h, +1h, +1h, +1h, +30mn
Soit pour le 2001111418 : 20011114150000
20011114153000
20011114163000
20011114173000
20011114183000
20011114193000
20011114203000
20011114210000
II. Description "de la locomotive"
Cette table contient les valeurs de la partie fixe de la locomotive du fichier CMAFOC, ainsi que les 2 premiers éléments de la partie optionnelle (NCMINS, NCMREV2)
"table" HDR -> tableau implicite ROBHDR(nb d'obs,36) -> fichier hdrpointeur valeur du signification
pointeurMDBONM 1 seqno numéro de l'obs.
MDBOTP 2 obstype type de l'observation
MDBOCH 3 obschar caractéristiques de l'observation
MDBDAT 5 date date de l'observation (sous la forme AAAAMMJJ)
MDBETM 6 time heure de l'observation (sous la forme HHMMSS)
MDBRFL 7 codes qualité
MDBRST 8 codes état (0)
MDBREV1 9 codes événements, première partie (0)
MDBRBLE 10 codes événements liste noire (0)
MDBBOX 11 numéro de boite géographique (NABSO)
MDBSTD 12 propre a chaque site de production
MDBSID 13 statid indicatif OMM de l'obs - 8 caractères (transfer)
MDB_ident_AT_hdr 14 ident numero satellite
MDBLAT 15 lat latitude de l'observation (en radians)
MDBLON 16 lon longitude de l'observation (en radians)
MDBALT 17 altitude de la station (en mètres) ou RABSO
MDBMOR 18 orographie du modèle (RABSO)
MDBTLA 19 latitude sur la spère transformée (RABSO)
MDBTLO 20 longitude sur la spère transformée (RABSO)
MDBINS 21 spécification de l'instrument (NABSO)
MDBREV2 22 code événement - 2ème partie (NABSO)
MDBSSIA 25 indicateur de capteur satellite (pour NGTHRB)MDBHOANX 23 X = S (synop), D (dribu), T (temp), P (pilot)
MDBHOBAX 24 initialisés a RABSOMLNK_hdr2sat(2) 29 = 1
MLNK_hdr2body(2) 31 nb de paramètres observés (= nb de wagons)
MLNK_hdr2errstat(2) 33 nb de paramètres observés (= nb de wagons)
MLNK_hdr2update(2) 35 nb de paramètres observés (= nb de wagons)Dans cette table, est indiquée la présence de satellites dans les données. Valeurs mises a 1 si présence de données correspondantes (défaut = aucune valeur). Définition pour SATOB, SATEM : NGTHR1, NGTHR2, NGTHRB
"table" SAT -> tableau implicite SATHDR(nb d'obs,14) -> fichier satpointeur valeur du signification
pointeurMDB_satid_AT_sat 1 numéro satellite (integer)
MLNK_sat2satob(2) 5 = 1 pour NSATOB
MLNK_sat2atovs(2) 11 = 1 pour NGTHRB
MLNK_sat2rtovs(2) 13 = 1 pour NGTHR1, NGTHR2Cette table contient les valeurs de la partie optionnelle de la locomotive du fichier CMAFOC pour les satellites, ainsi que certaines données supplémentaires.
"table" SATHDR tableau implicite SATHDR(nb d'obs du type,7) -> fichier satobpointeur valeur du signification
pointeurMDBNSBCMM 1 comp_method cloud motion comp. Method (NABSO)
MDBSBIUP 2 instdata
MDBSBDPT 3 dataproc data proc. Technique used (NABSO)
MDBSBQIx 4-6 qi[3] x=1,2,3 (NABSO)II.4. Données RTOVS, ATOVS pré-procéssées
Cette table contient les valeurs de la partie optionnelle de la locomotive du fichier CMAFOC pour les satellites, ainsi que certaines données supplémentaires. Types de données = NGTHR1, NGTHR2
"table" SATHDR tableau implicite SATHDR( nb d'obs du type,31) -> fichier rtovs
pointeur valeur du signification
pointeurMDBSOE 1 solar_elevation élevation solaire (ou RABSO)
MDBCHU 2 numchan canaux utilisés dans les calculs
MDBDPT 3 dataproc tech. de traitement des données utilisées
-> couverture nuageuse (8,16 ou 32) utilisé pour le 1dvarV
MDBSLC 4 loc_counter position du satellite -> scan
mod(SLC,100) entre 1 et 56 -> 1 + (SCAN -2)/3 (arpège)
MDBVS4 8 vertsign[4] 4ère signification verticale
zénith pour noaa 15 et 16 (206,207)
MDBOZO 9 ozone (ou RABSO)
MDBPP1 10 press[1] 1ère pression (ou RABSO)
MDBPP2 11 press[2] 2ère pression
MDBCLC 12 cloud_cover couverture nuageuse (oulan = nébulosité totale cf bdm)
MDBLSQ 13 landsea masque terre/mer
(0=terre, 1=mer, 2=côte, 3=absent) idem NCMOCH
MDBHLS 14 landsurf_height hauteur de la surface du sol (km)
NCMSKT 15 skintemp température de l'enveloppe (K)
MLNK_rtovs2rtovs_body(2) 30 nb de paramètres observés (= nb de wagons)
MLNK_rtovs2rtovs_slev(2) 26 = 1
MLNK_rtovs2rtovs_mlev(2) 28 = NO1DVLV (43) nb de niveaux modèle
MLNK_rtovs2rtovs_pred(2) 24 = 1"table" RTOVS_SLEV
tableau implicite SATSLEV(nb de rtovs,17) -> fichier rtovs_slev RABSO
"table" RTOVS_MLEV
tableau implicite SATMLEV(nb rtovs*NO1DVLV,8) -> fichier rtovs_mlev RABSO
"table" RTOVS_PRED
tableau implicite SATPRED(nb de rtovs,17) -> fichier rtovs_pred RABSOCette table contient les valeurs de la partie optionnelle de la locomotive du fichier CMAFOC pour les satellites, ainsi que certaines données supplémentaires. Types de données = NGTHRB
"table" SATHDR tableau implicite SATHDR(nb d'obs du type,29) -> fichier atovspointeur valeur du signification
pointeurMDBSCLA 1 numéro de ligne scan
MDBFOVA 2 numéro de champs de vue (scan)
MDBSTHA 3 hauteur de la station
MDBSAZA 4 zénith
MDBSABA 5 bearing ou azimuth
MDBSOZA 6 solar zenith angle
MDBSOBA 7 solar azimuthMLNK_atovs2atovs_pred(2) 24 = 1
"table" ATOVS_PRED
tableau implicite SATPRED(nb de rtovs,19) -> fichier atovs_pred RABSO
Cette table contient les valeurs incontournables de la partie fixe du wagon du fichier CMAFOC, et des valeurs dépendantes du type d'observation.
"table" BODY -> tableau implicite ROBODY(nb total de wagons,17) -> fichier bodypointeur valeur du signification
pointeurMDBVNM 1 type de paramètre (cf table NVNUMB)
MDBVCO 2 type de coordonnée verticale =1 ou =3 (T brillance)
MDBRDFL 3 code qualité base de donnée
MDBFLG 4 code qualité analyse
MDBDSTA 5 code qualité expérience cf MDBRST
MDBDEV1 6 code qualité évènements, première partie = 0
MDBDBLE 7 code qualité évènements liste noire = 0
MDBESQN 8 numéro du wagon
MDBPPP 9 press pression corr. à la coordonnée verticale ci-après (en Pa)
numéro de canal pour tovs
numéro de canal à partir de 1 pour level 1c (cf tovclr.f90)
MDBPRL 10 coordonnée verticale issue de la B.D.M.
numéro de canal pour tovs/atovs
MDBVAR 11 obsvalue valeur observée
MDBDEV2 13 code événements, deuxième partie = 0
MDBSYPC 14 pour NSYNOP code pression = RABSO
MDBTELID 15 pour NTEMP identificateur du niveau
MDBPILID 15 idem pour PILOT
MDB_aux1_AT_body 12 valeurs ff et dd respectivement pour wagons u et v"table" SATBODY
NSATEM (NGTHR1,NGTHR2) :
tableau implicite SATBODY( nb d'obs du type,2) RABSO -> fichier rtovs_bodyCette table contient les valeurs de la partie fixe du wagon du fichier CMAFOC liées aux erreurs.
"table" ERRSTAT ->
tableau implicite ROBODY( nb total de wagons ,6) -> fichier errstatpointeur valeur du signification
pointeurMDBFOE 1 erreur d'observation finale
MDBOER 2 erreur d'observation = MDBFOE
MDBRER 3 erreur de représentativité = 0
MDBPER 4 erreur de persistance = 0Cette table contient les valeurs de la partie canari du wagon du fichier CMAFOC.
"table" UPDATE ->
tableau implicite ROBODY( nb total de wagons,16) -> fichier updatepointeur valeur du signification
pointeurMDBRBVC 13 type de coordonnée verticale
Le fichier LISTE_NOIRE_DIAP contient une liste de données blacklistées transmise par COMPAS.
transformation
Avec le passage a odb, le format de cette liste a changé : rajout du code message. Le programme transform_ln.F90 permet de passer de l'ancien au nouveau format (fichier sans les "%code").
transform_ln : fichier d'entrée LISTE_NOIRE_DIAP fichier de sortie LISTE_NOIRE_DIAP.odb
fichier LISTE_NOIRE_DIAP sur ~mxpt001/arpege/france/${chaine}/const/autres
programme transform_ln.F90 sur kami:~mrpa660/SRC/CY24 compilable avec commande frtformat de LISTE_NOIRE_DIAP les champs sont séparés par 1x
champ 1 : type d'observation i2 REF_LN(j)%iotp
champ 2 : code message format lettre simplifie 10x pas lu
champ 3 : code message i3 REF_LN(j)%icodmes
champ 4 : numero de variable "NVNUMB" i3 REF_LN(j)%ivarno
champ 5 : indicatif a8 REF_LN(j)%cident
champ 6 : date - non utilise 8x pas lu
facultatif
champ 7 : code liste_locale/nb a4/i1 REF_LN(j)%code (i4), REF_LN(j)%vref(:) (i1)
champs suivants : voir spécificités des codeslecture dans batodb_leclndiap
INBLNDIAP(iotp) nb de messages liste-noire par type d'observationtraitement dans batodb_ecriture
- au niveau du header de l'observation -> ilndiap(ivarno) 0 = aucune action
-1 = blacklisting
>0 = test supplémentaire au niveau du wagon
- au niveau du wagon -> ilndiapw 0 = aucune action
-1 = blacklisting
les codes
SYNOP varno=39 (t2m) -> blacklisting varno=39, 58 (Hu2m), 7 (q)
SYNOP varno=58 (Hu2m) -> blacklisting varno=58, 7 (q)
NTEMP varno=1 (géop.) -> blacklisting varno=1, 29 (Hu), 2 (T), 59 (Td), 19 (Hu), 7 (q)
NTEMP varno=2 (T) -> blacklisting varno=2, 29 (Hu), 7 (q)
NTEMP varno=29 (Hu) > blacklisting varno=29, 7 (q)PROFx P1 ... Px i i ... i (x+1 fois) Hxx ...
permet de definir des couches de pression P1 a Px (MDBPRL)
de définir blacklisting=1 ou 0 pour chaque couche "i ... i (x+1 fois)"Exemple de liste noire diapason
1 SHIP 21 1 3ECI8 01031999
1 SHIP 21 11 3EBW4 02032001
1 SHIP 21 39 3FCS8 01012000
1 SHIP 21 41 3BIX 01031997
1 SYNOP 11 1 01360 01071999
1 SYNOP 11 11 01092 01092001
1 SYNOP 11 39 06748 01121997
1 SYNOP 11 58 60010 01052001
2 ACAR 145 2 0ZZYCMZA 01112001
2 ACAR 145 3 0GGL3QZA 01121999
2 AMDAR 144 2 AR007EPZ 01091999
2 AMDAR 144 3 AN0051 01111999
4 BUOY 165 1 14603 03102001
4 BUOY 165 11 14911 01072001
4 BUOY 165 39 25521 01021999
4 BUOY 165 41 15539 02081999
5 TEMP 35 1 07137 25051998
5 TEMP 35 2 20674 01112001
5 TEMP 35 3 06447 01012002
5 TEMP 35 29 42314 01012001
5 TEMPSHIP 36 1 OXYH2 01112001
6 PILOT 32 3 07008 01112001
6 profileur 34 4 70197 0 PROF2 700 400 1 1 0
6 profileur 34 3 70197 0 PROF2 700 400 1 1 1 H06 H18
6 profileur 34 3 70197 0 PROF2 700 400 0 0 1 H00 H12Le fichier LISTE_LOC contient une liste de données fournies par l'utilisateur du programme. Cette liste permet de définir des données a blacklister ou forcer.
format de LISTE_LOC
champ 1 : action a1 LN_LOC(j)%iaction
champ 2 : type d'observation i3 LN_LOC(j)%iotp
facultatif
champ 3 : code message i4 LN_LOC(j)%icodmes
champ 4 : indicatif a9 LN_LOC(j)%cident
champ 5 : numéro de variable a9 LN_LOCj)%ivarno
pour option 'TOVS' numéro de "sensor" (MDBSSIA)
champ 6 : code liste_locale/nb a4/i1 LN_LOC(j)%code, nb -> LN_LOC(j)%vref(1:nb)
obligatoire
dernier champ : !action : O = forçage (-> 1) N = noirlistage (-> -1) (logique o/n)
code liste_locale :
PPPPx = xx pressions ou numéro de canaux dans valeurs suivantes
ZONx4 = zonagelecture dans batodb_leclloc, remplissage de LN_LOC, type défini dans batodb_module
traitement dans batodb_ecriture
* au niveau du header de l'observation, retour sur ilnloc abs(ilnloc) = num dans LN_LOC
0 = aucune action
<0 action sur l'ensemble de l'observation
>0 action spécifique par wagon
* au niveau du wagon de l'observation, entrée/retour sur ilnloc
-1 = noirlistage
1 = forçage
0 = aucune action
les codes
PPPPxblacklist si "MDBPPP" = 1 valeur dans les x références
ZONB4 (lat < lat_min .or. lat > lat_max .or. lon < lon_min .or. lon > lon_max )
-> action extérieur - extérieur
ZONC4 (lat < lat_min .or. lat > lat_max .or. (lon > lon_min .and. lon < lon_max))
-> action extérieur - intérieur
TOVSxblacklist si "MDBPPP" = 1 valeur dans les x références (numéros de canaux)
pour le "sensor" défini dans LN_LOC(j)%ivarno
PROFxx P1 ... Px i i ... i (x+1 fois) Hxx ...
permet de definir des couches de pression P1 a Px (MDBPRL)
de définir blacklisting=1 ou 0 pour chaque couche "i ... i (x+1 fois)"
Exemple de liste noire locale
!--------------------------------------------------------------------------------------------------------
! action (1) / obstype (2) / [ codetype (3) / ident (8) / varno (3) / code (a3i2) / liste ] / ! commentaire
x xx xxx xxxxxxxx xxx ........
! PPPxx xxxxxxx xxxxxxx (1x,x7)
!--------------------------------------------------------------------------------------------------------
N 6 34 ! nwppcd profileur de vent
N 2 141 29 ! airep hu
N 2 144 29 ! airep hu
N 2 145 29 ! airep hu
N 5 135 1 ! temp drop
N 9 ! scatt
N 1 16 ! radome
N 3 88 052 ZONB4 -50 50 13 113
N 3 88 054 ZONB4 -50 50 -50 50
N 3 88 252 ZONC4 -50 50 -25 175
N 3 88 254 ZONC4 -50 50 -25 175
N 3 88 152 ZONC4 -50 50 -170 90
N 7 210 206 3 TOVS1 11
N 6 134 3 PROF2 700 400 1 0 1
* profileurs nvnumb=3 profileurs européens
nvnumb=4 profileurs américains
ZDATALOC ( INBOBS , 11 )
1 : nb total de wagon
2 :type de message
3 : type d'obs
4 : code terre/ mer
5 : numéro de time-slot
6 : code présence sst =1 (sinon 0)
11 : ncmsoe / ncmscla (pré-processées / brutes)
12 : ncmchu / ncmfova
13 : ncmdpt / ncmstha
14 : ncmslc / ncmsaza
15 : ncmozo / ncmsaba
16 : ncmpp1 / ncmsoza
17 : ncmclc / ncmsoba
18 : ncmlsq
19 : ncmhls ou ncmvs4
20 : ncmskt
21 : ncmpp2ZDATAWAG ( INLVT , 5 )
1 : mdbvnm
2 : mdbprl
3 : mdbppp
4 : mdbfoe/mdboer
5 : mdbrbvcLa nameliste NADIRS donne accès a :
- LLPRINT : impressions complémentaires
- ECTERO, ETEOST, ETEOHUV.3. obschar MDBOCH
type instrument : position 11
pour airep = systeme de navigation position 11
phase de vol position 16
retrieval type :
pour synop, dribu, temp et pilot = sst 1=terre sinon 0zone geographique : position 27
pour satem = indice terre/mer