Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Fortran
Fortran Forum d'entraide sur la programmation en Fortran. Avant de poster -> FAQ Fortran
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/10/2012, 11h23   #1
rAyyy
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 4
Points : 4
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( * )
rAyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 16h27   #2
Grame
Membre actif
 
Avatar de Grame
 
Inscription : août 2007
Messages : 147
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : août 2007
Messages : 147
Points : 186
Points : 186
Bonjour,

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

Citation:
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
Grame est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/10/2012, 17h38   #3
Sylvain Bergeron
Modérateur
 
Inscription : août 2006
Messages : 781
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2006
Messages : 781
Points : 1 028
Points : 1 028
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 »...
Sylvain Bergeron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 22h28   #4
Grame
Membre actif
 
Avatar de Grame
 
Inscription : août 2007
Messages : 147
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : août 2007
Messages : 147
Points : 186
Points : 186
Bonsoir Sylvain,

Citation:
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
Citation:
on écrira :
et pas
Citation:
on doit écrire
Comme rAyyy nous dit
Citation:
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.
Grame est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 22h51   #5
Sylvain Bergeron
Modérateur
 
Inscription : août 2006
Messages : 781
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2006
Messages : 781
Points : 1 028
Points : 1 028
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 (?).
Sylvain Bergeron est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h37.


 
 
 
 
Partenaires

Hébergement Web