NAG FL Interfaced02nxf (ivp_​stiff_​sparjac_​diag)

▸▿ Contents

Settings help

FL Name Style:

FL Specification Language:

1Purpose

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.

2Specification

Fortran Interface
 Subroutine d02nxf ( nlu, nnz, ngp,
 Integer, Intent (In) :: icall, inform(23) Integer, Intent (Out) :: liwreq, liwusd, lrwreq, lrwusd, nlu, nnz, ngp, isplit, igrow, nblock Logical, Intent (In) :: lblock
#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.

3Description

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

4References

See the D02M–N Sub-chapter Introduction.

5Arguments

1: $\mathbf{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 ${\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: $\mathbf{liwreq}$Integer Output
On exit: the length of the integer workspace jacpvt reserved for the sparse matrix routines.
3: $\mathbf{liwusd}$Integer Output
On exit: the length of the integer workspace jacpvt actually used by the sparse matrix routines.
4: $\mathbf{lrwreq}$Integer Output
On exit: the length of the real workspace wkjac reserved for the sparse matrix routines.
5: $\mathbf{lrwusd}$Integer Output
On exit: the length of the real workspace wkjac actually used by the sparse matrix routines.
6: $\mathbf{nlu}$Integer Output
On exit: the number of $LU$ decompositions done during the integration.
7: $\mathbf{nnz}$Integer Output
On exit: the number of nonzeros in the Jacobian.
8: $\mathbf{ngp}$Integer Output
On exit: the number of fcn or resid calls needed to form the Jacobian.
9: $\mathbf{isplit}$Integer Output
On exit: an appropriate value for the argument isplit when calling d02nuf for subsequent runs of similar problems.
10: $\mathbf{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: $\mathbf{lblock}$Logical Input
On entry: the value used for the argument lblock when calling d02nuf.
12: $\mathbf{nblock}$Integer Output
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: $\mathbf{inform}\left(23\right)$Integer array Communication Array
On entry: contains information supplied by the integrator.

None.

Not applicable.