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

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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
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
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
met les premières lignes de ton fichier d'entrée.
0
cloc69 Messages postés 4 Statut Membre
 
les voila
 9.0000+65.0000
23.5000-20.0000


j'ai fait court pour commencer :)
0
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
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
9.0000 ne respecte pas le format, il faut mettre 09.0000
0