Chapter 9: Basic Matrix/Vector Operations

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

Output

 

               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



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260