CSBRB
Copies a real symmetric band matrix stored in band symmetric storage mode to a real band matrix stored in band storage mode.
Required Arguments
A — Real band symmetric matrix of order N. (Input)
NUCA — Number of codiagonals in A. (Input)
B — Real band 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 NUCA.
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 CSBRB (A, NUCA, B, NLCB, NUCB [, …])
Specific: The specific interface names are S_CSBRB and D_CSBRB.
FORTRAN 77 Interface
Single: CALL CSBRB (N, A, LDA, NUCA, B, LDB, NLCB, NUCB)
Double: The double precision name is DCSBRB.
Description
The routine CSBRB copies a real matrix A stored in symmetric band mode to a matrix B stored in band mode. The lower codiagonals of B are set using the values from the upper codiagonals of A.
Example
A real matrix of order 4 in band symmetric storage mode with 2 upper codiagonals is copied to a real matrix in band storage mode with 2 upper codiagonals and 2 lower codiagonals.
USE CSBRB_INT
USE WRRRN_INT
IMPLICIT NONE
! Declare variables
INTEGER LDA, LDB, N, NLCB, NUCA, NUCB
PARAMETER (N=4, NUCA=2, LDA=NUCA+1, NLCB=NUCA, NUCB=NUCA, &
LDB=NLCB+NUCB+1)
!
REAL A(LDA,N), B(LDB,N)
! Set values for A, in band mode
! A = ( 0.0 0.0 2.0 1.0 )
! ( 0.0 2.0 3.0 1.0 )
! ( 1.0 2.0 3.0 4.0 )
!
DATA A/2*0.0, 1.0, 0.0, 2.0, 2.0, 2.0, 3.0, 3.0, 1.0, 1.0, 4.0/
! Copy A to B
CALL CSBRB (A, NUCA, B, NLCB, NUCB)
! Print results
CALL WRRRN ('B', B)
END
B
1 2 3 4
1 0.000 0.000 2.000 1.000
2 0.000 2.000 3.000 1.000
3 1.000 2.000 3.000 4.000
4 2.000 3.000 1.000 0.000
5 2.000 1.000 0.000 0.000