As we know that function name can be treated as parameters to pass in/out by other subroutines. I wonder if we have any tricks to save a list of functions into an array, which would be passed in and out for process.
!-------for example. At somewhere we set any array
type(Idonotknow)::Farray(N)
Then set the value:
Farray(1)%any=>fun1
Farray(2)%any=>fun2
...
Farray(N)%any=>funN
where fun1,fun2...funN are something like
Function fun1(input)
implicit none
statements
End Function
Finally we can call them
do i = 1, N
Call F(i)%any(input)
enddo