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 :

Help sur un programme en fortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut Help sur un programme en fortran
    Bonjour,

    j'ai récupéré sur le site de l'université de strasbourg un programme fortran qui permet de calculer à partir de la position des étoiles dans le ciel, la constellation dans laquelle elles se trouvent.

    Ne connaissant pas, mais alors pas du tout le langage Fortran, il m'a fallu de nombreuses heures avant de pouvoir le faire tourner, mais ça y est, ça marche.

    le problème, c'est que ce programme fonctionne très bien, mais il faut rentrer les données manuellement une par une. Je ne vous raconte pas la galère, car mon listing à traiter devra comporter des dizaines de milliers d'entrées, une par étoile en fait.

    Je pense qu'il est possible d'indiquer au programme un fichier source et un fichier de sortie afin qu'il travaille tranquillement tout seul, mais comme je ne sais pas comment faire. Je fais donc ici appel à votre savoir.

    Le fichier d'entrée sera certainement en .dat, c'est le format le plus usuel des bases de données d'étoiles. Je ne fais pas de copier coller ici du code pour encombrer le fil, mais il est disponible ici ftp://cdsarc.u-strasbg.fr/pub/cats/VI/42/ avec un read me la http://cdsarc.u-strasbg.fr/viz-bin/Cat?VI/42.

    Encore merci d'avance, en espérant ne pas m'être trompé de section.

  2. #2
    Membre émérite
    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
    Par défaut
    Bonjour.
    Le programme lit les informations dans le fichier 'data.dat'.
    Il suffit d'y mettre tes données, et puis ça doit tourner tout seul.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    salut dardanos,

    tout d'abord merci pour ta réponse rapide,

    je pensais aussi que le fichier data.dat qui est chargé par le programme permettait de renseigner les données à traiter. En fait, il s'agit des limites de chaque constellations qui permettent au programme de tourner (cf readme: The file data.dat is a list of constellation boundaries)

    J'ai quand même essayer d'ajouter les données en fin de liste dans le data.dat (pas d'effet) ou de modifier les données (la le programme plante complètement)

    Je pense que le code à modifier est dans les premières lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    WRITE(6,1001)
     1001 FORMAT('Type the Equinox, format' /'YYYY.y')
          READ(5,FMT='(D6.1)') E
        5 WRITE (6,1002)
     1002 FORMAT('Enter the position '/ 'HH.hhhh+DD.dddd')
          READ(5,FMT='(F7.4,F8.4)',END=200,ERR=210) RAH,DECD
    et qu'il faut appeler un fichier au lieu de demander des infos manuellement.
    Il doit aussi falloir faire une boucle a la fin du programme pour qu'il traite toutes les données (bon en fait je dis ça, mais je suis pas super sûr de mon coup)

    Il y a de tels fichiers dans l'archive du programme qui s'appelle test.in ainsi qu'un second out.sam . Ils listent les données à traiter et les données traitées exactement comme il faut.
    Le truc c'est qu'ils ne sont pas appelés dans le programme.

    J'avoue que je suis un peu perdu dans tout ca.

  4. #4
    Membre émérite
    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
    Par défaut
    Je retire mon ancien post; le fichier 'data.dat' contient d'autres données.

    Si le travail n'est pas difficile, il est nécessaire de revoir l'ensemble des entrées-sorties du programme principal.

    Bon courage.

  5. #5
    Membre émérite
    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
    Par défaut
    Si tu travailles sur un LINUX, le mieux est de rediriger l'entrée standard (mettre les commandes dans un fichier) et la sortie standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    executable < commandes.in > sortie.out
    Ça n'est pas très propre, mais tu auras rapidement tes résultats, et sans avoir à modifier le code.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    malheureusement je travail sur Windows et OSX pour de basses raisons de compatibilité logicielles (genre Photoshop).

    ta solution semble effectivement être plus simple et plus élégante que de modifier le code principal.

    maintenant, sur Windows je n'ai pas la moindre idée de à quoi peut bien ressembler un code équivalent (je connais le html, le css et un peu de js, mais sur les vrais langages, je sèche...)

  7. #7
    Membre émérite
    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
    Par défaut
    Ça fonctionne aussi sur WINDOWS.

    J'ai compilé à la main avec gfortran (exécutable 'a.exe'). Puis j'ai ouvert une "fenêtre de commandes", et j'y entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.exe < test.in > toto.out
    Le programme tourne. Un nettoyage s'impose avec la commande FIND (les questions écrites dans la console).
    Mais les valeurs de RA sont différentes de celles de 'out.sam'. Je ne suis pas compétent pour l'expliquer.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut
    nickel, j'aurais appris un truc aujourd'hui.

    en fait tout était une question de méthode, ca marche nickel.
    Il faut juste que je nettoie un peu le code pour qu'il ne m'affiche que les données sans les textes parasites dans 3 jolies colonnes...

    c'était aussi simple que ca.

    concernant les valeurs de RA, je récupère les mêmes en faisant tourner le programme dans le fichier de sortie que dans le fichier d'entree. Je vais jeter un coup d'oeil. Mais il est normal qu'elles soient différentes si les données d'entrées sont anciennes car le systeme solaire tourne dans la galaxie et on se decale avec le temps, dans le plan de l'ecliptique. C'est le but de la première ligne dans le listing des données d'entree

    Encore merci beaucoup, je viens de faire un pas de geant grâce à toi.

Discussions similaires

  1. programmation en fortran sur mac
    Par Aur_neige dans le forum Fortran
    Réponses: 10
    Dernier message: 09/09/2013, 14h43
  2. Programme de fortran sur win7 64bit
    Par lanto dans le forum Fortran
    Réponses: 3
    Dernier message: 13/09/2011, 20h48
  3. Livre sur la programmation linux (shell et noyau)
    Par Tchetch dans le forum Linux
    Réponses: 10
    Dernier message: 07/07/2004, 08h27
  4. Questions sur la programmation Api de windows
    Par ApolloCrid dans le forum MFC
    Réponses: 7
    Dernier message: 22/02/2004, 01h43

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