Copy (carefully) the numerical recipes routine ``rk4'', rename it ``rk4ind'', and extend it to allow derivs to access the arrays rho, r, dr:
C: void derivs(float x, float y[], float dydx[],
int k, float rho[], float r[], float dr[], int Nu)
Fortran: subroutine derivs(x,y,dydx,k,rho,r,dr,Nu)
implicit none
real x,y(*),dydx(*),rho(Nu+1),r(Nu+1),dr(Nu+1)
integer k,Nu
C: void rk4ind(float y[], float dydx[], int n, float x, float h, float yout[],
void (*derivs)(float, float [], float [], int, float[], float[], float[], int),
int k, int dk, float rho[], float r[], float dr[],int Nu)
Fortran: subroutine rk4ind(y,dydx,n,x,h,yout,derivs,k,dk,rho,r,dr,Nu)
implicit none
real y(n),dydx(n),x,h,yout(n),rho(Nu+1),r(Nu+1),dr(Nu+1)
integer n,k,dk,Nu
external derivs