D02 Chapter Contents
D02 Chapter Introduction
NAG Library Manual

# NAG Library Routine DocumentD02NXF

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

## 1  Purpose

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

## 2  Specification

 SUBROUTINE D02NXF ( ICALL, LIWREQ, LIWUSD, LRWREQ, LRWUSD, NLU, NNZ, NGP, ISPLIT, IGROW, LBLOCK, NBLOCK, INFORM)
 INTEGER ICALL, LIWREQ, LIWUSD, LRWREQ, LRWUSD, NLU, NNZ, NGP, ISPLIT, IGROW, NBLOCK, INFORM(23) LOGICAL LBLOCK

## 3  Description

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

## 4  References

See the D02M–N Sub-chapter Introduction.

## 5  Arguments

1:     $\mathrm{ICALL}$ – INTEGERInput
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 ${\mathbf{IFAIL}}={\mathbf{0}}$ or ${\mathbf{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:     $\mathrm{LIWREQ}$ – INTEGEROutput
On exit: the length of the integer workspace JACPVT reserved for the sparse matrix routines.
3:     $\mathrm{LIWUSD}$ – INTEGEROutput
On exit: the length of the integer workspace JACPVT actually used by the sparse matrix routines.
4:     $\mathrm{LRWREQ}$ – INTEGEROutput
On exit: the length of the real workspace WKJAC reserved for the sparse matrix routines.
5:     $\mathrm{LRWUSD}$ – INTEGEROutput
On exit: the length of the real workspace WKJAC actually used by the sparse matrix routines.
6:     $\mathrm{NLU}$ – INTEGEROutput
On exit: the number of $LU$ decompositions done during the integration.
7:     $\mathrm{NNZ}$ – INTEGEROutput
On exit: the number of nonzeros in the Jacobian.
8:     $\mathrm{NGP}$ – INTEGEROutput
On exit: the number of FCN or RESID calls needed to form the Jacobian.
9:     $\mathrm{ISPLIT}$ – INTEGEROutput
On exit: an appropriate value for the argument ISPLIT when calling D02NUF for subsequent runs of similar problems.
10:   $\mathrm{IGROW}$ – INTEGEROutput
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:   $\mathrm{LBLOCK}$ – LOGICALInput
On entry: the value used for the argument LBLOCK when calling D02NUF.
12:   $\mathrm{NBLOCK}$ – INTEGEROutput
On exit: if ${\mathbf{LBLOCK}}=\mathrm{.TRUE.}$, NBLOCK contains the number of diagonal blocks in the Jacobian matrix permuted to block lower triangular form. If ${\mathbf{NBLOCK}}=1$ then on subsequent runs of a similar problem LBLOCK should be set to .FALSE. in the call to D02NUF.
If ${\mathbf{LBLOCK}}=\mathrm{.FALSE.}$, ${\mathbf{NBLOCK}}=1$.
13:   $\mathrm{INFORM}\left(23\right)$ – INTEGER arrayCommunication Array
On entry: contains information supplied by the integrator.

None.

Not applicable.

## 8  Parallelism and Performance

D02NXF is not threaded in any implementation.