|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
REAL RZERO
|
INTEGER LDA, LDB, LDC, M, N
|
PARAMETER (M = 3)
|
PARAMETER (N = 2)
|
PARAMETER (LDA = M)
|
PARAMETER (LDB = M)
|
PARAMETER (LDC = M)
|
PARAMETER (RZERO = 0.0E0)
|
C
|
COMPLEX A(LDA,M), ALPHA, B(LDB,N), BETA, C(LDC,N)
|
INTEGER I, J
|
C
|
EXTERNAL CHEMM
|
INTRINSIC CMPLX, CONJG, REAL
|
C
|
C Initialize the array A to store in Hermitian form the matrix
|
C A shown below. Initialize the arrays B and C to store the
|
C matrices B and C shown below.
|
C
|
C 1+0i 2-3i 4-5i 0-1i 0-2i 100+100i 100+100i
|
C A = 2+3i 6+0i 7-8i B = 0-1i 0-2i C = 100+100i 100+100i
|
C 4+5i 7+8i 9+0i 0-1i 0-2i 100+100i 100+100i
|
C
|
DATA A / (1.0,8E8), (2.0,3.0), (4.0,5.0),
|
$ (8E8,8E8), (6.0,8E8), (7.0,8.0),
|
$ (8E8,8E8), (8E8,8E8), (9.0,8E8) /
|
DATA B / 3*(0.0D0,-1.0D0), 3*(0.0D0, -2.0D0) /
|
DATA C / 6*(1.0E2,1.0E2) /
|
C
|
ALPHA = CMPLX (1.0E0,0.0E0)
|
BETA = CMPLX (5.0E0,0.0E0)
|
PRINT 1000
|
PRINT 1010, REAL (A(1,1)), RZERO, CONJG (A(2,1)),
|
$ CONJG (A(3,1))
|
PRINT 1010, A(2,1), REAL (A(2,2)), RZERO, CONJG (A(3,2))
|
PRINT 1010, A(3,1), A(3,2), REAL (A(3,3)), RZERO
|
PRINT 1020
|
PRINT 1010, ((A(I,J), J = 1, M), I = 1, M)
|
PRINT 1030
|
PRINT 1040, ((B(I,J), J = 1, N), I = 1, M)
|
PRINT 1050
|
PRINT 1040, ((C(I,J), J = 1, N), I = 1, M)
|
CALL CHEMM ('LEFT SIDE A', 'LOWER TRIANGULAR A', M, N,
|
$ ALPHA, A, LDA, B, LDB, BETA, C, LDC)
|
PRINT 1060
|
PRINT 1040, ((C(I,J), J = 1, N), I = 1, M)
|
C
|
1000 FORMAT (1X, 'A in full form:')
|
1010 FORMAT (3(3X, '(', F5.1, ',', F5.1, ')'))
|
1020 FORMAT (/1X, 'A in Hermitian form: (* in unused elements)')
|
1030 FORMAT (/1X, 'B:')
|
1040 FORMAT (2(3X, '(', F5.1, ',', F5.1, ')'))
|
1050 FORMAT (/1X, 'C:')
|
1060 FORMAT (/1X, 'AB + C:')
|
C
|
END
|
|