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 :

Fonction write(11,.) write(100,.)


Sujet :

Fortran

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Fonction write(11,.) write(100,.)
    Bonjour,
    quand on écrit write(11,....) ou write(100,...)

    Le chiffre 11 ou 100 correspond à open(unit=11) ou open(unit=100).

    Pourquoi choisir 11, 100 et pourquoi pas 5000.
    Ce chiffre a -t-il une importance? à quoi correspond-il?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 110
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    en Fortran, tu mets ce que tu veux (sauf pour les entrées ou sorties standard). Maintenant, il faut savoir que l'on préfère utiliser 10 ou 100 car cela correspond(ait) sur certaines machines à des limites systèmes.
    Je ne suis pas spécialiste, mais il me semble que le système gère une table ou un index de fichiers dans un tableau et ce tableau a une limite, ce qui fait que tu ne peux pas ouvrir plus d'un certain nombre de fichiers à la fois. Voilà ce que j'ai retenu de mon prof de Fortran (dédicace à lui au passage).

    En gros, c'est pour des raisons historiques.

    Mais bon, si une personne pense que je me trompe complètement, j'aimerais connaitre la vraie raison

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Comme l'écrit TheOyoStyledMan, il doit y avoir une limite, mais personne ne semble savoir laquelle; comme les programmes ont bien d'autres manières de se planté, je n'ai jamais jugé utile de tenter le diable et j'ai toujours choisi des numéros ne dépassant 20. En revanche, je pense que, pour des raisons purement mnémotechniques, il est préférable de toujours utiliser le même numéro pour le même usage.

    Du point de vue historique, sur l'IBM-7040 que j'ai utilisée autrefois, l'instruction Open n'existait pas et les numéros étaient alloués de manière fixe:
    0 Bande magnétique
    1 Bande magnétique
    2 Partition publique
    3 Partition publique
    4 Partition publique
    5 Lecteur de cartes
    6 Imprimante
    7 Perforateur de cartes
    8 ... Partitions non publiques

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    il doit y avoir une limite, mais personne ne semble savoir laquelle
    Il faut lire la doc de son environnement et son compilateur. Les unites 0, 5, et 6 sont en general preconnectee et ne doivent pas etre utilisees. Le nombre maximal depend de la taille de la file descriptor table, mais peut aussi etre limite par le compilateur. J'ai vu des limites a 50, 100, et 1000. Mais en general, on n'a besoin que de quelques logical unit numbers, donc comme tu le dis, autant se contenter de celles entre 10 et 20.

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut fonction write(11,.) write(100,.)
    Merci pour vos réponses. Cela m'a bien éclairé

  6. #6
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Pour ce qui est de la limite moi j'utilise les compilateurs gfortran ou ifort (intel) et je donne souvant les numéros par paquet de 100 (je change de centaines d'un sous programme à l'autre). J'ai pas eu de problème de limite de ce coté là.

    Par contre une fois j'avais 1300 fichier que j'ouvrais avec une instructions du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Do i=1,n
      open(10 +i , file = ..)
     
      read 
     
    ...
     
    Enddo
    et là il a planté à l'exécution en disant que trop de fichiers étaient ouverts donc tu peux certainement aller jusqu'à 1000 ...

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

Discussions similaires

  1. fonctions open et write
    Par gautgaut dans le forum Débuter
    Réponses: 3
    Dernier message: 04/11/2014, 18h26
  2. Rôles des fonctions read et write
    Par JavaB1 dans le forum Débuter
    Réponses: 12
    Dernier message: 15/12/2009, 09h29
  3. Pb avec fonction WScript.StdOut.Write
    Par gigi92 dans le forum VBScript
    Réponses: 1
    Dernier message: 31/01/2008, 22h32
  4. Fonction JPanel.repaint() utilise 100% du processeur
    Par deadstar62 dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 08/08/2007, 13h23
  5. fonction javascript inutilisables apres un document.write?
    Par Vesta dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2005, 02h13

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