Ваша функция должна быть объявлена:
function select(n,x) result(y)
implicit none
integer,intent(in) :: n
integer,intent(in) :: x(n)
integer :: y(n) ! in maximizing the size of y
...
Действительно, Python написан на C, и ваша подпрограмма на Фортране должна следовать правилам Iso_C_binding.В частности, предполагаемые массивы форм запрещены.
В любом случае я бы предпочел подпрограмму:
subroutine select(nx,y,ny,y)
implicit none
integer,intent(in) :: nx,x(nx)
integer,intent(out) :: ny,y(nx)
ny - это размер, действительно используемый для y (ny <= nx) </p>