###
Constructing the right-hand side for a system of equations in Hessenberg form solved via SB04RY

**[Specification]**
**[Arguments]**
**[Method]**
**[References]**
**[Comments]**
**[Example]**
**Purpose**

To construct the right-hand side D for a system of equations in
Hessenberg form solved via SB04RY (case with 1 right-hand side).

**Specification**
SUBROUTINE SB04RW( ABSCHR, UL, N, M, C, LDC, INDX, AB, LDAB, BA,
$ LDBA, D, DWORK )
C .. Scalar Arguments ..
CHARACTER ABSCHR, UL
INTEGER INDX, LDAB, LDBA, LDC, M, N
C .. Array Arguments ..
DOUBLE PRECISION AB(LDAB,*), BA(LDBA,*), C(LDC,*), D(*), DWORK(*)

**Arguments**
**Mode Parameters**

ABSCHR CHARACTER*1
Indicates whether AB contains A or B, as follows:
= 'A': AB contains A;
= 'B': AB contains B.
UL CHARACTER*1
Indicates whether AB is upper or lower Hessenberg matrix,
as follows:
= 'U': AB is upper Hessenberg;
= 'L': AB is lower Hessenberg.

**Input/Output Parameters**
N (input) INTEGER
The order of the matrix A. N >= 0.
M (input) INTEGER
The order of the matrix B. M >= 0.
C (input) DOUBLE PRECISION array, dimension (LDC,M)
The leading N-by-M part of this array must contain both
the not yet modified part of the coefficient matrix C of
the Sylvester equation X + AXB = C, and both the currently
computed part of the solution of the Sylvester equation.
LDC INTEGER
The leading dimension of array C. LDC >= MAX(1,N).
INDX (input) INTEGER
The position of the column/row of C to be used in the
construction of the right-hand side D.
AB (input) DOUBLE PRECISION array, dimension (LDAB,*)
The leading N-by-N or M-by-M part of this array must
contain either A or B of the Sylvester equation
X + AXB = C.
LDAB INTEGER
The leading dimension of array AB.
LDAB >= MAX(1,N) or LDAB >= MAX(1,M) (depending on
ABSCHR = 'A' or ABSCHR = 'B', respectively).
BA (input) DOUBLE PRECISION array, dimension (LDBA,*)
The leading N-by-N or M-by-M part of this array must
contain either A or B of the Sylvester equation
X + AXB = C, the matrix not contained in AB.
LDBA INTEGER
The leading dimension of array BA.
LDBA >= MAX(1,N) or LDBA >= MAX(1,M) (depending on
ABSCHR = 'B' or ABSCHR = 'A', respectively).
D (output) DOUBLE PRECISION array, dimension (*)
The leading N or M part of this array (depending on
ABSCHR = 'B' or ABSCHR = 'A', respectively) contains the
right-hand side.

**Workspace**
DWORK DOUBLE PRECISION array, dimension (LDWORK)
where LDWORK is equal to N or M (depending on ABSCHR = 'B'
or ABSCHR = 'A', respectively).

**Numerical Aspects**
None.

**Further Comments**
None

**Example**
**Program Text**

None

**Program Data**
None

**Program Results**
None

**Return to Supporting Routines index**