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 :

[g95] Erreur 'Unexpected element in format string'


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Par défaut [g95] Erreur 'Unexpected element in format string'
    Bonjour,

    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    100 FORMAT(<n>(2x,f4.2))
    où n est le nombre de repétitions du format pour "write", n correspond au nombre d'éléments d'un vecteur que je dois écrire dans un fichier de sortie.
    Il me donne le message suivant :
    Error: Unexpected element in format string
    comment corriger cette erreur ?
    merci.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Si n est une variabe, je ne pense pas que tu puisse l'inculre dans la definition du format tel quel!

    Si tu souhaite simplement ecrite les elements de ton vecteur sans retour a la ligne entre eux, tu peux utiliser une boucle, et un $ en fin de definition du format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    100 format(2x,f4.2$)
    do i=1,n
       write(*,100) monNombre
    enddo

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Par défaut
    merci bien Signus,
    c'est drole mais la méme syntaxe qui fait erreur dans g95 compile tres bien dans compaq visual fortran 6.6, je ne c pas pourqoi !

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    ca je ne peux pas te dire pourquoi disons que g95 est un peu plus regardant !!!

  5. #5
    Membre expérimenté Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    c'est drole mais la méme syntaxe qui fait erreur dans g95 compile tres bien dans compaq visual fortran 6.6, je ne c pas pourqoi !
    Parce qu'il me semble que $ dans un format ne fait pas partie de la norme ISO.
    Et par rapport à la norme, certains compilateurs offrent des choses en plus.

    Pour écrire sans retour à la ligne, il vaut mieux utilise advance=no

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       do i=1,n
          write (*,  fmt = '(2x,f4.2)', advance = 'no') x(i)
       end do

  6. #6
    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
    Citation Envoyé par Truth Voir le message
    merci bien Signus,
    c'est drole mais la méme syntaxe qui fait erreur dans g95 compile tres bien dans compaq visual fortran 6.6, je ne c pas pourqoi !
    Parce que <n> est une extension Compaq.

    En plus des solutions proposées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    100 FORMAT(999(2x,f4.2))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    character (40) :: Fmt
    ...
    write(Fmt,*) '(',n,'(2x,f4.2))'
    write(?,Fmt) Nombres ...
    La première fonctionne parce que le format peut prévoir plus d'élément que la liste de variables. Le programme va cependant ajouter 2 espaces à la fin de la ligne (2x) avant de manquer de données (f4.2).

Discussions similaires

  1. [CXF] Erreur "Unexpected wrapper element found"
    Par sheridan08 dans le forum Services Web
    Réponses: 1
    Dernier message: 09/08/2014, 18h47
  2. [XSLT] Erreur : Malformed Format String
    Par stujava dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/12/2009, 08h51
  3. Shell - erreur unexpected end of file
    Par claralavraie dans le forum Linux
    Réponses: 7
    Dernier message: 12/01/2006, 09h59
  4. Réponses: 11
    Dernier message: 08/10/2004, 15h12
  5. Erreur unexpected end of file
    Par snoop dans le forum Linux
    Réponses: 6
    Dernier message: 22/03/2004, 10h37

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