NAG FL Interface
d02nxf (ivp_​stiff_​sparjac_​diag)

1 Purpose

d02nxf is an optional output routine which you may call, on exit from an integrator in Sub-chapter D02MN, if sparse matrix linear algebra has been selected.

2 Specification

Fortran Interface
Subroutine d02nxf ( icall, liwreq, liwusd, lrwreq, lrwusd, nlu, nnz, ngp, isplit, igrow, lblock, nblock, inform)
Integer, Intent (In) :: icall, inform(23)
Integer, Intent (Out) :: liwreq, liwusd, lrwreq, lrwusd, nlu, nnz, ngp, isplit, igrow, nblock
Logical, Intent (In) :: lblock
C Header Interface
#include <nag.h>
void  d02nxf_ (const Integer *icall, Integer *liwreq, Integer *liwusd, Integer *lrwreq, Integer *lrwusd, Integer *nlu, Integer *nnz, Integer *ngp, Integer *isplit, Integer *igrow, const logical *lblock, Integer *nblock, const Integer inform[])
The routine may be called by the names d02nxf or nagf_ode_ivp_stiff_sparjac_diag.

3 Description

d02nxf permits you to examine the various outputs from the sparse linear algebra routines called by the integrator.

4 References

See the D02MN Sub-chapter Introduction.

5 Arguments

1: icall Integer Input
On entry: indicates whether or not all output arguments have been set during the call to the integrator. If so, that is, if the integrator returned with ifail=0 or 12, then icall must be set to 0. Otherwise icall must be set to 1, indicating that integration did not take place due to lack of space in arrays wkjac and jacpvt, and only liwreq, liwusd, lrwreq, lrwusd have been set.
2: liwreq Integer Output
On exit: the length of the integer workspace jacpvt reserved for the sparse matrix routines.
3: liwusd Integer Output
On exit: the length of the integer workspace jacpvt actually used by the sparse matrix routines.
4: lrwreq Integer Output
On exit: the length of the real workspace wkjac reserved for the sparse matrix routines.
5: lrwusd Integer Output
On exit: the length of the real workspace wkjac actually used by the sparse matrix routines.
6: nlu Integer Output
On exit: the number of LU decompositions done during the integration.
7: nnz Integer Output
On exit: the number of nonzeros in the Jacobian.
8: ngp Integer Output
On exit: the number of fcn or resid calls needed to form the Jacobian.
9: isplit Integer Output
On exit: an appropriate value for the argument isplit when calling d02nuf for subsequent runs of similar problems.
10: igrow Integer Output
On exit: an estimate of the growth of the elements encountered during the last LU decomposition performed. If the actual estimate exceeds the largest possible integer value for the machine being used (see x02bbf) igrow is set to the value returned by x02bbf.
11: lblock Logical Input
On entry: the value used for the argument lblock when calling d02nuf.
12: nblock Integer Output
On exit: if lblock=.TRUE., nblock contains the number of diagonal blocks in the Jacobian matrix permuted to block lower triangular form. If nblock=1 then on subsequent runs of a similar problem lblock should be set to .FALSE. in the call to d02nuf.
If lblock=.FALSE., nblock=1.
13: inform23 Integer array Communication Array
On entry: contains information supplied by the integrator.

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

d02nxf is not threaded in any implementation.

9 Further Comments

The output from d02nxf, in particular the values of liwreq, liwusd, lrwreq, lrwusd, isplit and igrow, should be used to determine appropriate values for the arguments of the setup routine d02nuf on further calls to the integrator for the same or similar problems.

10 Example

See Section 10 in d02ndf, d02njf and d02nnf.