28 lines
839 B
Fortran
28 lines
839 B
Fortran
! Like array_constructor_6.f90, but check constructors that apply
|
|
! an elemental function to an array.
|
|
! { dg-do run }
|
|
program main
|
|
implicit none
|
|
call build (200)
|
|
contains
|
|
subroutine build (order)
|
|
integer :: order, i
|
|
|
|
call test (order, (/ (abs ((/ i, -i, -i * 2 /)), i = 1, order) /))
|
|
call test (order, abs ((/ ((/ -i, -i, i * 2 /), i = 1, order) /)))
|
|
call test (order, (/ abs ((/ ((/ i, i, -i * 2 /), i = 1, order) /)) /))
|
|
end subroutine build
|
|
|
|
subroutine test (order, values)
|
|
integer, dimension (3:) :: values
|
|
integer :: order, i
|
|
|
|
if (size (values, dim = 1) .ne. order * 3) call abort
|
|
do i = 1, order
|
|
if (values (i * 3) .ne. i) call abort
|
|
if (values (i * 3 + 1) .ne. i) call abort
|
|
if (values (i * 3 + 2) .ne. i * 2) call abort
|
|
end do
|
|
end subroutine test
|
|
end program main
|