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 :

erreur compilation:no IMPLICIT type


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 120
    Par défaut erreur compilation:no IMPLICIT type
    Bonjour

    J'ai un programme principal en fortran qui appelle la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     integer function zext(logvar)
     
          logical logvar
     
          if   (logvar) then
               zext=-1
          else
                zext= 0
          end if
     
          return
    end
    la fonction zext est défini dans un autre fichier appelé "zext.f"

    quand je compile j'obtien l'erreur :

    Function 'zext' at (1) has no IMPLICIT type

    à chaque appel de zext dans le fichier principal ; je ne comprends pas d'où il vient le problème; le souci est que ce problème est rencontré avec gfortran seulement mais avec ifort tout passe bien

    merci pour vos aides

  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
    Par défaut
    Un compilateur Fortran compile les sous-programme indépendamment l'un de l'autre. Dans le programme qui appelle une fonction, tu dois donc fournir le type de retour de la fonction. Le type peut être fourni :
    • Implicitement, soit en absence d'implicit none, et à la condition que le type de la fonction corresponde au type implicite découlant de la première lettre du nom de la fonction.
    • Par une déclaration explicite du type (integer zext dans ton cas).
    • Par l'utilisation d'un module comme contenant de la fonction.
    • Par l'utilisation d'un bloc interface.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 120
    Par défaut re
    ok merci beaucoup

    il manquait : "integer zext" : déclaration explicite


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2011, 09h33
  2. Réponses: 1
    Dernier message: 24/04/2009, 18h27
  3. Réponses: 1
    Dernier message: 24/04/2009, 18h27
  4. erreur de compilation : probleme avec type de structure dans une classe
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/10/2008, 15h33
  5. Réponses: 16
    Dernier message: 28/09/2006, 18h08

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