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 :

[Fortran 77] Programme appelant directement gnuplot pour tracer les résulats en 2D


Sujet :

Fortran

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut [Fortran 77] Programme appelant directement gnuplot pour tracer les résulats en 2D
    Bonjour,

    J'ai un programme fortran qui me permet de résoudre un problème de mécanique. Après calcul, je me retrouve avec un fichier.dat contenant les résultats de mes simulations numériques. Je fais un appel à gnuplot pour faire une représentation graphique du type y=f(x) par exemple.

    Je voudrai savoir s'il était possible, d'intégrer "l'appel de gnuplot, le tracé (visualisation à l'écran) de la courbe... si possible sa sauvegarde dans une extension donnée du type (png) par exemple ou encore de l'imprimer à partir de l'imprimante par défaut" dans mon programme fortran (fortran 77).

    Si quelqu'un possède ce type de programme ou si quelqu'un à une idée, une solution, merci de me venir en aide.

  2. #2
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Tu peux essayer avec un call system(" ")

    Cette commande permet d'exécuter une commande système. Donc il suffit qu'entre les guillemet tu mettes la commande que tu utilise pour tracer la courbe avec gnuplot et c'est bon !

    Meme chose pour imprimer

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Merci Ladgalen pour ta réponse.

    Ta solution marche, c'est à dire qu'en faisant :
    call system("gnuplot") il me lance bien gnuplot, voilà ce que j'obtiens :
    G N U P L O T
    Version 4.0 patchlevel 0
    last modified Thu Apr 15 14:44:22 CEST 2004
    System: Linux 2.6.18-4-amd64

    Copyright (C) 1986 - 1993, 1998, 2004
    Thomas Williams, Colin Kelley and many others

    This is gnuplot version 4.0. Please refer to the documentation
    for command syntax changes. The old syntax will be accepted
    throughout the 4.0 series, but all save files use the new syntax.

    Type `help` to access the on-line reference manual.
    The gnuplot FAQ is available from
    http://www.gnuplot.info/faq/

    Send comments and requests for help to
    <gnuplot-info@lists.sourceforge.net>
    Send bugs, suggestions and mods to
    <gnuplot-bugs@lists.sourceforge.net>


    Terminal type set to 'x11'
    gnuplot>
    Ensuite je souhaiterais faire ceci :

    gnuplot> load'fichier.gnu'

    à la suite de ce qui précède pour qu'il execute les commandes du fichier.gnu pour obtenir en sortie une courbe.

    Si tu as une idée

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 57
    Points
    57
    Par défaut
    Salut ,

    Bon je ne suis pas un pro de gnuplot (il y a mille fois mieux que ca... ) mais voila ce que tu peux faire sur un cas basique. Ensuite en maitrisant mieux gnuplot il te suffira d'enrichir le programme de base.

    1) tu mets ces commandes dans un fichier que l'on va appeler graph.gnu
    et qui doit se trouver au meme endroit que ton executable fortran.
    Sinon il faut mettre le chemin complet bien entendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    set xlabel "abscisses" # on nomme l'axe des abscisses "abscisses"
    set ylabel "ordonnees" # on nomme l'axe des ordonnees "ordonnees"
    set xrange [-8,8]   # on va tracer les abscisses entre -8 et 8
    set yrange [-8,8]   # on va tracer les ordonnees entre -8 et 8
    set xtics -8,2,8  # on va graduer les abscisses de 2 en 2
    set ytics -8,2,8 # on va graduer en ordonnees de 2 en 2
    set title "Exemple de tracee" # on va nommer le graph "Exemple de tracee
    plot "data.txt"  using 1:2 with line   # on trace la 2ieme colonne du fichier en fonction de la 1ere
    set terminal gif # on veut que le graph soit encode en gif (il y a d'autres options )
    set output "graph.gif" # on sauvegarde le graph dans un fichier nomme "graph.gif"
    pause 10 # c'est important de mettre cette commande si tu fais une sortie ecran (c'est a dire sans mettre "set terminal gif" et "set output..." sinon l'affichage est tres rapide et tu ne vois rien.
    2) dans ton code fortran au moment ou tu veux faire le trace de ta courbe tu ecris:

    call system ( 'gnuplot graph.gnu' )

    vas y mon gars ca devrait marcher....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Entièrement d'accord avec ce qui a été dit, d'autant plus que le script gnuplot peut être préparé à l'avance, ou éventuellement écrit par le programme fortran avant de lancer la commande system().

    Juste une remarque en passant, pour que Gnuplot fasse le graphe dans un fichier l'ordre des commandes est important: il faut d'abord préciser le type du terminal (personnellement je préfère png à gif), puis le nom du fichier de sortie, puis l'instruction 'plot':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set terminal png
    set output "graph.png"
    plot "data.dat"
    Bonne continuation.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Merci encore pour la pertinence de vos réponses, en fait mon fichier.gnu contient tout ce que j'ai besoin pour mes courbes, le problème ne se pose pas. Simplement, j'avais juste envie que ce tracé soit executer de façon automatique une fois mon programme.f lancé.

    Votre solution marche, sauf que la fenêtre graphique fait une apparution très très rapide à l'écran, je n'ai donc pas le temps de voir ce qui a été tracé, heureusement que je le demande de sauvegarder ma courbe. Mais bon c'est déjà ça, je ne vais pas vous en demander plus...

    Merci à vous tous

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 122
    Points : 66
    Points
    66
    Par défaut
    Je n'avais pas vu ta remarque à propos de l'affichage rapide de la fenêtre graphique, je viens de rajouter pause 10 à la fin de mes commandes gnuplot et ça marche très bien. Merci, grâce à vous je peux passer à autre chose.

    bonne journée!

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut retour
    SVP comment faire le retour au fortran pour continuer l'exécution du pprogramme ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Il suffit de fermer la session Gnuplot pour récupérer la main et que le programme fortran poursuive son exécution.

    Mettre un 'exit' en fin du script des instructions envoyées à Gnuplot devrait suffire.

    Bonne continuation.

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    Bonjour,
    J'ai eu un problème en lançant gnuplot à partir d'un programme fortran.
    à partir de l'instruction call system ( 'gnuplot commande.gnu' ), j'ai eu le message d'erreur qui s'affiche dans mon terminal: gnuplot n'est pas reconnu en tant que commande interne ou externe , un programme exécutable ou un fichier de commandes.
    Du coût, un rien qui s'affiche.
    Quelqu'un a une idée de solution.
    Merci

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut.
    Ca semble être un problème Linux plus que de Fortran.
    Gnuplot est bien installé ? Que donne which gnuplot dans le terminal ?
    Essaie d'appeler l'exécutable depuis le programme Fortran, avec son chemin complet.
    Même précaution pour le fichier de commandes.

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    je travaille sous windows et nn pas linux; la version de gnuplot que j'ai est 4.4 system:ms-windows 32bit

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

Discussions similaires

  1. Quel logiciel pour tracer les spécifications
    Par altair8080 dans le forum ALM
    Réponses: 2
    Dernier message: 19/07/2012, 10h44
  2. Outil pour tracer les requetes SQL envoyées au serveur.
    Par cmako dans le forum Administration
    Réponses: 10
    Dernier message: 18/02/2010, 16h00
  3. comment adapter un programme vb 6.0 pour tous les écran
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2009, 15h29

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