_pollux_ Pan ! t'es mort | Problème Fortran
voilà, j'ai un problème avec le fortran, alors je pose une question au cas ou kelk'un saurait y répondre
j'ai à la base ça :
Code :
- subroutine initialisation(j,jseT,jseR,jhT,jhR,jpe,d,deltax
- & ,F,F_trap,ro,roEE,V,V_trap)
- implicit none
- REAL *8 d,deltax
- REAL *8 jpe(200000),j(200000,2),jseT(200000,2),jseR(200000,2)
- REAL *8 jhT(200000,2),jhR(200000,2)
- REAL *8 F(200000),F_trap(200000)
- REAL *8 ro(200000,2),roEE(200000,2)
- REAL *8 V(200000),V_trap(200000)
- INTEGER i,ifin
- ifin=int(d/deltax) ! indice de fin de boucle
- do i=0,ifin
- j(i,1)=0.0
- j(i,2)=0.0
- jseT(i,1)=0.0
- jseT(i,2)=0.0
|
fait par kelk'un en fortran 77 à priori, et ki est sensé marcher Or, ça me retourne :
Code :
- Array bound exceeded
|
Il semble donc, que dans le cas du fortran 95, il note les tableau à partir de 1 et non pas à partir de zéro, parce que si je remplace
Code :
- do i=0,ifin
- j(i,1)=0.0
- j(i,2)=0.0
- jseT(i,1)=0.0
- jseT(i,2)=0.0
|
par ça :
Code :
- do i=1,ifin+1
- j(i,1)=0.0
- j(i,2)=0.0
- jseT(i,1)=0.0
- jseT(i,2)=0.0
|
ça marche...
Le problème, c'est que c'est facile à faire sur une boucle, mais que ça devient chaud à tout changer parce qu'il y a plein de manipulations sur de multiples tableaux dans tout le programme. J'ai lu des docs fortrans qui disent que le fortran 95 est compatible 77, nulle part ils font référence à une modification de l'indexation des tableaux ca peut venir du compilateur ? (Compaq visual Fortran)
Une idée ? parce que là, je bloque méchamment |