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 :

Problème avec gfortran


Sujet :

Fortran

  1. #1
    Candidat au Club
    Homme Profil pro
    Académie navale
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Académie navale
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Problème avec gfortran
    Bonjour,
    je viens d'acquérir mon premier mac suite à un divorce avec microsoft et donc la transition n'est pas difficile sauf que maintenant j'ai des codes sources en fortran .f90 qui marchent bien sous visual fortran mais dès que je compile avec gfotran il n'accepte pas les boucle do avec la variable double précision.
    ex:
    double precision::r
    do r=0.1, 10, 0.2
    print*,'hello'
    endo
    il met
    do r=0.1,10,0,2
    1
    Warning deleted feature :Loop variable at (1) must be integer

    merci pour votre aide

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

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    Bonjour

    j'ai des codes sources en fortran .f90 qui marchent bien sous visual fortran mais dès que je compile avec gfotran il n'accepte pas les boucle do avec la variable double précision.
    C'est normal. La norme Fortran 90 (et suivants) n'accepte plus les boucles réelles.

    Avis personnel : ça me semble d'ailleur normal. Numériquement, je trouve aberrant d'utiliser des réels dans une boucle. En fonction de la représentation mémoire des réels, on ne peut pas être absolument sûr d'avoir exactement le même nombre d'itérations alors qu'avec des entiers, pas de problèmes.

  3. #3
    Candidat au Club
    Homme Profil pro
    Académie navale
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Académie navale
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Alors comment expliquer que ça marche avec visual fortran ???
    malheureusement avec ce que tu m'as dit il faut que je fasse des changement dans mes codes sources et c'est beaucoup du temps perdu mais bon s'il y a une solution ça serai très bien

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

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    Alors comment expliquer que ça marche avec visual fortran ???
    Eh bien, parce que de nombreux compilateurs acceptent des déclarations, des syntaxes ou fournissent des fonctions qui ne sont pas dans la norme.
    Par exemple, g77 accepte des noms de variables / fonctions de plus de 6 caractères de long. Lahey Fortran fournit des routines de génération de nombres aléatoires et des fonctions graphiques, ...

    malheureusement avec ce que tu m'as dit il faut que je fasse des changement dans mes codes sources
    Ben oui

    mais bon s'il y a une solution ça serai très bien
    Ben non. J'ai toujours expliqué à mes collègues et aux étudiants, et j'en reste intimement convaincu après plus de 30 ans de codage, qu'il ne faut JAMAIS utiliser d'extension à la norme du langage utilisé, car si on a l'illusion de gagner du temps à court terme, il y aura TOUJOURS un moment où cette extension ne fonctionnera plus, et il faudra réécrire le code.

  5. #5
    Candidat au Club
    Homme Profil pro
    Académie navale
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Académie navale
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci pour ton aide si non la fonction tand aussi n'est pas accepté par gforant
    tand c'est l'équivalent de tan mais l'angle est en degré "ça marche sur visual fortran" mais j'imagine que je doit créer une fonction qui transforme le radian en degrè si non :-(

  6. #6
    Membre habitué Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    Citation Envoyé par yassinmo Voir le message
    merci pour ton aide si non la fonction tand aussi n'est pas accepté par gforant
    tand c'est l'équivalent de tan mais l'angle est en degré "ça marche sur visual fortran" mais j'imagine que je doit créer une fonction qui transforme le radian en degrè si non :-(
    Eh oui, c'est exactement ça.

  7. #7
    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!
    qu'il ne faut JAMAIS utiliser d'extension à la norme du langage utilisé
    Juste, sauf si on est absolument certain que le programme qu'on écrit est destiné à un usage immédiat et non à durer.
    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)

  8. #8
    Candidat au Club
    Homme Profil pro
    Académie navale
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Académie navale
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Une autre petite question je ne veux pas y ouvrir une nouvelle discussion: C'est comment faire pour annoncer une fonction que le programme principal et les subroutines peuvent l'utiliser est ce que je doit l'annoncer dans chaque subroutine du programme ou il y a une solution meilleure.
    Merci beaucoup pour ce que vous faites

  9. #9
    Membre habitué Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    Citation Envoyé par yassinmo Voir le message
    Une autre petite question je ne veux pas y ouvrir une nouvelle discussion: C'est comment faire pour annoncer une fonction que le programme principal et les subroutines peuvent l'utiliser est ce que je doit l'annoncer dans chaque subroutine du programme ou il y a une solution meilleure.
    Merci beaucoup pour ce que vous faites
    oui, tu déclares ta fonction à chaque fois qu'elle est appelée, dans le programme principal et/ou les subroutines.

    Si tu as plusieurs fonctions, il est plus simple d'écrire un module qui les contient,
    tu n'as ainsi que la déclaration du module à faire et non toutes les déclarations de toutes les fonctions.

Discussions similaires

  1. probléme de link avec gfortran
    Par uriotcea dans le forum C++
    Réponses: 1
    Dernier message: 30/09/2010, 19h18
  2. Problèmes avec Gfortran g95 (générateur aléatoire)
    Par genie_civil2006 dans le forum Fortran
    Réponses: 1
    Dernier message: 04/08/2009, 16h03
  3. Problème de compilation avec gfortran et pas ifort
    Par Ladgalen dans le forum Fortran
    Réponses: 2
    Dernier message: 22/02/2008, 11h38
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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