segfault étrange en fortran
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 :
Code:
1 2
| read(line, *, err=804, end=805)
+EIDrpt(IDrpt), SClu, Srpt(DIR, IDrpt, K, Z) |
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:
1 2
| read(line, *, err=804, end=805)
+EIDrpt(IDrpt), SClu, Stmp |
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:
Srpt(DIR, IDrpt, K, Z)=Stmp (BOUM !)
Ce qui me fait penser que ce sont les indices de ce tableau qui ne sont pas bons.
Donc évidemment j'ai vérifié la dimension du tableau que j'essaye de remplir :
Code:
real Srpt(0:3, MAXelt, 6, 2) ! S(DIR, IDrpt, K, Z)
-avec une définition préalable :
Code:
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