5 ! Contributed by Vladimir Fuka <vladimir.fuka@gmail.com>
8 integer,allocatable
:: i
12 type(t
), allocatable
, dimension(:) :: a
, b
15 do i
=1,3 ! Was 100 in original
18 if (.not
.allocated(a
)) then
20 b
= first_arg([e
], [e
])
26 if (sum ([(a(i
)%i
, i
=1,size(a
))]) .ne
. chksum
) call abort
27 if (any([(a(i
)%i
, i
=1,size(a
))] /= [(i
, i
=1,size(a
))])) call abort
28 if (size(a
) /= size(b
)) call abort
29 if (any([(b(i
)%i
, i
=1,size(b
))] /= [(i
, i
=1,size(b
))])) call abort
32 b
= first_arg([b
, e
], [a
, e
])
35 elemental
function first_arg(arg1
, arg2
)
36 type(t
), intent(in
) :: arg1
, arg2
39 end function first_arg