Bonjour le forum,
en fortran, j'ai une "segmentation fault" que je n'arrive pas à comprendre :
Celà se passe lors d'un opération de lecture, dans une ligne qui contient du texte ascii (provenant d'un fichier d'entrée) :
Voici l'instruction qui plante :
Quand je remplace la variable qui fait planter la lecture, Srpt(... ), par un réel temporaire que j'appelle Stmp, ça marche, et cette variable est correctement remplie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 read(line, *, err=804, end=805) +EIDrpt(IDrpt), SClu, Srpt(DIR, IDrpt, K, Z)
Par contre quand j'essaye d'affecter cette valeur, qui a été correctement lue et placée dans le réel temporaire, vers la variable dans laquelle j'aurais voulu l'affecter dès la première opération, hébin ça plante à nouveau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 read(line, *, err=804, end=805) +EIDrpt(IDrpt), SClu, Stmp
Ce qui me fait penser que ce sont les indices de ce tableau qui ne sont pas bons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Srpt(DIR, IDrpt, K, Z)=Stmp (BOUM !)
Donc évidemment j'ai vérifié la dimension du tableau que j'essaye de remplir :
-avec une définition préalable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part real Srpt(0:3, MAXelt, 6, 2) ! S(DIR, IDrpt, K, Z)
Code : Sélectionner tout - Visualiser dans une fenêtre à part PARAMETER (MAXelt=11000)
Et j'ai vérifié aussi les valeurs des indices au moment de la tentative de lecture :
-DIR vaut 1,
-IDrpt vaut 1,
-K vaut 1,
-Z vaut 1.
Ils sont tous à 1 puisque c'est la première tentative d'écriture dans ce tableau.
Que cela vous inspire t'il; pouvez vous m'aider ?
David
Partager