Bonjour à tous,

Mon problème est le suivant: j'ai besoin de récupérer des subroutines faites en fortran 77 afin de les intégrées dans un code en fortran 90. Et il se trouve que j'ai un petit problème lors du passage de tableau en arguments.

Supposons que j'ai un tableau du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
real, dimmension(l,m,n):: mat
celui-ci est passé en argument de la subroutine toto dans une boucle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
do i=1,n
     toto(mat(1,1,i))
end do
Cependant à l'interrieur de la subroutine toto, ma variable n'est pas déclarée comme un réel tout bête mais comme un tableau:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
subroutine toto (lala)
 
real, dimension(l,m)::lala
 
.....
 
end subroutine toto
J'ai fait des impressions dans des fichiers et j'ai remarqué que:
- "mat" est la même en f77 et en f90
- "mat(1,1, : )" est également le même AVANT de rentrer dans toto
- "lala" est totalement différent entre f77 et f90

Je pense que c'est un problème du au fait que les tableaux ne vont pas être lus de la même manière, l'adressage ne se fait pas pareil. Mais je n'ai aucune idée de comment vérifier comment cela fonctionne en détaille et comment modifier le code en conséquence.

Je sais par exemple que en f77 je pourrais écrire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
do i=1, l*n*m
     mat(i,1,1)
end do
et que cela ne créera pas de dépassement de l'indice car fortran 77 incrémente AUTOMATIQUEMENT les arguments du tableau suivant...

y-a-t-il une règle comme celle-ci sur la manière dont la subroutine toto va lire ma variable d'entrée qui puisse faire que à l'intérieur de celle-ci ma variable n'est plus la même ?

Je suis vraiment bloqué, j'ai regardé des tableaux de chiffre toute la journée pour voir comment cela fonctionne mais je n'y parviens pas.

Merci beaucoup pour votre précieuse aide.