The compiler could not eliminate the calls to derivs_Schrodinger() because rk4p480() takes a variable function (*derivs) as input and so the compiler does not know that we always intend to call derivs_Schrodinger() from rk4p480Sch. To inline derivs_Schrodinger() as well, replace all occurrences of the text ``(*derivs)'' with the text ``derivs_Schrodinger'' in the body of the routine rk4p480Sch().
With this, all calls to derivs_Schrodinger() vanished, and our run time reduced to 3.8 sec!