Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 25
    Points : 6
    Points
    6

    Par défaut déclaration de variable

    Bonjour,

    Je débute sur FORTRAN et je ne comprend pas certaine déclaration de variable
    Sur les exemple suivant que signifie les parenthèse et à quoi serve t il?
    (J'ai chercher mais je n'ai rien trouver dessus)

    DOUBLE PRECISION a( b, * )

    INTEGER truc( * )

  2. #2
    Membre actif Avatar de Grame
    Profil pro
    Inscrit en
    août 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : août 2007
    Messages : 146
    Points : 174
    Points
    174

    Par défaut

    Bonjour,

    DOUBLE PRECISION a( b, * )
    Ca signfie que a est une matrice de dimension b par * de réels double précision.

    INTEGER truc( * )
    truc est un vecteur d'entiers de dimension *

    On en déduit 2 choses :
    1) ces 2 instructions ne peuvent être écrites que dans un sous programme puisqu'elles donnent des dimensions implicites (notées *) qui doivent être définies explicitement dans le programme principal.

    2) La syntaxe est celle du FORTRAN 77. En Fortran 90 (ou plus) on écrira :
    Code :
    1
    2
    3
    double precision, dimension(b,*) :: a
    integer, dimension(*) :: truc

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    août 2006
    Messages
    838
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : août 2006
    Messages : 838
    Points : 1 077
    Points
    1 077

    Par défaut

    Citation Envoyé par Grame Voir le message
    ...La syntaxe est celle du FORTRAN 77. En Fortran 90 (ou plus) on écrira :
    Code :
    1
    2
    3
    double precision, dimension(b,*) :: a
    integer, dimension(*) :: truc
    Petite précision : La syntaxe integer truc(*) est toujours valide en Fortran 90, et il y a des indécrottables comme moi qui la préfèrent à la plus « moderne »...

  4. #4
    Membre actif Avatar de Grame
    Profil pro
    Inscrit en
    août 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : août 2007
    Messages : 146
    Points : 174
    Points
    174

    Par défaut

    Bonsoir Sylvain,

    Petite précision : La syntaxe integer truc(*) est toujours valide en Fortran 90, et il y a des indécrottables comme moi qui la préfèrent à la plus « moderne »..
    J'entend bien, c'est pourquoi j'ai écrit
    on écrira :
    et pas
    on doit écrire
    Comme rAyyy nous dit
    Je débute sur FORTRAN
    je pense qu'il vaut mieux lui conseiller une écriture « moderne » plutôt qu'une écriture qui risque de devenir obsolète dans les prochaines versions.

    Ceci dit, très cordialement, bien sûr.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    août 2006
    Messages
    838
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : août 2006
    Messages : 838
    Points : 1 077
    Points
    1 077

    Par défaut

    Devenir obsolète ? À mon avis, la syntaxe « type variable(dim) » va mourir en même temps que le langage...

    Je viens de relire la documentation de John Reid sur les coarrays (ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1824.pdf). On parle d'une version très moderne de Fortran et l'auteur utilise presque exclusivement l'« ancienne » syntaxe.

    J'ai lu je ne sais plus où que la différence de syntaxe est philosophique :
    • integer, dimension(dim) :: variable signifie que la variable est du type « tableau d'integer »
    • integer :: variable(dim) signifie que la variable est un tableau de type integer

    La première syntaxe signifie que la dimension fait parti du type, ce qui n'est pas le cas dans la deuxième.

    Sur ce, bonne soirée (?).

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •