Matrice en argument d'une subroutine
Bonjour à tous,
Ma question est relativement simple. Existe-t-il une façon de passer une matrice à une subroutine, sans avoir besoin de passer pour autant ses dimensions ? Un exemple de l'idée est donnée dans le code ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
PROGRAM
INTEGER :: I,J
DOUBLE PRECISION :: A(2,2)
! Initialisation de la matrice
DO I=1,2
DO J= 1,2
A(i,j)=0.D0
ENDDO
ENDDO
CALL SHAPEMATRIX(A)
END PROGRAM
SUBROUTINE SHAPEMATRIX(A)
DOUBLE PRECISION, INTENT(IN) :: A(:,:)
! SHAPE donne la dimension d'une matrice A:M*N sous la forme (M,N)
Print *,SHAPE(A)
END SUBROUTINE |
Evidemment ce code ne fonctionne pas, mais je ne trouve pas d'écriture correcte (s'il en existe une) de la ligne en rouge.
Merci d'avance à tous ceux qui prendront le temps de m'apporter leur aide.