! Program to test array arguments which depend on other array arguments program arrayarg2 integer, dimension(5) :: a, b a = (/1, 2, 3, 4, 5/) b = (/2, 3, 4, 5, 6/) call test (a, b) if (any (b .ne. (/4, 7, 10, 13, 16/))) call abort contains subroutine test (x1, x2) implicit none integer, dimension(1:), intent(in) :: x1 integer, dimension(1:), intent(inout) :: x2 integer, dimension(1:size(x1)) :: x3 x3 = x1 * 2 x2 = x2 + x3 end subroutine test end program