There are several other answers that may touch on slightly different (but relevant) points. Here I will try to coordinate them.
Vladimir F answer examines the so-called copy / copy mechanism; bfletch answer the final effect of the argument.
In general, the effect of the following
integer i(2,2)
i=0
call dosomething(i(1,:)) ! Just to make it not contiguous.
contains
subroutine dosomething(j)
integer j(2) ! or j(*), or j(:)
j=1
end subroutine
end program
, i , 1, 0. , : , ( ), , , .
, : value. 1
subroutine doseomthing(j)
integer, value :: j(2)
j=1
end subroutine
. j i.
1 Fortran. Fortran 90, , .