call useit(a, b)
if (.NOT.all(b == [ 1, 2, 3 ])) call abort()
+ if (.NOT.all(whatever(a) == [ 1, 2, 3 ])) call abort()
+
call kill(a)
if (allocated(a)) call abort()
integer, allocatable, intent(in) :: x(:)
integer, allocatable, intent(out) :: y(:)
if (allocated(y)) call abort()
- allocate (y(3))
+ call init(y)
y = x
end subroutine useit
+ function whatever(x)
+ integer, allocatable :: x(:)
+ integer :: whatever(size(x))
+
+ whatever = x
+ end function whatever
+
subroutine kill(x)
integer, allocatable, intent(out) :: x(:)
end subroutine kill