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 -
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.
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.
A voir également:
- Help sur un programme en fortran
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Desinstaller un programme sur windows - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
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 :
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.datet tu auras ton résultat dans resu.dat
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...
il doit manquer encore un truc, mais là, on s'approche.
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.
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:
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.
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.