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 32 33 34 35 36 37
|
PROGRAM tet
IMPLICIT NONE
INTEGER, DIMENSION(:), ALLOCATABLE :: tab1,tab2,tab3,tab4
INTEGER :: j,taille_tab12,alok
ALLOCATE(tab1(6),tab2(6))
tab1 = (/1,2,3,4,5,6/)
tab2 = (/1,2,3,4,6,5/)
j=1
taille_tab12 = SIZE(tab1)
ALLOCATE(tab3(taille_tab12),stat=alok)
PRINT *, tab1
PRINT *, alok
CALL elem_egaux(tab1,tab2,tab3,j)
ALLOCATE(tab4(1:j))
tab4 = tab3(1:j)
DEALLOCATE(tab3)
PRINT *, tab4
CONTAINS
SUBROUTINE elem_egaux(tableau_in1,tableau_in2,tableau_out,size_tableau_out)
INTEGER, DIMENSION(:),INTENT(IN) :: tableau_in1
INTEGER, DIMENSION(:),INTENT(IN) :: tableau_in2
INTEGER, DIMENSION(:),INTENT(IN OUT) :: tableau_out
INTEGER, INTENT(IN OUT) :: size_tableau_out
INTEGER :: taille,i
taille = SIZE(tableau_in1)
DO i=1,taille
IF (tableau_in1(i) == tableau_in2(i)) THEN
tableau_out(size_tableau_out) = i
size_tableau_out = size_tableau_out + 1
END IF
END DO
size_tableau_out = size_tableau_out-1
END SUBROUTINE elem_egaux
END PROGRAM tet |
Partager