Bonjour a tous,
Excusez moi par avance pour les manques d'accents dans mon message, j'utilise actuellement un clavier qwerty au boulot
Mon probleme est le suivant: j'ai un fichier de donnees "inputdata.dat" contenant deux colonnes (premiere colonne: nom des variables, deuxieme colonne: valeur de la variable). Je tente de lire ce fichier via mon script "TEST.f90" et d'assigner les valeurs de "inputdata.dat" a mes variables du script. Je demande ensuite de m'afficher les variables, avec leurs valeurs, sur l'ecran du pc.
Apres execution, toutes les valeurs sont bien bonnes, a l'exception d'une variable que je ne parviens pas a afficher a l'ecran et que j'avais essayer de sauvegarder en tant que matrice.
Voici les fichiers "inputdata.dat", le script "TEST.f90" ainsi que l'erreur obtenue:
inputdata.dat:
(l'agencement est bien realise dans mon fichier, il passe juste mal sur le site mais les valeurs sont: a = 7 2 4 (3 valeurs), b = 150, vec1 = 1 2 3 4 5, vec2 = 6 7 8 9 10, c = 56)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 a 7 2 4 b 150 vec1 1 2 3 4 5 vec2 6 7 8 9 10 c 56
TEST.f90
OUTPUT ON THE TERMINAL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 program main implicit none character(16) :: cinput integer :: a0, a1, a2, b0, c0, i, j integer,dimension(:,:),allocatable :: gfd open(9,file='inputdata.dat') read(9,*) cinput,a0,a1,a2 read(9,*) cinput,b0 read(9,*) cinput,gfd(:,1) read(9,*) cinput,gfd(:,2) read(9,*) cinput,c0 close(9) write(*,*) 'a0 =', a0, 'a1 =', a1, 'a2 =', a2, 'b0 =', b0, 'c0 =', c0 do i=1,5 do j=1,5 write (*,*) gfd(i,j) enddo enddo end program main
a0 = 7 a1 = 2 a2 = 4 b0 = 150 c0 = 56
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x7F0AA087D777
#1 0x7F0AA087DD7E
#2 0x7F0AA04D5CAF
#3 0x7F0AA0946280
#4 0x7F0AA0947820
#5 0x7F0AA094B4AE
#6 0x4010DD in MAIN__ at TEST.f90
Segmentation fault (core dumped)
J'ai egalement essayer d'afficher gfd en utilisant write(*,*) 'gfd =', gfd(:,1), mais j'obtiens la meme erreur (enfin pas d'erreur, mais rien de s'affiche).
Je pense que je dois mal enregistrer la variable, mais je ne vois pas pourquoi.
Je vous remercie si vous pouvez m'aider!
ms518
Partager