2012-03-18 9 views
0

J'ai problème avec ce code quand je lance script.I d'inversion ont essayé de déboguer avec gdb:signal reçu SIGABRT (FORTRAN)

Starting program: /home/milenko/fg77/f2/bin/inverse_2d 
INVERSE: calculate slowness update using LSQR and regularization 
open: No such file or directory 
apparent state: unit 48 named stop.in 
lately writing sequential formatted external IO 

Program received signal SIGABRT, Aborted. 
0x0012d422 in __kernel_vsyscall() 

Répondre

2

Il semble que votre programme a essayé d'écrire dans un fichier appelé stop.in sur l'unité 48 et a rencontré un problème. La cause la plus probable de ceci est que ce fichier n'existe pas lorsqu'une instruction WRITE est exécutée, ce qui suggère à son tour que l'instruction OPEN pour 'attacher' ce fichier à l'unité 48 a échoué.

EDIT

extrait de code ne montre pas que vous vérifiez le code d'erreur renvoyé par l'instruction

ouverte (48, file = 'stop.in', status = 'vieux')

Je vous suggère de faire apparaître l'argument iostat et de voir ce qu'il vous dit.

EDIT DE PLUS

Dans la deuxième phrase de ma réponse initiale remplacer «n'existe pas » par les mots «n'existe pas dans l'emplacement du programme prévoit.

+0

Je ne pense pas so.Part du code: – milenko

+0

écriture (6335) 335 Format ('INVERSE:', + 'calculer la mise à jour de la lenteur en utilisant LSQR et régularisation) ouverte (50, file = 'nowrite' , status = 'vieux', err = 9999, iostat = ioflag) 9999 si (ioflag.gt.0) puis io = 0 autre io = 51 fin si c ouvert (48, file = 'arrêt .in ', status =' old ') read (48, *) iistop – milenko

+1

@milenkomarkovic: s'il vous plaît modifier le code dans votre question plutôt que de le poster dans les commentaires – talonmies

Questions connexes