Все еще не совсем ответ на ваш вопрос, но, возможно, вызов функции вместо вас будет работать:
program main
implicit none
integer :: i
integer, parameter :: n = 3
integer, dimension(n) :: out
call repeat(1,3,out)
print *, (out(i), i=1,n)
end program
subroutine repeat(x,n,y)
implicit none
integer :: i
integer,intent(in) :: x,n
integer,dimension(n),intent(out) :: y
do i=1,n
y(i) = x
enddo
endsubroutine
Надеюсь, кто-то придет с ответом для вашей функции.Проблема, с которой я столкнулся, заключается в том, что Fortran не позволит вам сделать что-то вроде:
integer,external :: rep(n)