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 :

[Fortran 77] Illegal unit member


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Par défaut [Fortran 77] Illegal unit member
    Bonjour tout le monde,
    Je suis malheureusement contraint de vous faire part de l'acte II des "mysterieuses et fabuleuses peripeties de userB au pays Fortran"

    Je continue mon petit bonhomme de chemin dans ce monde etrange peuplé d'etiquettes, de labels et de bien d'autres choses.

    Cette fois c'est un veritable mystere ( enfin au vue de mes maigres connaissances ) qui s'offre a moi.
    Treve de blabla, place au code.
    Voici le message d'erreur que j'ai lors de l'execution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    C:\f\G77>TESTv1.exe
    open: illegal unit number
    apparent state: unit 10 named inputpgm
    last format: list io
    lately reading sequential formatted external IO
     
    abnormal program termination
    Cette fois, je me suis pas laissé demonté et j ai suivi les conseils de maitre daZumba.
    De ce que je comprend qd le program veut ouvrir mon unit numero 10 et bien .... et bien il ne l a trouve pas pour des raisons X ( jusque la ai je raison ? )
    Il apparait que l unit 10 nommé inputpgm ne soit pas disponible.

    Bon maintenant le probleme c'est que j ai bien un fichier inputpgm qui stock ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    COD inputarb.001
    IDC inputcnd.001
    INI inipotrs.001
    0 86400
    I CPC VGN inputprs.001
    5 7
    I POT PTS inputpot.001
    1 4 6
    O POT PTS temps1.001
    1 2 3 4 5 6 7
    O FLU PTS temps2.001
    2 3 4 5 6 7
    
    note : je ne remarque que maintenant le caractere en derniere ligne

    donc on remarque qu'inputpgm existe bien et qu il stock des information.
    Maintenant le code de l'unit 10 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        OPEN (UNIT=10,FILE=FICOM)
             NLHEAD=4
             REWIND (10)
             READ (10,1002) ARC,FIARC
             READ (10,1002) CND,FICND
             READ (10,1002,ERR=2) INI,FINICP
             GOTO 3
    2        NLHEAD=3
    3        REWIND(10)
             DO 6,I = 1, NLHEAD-1
    6           READ(10,*)
             READ (10,*,ERR=4) T0,TFINAL,T0GRA,DTGRA
    4     CLOSE (10)
          CALL LITARC(NMAX,ARC,FIARC,NPT,IFIS)
    note 2 : FICOM est une variable de type character qui stocke a l'initialisation le nom du fichier qui contiendra les variables de commandes ( donc ici inputpgm )

    Voila, je pense avoir fait le tour du probleme, si une ame charitable voulait bien eclairer ma lanterne je lui en serait reconnaissant

  2. #2
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Par défaut
    Je suis loin d'avoir les connaissances de maître DaZumba... mais ce que je comprends c'est que tu tentes d'utiliser l'unité 10 alors que ce n'est pas permis. Est-ce que tu es sûr que tu n'as pas utilisé cette même unité pour ouvrir un autre fichier?

  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 YOY205
    Est-ce que tu es sûr que tu n'as pas utilisé cette même unité pour ouvrir un autre fichier?
    Oui, c'est une bonne hypothese, mais en testant vite fait avec quelques compilateurs, aucun ne cree d'echec lorsqu'on associe deux fichiers a la meme unite... Le dernier fichier ouvert ecrase les precedents, il semblerait.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    ca ne pourrait pas etre l unite liee a l entree standard ou a la sortie standard?

    j avais personnellement eu des problemes avec cette unitee la aussi sur le ifort (intel fortran) a une epoque. En passant au dela de 20 ca change ou pas?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut
    Je ne me souviens pas avoir rencontré de compilateurs utilisant d'autres unités que 5 et 6 pour les entrées et sorties standard (clavier et écran).
    Quel compilateur utilises-tu d'ailleurs ?

  6. #6
    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 fafaro
    Je ne me souviens pas avoir rencontré de compilateurs utilisant d'autres unités que 5 et 6 pour les entrées et sorties standard
    Moi non plus (c'est peut etre meme une exigence de la norme du langage). En tout cas, je ne vois pas ce que l'unite 10 peut avoir de special...

  7. #7
    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 fafaro
    Quel compilateur utilises-tu d'ailleurs ?
    Vu la facon dont les erreurs sont rapportees (style libg2c), je dirais que c'est g77. Donc l'unite 10 n'a rien de special, a priori.

  8. #8
    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 userB
    De ce que je comprend qd le program veut ouvrir mon unit numero 10 et bien .... et bien il ne l a trouve pas pour des raisons X ( jusque la ai je raison ? )
    Il apparait que l unit 10 nommé inputpgm ne soit pas disponible.
    Non, si le fichier n'etait pas disponible, il renverrait un 'unexpected EOF' ou un truc comme cela. Ici, il dit que 10 n'est pas un numero d'unite legal. Cela me surprend. La plupart des compilateurs reservent les unites 0, 5 et 6 et se plaignent lorsque le numero d'unite est negatif ou plus grand que 99 (typiquement). 10 ne devrait pas poser de probleme... Tu utilises bien 10, n'est-ce pas? Tu n'ouvres pas un fichier sur l'unite 10 alors qu'un autre est encore associe a cette unite?
    Sinon, ton code est etrange. Pourquoi rewind()-tu le fichier - tu le lis deux fois de deux facons differentes, ce qui est inattendu. Egalement, evites les goto et ferme les boucle do par un enddo plutot qu'indiquer un label de fin. Cela facilite grandement la lecture...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. error : illegal unit of measure (pt inserted)
    Par fasfousba dans le forum Beamer
    Réponses: 2
    Dernier message: 26/05/2009, 13h59
  2. Réponses: 3
    Dernier message: 25/10/2008, 15h06
  3. [Fortran 77] Erreur Open : illegal unit number
    Par matthieuabristol dans le forum Fortran
    Réponses: 4
    Dernier message: 03/06/2008, 21h04
  4. TTreeView -> Comment ouvrir une unité ?
    Par DaLove dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/12/2002, 11h30
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48

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