PROGRAM arguments_tableaux
implicit none

integer,parameter :: im=7,jm=5
integer i,j
real tab(im,jm)

do j=1,jm
   do i=1,im
      tab(i,j)=10.*j+i
   enddo
enddo
print*,'Contenu du tableau tab, de dimension im=',im,'  jm=',jm
write(*,'(7i3)') nint(tab)

print*
print*,'call sous_tableau(im*jm,tab)'
call sous_tableau(im*jm,tab)

print*
print*,'call sous_tableau(4,tab(2:5,2))'
call sous_tableau(4,tab(2:5,2))


print*
print*,'call sous_tableau2(im,jm,tab)'
call sous_tableau2(im,jm,tab)

print*
print*,'call sous_tableau2(3,2,tab(2:4,4:5))'
call sous_tableau2(3,2,tab(2:4,4:5))

end PROGRAM arguments_tableaux


SUBROUTINE sous_tableau(n,tab)

implicit none
integer i,n
real tab(n)

write(*,*) nint(tab)

return
end SUBROUTINE sous_tableau

SUBROUTINE sous_tableau2(im,jm,tab2)
implicit none
integer i,im,jm,j
real tab2(im,jm)

do j=1,jm
   write(*,*) nint(tab2(:,j))
enddo

return
end SUBROUTINE sous_tableau2
