# NAG Library Function Document

## 1Purpose

nag_dae_ivp_dassl_linalg (d02npc) is a setup function which you must call prior to nag_dae_ivp_dassl_gen (d02nec) and after a call to nag_dae_ivp_dassl_setup (d02mwc), if the Jacobian is to be considered as having a banded structure.

## 2Specification

 #include #include
 void nag_dae_ivp_dassl_linalg (Integer neq, Integer ml, Integer mu, Integer icom[], Integer licom, NagError *fail)

## 3Description

A call to nag_dae_ivp_dassl_linalg (d02npc) specifies that the Jacobian to be used is banded in structure. If nag_dae_ivp_dassl_linalg (d02npc) is not called before a call to nag_dae_ivp_dassl_gen (d02nec) then the Jacobian is assumed to be full.

None.

## 5Arguments

1:    $\mathbf{neq}$IntegerInput
On entry: the number of differential-algebraic equations to be solved.
Constraint: $1\le {\mathbf{neq}}$.
2:    $\mathbf{ml}$IntegerInput
On entry: $ml$, the number of subdiagonals in the band.
Constraint: $0\le {\mathbf{ml}}\le {\mathbf{neq}}-1$.
3:    $\mathbf{mu}$IntegerInput
On entry: $mu$, the number of superdiagonals in the band.
Constraint: $0\le {\mathbf{mu}}\le {\mathbf{neq}}-1$.
4:    $\mathbf{icom}\left[{\mathbf{licom}}\right]$IntegerCommunication Array
icom is used to communicate details of the integration from nag_dae_ivp_dassl_setup (d02mwc) and details of the banded structure of the Jacobian to nag_dae_ivp_dassl_gen (d02nec).
5:    $\mathbf{licom}$IntegerInput
On entry: the dimension of the array icom.
Constraint: ${\mathbf{licom}}\ge 50+{\mathbf{neq}}$.
6:    $\mathbf{fail}$NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

## 6Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
See Section 2.3.1.2 in How to Use the NAG Library and its Documentation for further information.
On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_INITIALIZATION
Either the initialization function has not been called prior to the first call of this function or the communication array has become corrupted.
NE_INT
On entry, licom is too small: ${\mathbf{licom}}=〈\mathit{\text{value}}〉$.
On entry, ${\mathbf{ml}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{ml}}\ge 0$.
On entry, ${\mathbf{mu}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{mu}}\ge 0$.
On entry, ${\mathbf{neq}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{neq}}\ge 1$.
NE_INT_2
On entry, ${\mathbf{ml}}=〈\mathit{\text{value}}〉$ and ${\mathbf{neq}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{ml}}\le {\mathbf{neq}}-1$.
On entry, ${\mathbf{mu}}=〈\mathit{\text{value}}〉$ and ${\mathbf{neq}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{mu}}\le {\mathbf{neq}}-1$.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
See Section 2.7.6 in How to Use the NAG Library and its Documentation for further information.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See Section 2.7.5 in How to Use the NAG Library and its Documentation for further information.

Not applicable.

## 8Parallelism and Performance

nag_dae_ivp_dassl_linalg (d02npc) is not threaded in any implementation.