Help sur un programme en fortran

cloc69 Messages postés 4 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
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 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    si je comprends bien, le programme lit sur l'entrée standard les coordonnées d'une étoile donne la solution et continue jusqu'à ce qu'on lui fournisse plus rien.
    Et bien, c'est super simple, il suffit de faire une indirection.
    si ton fichier .dat d'entrée est bien formé (HH.hhhh+-YY.yyyy sur chaque ligne) il suffit de faire :
    echo 1950>entre_prog.dat # en supposant que tu veuille l'equinox de 1950)
    cat entree.dat>>entre_prog.dat
    program <entre_prog.dat >resu.dat
    
    et tu auras ton résultat dans resu.dat
    0
  2. cloc69 Messages postés 4 Statut Membre
     
    salut Sniper,

    tout d'abord merci pour ta réponse rapide

    j'ai mis en pratique ta solution que je trouve tres élégante (mieux que de bidouiller le code en tout cas)

    J'ai copié le code que tu m'as donné dans un fichier .bat et j'ai créé entree.dat avec 2 lignes pour voir.
    Ça tourne et ça crée les fichiers entre_pro et resu.dat
    Par contre dans le fichier resu.dat, je n'ai que les textes que le programme principal est censé afficher. Il n'a pas passé les coordonnées à la moulinette...

     CONSTALLATION derived from POSITION    
    Type the Equinox, format
    YYYY.y
    Enter the position 
    HH.hhhh+DD.dddd
     End of input positions after: RA =  0.0000   DEC =   0.0000
     The Equinox for these positions is  195.0
    


    il doit manquer encore un truc, mais là, on s'approche.
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      met les premières lignes de ton fichier d'entrée.
      0
    2. cloc69 Messages postés 4 Statut Membre
       
      les voila
       9.0000+65.0000
      23.5000-20.0000
      


      j'ai fait court pour commencer :)
      0
    3. cloc69 Messages postés 4 Statut Membre
       
      finalement j'ai trouvé la solution avec un collègue. Il y a un petit bug dans le program quand il appel data.dat, rien de méchant, je l'avais dejà corrigé de moi même.

      Et après compilation:

      program.exe < entree.in > resu.out
      


      Je pense que les .in et .out sont pure convention, ca devrait aussi fonctionner avec des .dat

      il a fallu que je nettoie un peut le code pour enlever les textes parasites dans le fichier de sortie, rien de bien méchant.

      je vais faire quelques tests pour valider le truc

      En tout cas, encore merci beaucoup Sniper pour le temps passé. je pense que l'on peut clore le topic.
      0
    4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      9.0000 ne respecte pas le format, il faut mettre 09.0000
      0