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 :

Integer which came up from real variable


Sujet :

Fortran

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2021
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Integer which came up from real variable
    Bonjour,
    J'ai un soucis de déclaration, j'ai une variable integer, parameter :: size = (t_m-t_0)/dt, en sachant que t_m est un real de valeur 20.0 et t_0 et un real de valeur 1e-6, les deux étant déclarés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    real(kind=dp),parameter :: t_0 = 1e-6
    real(kind=dp),parameter :: t_m = 20.0
    integer,parameter :: size = (t_m-t_0) / dt
    et j'ai l'erreur suivante :
    Error: Unexpected data declaration statement at (1)
    comment dois-je déclarer size pour obtenir un integer?


    Merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 103
    Points : 1 035
    Points
    1 035
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    avec GFortran 11.2.0, j'obtiens cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    app/main.f90:8:42: 
    
        8 | integer,parameter :: size = (t_m-t_0) / dt 
          |                                          1 
    Error: Symbol ‘dt’ at (1) has no IMPLICIT type; did you mean ‘dp’?
    Si je déclare dt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    
    real(kind=dp), parameter :: dt = 1e-8
    je n'ai plus d'erreur et si j'ajoute un print pour afficher size, j'ai bien un entier, la conversion réel=>entier étant faite implicitement.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 103
    Points : 1 035
    Points
    1 035
    Billets dans le blog
    1
    Par défaut
    On peut bien sûr également utiliser une conversion explicite avec la fonction int() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    integer, parameter :: size = int((t_m-t_0) / dt)
    On respecte ainsi le principe "explicit is better than implicit".

Discussions similaires

  1. variable de type real se transforme en integer
    Par Infra_Red dans le forum Fortran
    Réponses: 1
    Dernier message: 22/08/2013, 08h16
  2. Format de variable real
    Par drinkmilk dans le forum Langage
    Réponses: 18
    Dernier message: 22/03/2011, 15h50
  3. Requete SQL avec une clause FROM variable
    Par aCe_GiK dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 11/04/2006, 13h45
  4. Détecter si une variable Integer est vide..
    Par mickael.be dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2006, 10h34
  5. Problème de variable (integer?) sous ASP
    Par cooldidi dans le forum ASP
    Réponses: 3
    Dernier message: 13/12/2005, 21h43

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