|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
INTEGER LDA, N, NDIAG
|
PARAMETER (N = 5)
|
PARAMETER (NDIAG = 1)
|
PARAMETER (LDA = NDIAG + 1)
|
C
|
INTEGER I, J
|
DOUBLE PRECISION A(LDA,N), ALPHA, BETA, X(N), Y(N)
|
C
|
EXTERNAL DSBMV
|
C
|
C Initialize the array A to store in symmetric banded form
|
C the matrix A shown below. Initialize the arrays X and Y
|
C to store the vectors X and Y shown below.
|
C
|
C 1 2 1 1
|
C 2 3 4 2 1
|
C A = 4 5 6 x = 3 y = 1
|
C 6 7 8 4 1
|
C 8 9 5 1
|
C
|
DATA A / 8D8, 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0, 6.0D0,
|
$ 7.0D0, 8.0D0, 9.0D0 /
|
DATA X / 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0 /
|
DATA Y / 1.0D0, 1.0D0, 1.0D0, 1.0D0, 1.0D0 /
|
C
|
PRINT 1000
|
PRINT 1010, A(2,1), A(1,2), 0.0D0, 0.0D0, 0.0D0
|
PRINT 1010, A(1,2), A(2,2), A(1,3), 0.0D0, 0.0D0
|
PRINT 1010, 0.0D0, A(1,3), A(2,3), A(1,4), 0.0D0
|
PRINT 1010, 0.0D0, 0.0D0, A(1,4), A(2,4), A(1,5)
|
PRINT 1010, 0.0D0, 0.0D0, 0.0D0, A(1,5), A(2,5)
|
PRINT 1020
|
DO 20, I = 1, LDA
|
PRINT 1010, (A(I,J), J = 1, N)
|
20 CONTINUE
|
PRINT 1030
|
PRINT 1040, (X(I), Y(I), I = 1, N)
|
ALPHA = 2.0D0
|
BETA = 3.0D0
|
CALL DSBMV ('UPPER TRIANGULAR A', N, NDIAG, ALPHA, A, LDA,
|
$ X, 1, BETA, Y, 1)
|
PRINT 1050
|
PRINT 1060, (Y(I), I = 1, N)
|
C
|
1000 FORMAT (1X, 'A in full form:')
|
1010 FORMAT (1X, 5(2X, F6.1))
|
1020 FORMAT (/1X, 'A in banded form: (* in unused fields)')
|
1030 FORMAT (/7X, 'x', 8X, 'y')
|
1040 FORMAT (3X, F6.1, 3X, F6.1)
|
1050 FORMAT (/1X, 'Ax + y:')
|
1060 FORMAT (1X, 3X, F6.1)
|
C
|
END
|
|