By this point, it should be clear that there are four types of routine which we develop:
For the modified Numerical Recipes routines (1), it would be more systematic to name them all with the standard Numerical Recipes name, but with the extension ``p480''. Thus, for example, ``rk4ind'' now becomes ``rk4p480''. We shall use this convention from now on.
Action item: Rename ``rk4ind'' to ``rk4p480'' and make appropriate changes to your Poisson solver.
As we shall have several different versions of the utility routines which the Numerical Recipes routine call (2) for solving different equations, such as ``derivs'' for the Poisson or the Schrödinger equation, we shall name them with an extension corresponding to their use. Thus, below, we introduce ``derivs_Schrodinger.''
Action item: Rename your versions of ``dervis'' for the Poisson solver as ``derivs_Poisson'', and make appropriate changes to the call to ``rk4p480'' and to your Poisson solver program.
To keep things organized, for our routines which call upon Numerical Recipes (3) which then call upon specialized subroutines, we should keep both our routine and the specialized subroutine together in the same file. For instance, ````schint,'' the Schrödinger integrator which calls ``rk4p480,'' should be kept in the same file right next to ``derivs_Schrodinger.''
Finally, our completely stand-alone routines (4), such as ``trapint'' and ``simpint'' are fine. It would be useful to keep them grouped together in files with appropriate names, such as integ.c for these integrators.