ivp_rkts_diag provides details about an integration performed by either ivp_rkts_range(), ivp_rkts_onestep() or ivp_rk_step_revcomm().

For full information please refer to the NAG Library document for d02pt

commdict, communication object, modified in place

Communication structure.

This argument must have been initialized by prior calls to ivp_rkts_setup() and one of ivp_rkts_range(), ivp_rkts_onestep() or ivp_rk_step_revcomm().


The total number of evaluations of used in the integration so far; this includes evaluations of required for the secondary integration necessary if ivp_rkts_setup() had previously been called with .


The cost in terms of number of evaluations of of a typical step with the method being used for the integration. The method is specified by the argument in a prior call to ivp_rkts_setup().


The number of attempted steps that failed to meet the local error requirement divided by the total number of steps attempted so far in the integration. A ‘large’ fraction indicates that the integrator is having trouble with the problem being solved. This can happen when the problem is ‘stiff’ and also when the solution has discontinuities in a low-order derivative.


The number of accepted steps.


The step size the integrator will attempt to use for the next step.

(errno )

You cannot call this function before you have called the integrator.

(errno )

You have already made one call to this function after the integrator could not achieve specified accuracy.

You cannot call this function again.

(errno )

On entry, a previous call to the setup function has not been made or the communication arrays have become corrupted, or a catastrophic error has already been detected elsewhere.

You cannot continue integrating the problem.


ivp_rkts_diag and its associated functions (ivp_rkts_range(), ivp_rkts_onestep(), ivp_rk_step_revcomm(), ivp_rk_interp_setup(), ivp_rk_interp_eval(), ivp_rkts_setup(), ivp_rkts_reset_tend(), ivp_rkts_interp() and ivp_rkts_errass()) solve the initial value problem for a first-order system of ordinary differential equations. The functions, based on Runge–Kutta methods and derived from RKSUITE (see Brankin et al. (1991)), integrate

where is the vector of solution components and is the independent variable.

After a call to ivp_rkts_range(), ivp_rkts_onestep() or ivp_rk_step_revcomm(), ivp_rkts_diag can be called to obtain information about the cost of the integration and the size of the next step.


Brankin, R W, Gladwell, I and Shampine, L F, 1991, RKSUITE: A suite of Runge–Kutta codes for the initial value problems for ODEs, SoftReport 91-S1, Southern Methodist University