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:

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
(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)

TEST.f90

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
OUTPUT ON THE TERMINAL

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