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 :

Read statement


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 6
    Par défaut Read statement
    Bonjour, je cherche à comprendre la ligne de code Fortran suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    read (1,1000) ((height(i,j),i=1,nx),j=1,ny) 1000  format(12i6)
    Cette ligne est utilisée pour lire les différentes altitudes des (nx, ny) points depuis un ficher texte.
    Le fichier vient sous la forme d'un tableau à 2 dimensions avec nx colonnes séparées par des virgules et ny lignes.
    Je n'arrive pas à dechiffrer "read (1,1000)" et la fin de la ligne "1000 format(12i6)" et cela m'empêche d'écrire le fichier correctement.

    Je remercie la personne qui pourrait me donner un petit coup de main pour résoudre ces inconnues!

  2. #2
    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
    Tout d'abord, il s'agit de deux lignes differentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              read (1,1000) ((height(i,j),i=1,nx),j=1,ny) 
    1000  format(12i6)
    La premiere ligne utilise une specificite du fortran appelee les "boucles do implicites (implied do loops)". On remplit le tableau height(nx,ny) en bouclant sur les indices i et j.
    C'est equivalent a la forme moins compacte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             DO j = 1, ny
                 DO i = 1, nx
                      READ(1, 2000) height(i, j)
                 ENDDO
             ENDDO
    2000 format(i6)
    Les lignes precedees d'une numero (appele label) donnent le format de la ligne a lire.
    format(12i6) dit que la ligne est compose de 12 entiers (a priori, nx*ny = 12) de six chiffres maximum.

    Enfin, read() s'utilise en precisant l'unite de flux a lire (ici, probablement un fichier ouvert a l'unite 1, peut-etre aussi l'entree standard [clavier]) et le format de lecture (format, label d'une ligne donnant le format, ou * qui dit a read de se debrouiller). La suite dans ton livre de fortran prefere ou ici, section 12.8.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 6
    Par défaut
    Merci bien DaZumba pour tes lumières, j'avais bien regardé un livre de FORTRAN avant de poster mais pas de reference sur le code recherché;
    Ton livre m'a l'air bien plus complet.

    Maintenand je vais pouvoir coder mon fichier

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

Discussions similaires

  1. read committed, serializable... et par défaut k'en est-il?
    Par superdada dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/12/2003, 18h58
  2. [LG]problème de read / readln
    Par jeremie60 dans le forum Langage
    Réponses: 7
    Dernier message: 08/06/2003, 23h33
  3. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

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