1 ! Like array_constructor_6.f90, but check constructors that mix iterators
2 ! and individual scalar elements.
8 subroutine build (order
)
11 call test (order
, 8, 5, (/ ((/ 1, 2, 3, 4, 5, 6, 7, 8 /), i
= 1, order
), &
12 100, 200, 300, 400, 500 /))
14 call test (order
, 2, 3, (/ ((/ 1, 2 /), i
= 1, order
), &
17 call test (order
, 3, 5, (/ ((/ 1, 2, 3 /), i
= 1, order
), &
18 100, 200, 300, 400, 500 /))
20 call test (order
, 6, 1, (/ ((/ 1, 2, 3, 4, 5, 6 /), i
= 1, order
), &
23 call test (order
, 5, 0, (/ ((/ 1, 2, 3, 4, 5 /), i
= 1, order
) /))
25 call test (order
, 0, 4, (/ 100, 200, 300, 400 /))
27 call test (11, 5, 2, (/ ((/ 1, 2, 3, 4, 5 /), i
= 1, 11), &
30 call test (6, 2, order
, (/ ((/ 1, 2 /), i
= 1, 6), &
31 (i
* 100, i
= 1, order
) /))
34 subroutine test (order
, repeat
, trail
, values
)
35 integer, dimension (:) :: values
36 integer :: order
, repeat
, trail
, i
38 if (size (values
, dim
= 1) .ne
. order
* repeat
+ trail
) call abort
39 do i
= 1, order
* repeat
40 if (values (i
) .ne
. mod (i
- 1, repeat
) + 1) call abort
43 if (values (i
+ order
* repeat
) .ne
. i
* 100) call abort