Opened 9 years ago

Closed 8 years ago

#256 closed task (fixed)

Fonction pour verifier la coherence des fichier xml

Reported by: jgipsl Owned by: sdipsl
Priority: major Milestone: libIGCM_v2.8.2
Component: system Version:
Keywords: Cc:

Description (last modified by sdipsl)

Objective de la function

  • Verifier la coherence entre les variables listés dans les fichiers file_def_xxx.xml et field_def_xxx.xml pour une composante. On suppose que field_def_xxx.xml est coherent avec les sources du modèle mais qu'il y a un risque que file_def_xxx.xml ne le soit pas.
  • Selon le choix fait a l'appel, la fonction
    • force la modification du fichier file_def(supprimer les lignes pour les variables en trop) et poursuivre la simulation.
    • ou la simulation est arretée une fois que tout les fichiers xml declarés dans [ParametersFiles] ont été verifié. Puis l'utilisateur est averti d'un probleme de cohérence. Il se peut que l'utilisateur a ajouté des variables dans file_def mais a oublié de mettre a jour sa version de modèle.

Utilisation

  • La function sera appelée depuis chaque comp.driver pour lequel le comp.card correspondant contient des fichiers xml. Par exemple pour le cas ORCHIDEE, tout les fichiers xml sont listé dans orchidee.card et c'est donc uniquement orchidee.driver qui fera appelle a cette fonction et non pas stomate.driver. La fonction prendra en argument le choix de s'arreter ou de modifier les fichiers.

Possibilité d'implémentation
Parmi tout les fichiers xml listés dans [ParametersFiles] pour le composant qui appelle le function, extraire le fichier field_def_*.xml (il faut qu'il y en ait et un seul) et extraire les noms des tout les fichier file_def*xml (par exemple pour LMDZ il y en a plusieurs). Ensuite pour tout les fichiers file_def*xml, parser chaque ligne avec une variable et vérifier que la même variable est listée dans field_def*xml. Si la variable n'est pas dans le fichier field_def, le fonction 1) envoit un signal pour arreter la simulation 2) ou modifie le file_def en enlevant les variables en trop.

Il est possible qu'il suffise de parser les fichiers xml sans attacher d'importance à leurs noms. Il faut chercher tout les field_ref et verifier qu'il y a un "field id=" qui correspond sur un autre ligne(probablement dans un autre fichier). Il est imperatif que chaque variable declarée avec "field_ref" existe en "field id". Il peut y avoir des "field id" sans "field_ref".

A voir comment ca se passe si les variables sont declarées en groupe. Dans se cas il faut verifier si la groupe et declaré.

Change History (6)

comment:1 Changed 9 years ago by sdipsl

  • Description modified (diff)
  • Summary changed from Fonction pour verifier le coherence des fichier xml to Fonction pour verifier la coherence des fichier xml

En y réflechissant, et puisque XIOS est intégré dans toute les composantes on pourrait

  • avoir cet appel dans config_Check et non pas dans les drivers.
  • avoir une nouvelle section dans les comp.card : [XIOSParameter]

comment:2 Changed 8 years ago by sdipsl

  • Milestone set to libIGCM_v2.8

comment:3 Changed 8 years ago by sdipsl

  • Milestone libIGCM_v2.8 deleted

comment:4 Changed 8 years ago by sdipsl

  • Milestone set to libIGCM_v2.9

A rediscuter étant donné les stratégies en cours de prendre les xml synchronisés avec le code source.

Concernera XIOS2 si le ticket est confirmé.

comment:5 Changed 8 years ago by sdipsl

  • Owner changed from somebody to sdipsl
  • Status changed from new to assigned

comment:6 Changed 8 years ago by sdipsl

  • Resolution set to fixed
  • Status changed from assigned to closed

Done see r1337 r1338 r1339 r1340

Note: See TracTickets for help on using tickets.