Swapping fractal iterator functions on the fly in Fortran