Is creating nested subroutines/functions considered good practice in Fortran?

Not in our current implementation, but in general yes: you have to maintain a stack in the module, and each recursion increases the stack position. I think the NAG compiler does exactly that. We’ll implement that later.