IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Tests sur la lecture d'une namelist


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Tests sur la lecture d'une namelist
    Bonjour,

    Je vous sollicite pour un problème de lecture d'une namelist ...
    En effet, l'utilisation de IOSTAT permet de déceler de multiples erreurs à la lecture de la namelist mais elle ne permet pas de déceler l'erreur suivante d'après mes recherches :
    un item de la namelist n'est pas présent dans le fichier contenant les données.
    Dans ce cas là, le paramètre prend la valeur zéro, ce qui peut poser problème si l'on ne s'en rend pas compte.
    Pourriez vous me confirmer que cette erreur là n'est pas prise en charge par IOSTAT, et si oui pourriez vous m'indiquer une méthode pour effectuer ce test à la lecture de la namelist ?

    Merci par avance à tous.

    Fanny

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    qu'appele-tu une namelist? un fichier contenant une liste de nom+valeurs?

    sinon pour la méthode: tu déclare un tableau de LOGICAL avec autant de valeur que de ta liste, et tu les mets à .true. lorsque l'item est présent... ensuite tu cherche les valeur qui sont à .false. signifiant que l'item n'est pas présent...

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par tity333 Voir le message
    Je vous sollicite pour un problème de lecture d'une namelist ...
    En effet, l'utilisation de IOSTAT permet de déceler de multiples erreurs à la lecture de la namelist mais elle ne permet pas de déceler l'erreur suivante d'après mes recherches :
    un item de la namelist n'est pas présent dans le fichier contenant les données.
    Dans ce cas là, le paramètre prend la valeur zéro, ce qui peut poser problème si l'on ne s'en rend pas compte.
    Pourriez vous me confirmer que cette erreur là n'est pas prise en charge par IOSTAT, et si oui pourriez vous m'indiquer une méthode pour effectuer ce test à la lecture de la namelist ?
    Ce n'est pas pris en charge par le mecanisme de retour d'erreur parce que c'est un comportement normal. Si un membre d'une namelist n'est pas liste dans les valeurs d'entrees, sa valeur reste inchangee - generallement a la valeur d'initialisation 0 (ou .false. pour les logicals).
    Si c'est un probleme, il suffit de verifier apres la lecture de la namelist que tous les membres ont des valeurs valides.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Merci pour vos réponses.
    C'est effectivement un problème pour moi mais votre précision sur les valeurs par défaut m'a donné une idée qui devrait suffire : je vais initialiser mes paramètres en dur dans le code avant de lire la namelist dans le fichier de données. Comme cela ils auront une valeur valide par défaut dans tous les cas.
    Merci encore pour votre aide.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    L'initialisation avant la lecture est effectivement ce qu'il faut faire. Dans certains cas, il est utile d'initialiser à une valeur inattendue et de tester la variable après la lecture (cette technique est utile si la valeur par défaut dépend des autres valeurs lues).

    En passant, le comportement est le même pour les lectures « list-directed » si tu sépares les valeurs par des virgules. S'il n'y a pas de valeur entre 2 virgules, la valeur de la variable correspondante reste inchangée.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Bonjour Sylvain,

    Merci pour cette précision. J'étais justement en train d'initialiser mes paramètres avec une fill-value pour les tester après lecture !
    Un peu laborieux et pas assez "propre" à mon goût mais efficace !

    Fanny

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    J'utilise généralement les fonctions huge() ou tiny() pour ce genre de test parce que l'usager a peu de chance de pouvoir entrer ces valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    x = huge(x)
    read(...) x
    if (x == huge(x)) ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/07/2006, 18h54
  2. test sur le nom d'une fonction
    Par Art19 dans le forum C
    Réponses: 6
    Dernier message: 26/06/2006, 18h29
  3. Réponses: 2
    Dernier message: 16/02/2006, 09h24
  4. [XSL] Test sur le nom d'une balise
    Par KibitO dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 18/12/2005, 13h44
  5. test sur la dim d une cellule
    Par simon250 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo