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 :

Utilisation de subroutine Fortran 77 en Fortran 90


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Par défaut Utilisation de subroutine Fortran 77 en Fortran 90
    Bonsoir,

    Je travaille actuellement sur un code Fortran 90 (pour une résolution de système linéaire). Ce code fonctionne bien, mais reste lent.
    Comme le système à résoudre est très creux, je cherche à faire évoluer le code pour qu'il puisse travailler avec des matrices creuses.

    Après quelques recherches, j'ai récupéré des sources dans ce but. Elles sont écrites en Fortran 77, et on y trouve différentes subroutines à appeler.

    Comment est ce que je peux m'y prendre pour pouvoir les utiliser depuis mon code Fortran 90 ?

    Merci d'avance

  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
    Tu n'as rien d'autre à faire que de les compiler. À part quelques exceptions près, le Fortran 77 est un sous-ensemble du Fortran 90/95. Les compilateurs Fortran 90 supportent toujours le sous-ensemble Fortran 77.

    Et la différence de format (fixe ou libre) n'en est pas une. Le Fortran 77 ne permettait que le format fixe, alors que depuis Fortran 90, on peut utiliser au choix le format fixe ou le format libre. La seule contrainte est qu'un fichier ne peut pas contenir des sections en format fixe et des sections en format variable. Tu devras donc avoir au moins 2 fichiers sources.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Par défaut
    Merci pour la réponse rapide.

    Les deux versions de Fortran sont bien dans des fichiers séparés, donc pas de soucis de ce côté là.

    Dans le fichier principal (celui en Fortran 90), quand j'appelais des routines d'autres modules Fortran 90, je devais mettre un use en début de fichier. N'y a-t-il pas une syntaxe similaire à respecter ?

  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
    Par défaut
    Use ? Tu ne mets pas un use pour pouvoir utiliser des routines F90. Tu mets un use si tu veux utiliser des routines membres d'un module. Un module est une organisation du code possible en F90, mais qui n'est pas obligatoire (bien que fortement suggéré).

    Dans ton cas, comme tes routines F77 ne sont (probablement) pas dans un module, tu n'as pas à faire un use module pour les utiliser.

    Cela dit, tu pourrais peut-être "emballer" tes routines F77 dans un module pour faciliter leur utilisation. Il y a cependant un risque : les routines de résolution numérique ont souvent en argument des vecteurs (1D) auxquels des tableaux (2D) sont associés et ce genre de pirouette résiste assez mal aux interfaces explicites générées par les modules...

Discussions similaires

  1. subroutine CPU_Time(time) en Fortran
    Par rihabhamila dans le forum Fortran
    Réponses: 1
    Dernier message: 28/10/2013, 19h04
  2. Execution fortran vs Appel fortran depuis Java
    Par papy_mujo dans le forum Fortran
    Réponses: 0
    Dernier message: 21/11/2011, 17h18
  3. Utiliser une subroutine fortran en C
    Par chaponinho dans le forum Linux
    Réponses: 1
    Dernier message: 28/04/2008, 20h08
  4. [Fortran 77] Subroutine d'inverse de matrice
    Par macrass dans le forum Fortran
    Réponses: 1
    Dernier message: 09/05/2007, 21h40
  5. accès fortran à une base / utilisation des "bytea"
    Par bdkiller dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/11/2004, 08h31

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