Probleme en fortran 90

matthieuabristol Messages postés 9 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je travaille en fortran 90, mon programme compile, mais quand je lance l'executable j'ai un message d erreur:
forrtl: severe (168): Program Exception - illegal instruction
Image PC Routine Line Source
libpthread.so.0 00002AF1F1E3D130 Unknown Unknown Unknown
a.out 00000000007958C0 Unknown Unknown Unknown
Quest ce que sa veut dire? que dois je faire ?
Merci d'avance pour vos conseils, et bonne anne a tous
Matthieu

11 réponses

juanpablo Messages postés 142 Statut Membre 10
 
salut

ton code branche à un endroit où il n'y a pas d'instruction légale. c'est dans une lib de thread donc si tu lances un thread l'adresse est incorrecte , rajoutes un LOC peut etre (pour des appels win32 ça marche )
0
matthieuabristol Messages postés 9 Statut Membre
 
Merci pour la reponce, mais je suis debutant en fortran donc je ne la comprend pas trop est ce que tu peu s il te plai me l'expliquer
Merci d'avance
0
matthieuabristol Messages postés 9 Statut Membre
 
J ai mis une fonction en f77 dans mon programme en f90 est ce que c'est possible que l'erreur vienne de la?
0
juanpablo Messages postés 142 Statut Membre 10
 
je ne pense pas je le fais régulierement(ftn77 salford, ftn90/95 silverfrost)
0
juanpablo Messages postés 142 Statut Membre 10
 
re

c'est une hypothese n'ayant aucune idée sur ton programme, si tu peux le résumer ce serait mieux...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
matthieuabristol Messages postés 9 Statut Membre
 
dans le programme en f90 je veut chercher le zero d'une fonction, donc pour sa je fait appel a la fonction ZBRENT que j'ai en f77. ZBRENT fait appel a une autre fonction (celle dont je dois trouver le zero) qui est en f90.
0
juanpablo Messages postés 142 Statut Membre 10
 
ok c'est pas un pb de thread mais c'est bien un pb de passage d'adresse a ta fonction ZBRENT

ce que je disais c'est d'essayer de mettre LOC(nom) au lieu de nom en argument
0
matthieuabristol Messages postés 9 Statut Membre
 
En mettant LOC(nom) dans ZBRENT, sa compile toujours mais en faisant a.out j'ai maintenant un nouveau message d'erreur:matthieu@theo1-pc8:/work2/matthieu/DFT/prog> a.out
forrtl: severe (168): Program Exception - illegal instruction
Image PC Routine Line Source
Unknown 00007FFF5CC7BFBA Unknown Unknown Unknown
0
juanpablo Messages postés 142 Statut Membre 10
 
bizarre ... autre piste dans ton bloc progral où tu appelles ZBRENT as tu declaré ta fonction ?


program prg

external nomf
real nomf ! ou autre type

call ZBRENT ( ... nomf ...)

end
0
matthieuabristol Messages postés 9 Statut Membre
 
j ai declarer les deux fonction en double precision:
double precision ::gamma11zero
double precision ::gamma11cste,gamma11trouve,depart,arrive,zero,erreur,ZBRENT
0
juanpablo Messages postés 142 Statut Membre 10
 
reste juste le external à voir...
0
matthieuabristol Messages postés 9 Statut Membre
 
J'ai essayer aussi le external mais toujour le meme probleme
0
juanpablo Messages postés 142 Statut Membre 10
 
le probleme est aiileurs alors, mais je ne vois plus trop
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
salut. J'ai pas trop d'idée, mais je te conseil d'essayer :
de supprimer l'appel à la fonction f77 voir si ça viens de là
De faire un tout autre pogramme ne f90 pour voir si ça ne viendrai pas d'une mauvaise installation du compilateur.
Essayer de voir d'où viens le problème précisement avec un debuggeur
0
matthieuabristol Messages postés 9 Statut Membre
 
c'est quoi un debugger, ou est ce que je peu en trouver?
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
un debugueur, c'est un programme qui execute ton programme et regarde dans quel fonction, quel ligne est emise l'exeption.
si tu compile avec gcc (ou gfortran) le debug c'est "gdb" et pour l'utiliser au mieu il faut mettre l'option -g lors de la compilation.
Si tu n'as pas gcc, cherche sur le net
0