If I know the rank and/or size of an array being passed to a function or subroutine, is there any reason to use an assumed-shape or assumed-size array? For example, if I can replace
function f(a,m,n)
real,dimension(*),intent(inout) :: a
! ...
end function
with
function f(a,m,n)
real,dimension(m,n),intent(inout) :: a
! ...
end function
is there any reason (in Fortran 90 or later) to not do so?