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] Structure DO


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Fortran 77] Structure DO
    Bonjour à tous,

    J'ai un problème avec une subroutine venant d'une publication datant d'une dizaine d'années.
    L'auteur utilise une structure du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DO        i = 1,N1,I1
    2           I4 = 0
    .....
    (CORPS du DO)
     
    2           CONTINUE
    J'aimerais savoir quel sens cela a, si cela existe, car le compilateur que j'utilise qui est lf95 ne le reconnait pas et j'ai l'impression que cela diffère de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
               DO 2  i = 1,N1,I1
               I4 = 0
    .....
    (CORPS du DO)
     
    2           CONTINUE
    puisque l'auteur l'utilise à d'autres endroits du code. Merci d'avance

  2. #2
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    Je n'ai jamais vu une telle forme de do.

    Puisque la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           do n i=i1,i2,i3
           corps du do
        n continue
    existe depuis Fortran 1 (1957) (voir http://www.fh-jena.de/~kleine/histor...rTheIBM704.pdf), c'est certainement une erreur dans le document.

  3. #3
    Membre régulier Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Points : 82
    Points
    82
    Par défaut
    Si Si !!! ça existe ! Chez les tordus de la programmation

    Plus sérieusement ça sert en cas de multiboucle ou si on est fainéant et qu'on veut pas écrire de "enddo" ou de "continue".

    C'est pas très populaire parceque ça rend le code illisible, mais on écrit moins d'instruction.

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           DO 2 i = 1,N1
            DO 2 j = 1,N2
    2        A(i,j) = 0.
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
          DO  i = 1,N1
            DO  j = 1,N2
              A(i,j) = 0.
            ENDDO
          ENDDO
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          DO 2 i = 1,N1
            DO 2 j = 1,N2
              A(i,j) = 0.
    2     CONTINUE

    Pour en revenir à ton soucis, le label 2 est défini deux fois. C'est une erreur et ça ne peut(ou en tout cas devrait) pas compiler.

  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 Fortran90
    Si Si !!! ça existe ! Chez les tordus de la programmation
    Utiliser les labels pour donner la fin d'un boucle est une pratique ancienne (Fortran 66, le END DO datant du Fortran 77).
    Ceci dit, le probleme n'est pas la, vu que dans le premier code poste, il y a deux labels 2, et le label d'arret n'est pas donne dans la ligne DO... Comme Sylvain Bergeron, je ne pense pas que ce genre de syntaxe soit correct.

  5. #5
    Membre régulier Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Points : 82
    Points
    82
    Par défaut
    Pour en revenir à ton soucis, le label 2 est défini deux fois. C'est une erreur et ça ne peut(ou en tout cas devrait) pas compiler.
    Ouais c'est ce que j'ai dit, merci de lire jusqu'au bout avant de me taper sur les doigts ^^

Discussions similaires

  1. demande "fortran structure et methodes numeriques"
    Par karim_gosto dans le forum Fortran
    Réponses: 3
    Dernier message: 31/03/2012, 10h04
  2. [MEX] Sorties sous forme de structure en Fortran
    Par ZeFMG dans le forum MATLAB
    Réponses: 10
    Dernier message: 21/11/2008, 10h04
  3. Réponses: 4
    Dernier message: 18/04/2008, 17h45
  4. Réponses: 1
    Dernier message: 18/04/2008, 17h16
  5. [Fortran g77] "Structure ... End Structure"
    Par elbopha dans le forum Fortran
    Réponses: 2
    Dernier message: 07/02/2005, 16h38

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