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 :

[GNU Fortran 4.1.3] Problème instruction if


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [GNU Fortran 4.1.3] Problème instruction if
    Bonjour,

    Je travaille sous Windows et sous Linux. Sous Linux, j'utilise le compilateur GNU Fortran 4.1.3 pour Ubuntu 4.1.2.

    J'essaie de compiler un programme avec l'insctruction du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    N=1
    IF (N==1) WRITE(*,*) 'Ca marche !'
    Il me renvoie :

    ELSE IF clause at (1) requires a scalar LOGICAL expression

    Ce qui veut dire qu'il ne considère par des LOGICAL avec test logique d'un entier. Par contre pour un réel ça marche sans probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    R=1.5
    IF (R==1.5) WRITE(*,*) 'Ca marche !'
    Y a-t-il une solution ?

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Quel est le type de N? Si c'est un logical, alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    logical n
    n = .true.
    if (n == .true.) write(*,*) 'Ok.'

  3. #3
    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 !

    Une bonne habitude à prendre: mets une instruction Implicit None au début de tous tes programmes et déclare toutes les variables.

    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)

  4. #4
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    Citation Envoyé par DaZumba Voir le message
    Quel est le type de N? Si c'est un logical, alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    logical n
    n = .true.
    if (n == .true.) write(*,*) 'Ok.'
    logical == .true., c'est compiler dependant. Pour certains, ça marche, pour d'autre, c'est un bit wise ".and.".

    En F95, il faut faire if (logical .eqv. .true.), ou beaucoup plus simplement if (logical) ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 99
    Points : 77
    Points
    77
    Par défaut
    Peut être vais-je répondre complètement à coté, mais de souvenir lorsque j'ai rencontré ce type de problème, c'était un problème de synthaxe qui en était la cause. Peut-on écrire un IF sans THEN ?

    La synthaxe pour que j'utilise pour cette instruction est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IF(condition)THEN
     ligne de code
     ...
     ...
     ...
    ENDIF

Discussions similaires

  1. [MySQL] Problème instruction select/insertion Tableau
    Par Maelstrim dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/06/2012, 23h44
  2. problème instruction With avec le bouton commande
    Par cecilecedric dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/01/2009, 22h07
  3. Réponses: 9
    Dernier message: 17/03/2008, 15h02
  4. problème instruction print
    Par marco361020 dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/05/2007, 11h45
  5. Réponses: 8
    Dernier message: 24/11/2006, 12h07

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