CRBCB

Converts a real matrix in band storage mode to a complex matrix in band storage mode.

Required Arguments

A — Real band matrix of order N. (Input)

NLCA — Number of lower codiagonals in A. (Input)

NUCA — Number of upper codiagonals in A. (Input)

B — Complex matrix of order N containing a copy of A. (Output)

NLCB — Number of lower codiagonals in B. (Input)
NLCB must be at least as large as NLCA.

NUCB — Number of upper codiagonals in B. (Input)
NUCB must be at least as large as NUCA.

Optional Arguments

N — Order of the matrices A and B. (Input)
Default: N = SIZE (A,2).

LDA — Leading dimension of A exactly as specified in the dimension statement of the calling program. (Input)
Default: LDA = SIZE (A,1).

LDB — Leading dimension of B exactly as specified in the dimension statement of the calling program. (Input)
Default: LDB = SIZE (B,1).

FORTRAN 90 Interface

Generic: CALL CRBCB (A, NLCA, NUCA, B, NLCB, NUCB [])

Specific: The specific interface names are S_CRBCB and D_CRBCB.

FORTRAN 77 Interface

Single: CALL CRBCB (N, A, LDA, NLCA, NUCA, B, LDB, NLCB, NUCB)

Double: The double precision name is DCRBCB.

Description

The routine CRBCB converts a real band matrix in band storage mode with NUCA upper codiagonals and NLCA lower codiagonals into a complex band matrix in band storage mode with NUCB upper codiagonals and NLCB lower codiagonals.

Example

A real band matrix of order 3 in band storage mode with one upper codiagonal and one lower codiagonal is copied into another complex band matrix in band storage mode.

 

USE CRBCB_INT

USE WRCRN_INT

 

IMPLICIT NONE

! Declare variables

INTEGER LDA, LDB, N, NLCA, NLCB, NUCA, NUCB

PARAMETER (LDA=3, LDB=3, N=3, NLCA=1, NLCB=1, NUCA=1, NUCB=1)

!

REAL A(LDA,N)

COMPLEX B(LDB,N)

! Set values for A (in band mode)

! A = ( 0.0 1.0 1.0)

! ( 1.0 1.0 1.0)

! ( 1.0 1.0 0.0)

!

DATA A/0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0/

! Convert real band matrix A

! to complex band matrix B

CALL CRBCB (A, NLCA, NUCA, B, NLCB, NUCB)

! Print results

CALL WRCRN ('B', B)

END

Output

 

B

1 2 3

1 ( 0.000, 0.000) ( 1.000, 0.000) ( 1.000, 0.000)

2 ( 1.000, 0.000) ( 1.000, 0.000) ( 1.000, 0.000)

3 ( 1.000, 0.000) ( 1.000, 0.000) ( 0.000, 0.000)