https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92178
--- Comment #4 from Vladimir Fuka <vladimir.fuka at gmail dot com> --- It would be really strange if even expressions like below were not possible. implicit none integer, allocatable :: a(:) allocate(a, source=[1]) call assign(a, (min(a(1)**2,0))) print *, allocated(a) contains subroutine assign(a, i) integer, allocatable, intent(out) :: a(:) integer, value :: i print *, i end subroutine end program