If anyone is interested, here's the solution to my problem with functions as subroutine arguments. Since compiling the NUMERICAL RECIPES code, I had upgraded the Fortran compiler. After recompiling the NUMERICAL RECIPES stuff, the problem went away. Thus, I was misled by an inappropriate error message. I suppose the compiler should notice that it is trying to USE stuff which was compiled with an older, incompatible version of the compiler and issue a fatal error message in that case, saying that one should recompile.