SUBROUTINE implicite (t) IMPLICIT NONE REAL, DIMENSION (:,:), INTENT(INOUT) :: t INTEGER :: i DO i = 1, SIZE(t,1) t(i,:) = i ENDDO PRINT*,t END SUBROUTINE impliciteDIMENSION(:,:) précise que t est un tableau de rang 2 et que son profil est implicite c-à-d qu'il sera fourni à la subroutine implicite lors de l'appel.
SIZE : Cette fonction intrinseque fournit l'étendue d'un tableau suivant une direction, ainsi
SIZE(t,1) fournit l'étendue de t suivant
la première dimension
SIZE(t,2) fournit l'étendue de t suivant
la deuxième dimension
Pour utiliser une procédure recevant en
argument un tableau de profil implicit, son interface doit être connue.
Exemple utilisant les subroutines explicite et implicite
PROGRAM affiche_tableau IMPLICIT NONE REAL, DIMENSION (4,0:9) :: t1 REAL, DIMENSION (4:10,3:7) :: t2 INTERFACE SUBROUTINE implicite (t) IMPLICIT NONE REAL, DIMENSION (:,:), INTENT(INOUT) :: t END SUBROUTINE implicite END INTERFACE CALL implicite (t1) CALL implicite (t2) ! ----- De meme on peut faire la meme chose avec---- CALL explicite (t1,SIZE(t1,1), SIZE(t1,2)) CALL explicite (t2,SIZE(t2,1), SIZE(t2,2)) END PROGRAM affiche_tableauL'interface pour la subroutine est obligatoire sinon erreur d'exécution.