Executable Fortran

einqui

Membre actif
27 Janvier 2003
657
30
49
Tokyo, Japon
www.ealight.com
Salut,

J'ai ecrit des petits programmes Fortran que je souhaiterais pouvoir maintenant lancer depuis le terminal sans devoir me connecter au serveur de la Fac. Mais lorsque j'ouvre le terminal et que je tape le nom de l'executable obtenu par compilation du code source, j'ai un message qui me dit que cette commande est inconnue
confused.gif

Quelqu'un saurait-il comment faire?

Merci d'avance

 
Je suppose que tu as recompilé ton exécutable sur ta machine ? car à moins qu'à ta Fac vous ayez des Macs, ça ne va pas marcher.

A part ça, pour exécuter un programme en se trouvant dans le répertoire du programme, il suffit de taper : ./nom_de_l_executable

Une solution meilleure est de mofidier sa variable PATH pour y ajouter le chemin ".".
 
Je suppose que tu as recompilé ton exécutable sur ta machine ? car à moins qu'à ta Fac vous ayez des Macs, ça ne va pas marcher.

Je comprends pas tres bien... Une fois compile sur le serveur, je dois le recompiler sur le PB? Parce que j'ai essaye d'installer un compilateur Fortran sur mon Mac avec Fink, mais ca foire lamentablement (Fink et moi, je crois qu'on est pas fait pour s'entendre...
laugh.gif
)
 
Bah, ça dépend.. je comprends pas très bien ce que tu veux faire non plus
wink.gif


Si tu as compilé ton programme Fortran à la Fac, et que tu te connectes depuis ton Mac en SSH ou Telnet et que là tu essaies de l'exécuter, alors pas de problèmes. Par contre si tu as juste téléchargé l'exécutable depuis la Fac et que tu essaies de l'exécuter en local sur ton Mac, tu auras des problèmes (à moins qu'à la Fac tu utilises aussi un Mac!)
 
Alors des details : le programme a effectivement ete compile sur le serveur de la fac (depuis un iMac, mais qui ne servait que d'ecran). Jusqu'a present, je ne l'executais qu'en passant par une connection avec Telnet.
Et quand je le rapatrie chez moi sur le PB, j'ai effectivement des problemes : impossible de l'executer depuis le terminal.
Donc, tu as vu juste, mais je ne comprends pas ou est le probleme...
 
Un exécutable est un fichier binaire qui est écrit pour un processeur (ou type de processeur), tu ne peux pas exécuter sur ton Mac un exécutable compilé sur une station Sun ou sur un x86.
Quand tu dis qu'il servait uniquement d'écran ? vous utilisiez quoi comme CPU alors ? vous utilisez quoi comme système d'exploitation (Windows, Unix) ?!
 
C'est quoi ton problème avec Fink ?
J'utilise 2 compilos Fortran sans soucis:
Absoft (payant) et g77 (gratos, via Fink).
Il y en a 2 autres: NAG (payant) et xlf (gratos car en beta pour l'instant).
En ce qui concerne Fink, dis moi comment tu l'as installé, et ce qui se passe.
Tant qu'à y être, dis nous ta config (matérielle et logicielle), ça peut aider.
Fink marche super pour moi... y a pas de raison que ça plante chez toi...
wink.gif
 
iManu a dit:
C'est quoi ton problème avec Fink ?
J'utilise 2 compilos Fortran sans soucis:
Absoft (payant) et g77 (gratos, via Fink).
Il y en a 2 autres: NAG (payant) et xlf (gratos car en beta pour l'instant).
En ce qui concerne Fink, dis moi comment tu l'as installé, et ce qui se passe.
Tant qu'à y être, dis nous ta config (matérielle et logicielle), ça peut aider.
Fink marche super pour moi... y a pas de raison que ça plante chez toi...
wink.gif

Oups, j'avais pas vu ta reponse.
Bon, alors depuis j'ai du nouveau. J'ai installe fink Commander et reussi a telecharger g77 mais la lorsque j'essaie de compiler (procedure qui marche tres bien sur le serveur de la fac), je n'obtiens que des messages d'erreur du style :

Statement at (^) begins with invalid token [info -f g77 M LEX]

ou encore

Statement at (2) invalid in context established by statement at (1)

Bref, il semble qu'il ne reconnaisse pas les mots-clefs du Fortran comme Do, qui genere des erreurs.
Il y a des options a mettre lorsqu'on lance le compilateur??
Merci d'avance.

Pour info, le fichier que je veux compiler a une extension .f

P.S. : et j'ai voulu installer ibmxlf, mais le readme indique qu'il faut un G5 or j'ai un PB 12" G4. Il n'y a pas de xlf pour G4??
 
einqui a dit:
Bon, alors depuis j'ai du nouveau. J'ai installe fink Commander et reussi a telecharger g77 mais la lorsque j'essaie de compiler (procedure qui marche tres bien sur le serveur de la fac), je n'obtiens que des messages d'erreur du style :
Statement at (^) begins with invalid token [info -f g77 M LEX]
ou encore
Statement at (2) invalid in context established by statement at (1)
Bref, il semble qu'il ne reconnaisse pas les mots-clefs du Fortran comme Do, qui genere des erreurs.
Il y a des options a mettre lorsqu'on lance le compilateur??
Je ne comprends pas très bien...
Tu as seulement téléchargé g77, ou bien tu l'as installé?
T'as quoi comme branche Fink, stable ou instable?
Si t'arrives pas à installer g77, faut voir sur la liste fink-beginners, ils sont sympa...

Suppososns que g77 soit installé (je crois que c'est le cas), dans ce cas t'as un souci à la compilation de TES programmes fortran, c'est ça?
Si c'est le cas, t'as testé avec un programme simple (style hello world) pour voir si ça tournait?
En gros, peux tu donner plus de détails?
Autre chose: quelle est la différence entre ce qui est installé à la fac et sur ton Mac? A la Fac, c'est aussi des Macs ?

einqui a dit:
Pour info, le fichier que je veux compiler a une extension .f
C'est pas un souci (je viens de vérifier).

einqui a dit:
P.S. : et j'ai voulu installer ibmxlf, mais le readme indique qu'il faut un G5 or j'ai un PB 12" G4. Il n'y a pas de xlf pour G4??
Non, ça c'est pas un souci, ça tourne aussi avec un G4 il paraît (j'ai pas testé). Voir le forum dev-fortran chez Apple...

Si tu veux, fais moi passer ton code (si c'est pas trop gros) que je voie si ça tourne chez moi...
 
Salut,

Desole pour l'enôôrme retard, mais j'etais occupe par une conf.
Bref, j'ai essaye plusieurs choses :

1) installer IBM xlf et resultat meme probleme, mon code ne passe pas!!!
2) j'ai cree un petit programme debile, et il refusait de la compiler

En fait, j'ai trouve l'astuce : il faut mettre une tabulation avant tout debut de ligne.....
ooo.gif

Je ne comprends pas tres bien pourquoi. Le compilateur de la station de mon labo s'en contrefiche. Resultat, il faut que je reprenne a la main les 700 et quelques lignes de code en esperant que ca marche....

En tout cas, merci pour ton aide.
zen.gif
 
einqui a dit:
Je ne comprends pas tres bien pourquoi. Le compilateur de la station de mon labo s'en contrefiche. Resultat, il faut que je reprenne a la main les 700 et quelques lignes de code en esperant que ca marche....
BBedit te le fera très vite et très bien, par un simple remplacer espace par tab...
Ceci dit, il faut fixer la longueur des tabs par défaut.
BBedit lite est gratuit je crois.
Moi j'aime beaucoup, surtout dans le cas de passage ODS/unix/mac (ça gère hyper bien les fin de lignes, et ce genre de chose...).

Bon courage,

Manu
zen.gif
 
einqui a dit:
En fait, j'utilise Xemacs.
Mais si je remplace tous les espaces par des tabulations, mon programme va devenir completement illisible. Je crois qu'il va falloir le faire a la main.....
frown.gif
Non, car à priori, tu dois avoir plusieurs espaces en début de ligne, et pas un seul. Si t'en as qu'un, c'est pas étonant que ça marche pas...
laugh.gif

Donc si tu remplaces 5 espaces par une tab, t'as gagné...
zen.gif
 
iManu a dit:
Non, car à priori, tu dois avoir plusieurs espaces en début de ligne, et pas un seul. Si t'en as qu'un, c'est pas étonant que ça marche pas...
laugh.gif

Donc si tu remplaces 5 espaces par une tab, t'as gagné...
zen.gif

Salut,

En fait, c'est ce que j'ai fait. Il y avait exactement 5 espaces en debut de chaque ligne (tu devrais te lancer dans la divination...) et je les ai remplaces par un tab. Mais ca ne marche toujours pas pour autant parce que maintenant, le compilateur ne reconnait pas le symbole & pour les coupures de ligne
frown.gif

A la fac, j'avais resolu ce probleme en remplacant l'extension .f par .f90 puisque j'utilisais f90 pour compiler et tout s'est arrange. Mais la....

En fait, je n'ai jamais vraiment appris le Fortran, j'ai juste lu des programmes deja ecrits et quelques tutoriaux, ce qui fait ce genre de detail me laisse perplexe. D'ailleurs, je ne comprends pas bien la necessite de commencer chaque ligne par un "tab".....
 
einqui a dit:
En fait, c'est ce que j'ai fait. Il y avait exactement 5 espaces en debut de chaque ligne (tu devrais te lancer dans la divination...) et je les ai remplaces par un tab. Mais ca ne marche toujours pas pour autant parce que maintenant, le compilateur ne reconnait pas le symbole & pour les coupures de ligne
frown.gif

A la fac, j'avais resolu ce probleme en remplacant l'extension .f par .f90 puisque j'utilisais f90 pour compiler et tout s'est arrange. Mais la....

En fait, je n'ai jamais vraiment appris le Fortran, j'ai juste lu des programmes deja ecrits et quelques tutoriaux, ce qui fait ce genre de detail me laisse perplexe. D'ailleurs, je ne comprends pas bien la necessite de commencer chaque ligne par un "tab".....

En fait - et ça explique la magie de ma réponse, chaque ligne fortran DOIT commencer par 5 espaces, puis un (le sixième) un symbole éventuel de continuation de ligne, les instructions ne commençant donc qu'après.
Si tu as quelque chose dans les 5 premiers espaces, c'est un numéro de label.

En fait, le tab te permet de faire 5 espaces en un coup.
Tu ne devrais d'ailleurs pas en avoir besoin, mais tout dépend de ton éditeur de texte (certains remplacent un tab par 4, 5, 6 espaces, selon les réglages.
Si tu récupères un code en fortran avec des tabs, et que ton éditeur les convertit en 4 espaces par exemple, t'es mal...

D'une manière générale, le fortran est très portable.
Si t'as plus de 'quelques' erreurs en passant sur une autre plateforme ou un autre compilateur, c'est toujours un problème de formatage (nombre d'espaces, fins de ligne, etc...) et ça se règle facile...

A +,

Manu
smile.gif
 
Il y a très, très longtemps
laugh.gif
, le Fortran s'écrivait sur des cartes perforées de 80 caractèrs. Les 5 premières colonnes permettaient de définir les étiquettes (pour le célèbre GOTO), la sixièe si je me souviens bien pour mettre éventuellement un "C" pour les lignes de commentaires, de 7 à 72 on avait le texte, et de 73 à 80 soit rien, soit on numérotait les cartes (quand tu en as mis mille par terre, c'est pratique pour les remettre dans l'ordre
laugh.gif
).

Après l'abandon des cartes perforées, certains fortran ont gardé la syntaxe des colonnes pour garder la compatibilité avec les étiquettes.
zen.gif
 
Luc G a dit:
Il y a très, très longtemps
laugh.gif
, le Fortran s'écrivait sur des cartes perforées de 80 caractèrs. Les 5 premières colonnes permettaient de définir les étiquettes (pour le célèbre GOTO), la sixièe si je me souviens bien pour mettre éventuellement un "C" pour les lignes de commentaires, de 7 à 72 on avait le texte, et de 73 à 80 soit rien, soit on numérotait les cartes (quand tu en as mis mille par terre, c'est pratique pour les remettre dans l'ordre
laugh.gif
).

Après l'abandon des cartes perforées, certains fortran ont gardé la syntaxe des colonnes pour garder la compatibilité avec les étiquettes.
En fait, le C en sixième position, qui peut être remplacé par un chiffre ou même d'autres signes je crois, indique une continuation (c) de la ligne précédente (pratique si tu as une longue expression...).
Le C dans les 5 premiers espaces indique, lui, un commentaire.
zen.gif
 
iManu a dit:
En fait, le C en sixième position, qui peut être remplacé par un chiffre ou même d'autres signes je crois, indique une continuation (c) de la ligne précédente (pratique si tu as une longue expression...).
Le C dans les 5 premiers espaces indique, lui, un commentaire.
zen.gif

Tu as raison, j'ai oublié depuis le temps
laugh.gif
Je me rappelle que certains avaient tendance à écrire des expressions vraiment longues :5, 6, 7 lignes et il me semble que sur certaines machines ça ne passait pas parce que c'était trop long. Merci, iManu, tu me fais rajeunir.
laugh.gif