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 :

compilation ok sur visual fortran, KO SUR GCC GFORTRAN


Sujet :

Fortran

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut compilation ok sur visual fortran, KO SUR GCC GFORTRAN
    Bonjour, je cherche a compiler un programme tout est nickel avec visual fortran
    mais je veux le compiler avec gcc :

    GNU Fortran (tdm64-1) 5.1.0
    Copyright (C) 2015 Free Software Foundation, Inc.
    , et là des erreurs genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     B(m,0)=-ddt2(a,nt,m,t1,tcorres)
    Error: Return type mismatch of function 'ddt2' at (1) (REAL(4)/REAL(8))
    alors que j'ai bien déclarer ma function :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOUBLE PRECISION function ddt2(a,nt,n,t1,tcorres)
    Quelqu'un peut il m'aider???
    Après la difficulté, la facilité...

  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
    Points : 1 346
    Points
    1 346
    Par défaut
    Tu donnes trop peu d'information.

    Comment le compilateur sait-il à la ligne « B(m,0)=-ddt2(a,nt,m,t1,tcorres) » que ddt2 est real(8) ? Le message semble indiquer que ddt2 est à la fois real(4) (localement?) et real(8) (déclaration?).

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    dsl,
    voilà la commande pour gcc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gfortran -c -g -w -fno-range-check -ffree-line-length-non mondoc.f90
    puis j'ai déclaré toutes mes fonction avec "real"
    et ça compile, merci
    Après la difficulté, la facilité...

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Suite de mon problème :
    Mon programme est écrit en fortran, à l'interieur duquel une subroutine fait un "open(file.....)" Mon programme fonctionne tres bien.
    Mais dés lors que j'en fais une librarie dynamique (DLL) et que j'appelle ma subroutine, elle bloque dés la rencontre de ce : "open(file...)"! avec un :" error: invalid memory access"
    Quelqu'un peut il m'aider?
    Après la difficulté, la facilité...

  5. #5
    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
    Je vois 2 pistes possibles :

    • Une bête erreur (mauvaise variable,...), mais le message d'erreur ne me semble pas pointer vers cette erreur.
    • Un problème d'accès à la « File Unit Table » parce que tu es dans une DLL.


    La File Unit Table (nom non garanti) est un tableau interne à ton programme qui fait la correspondance entre les Units de ton programme et les informations du OS pour le fichier (Handle, ...). Il n'y en a qu'une par programme, ce qui permet de faire open(20,...) dans une routine et ensuite read(20,... dans une autre. Peut-être la FUT est-elle non accessible d'une DLL ? Il est possible que tu doives faire quelque chose en particulier pour que ça fonctionne. Je te suggère de consulter le User Guide du compilateur ou le forum du fournisseur.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 176
    Points : 198
    Points
    198
    Par défaut
    Merci, l'astuce c'est de mettre la dll dans le même dossier que la lib JNA, accessible pas le classPath, du coup on a même plus besoin de recompiler tout le programme, juste la dll, si biensur on a pas d'arguments à passer de la dll au programme "maître", il faut s'assurer que la dll ne passe aucun argument au maître. sinon merci
    Après la difficulté, la facilité...

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 1
    Points : 0
    Points
    0
    Par défaut COMPILATEUR FORTRAN
    Bonjour
    Peut on m envoyer un compilateur fortran qui tourne sous windows 7
    merci

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

Discussions similaires

  1. [Fortran 77] IDE gcc, gfortran. Linux / Vista
    Par nyme92 dans le forum Fortran
    Réponses: 3
    Dernier message: 27/04/2009, 14h57
  2. [Compilation] erreur sous gcc, pas sur Visual
    Par poukill dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2009, 12h38
  3. Réponses: 3
    Dernier message: 29/08/2007, 16h38
  4. Réponses: 1
    Dernier message: 28/03/2007, 19h20
  5. Réponses: 4
    Dernier message: 25/09/2006, 10h24

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