|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
INTEGER LENGTA, N
|
PARAMETER (N = 5)
|
PARAMETER (LENGTA = (N * N + N) / 2)
|
C
|
DOUBLE PRECISION ALPHA, AP(LENGTA), BETA, X(N), Y(N)
|
INTEGER I
|
C
|
EXTERNAL DSPMV
|
C
|
C Initialize the array AP to store in packed symmetric 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 3 4 5 1 1000
|
C 2 6 7 8 9 2 2000
|
C A = 3 7 10 11 12 x = 3 y = 3000
|
C 4 8 11 13 14 4 4000
|
C 5 9 12 14 15 5 5000
|
C
|
DATA AP / 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0,
|
$ 6.0D0, 7.0D0, 8.0D0, 9.0D0,
|
$ 1.0D1, 1.1D1, 1.2D1,
|
$ 1.3D1, 1.4D1,
|
$ 1.5D1 /
|
DATA X / 1.0D0, 2.0D0, 3.0D0, 4.0D0, 5.0D0 /
|
DATA Y / 1.0D3, 2.0D3, 3.0D3, 4.0D3, 5.0D3 /
|
C
|
PRINT 1000
|
PRINT 1010, AP(1), AP(2), AP(3), AP(4), AP(5)
|
PRINT 1010, AP(2), AP(6), AP(7), AP(8), AP(9)
|
PRINT 1010, AP(3), AP(7), AP(8), AP(9), AP(10)
|
PRINT 1010, AP(4), AP(8), AP(9), AP(10), AP(11)
|
PRINT 1010, AP(5), AP(9), AP(10), AP(11), AP(12)
|
PRINT 1020
|
PRINT 1030, (X(I), Y(I), I = 1, N)
|
ALPHA = 1.0D0
|
BETA = 0.0D0
|
CALL DSPMV ('LOWER TRIANGULAR A', N, ALPHA, AP, X, 1,
|
$ BETA, Y, 1)
|
PRINT 1040
|
PRINT 1050, (Y(I), I = 1, N)
|
C
|
1000 FORMAT (1X, 'Array A in full form:')
|
1010 FORMAT (1X, 5(2X, F6 .1))
|
1020 FORMAT (/1X, ' x y')
|
1030 FORMAT (1X, F6.1, 2X, F6.1)
|
1040 FORMAT (/1X, 'Ax + y:')
|
1050 FORMAT (1X, F6.1)
|
C
|
END
|
|